Skip to content

Commit

Permalink
Fix crash caused by launching favorite app tiles
Browse files Browse the repository at this point in the history
Fixes #302
  • Loading branch information
farmerbb committed Oct 2, 2024
1 parent 0fc156e commit 95e1a16
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@

package com.farmerbb.taskbar.util;

import android.app.Activity;
import android.content.Intent;
import android.service.quicksettings.TileService;
import android.view.View;

public class CompatUtils {
Expand All @@ -26,4 +29,8 @@ public static boolean isImeVisible(View view) {
}

public static void grantNotificationPermissionIfNeeded(Activity activity) {}

public static boolean startActivityAndCollapse(TileService service, Intent intent) {
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@

package com.farmerbb.taskbar.util;

import android.app.Activity;
import android.content.Intent;
import android.service.quicksettings.TileService;
import android.view.View;

public class CompatUtils {
Expand All @@ -26,4 +29,8 @@ public static boolean isImeVisible(View view) {
}

public static void grantNotificationPermissionIfNeeded(Activity activity) {}

public static boolean startActivityAndCollapse(TileService service, Intent intent) {
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,10 @@
// and the Play Store version of Taskbar (compiled with SDK 34).
// TODO Do not make changes to this file without making corresponding changes to the Android-x86 version.

import android.app.Activity;
import android.os.Build;
import android.content.Intent;
import android.service.quicksettings.TileService;
import android.view.View;
import android.view.WindowInsets;

Expand All @@ -33,4 +36,8 @@ public static boolean isImeVisible(View view) {
}

public static void grantNotificationPermissionIfNeeded(Activity activity) {}

public static boolean startActivityAndCollapse(TileService service, Intent intent) {
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,10 @@
// and the Play Store version of Taskbar (compiled with SDK 34).
// TODO Do not make changes to this file without making corresponding changes to the Android-x86 version.

import android.app.Activity;
import android.os.Build;
import android.content.Intent;
import android.service.quicksettings.TileService;
import android.view.View;
import android.view.WindowInsets;

Expand All @@ -33,4 +36,8 @@ public static boolean isImeVisible(View view) {
}

public static void grantNotificationPermissionIfNeeded(Activity activity) {}

public static boolean startActivityAndCollapse(TileService service, Intent intent) {
return false;
}
}
13 changes: 13 additions & 0 deletions app/src/compat-34/java/com/farmerbb/taskbar/util/CompatUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,11 @@

import android.Manifest;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.service.quicksettings.TileService;
import android.view.View;
import android.view.WindowInsets;

Expand All @@ -41,4 +44,14 @@ public static void grantNotificationPermissionIfNeeded(Activity activity) {
activity.requestPermissions(new String[]{Manifest.permission.POST_NOTIFICATIONS}, 42);
}
}

public static boolean startActivityAndCollapse(TileService service, Intent intent) {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
PendingIntent pendingIntent = PendingIntent.getActivity(service, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_IMMUTABLE);
service.startActivityAndCollapse(pendingIntent);
return true;
} else {
return false;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import com.farmerbb.taskbar.R;
import com.farmerbb.taskbar.activity.PersistentShortcutLaunchActivity;
import com.farmerbb.taskbar.activity.PersistentShortcutSelectAppActivity;
import com.farmerbb.taskbar.util.CompatUtils;
import com.farmerbb.taskbar.util.IconCache;
import com.farmerbb.taskbar.util.U;

Expand Down Expand Up @@ -81,7 +82,10 @@ private void selectApp() {
Intent intent = U.getThemedIntent(this, PersistentShortcutSelectAppActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(PREF_QS_TILE, tileNumber());
startActivityAndCollapse(intent);

if(!CompatUtils.startActivityAndCollapse(this, intent)) {
startActivityAndCollapse(intent);
}
}

private void launchApp() {
Expand Down Expand Up @@ -111,7 +115,9 @@ private void launchApp() {
)
);

startActivityAndCollapse(shortcutIntent);
if(!CompatUtils.startActivityAndCollapse(this, shortcutIntent)) {
startActivityAndCollapse(shortcutIntent);
}
}

private void updateState() {
Expand Down

0 comments on commit 95e1a16

Please sign in to comment.