[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.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

View File

@ -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();
}

View File

@ -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);