[app] Fix a crash (#1097)
This commit is contained in:
parent
b3c9694c75
commit
a29d08a4eb
|
|
@ -39,6 +39,7 @@ import org.lsposed.manager.NavGraphDirections;
|
|||
import org.lsposed.manager.R;
|
||||
import org.lsposed.manager.databinding.ActivityMainBinding;
|
||||
import org.lsposed.manager.ui.activity.base.BaseActivity;
|
||||
import org.lsposed.manager.util.NotificationUtil;
|
||||
|
||||
public class MainActivity extends BaseActivity {
|
||||
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")) {
|
||||
navController.navigate(R.id.action_settings_fragment);
|
||||
} else if (intent.hasExtra("modulePackageName") && ConfigManager.isBinderAlive()) {
|
||||
navController.navigate(NavGraphDirections.actionAppListFragment(intent.getStringExtra("modulePackageName"), intent.getIntExtra("moduleUserId", -1)));
|
||||
} else if (!TextUtils.isEmpty(intent.getDataString())) {
|
||||
switch (intent.getDataString()) {
|
||||
case "modules":
|
||||
if (!ConfigManager.isBinderAlive()) break;
|
||||
navController.navigate(R.id.action_modules_fragment);
|
||||
break;
|
||||
case "logs":
|
||||
if (!ConfigManager.isBinderAlive()) break;
|
||||
navController.navigate(R.id.action_logs_fragment);
|
||||
break;
|
||||
case "repo":
|
||||
if (!ConfigManager.isBinderAlive() && !ConfigManager.isMagiskInstalled()) break;
|
||||
navController.navigate(R.id.action_repo_fragment);
|
||||
break;
|
||||
} else if (ConfigManager.isBinderAlive()) {
|
||||
if (NotificationUtil.NOTIFICATION_UUID.equals(intent.getStringExtra("uuid"))) {
|
||||
navController.navigate(
|
||||
NavGraphDirections.actionAppListFragment(
|
||||
intent.getStringExtra("modulePackageName"),
|
||||
intent.getIntExtra("moduleUserId", -1))
|
||||
);
|
||||
} else if (!TextUtils.isEmpty(intent.getDataString())) {
|
||||
switch (intent.getDataString()) {
|
||||
case "modules":
|
||||
navController.navigate(R.id.action_modules_fragment);
|
||||
break;
|
||||
case "logs":
|
||||
navController.navigate(R.id.action_logs_fragment);
|
||||
break;
|
||||
case "repo":
|
||||
if (ConfigManager.isMagiskInstalled()) {
|
||||
navController.navigate(R.id.action_repo_fragment);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -150,12 +150,12 @@ public class AppListFragment extends BaseFragment {
|
|||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
scopeAdapter.refresh();
|
||||
if (scopeAdapter != null) scopeAdapter.refresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
scopeAdapter.onDestroy();
|
||||
if (scopeAdapter != null) scopeAdapter.onDestroy();
|
||||
|
||||
super.onDestroy();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,9 +31,12 @@ import androidx.core.app.NotificationCompat;
|
|||
import org.lsposed.manager.R;
|
||||
import org.lsposed.manager.ui.activity.MainActivity;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
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 PENDING_INTENT_OPEN_APP_LIST = 0;
|
||||
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);
|
||||
|
||||
Intent intent = new Intent(context, MainActivity.class)
|
||||
.putExtra("uuid", NOTIFICATION_UUID)
|
||||
.putExtra("modulePackageName", modulePackageName)
|
||||
.putExtra("moduleUserId", moduleUserId)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
|
|
|
|||
Loading…
Reference in New Issue