[app] Fix a crash (#1097)

This commit is contained in:
tehcneko 2021-09-10 19:44:11 +08:00 committed by GitHub
parent b3c9694c75
commit a29d08a4eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 19 deletions

View File

@ -39,6 +39,7 @@ import org.lsposed.manager.NavGraphDirections;
import org.lsposed.manager.R; import org.lsposed.manager.R;
import org.lsposed.manager.databinding.ActivityMainBinding; import org.lsposed.manager.databinding.ActivityMainBinding;
import org.lsposed.manager.ui.activity.base.BaseActivity; import org.lsposed.manager.ui.activity.base.BaseActivity;
import org.lsposed.manager.util.NotificationUtil;
public class MainActivity extends BaseActivity { public class MainActivity extends BaseActivity {
private static final String KEY_PREFIX = MainActivity.class.getName() + '.'; private static final String KEY_PREFIX = MainActivity.class.getName() + '.';
@ -98,24 +99,30 @@ public class MainActivity extends BaseActivity {
} }
if (intent.getAction() != null && intent.getAction().equals("android.intent.action.APPLICATION_PREFERENCES")) { if (intent.getAction() != null && intent.getAction().equals("android.intent.action.APPLICATION_PREFERENCES")) {
navController.navigate(R.id.action_settings_fragment); navController.navigate(R.id.action_settings_fragment);
} else if (intent.hasExtra("modulePackageName") && ConfigManager.isBinderAlive()) { } else if (ConfigManager.isBinderAlive()) {
navController.navigate(NavGraphDirections.actionAppListFragment(intent.getStringExtra("modulePackageName"), intent.getIntExtra("moduleUserId", -1))); if (NotificationUtil.NOTIFICATION_UUID.equals(intent.getStringExtra("uuid"))) {
} else if (!TextUtils.isEmpty(intent.getDataString())) { navController.navigate(
switch (intent.getDataString()) { NavGraphDirections.actionAppListFragment(
case "modules": intent.getStringExtra("modulePackageName"),
if (!ConfigManager.isBinderAlive()) break; intent.getIntExtra("moduleUserId", -1))
navController.navigate(R.id.action_modules_fragment); );
break; } else if (!TextUtils.isEmpty(intent.getDataString())) {
case "logs": switch (intent.getDataString()) {
if (!ConfigManager.isBinderAlive()) break; case "modules":
navController.navigate(R.id.action_logs_fragment); navController.navigate(R.id.action_modules_fragment);
break; break;
case "repo": case "logs":
if (!ConfigManager.isBinderAlive() && !ConfigManager.isMagiskInstalled()) break; navController.navigate(R.id.action_logs_fragment);
navController.navigate(R.id.action_repo_fragment); break;
break; case "repo":
if (ConfigManager.isMagiskInstalled()) {
navController.navigate(R.id.action_repo_fragment);
}
break;
}
} }
} }
} }
@Override @Override

View File

@ -150,12 +150,12 @@ public class AppListFragment extends BaseFragment {
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
scopeAdapter.refresh(); if (scopeAdapter != null) scopeAdapter.refresh();
} }
@Override @Override
public void onDestroy() { public void onDestroy() {
scopeAdapter.onDestroy(); if (scopeAdapter != null) scopeAdapter.onDestroy();
super.onDestroy(); super.onDestroy();
} }

View File

@ -31,9 +31,12 @@ import androidx.core.app.NotificationCompat;
import org.lsposed.manager.R; import org.lsposed.manager.R;
import org.lsposed.manager.ui.activity.MainActivity; import org.lsposed.manager.ui.activity.MainActivity;
import java.util.UUID;
public final class NotificationUtil { public final class NotificationUtil {
public static final int NOTIFICATION_MODULE_NOT_ACTIVATED_YET = 0; public static final String NOTIFICATION_UUID = UUID.randomUUID().toString();
private static final int NOTIFICATION_MODULE_NOT_ACTIVATED_YET = 0;
private static final int NOTIFICATION_MODULES_UPDATED = 1; private static final int NOTIFICATION_MODULES_UPDATED = 1;
private static final int PENDING_INTENT_OPEN_APP_LIST = 0; private static final int PENDING_INTENT_OPEN_APP_LIST = 0;
private static final String NOTIFICATION_MODULES_CHANNEL = "modules_channel_2"; private static final String NOTIFICATION_MODULES_CHANNEL = "modules_channel_2";
@ -63,6 +66,7 @@ public final class NotificationUtil {
R.string.module_is_not_activated_yet_detailed, moduleName); R.string.module_is_not_activated_yet_detailed, moduleName);
Intent intent = new Intent(context, MainActivity.class) Intent intent = new Intent(context, MainActivity.class)
.putExtra("uuid", NOTIFICATION_UUID)
.putExtra("modulePackageName", modulePackageName) .putExtra("modulePackageName", modulePackageName)
.putExtra("moduleUserId", moduleUserId) .putExtra("moduleUserId", moduleUserId)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);