From 4d2d0b42973e82a88bee26b8c6fa2d7f8a647aa1 Mon Sep 17 00:00:00 2001
From: asuraliu
Date: Fri, 19 Jul 2024 14:51:29 +0800
Subject: [PATCH 1/2] 1. Update targetAPI to 34 and adapt to Android 14; 2. Fix
Notification bugs.
---
app/build.gradle | 16 ++--
app/src/main/AndroidManifest.xml | 4 +-
.../model/NotificationMonitor.java | 33 ++++---
.../service/MonitoringService.java | 30 ++++---
.../ratul/topactivity/ui/MainActivity.java | 88 +++++++++++++++----
.../ratul/topactivity/utils/WindowUtil.java | 4 +-
build.gradle | 2 +-
gradle.properties | 3 +
gradle/wrapper/gradle-wrapper.properties | 2 +-
9 files changed, 121 insertions(+), 61 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 6afec5a..6ce7b31 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,11 +1,13 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 32
+ namespace 'io.github.ratul.topactivity'
+ compileSdkVersion 34
+ buildToolsVersion '34.0.0'
defaultConfig {
applicationId "io.github.ratul.topactivity"
minSdkVersion 24
- targetSdkVersion 33
+ targetSdkVersion 34
versionCode 18
versionName "1.5.8"
}
@@ -27,9 +29,9 @@ android {
}
dependencies {
- implementation 'androidx.appcompat:appcompat:1.4.1'
- implementation 'com.google.android.material:material:1.6.1'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
- implementation 'androidx.preference:preference:1.2.0'
- implementation 'androidx.core:core:1.7.0'
+ implementation 'androidx.appcompat:appcompat:1.7.0'
+ implementation 'com.google.android.material:material:1.12.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
+ implementation 'androidx.preference:preference:1.2.1'
+ implementation 'androidx.core:core:1.13.1'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f6a09fe..113c201 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,12 +1,12 @@
-
+
+
diff --git a/app/src/main/java/io/github/ratul/topactivity/model/NotificationMonitor.java b/app/src/main/java/io/github/ratul/topactivity/model/NotificationMonitor.java
index 65ee793..97b1c7e 100644
--- a/app/src/main/java/io/github/ratul/topactivity/model/NotificationMonitor.java
+++ b/app/src/main/java/io/github/ratul/topactivity/model/NotificationMonitor.java
@@ -16,27 +16,21 @@
*/
package io.github.ratul.topactivity.model;
-import android.app.ActivityManager;
+import android.app.Notification;
+import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
-import android.app.NotificationChannel;
import android.app.TaskStackBuilder;
-import android.app.Notification;
-import android.graphics.Color;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
-import android.widget.Toast;
-
-import java.util.List;
-import java.lang.reflect.AnnotatedElement;
-import io.github.ratul.topactivity.utils.DatabaseUtil;
import io.github.ratul.topactivity.R;
+import io.github.ratul.topactivity.service.QuickSettingsTileService;
import io.github.ratul.topactivity.ui.MainActivity;
+import io.github.ratul.topactivity.utils.DatabaseUtil;
import io.github.ratul.topactivity.utils.WindowUtil;
-import io.github.ratul.topactivity.service.QuickSettingsTileService;
/**
* Created by Ratul on 04/05/2022.
@@ -58,13 +52,19 @@ public static void showNotification(Context context, boolean isPaused) {
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(intent);
- PendingIntent pIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
+ int flag;
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+ flag = PendingIntent.FLAG_IMMUTABLE;
+ } else {
+ flag = PendingIntent.FLAG_UPDATE_CURRENT;
+ }
+ PendingIntent pIntent = stackBuilder.getPendingIntent(0, flag);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String CHANNEL_ID = context.getPackageName() + "_channel_007";
CharSequence name = "Activity Info";
- NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, NotificationManager.IMPORTANCE_MAX);
+ NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, NotificationManager.IMPORTANCE_DEFAULT);
mChannel.setDescription("Shows current activity info");
mChannel.enableLights(false);
mChannel.enableVibration(false);
@@ -72,8 +72,7 @@ public static void showNotification(Context context, boolean isPaused) {
notifManager.createNotificationChannel(mChannel);
builder = new Notification.Builder(context, CHANNEL_ID);
- }
- else {
+ } else {
builder = new Notification.Builder(context);
}
@@ -86,8 +85,8 @@ public static void showNotification(Context context, boolean isPaused) {
.setAutoCancel(true)
.setContentIntent(pIntent);
- builder.addAction(R.drawable.ic_launcher_foreground, context.getString(R.string.noti_action_stop),
- getPendingIntent(context, ACTION_STOP)).setContentIntent(pIntent);
+// builder.addAction(R.drawable.ic_launcher_foreground, context.getString(R.string.noti_action_stop),
+// getPendingIntent(context, ACTION_STOP)).setContentIntent(pIntent);
notifManager.notify(NOTIFICATION_ID, builder.build());
}
@@ -95,7 +94,7 @@ public static void showNotification(Context context, boolean isPaused) {
public static PendingIntent getPendingIntent(Context context, int command) {
Intent intent = new Intent("io.github.ratul.topactivity.ACTION_NOTIFICATION_RECEIVER");
intent.putExtra(EXTRA_NOTIFICATION_ACTION, command);
- return PendingIntent.getBroadcast(context, 0, intent, 0);
+ return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_IMMUTABLE);
}
public static void cancelNotification(Context context) {
diff --git a/app/src/main/java/io/github/ratul/topactivity/service/MonitoringService.java b/app/src/main/java/io/github/ratul/topactivity/service/MonitoringService.java
index 69e7585..c55a382 100644
--- a/app/src/main/java/io/github/ratul/topactivity/service/MonitoringService.java
+++ b/app/src/main/java/io/github/ratul/topactivity/service/MonitoringService.java
@@ -16,17 +16,17 @@
*/
package io.github.ratul.topactivity.service;
-import android.annotation.*;
-import android.app.*;
-import android.app.ActivityManager.*;
-import android.content.*;
-import android.content.pm.*;
-import android.os.*;
-import android.util.*;
+import android.app.AlarmManager;
+import android.app.PendingIntent;
+import android.app.Service;
+import android.app.usage.UsageEvents;
+import android.app.usage.UsageStatsManager;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.SystemClock;
-import java.util.*;
-import android.app.usage.*;
-import android.widget.Toast;
import io.github.ratul.topactivity.utils.DatabaseUtil;
import io.github.ratul.topactivity.utils.WindowUtil;
@@ -94,9 +94,16 @@ public void run() {
MonitoringService.INSTANCE.stopSelf();
}
+ String preText = MonitoringService.INSTANCE.text;
+ String preText1 = MonitoringService.INSTANCE.text1;
getActivityInfo();
if (MonitoringService.INSTANCE.text == null)
return;
+ if (preText != null && preText.equals(MonitoringService.INSTANCE.text)
+ && preText1 != null && preText1.equals(MonitoringService.INSTANCE.text1)) {
+ // not change, return
+ return;
+ }
MonitoringService.INSTANCE.firstRun = false;
if (DatabaseUtil.isShowWindow()) {
@@ -113,14 +120,13 @@ public void run() {
return super.onStartCommand(intent, flags, startId);
}
- @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@Override
public void onTaskRemoved(Intent rootIntent) {
Intent restartServiceIntent = new Intent(getApplicationContext(), this.getClass());
restartServiceIntent.setPackage(getPackageName());
PendingIntent restartServicePendingIntent = PendingIntent.getService(getApplicationContext(), 1,
- restartServiceIntent, PendingIntent.FLAG_ONE_SHOT);
+ restartServiceIntent, PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_IMMUTABLE);
AlarmManager alarmService = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarmService.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + 500,
restartServicePendingIntent);
diff --git a/app/src/main/java/io/github/ratul/topactivity/ui/MainActivity.java b/app/src/main/java/io/github/ratul/topactivity/ui/MainActivity.java
index f300737..1b2b612 100644
--- a/app/src/main/java/io/github/ratul/topactivity/ui/MainActivity.java
+++ b/app/src/main/java/io/github/ratul/topactivity/ui/MainActivity.java
@@ -16,37 +16,60 @@
*/
package io.github.ratul.topactivity.ui;
-import android.app.*;
-import android.content.*;
+import android.Manifest;
+import android.app.Activity;
+import android.app.AppOpsManager;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager;
+import android.graphics.Insets;
import android.net.Uri;
-import android.os.*;
-import android.provider.*;
-import android.view.*;
-import android.widget.*;
+import android.os.Build;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.util.DisplayMetrics;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.WindowInsets;
+import android.view.WindowMetrics;
+import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
-import android.app.*;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
-import android.content.pm.*;
-import android.graphics.drawable.*;
-import android.graphics.*;
-import android.text.*;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
+
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.switchmaterial.SwitchMaterial;
-import java.util.List;
-import io.github.ratul.topactivity.*;
-import io.github.ratul.topactivity.utils.*;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+
+import io.github.ratul.topactivity.App;
+import io.github.ratul.topactivity.R;
import io.github.ratul.topactivity.model.NotificationMonitor;
-import io.github.ratul.topactivity.service.*;
import io.github.ratul.topactivity.model.TypefaceSpan;
-import java.io.*;
-import android.util.DisplayMetrics;
+import io.github.ratul.topactivity.service.AccessibilityMonitoringService;
+import io.github.ratul.topactivity.service.MonitoringService;
+import io.github.ratul.topactivity.utils.DatabaseUtil;
+import io.github.ratul.topactivity.utils.WindowUtil;
/**
* Created by Wen on 16/02/2017.
* Refactored by Ratul on 04/05/2022.
*/
public class MainActivity extends AppCompatActivity {
+ public static final int REQUEST_CODE_NOTIFICATION = 100;
public static final String EXTRA_FROM_QS_TILE = "from_qs_tile";
public static final String ACTION_STATE_CHANGED = "io.github.ratul.topactivity.ACTION_STATE_CHANGED";
private SwitchMaterial mWindowSwitch, mNotificationSwitch, mAccessibilitySwitch;
@@ -86,7 +109,7 @@ public void onClick(DialogInterface di, int btn) {
}
mReceiver = new UpdateSwitchReceiver();
- registerReceiver(mReceiver, new IntentFilter(ACTION_STATE_CHANGED));
+ ContextCompat.registerReceiver(this, mReceiver, new IntentFilter(ACTION_STATE_CHANGED), ContextCompat.RECEIVER_NOT_EXPORTED);
mNotificationSwitch.setOnCheckedChangeListener(new SwitchMaterial.OnCheckedChangeListener() {
@Override
@@ -105,7 +128,7 @@ public void onCheckedChanged(CompoundButton button, boolean isChecked) {
mWindowSwitch.setOnCheckedChangeListener(new SwitchMaterial.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton button, boolean isChecked) {
- if (Build.VERSION.SDK_INT >= 23 && !Settings.canDrawOverlays(MainActivity.this)) {
+ if (!Settings.canDrawOverlays(MainActivity.this)) {
fancy.setTitle("Overlay Permission")
.setMessage("Please enable overlay permission to show window over other apps")
.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
@@ -181,6 +204,33 @@ protected void onNewIntent(Intent intent) {
}
}
+ @Override
+ protected void onStart() {
+ super.onStart();
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && !mNotificationSwitch.isChecked()) {
+ if (checkSelfPermission(Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
+ requestPermissions(new String[]{Manifest.permission.POST_NOTIFICATIONS}, REQUEST_CODE_NOTIFICATION);
+ }
+ }
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+ if (requestCode == REQUEST_CODE_NOTIFICATION) {
+ if (grantResults[0] == PackageManager.PERMISSION_DENIED) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU
+ && shouldShowRequestPermissionRationale(Manifest.permission.POST_NOTIFICATIONS)) {
+ requestPermissions(new String[]{Manifest.permission.POST_NOTIFICATIONS}, REQUEST_CODE_NOTIFICATION);
+ } else {
+ showToast("POST_NOTIFICATIONS Permission Denied", Toast.LENGTH_SHORT);
+ }
+ } else {
+ showToast("POST_NOTIFICATIONS Permission Granted", Toast.LENGTH_SHORT);
+ }
+ }
+ }
+
@Override
protected void onResume() {
super.onResume();
diff --git a/app/src/main/java/io/github/ratul/topactivity/utils/WindowUtil.java b/app/src/main/java/io/github/ratul/topactivity/utils/WindowUtil.java
index 80bfb32..e797c92 100644
--- a/app/src/main/java/io/github/ratul/topactivity/utils/WindowUtil.java
+++ b/app/src/main/java/io/github/ratul/topactivity/utils/WindowUtil.java
@@ -177,8 +177,8 @@ public static void show(Context context, String pkg, String clas) {
}
if (NotificationMonitor.builder != null) {
- NotificationMonitor.builder.setContentTitle(text);
- NotificationMonitor.builder.setContentText(text1);
+ NotificationMonitor.builder.setContentTitle(pkg);
+ NotificationMonitor.builder.setContentText(clas);
NotificationMonitor.notifManager.notify(NotificationMonitor.NOTIFICATION_ID,
NotificationMonitor.builder.build());
}
diff --git a/build.gradle b/build.gradle
index 9c32f2d..95baea5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:7.2.1'
+ classpath 'com.android.tools.build:gradle:8.4.2'
}
}
diff --git a/gradle.properties b/gradle.properties
index 079df3f..17bec0b 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -18,3 +18,6 @@ org.gradle.jvmargs=-Xmx1536m
android.useAndroidX=true
android.R8=true
android.enableJetifier=true
+android.defaults.buildfeatures.buildconfig=true
+android.nonTransitiveRClass=false
+android.nonFinalResIds=false
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 174aad7..750ebbe 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Mon Aug 30 15:20:07 CST 2021
distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
From 3a36983639979684a0520f0ad83a2e3a2cb710e6 Mon Sep 17 00:00:00 2001
From: asuraliu
Date: Fri, 19 Jul 2024 14:58:12 +0800
Subject: [PATCH 2/2] Upgrade Version to 1.5.9:Supported Android 14+ and fix
bugs
---
README.md | 4 ++--
app/build.gradle | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index dd15b75..b82c460 100644
--- a/README.md
+++ b/README.md
@@ -9,8 +9,8 @@ An useful tool for Android Developers & Reversers, which shows the package n
-[![App](https://img.shields.io/badge/Current%20Activity-1.5.8-blue?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iI2ZmZmZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuNSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMiAxLjUpIj48cG9seWxpbmUgcG9pbnRzPSI1LjI0NSAxMy4yODEgOC4yMzggOS4zOTEgMTEuNjUyIDEyLjA3MyAxNC41ODEgOC4yOTMiLz48Y2lyY2xlIGN4PSIxNy45OTUiIGN5PSIyLjciIHI9IjEuOTIyIi8+PHBhdGggZD0iTTEyLjkyNDQ4NTIsMS42MjAxMzczMSBMNS42NTY3NTA2LDEuNjIwMTM3MzEgQzIuNjQ1MzA4OTQsMS42MjAxMzczMSAwLjc3ODAzMjA0MSwzLjc1Mjg2MDQzIDAuNzc4MDMyMDQxLDYuNzY0MzAyMDkgTDAuNzc4MDMyMDQxLDE0Ljg0NjY4MiBDMC43NzgwMzIwNDEsMTcuODU4MTIzNyAyLjYwODY5NTY3LDE5Ljk4MTY5MzUgNS42NTY3NTA2LDE5Ljk4MTY5MzUgTDE0LjI2MDg2OTYsMTkuOTgxNjkzNSBDMTcuMjcyMzExMywxOS45ODE2OTM1IDE5LjEzOTU4ODIsMTcuODU4MTIzNyAxOS4xMzk1ODgyLDE0Ljg0NjY4MiBMMTkuMTM5NTg4Miw3LjgwNzc4MDM2Ii8+PC9nPjwvc3ZnPg==)](https://github.com/RatulHasan8/Current-Activity/releases/tag/app-n-source)
-[![SDK](https://img.shields.io/badge/Android-5.0%20and%20up-brightgreen?logo=android&logoColor=white)](https://github.com/RatulHasan8/Current-Activity/releases/tag/app-n-source)
+[![App](https://img.shields.io/badge/Current%20Activity-1.5.9-blue?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iI2ZmZmZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuNSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMiAxLjUpIj48cG9seWxpbmUgcG9pbnRzPSI1LjI0NSAxMy4yODEgOC4yMzggOS4zOTEgMTEuNjUyIDEyLjA3MyAxNC41ODEgOC4yOTMiLz48Y2lyY2xlIGN4PSIxNy45OTUiIGN5PSIyLjciIHI9IjEuOTIyIi8+PHBhdGggZD0iTTEyLjkyNDQ4NTIsMS42MjAxMzczMSBMNS42NTY3NTA2LDEuNjIwMTM3MzEgQzIuNjQ1MzA4OTQsMS42MjAxMzczMSAwLjc3ODAzMjA0MSwzLjc1Mjg2MDQzIDAuNzc4MDMyMDQxLDYuNzY0MzAyMDkgTDAuNzc4MDMyMDQxLDE0Ljg0NjY4MiBDMC43NzgwMzIwNDEsMTcuODU4MTIzNyAyLjYwODY5NTY3LDE5Ljk4MTY5MzUgNS42NTY3NTA2LDE5Ljk4MTY5MzUgTDE0LjI2MDg2OTYsMTkuOTgxNjkzNSBDMTcuMjcyMzExMywxOS45ODE2OTM1IDE5LjEzOTU4ODIsMTcuODU4MTIzNyAxOS4xMzk1ODgyLDE0Ljg0NjY4MiBMMTkuMTM5NTg4Miw3LjgwNzc4MDM2Ii8+PC9nPjwvc3ZnPg==)](https://github.com/RatulHasan8/Current-Activity/releases/tag/app-n-source)
+[![SDK](https://img.shields.io/badge/Android-7.0%20to%2014up-brightgreen?logo=android&logoColor=white)](https://github.com/RatulHasan8/Current-Activity/releases/tag/app-n-source)
[![License](https://img.shields.io/badge/License-GPL-red?logo=gnu&logoColor=white)](./LICENSE)
[![Maintenance](https://img.shields.io/badge/Maintained-Yes-green?logo=data:image/svg+xml;base64,PHN2ZyBpZD0iQ2FwYV8xIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIuMjYgNTEyLjI2IiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4yNiA1MTIuMjYiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI0ZGRkZGRiI+PHBhdGggZD0ibTM3MC4xMTkgMjgwLjYzNS0zNC4xMzkgMzQuMTM5LTM0LjE3NS0zNC4xNzUgODEuOTk2LTgxLjk5NmM5LjAxNCAyLjUzOCAxOC4yMTYgMy43NzkgMjcuMzY2IDMuNzc4IDI2LjMyOS0uMDAyIDUyLjE3OS0xMC4yODkgNzEuNDkxLTI5LjYwMSAyOC40MDctMjguNDA3IDM3LjI4OC03MC45NDggMjIuNjI2LTEwOC4zNzhsLTguMzYyLTIxLjM0OC01My42NjcgNTMuNjY4LTIxLjY2OS01LjgwNy01LjgwNy0yMS42NyA1My42NjYtNTMuNjY3LTIxLjM0NS04LjM2MWMtMzcuNDI3LTE0LjY2LTc5Ljk2OS01Ljc4LTEwOC4zNzggMjIuNjI3LTI2LjAyMyAyNi4wMjMtMzUuNjYgNjMuOTA2LTI1LjgyMiA5OC44NTZsLTgxLjk5NiA4MS45OTYtMTEwLjEwOS0xMTAuMTA5IDI5LjIxMy0yOS4yMTItOTAuNTQ1LTcxLjM2OS02MC40NjMgNjAuNDYyIDcxLjM2OCA5MC41NDYgMjkuMjE0LTI5LjIxMyAxMTAuMTA5IDExMC4xMDktNzIuMzg0IDcyLjM4NGMtMzcuNTkyLTExLjc3Ni03OC42MDUtMS45MzgtMTA2LjkgMjYuMzU3LTIwLjA5MyAyMC4wOTMtMzEuMTU5IDQ2LjgwOC0zMS4xNTkgNzUuMjIzczExLjA2NiA1NS4xMyAzMS4xNTkgNzUuMjIzYzIwLjczOSAyMC43MzkgNDcuOTggMzEuMTA4IDc1LjIyMyAzMS4xMDggMjcuMjQyIDAgNTQuNDg0LTEwLjM2OSA3NS4yMjMtMzEuMTA4IDI4LjI5NS0yOC4yOTUgMzguMTMzLTY5LjMwOSAyNi4zNTctMTA2LjlsNzIuMzg0LTcyLjM4NCAzNC4xNzUgMzQuMTc1LTM0LjEzOSAzNC4xMzkgMTIzLjU5MyAxMjMuNTkzYzExLjk1MiAxMS45NTIgMjcuODQzIDE4LjUzNCA0NC43NDYgMTguNTM0IDE2LjkwMiAwIDMyLjc5My02LjU4MiA0NC43NDUtMTguNTM0IDI0LjY3Mi0yNC42NzMgMjQuNjcyLTY0LjgxNyAwLTg5LjQ5em0tMzMwLjA1Ni0yMTcuODAyIDIyLjc2NS0yMi43NjUgNDMuMDkzIDMzLjk2Ny0zMS44OTEgMzEuODkxem0zMDguNTQ2IDczLjU4NC0zLjU4LTkuMTM5Yy0xMC4zMTMtMjYuMzI2LTQuMDctNTYuMjQ1IDE1LjkwNi03Ni4yMjIgMTMuODU5LTEzLjg1OCAzMi40OTctMjEuMTAzIDUxLjQxMi0yMC44MDVsLTMwLjAyOCAzMC4wMjkgMTQuNzcyIDU1LjEyOSA1NS4xMyAxNC43NzMgMzAuMDI3LTMwLjAyOGMuMzAzIDE4LjkxLTYuOTQ2IDM3LjU1NC0yMC44MDQgNTEuNDEyLTE5Ljk3NyAxOS45NzUtNDkuODk1IDI2LjIyLTc2LjIyMiAxNS45MDVsLTkuMTM4LTMuNTc5LTk1LjQ5MiA5NS40OTItMjcuNDc2LTI3LjQ3NnptLTE3NS41MDggMjMwLjQ2IDMuOTE4IDkuMjk4YzEyLjEyNiAyOC43NzQgNS42OTYgNjEuNjMyLTE2LjM4IDgzLjcwOC0xNC44OTMgMTQuODkyLTM0LjQ0OCAyMi4zMzctNTQuMDEgMjIuMzM1LTE5LjU1Ny0uMDAxLTM5LjEyMS03LjQ0Ni01NC4wMS0yMi4zMzUtMTQuNDI2LTE0LjQyNy0yMi4zNzItMzMuNjA3LTIyLjM3Mi01NC4wMXM3Ljk0NS0zOS41ODMgMjIuMzcyLTU0LjAxYzE0LjY3LTE0LjY2OSAzNC4wOTQtMjIuNDI5IDUzLjkyMy0yMi40MjkgMTAuMDEyIDAgMjAuMTMgMS45OCAyOS43ODQgNi4wNDlsOS4yOTggMy45MTggODYuMjc5LTg2LjI3OSAyNy40NzYgMjcuNDc2em0xOTcuMDE4LTQzLjgxNyAyNy40NzcgMjcuNDc3LTQ3LjA2NCA0Ny4wNjQtMjcuNDc2LTI3LjQ3NnptMTAyLjM4MiAxNDkuNDQ3Yy02LjI4NiA2LjI4NS0xNC42NDMgOS43NDctMjMuNTMyIDkuNzQ3cy0xNy4yNDctMy40NjItMjMuNTMyLTkuNzQ3bC01My42OTItNTMuNjkyIDQ3LjA2NC00Ny4wNjQgNTMuNjkyIDUzLjY5MmMxMi45NzUgMTIuOTc1IDEyLjk3NSAzNC4wODggMCA0Ny4wNjR6Ii8+PHBhdGggZD0ibTEwNi42MjkgMzU2LjQ0NGMtMTMuMjAzIDAtMjUuNjE2IDUuMTQyLTM0Ljk1MSAxNC40NzgtOS4zMzYgOS4zMzYtMTQuNDc4IDIxLjc0OC0xNC40NzggMzQuOTUxczUuMTQyIDI1LjYxNSAxNC40NzcgMzQuOTUxYzkuMzM2IDkuMzM2IDIxLjc0OSAxNC40NzggMzQuOTUyIDE0LjQ3OHMyNS42MTUtNS4xNDIgMzQuOTUyLTE0LjQ3OGMxOS4yNzEtMTkuMjcyIDE5LjI3MS01MC42MzEgMC02OS45MDItOS4zMzYtOS4zMzYtMjEuNzQ5LTE0LjQ3OC0zNC45NTItMTQuNDc4em0xMy43MzkgNjMuMTY3Yy0zLjY3IDMuNjY5LTguNTQ5IDUuNjktMTMuNzM4IDUuNjktNS4xOSAwLTEwLjA2OC0yLjAyMS0xMy43MzgtNS42OS0zLjY2OS0zLjY3LTUuNjktOC41NDktNS42OS0xMy43MzhzMi4wMjEtMTAuMDY4IDUuNjkxLTEzLjczOGMzLjY2OS0zLjY3IDguNTQ4LTUuNjkgMTMuNzM4LTUuNjkgNS4xODkgMCAxMC4wNjggMi4wMjEgMTMuNzM4IDUuNjkgNy41NzMgNy41NzUgNy41NzMgMTkuOTAxLS4wMDEgMjcuNDc2eiIvPjwvZz48L3N2Zz4=)](https://github.com/ratsan/Current-Activity/graphs/commit-activity)
[![Contributions](https://img.shields.io/badge/Contributions-Open-yellow?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAARqSURBVHic7ZvNa11FGMZ/bxJjPzQNpoKi0WoXRaogrS26MfYDxWq14KaCuHIhooJu1H9AxU0RFaQgRYugoESMaDVKExBUrNKNsSVImraCVG1rrYoN8rg4701OT+bcxJsz5yTmPBDuzDvvzH3myXzPXKhRo0aNRQybyUGSAb3ApfHpFIoTwHEzUzOnXAEkLQWeBB4GriyWW2k4BrwK7DKzv0IOQQEkrQQ+Am6Kx61UfA3caWa/ZhOmCeBN/jNgk5tGgJeBI8BEPI6F4gJgFfAYcJ3bBs3s9hlzStqhKbwraUk8nnEhaYmk/lR9ts8m01vufFLSJSXwjApJPZJOeZ3ezKa3BfI0msyQmZ2MSy8+vN8Pe3RtNj0kQJd//haLVAU45Z8rsgkhARYVagGqJlA1agGqJlA1OpqkrZf0fGlM4mJ9XkIzAW7wv/81mglwDvijLCKRsRzonJWnpDFfNu6Jy6k8SNrjdRrLpi36QbAWoGoCVaMWoGoCMLlnr4RL5QJIupfkBPfDKr6/cgGAB0h4TDusKAOVCuAHsLd59PMqOEQVQFKbpDVe0RCuB1Z6eH8m71VlHMhGE8DJDwCHgOdy3DalwpMCSLoPGAcOSLo8FkeIJIDfKr0PbHPTxTmuDQGOm9loyt44l1wLDEm6oniWOZjrXkDSMkmDqbP4YUkXBfzaJP3iPm9k0kzSS6kyxiRdM4c6lbMXkLScpNlvddMwcJeZnQ243wj0ePi8/u8Xmo8DL7ppFbBf0rVF8oUCBfDKfwBsdtM+kvu4UOUhp/834CI8Aexy09UkIqwuhnEOWukCfgX1RarJDki6cIY8A3nNMuD7Qqrso5L+0211GV1gA3Czh08DD5rZ300IdQC3enTafz+Ap4CDHu4FdrTIcxqKEuBLYNDD3UB/aOBLYR1TI/1Qs4J9j7CbZMwAOAy83TLTDAoRwMwmgO0kUx9AH/CxpK6cLOn+P5RXrqR24DXgITcdBjab2c9zItwMc5kGJXXq/OvoAwrcMEva5+mjoXLcp13S66myRtTioqjZGBByblkAz9+p5F1BA99I6kmld0g642m7c8pol7Q3VcZBSS2/USpjEJyEmZ0DdgLvuGkd8GzKZSNTK8O8AfARkl0iwLfAlljNPspS2MeE+4G9bhpPJc+m/x8B/iEZXLeG3vZEw1y7QKC8rkz8Uy//+xnydfsgWASH3C7Q7GKkEJjZmRSRTuAWjzad/83sdExeDZR9ILIBWObh2SyAoiN6C8jgBPAncJaphVOlKFUAMxuV1AtMmNnvZX53HspuAcy3l2fz4VS4UtQCBGyNaau7TCKR0diPTHv7GBJgxD/70mv4hQolL9/7PPrdbDLck9qE9GthP5ZeKum9VH3uzvrkPZcfBLa46RDwCvADC+u5/GrgUWCN2z4xszuyjnk/mOghuazcGIthyfgK2BaagoOzgO+++oBngKNxuUXFOPA00Je3/pjxR1MASm5mLiuQWBn4ycx+rJpEjRo1asxr/As8TL5578cVOwAAAABJRU5ErkJggg==)](https://github.com/ratsan/Current-Activity/pulls)
diff --git a/app/build.gradle b/app/build.gradle
index 6ce7b31..2679dfc 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -8,8 +8,8 @@ android {
applicationId "io.github.ratul.topactivity"
minSdkVersion 24
targetSdkVersion 34
- versionCode 18
- versionName "1.5.8"
+ versionCode 19
+ versionName "1.5.9"
}
buildTypes {