diff --git a/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java b/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java index 7db23e2ad..221c37b7c 100644 --- a/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java +++ b/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java @@ -19,11 +19,9 @@ package com.termux.app; import android.annotation.SuppressLint; import android.app.AlertDialog; -import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; -import android.content.IntentFilter; import android.content.ServiceConnection; import android.os.Bundle; import android.os.IBinder; @@ -133,11 +131,6 @@ public class TermuxActivity extends BaseIDEActivity implements ServiceConnection */ TermuxSessionsListViewController mTermuxSessionListViewController; - /** - * The {@link TermuxActivity} broadcast receiver for various things like terminal style configuration changes. - */ - private final BroadcastReceiver mTermuxActivityBroadcastReceiver = new TermuxActivityBroadcastReceiver(); - /** * The last toast shown, used cancel current toast before showing new in {@link #showToast(String, boolean)}. */ @@ -288,8 +281,6 @@ public class TermuxActivity extends BaseIDEActivity implements ServiceConnection if (mPreferences.isTerminalMarginAdjustmentEnabled()) addTermuxActivityRootViewGlobalLayoutListener(); - - registerTermuxActivityBroadcastReceiver(); } @Override @@ -306,10 +297,6 @@ public class TermuxActivity extends BaseIDEActivity implements ServiceConnection if (mTermuxTerminalViewClient != null) mTermuxTerminalViewClient.onResume(); - // Check if a crash happened on last run of the app or if a plugin crashed and show a - // notification with the crash details if it did - TermuxCrashUtils.notifyAppCrashFromCrashLogFile(this, LOG_TAG); - mIsOnResumeAfterOnCreate = false; } @@ -331,7 +318,6 @@ public class TermuxActivity extends BaseIDEActivity implements ServiceConnection removeTermuxActivityRootViewGlobalLayoutListener(); - unregisterTermuxActivityBroadcastReceiver(); getDrawer().closeDrawers(); } @@ -861,104 +847,6 @@ public class TermuxActivity extends BaseIDEActivity implements ServiceConnection } - - - public static void updateTermuxActivityStyling(Context context, boolean recreateActivity) { - // Make sure that terminal styling is always applied. - Intent stylingIntent = new Intent(TERMUX_ACTIVITY.ACTION_RELOAD_STYLE); - stylingIntent.putExtra(TERMUX_ACTIVITY.EXTRA_RECREATE_ACTIVITY, recreateActivity); - context.sendBroadcast(stylingIntent); - } - - private void registerTermuxActivityBroadcastReceiver() { - IntentFilter intentFilter = new IntentFilter(); - intentFilter.addAction(TERMUX_ACTIVITY.ACTION_NOTIFY_APP_CRASH); - intentFilter.addAction(TERMUX_ACTIVITY.ACTION_RELOAD_STYLE); - intentFilter.addAction(TERMUX_ACTIVITY.ACTION_REQUEST_PERMISSIONS); - - registerReceiver(mTermuxActivityBroadcastReceiver, intentFilter); - } - - private void unregisterTermuxActivityBroadcastReceiver() { - unregisterReceiver(mTermuxActivityBroadcastReceiver); - } - - private void fixTermuxActivityBroadcastReceiverIntent(Intent intent) { - if (intent == null) return; - - String extraReloadStyle = intent.getStringExtra(TERMUX_ACTIVITY.EXTRA_RELOAD_STYLE); - if ("storage".equals(extraReloadStyle)) { - intent.removeExtra(TERMUX_ACTIVITY.EXTRA_RELOAD_STYLE); - intent.setAction(TERMUX_ACTIVITY.ACTION_REQUEST_PERMISSIONS); - } - } - - class TermuxActivityBroadcastReceiver extends BroadcastReceiver { - @Override - public void onReceive(Context context, Intent intent) { - if (intent == null) return; - - if (mIsVisible) { - fixTermuxActivityBroadcastReceiverIntent(intent); - - switch (intent.getAction()) { - case TERMUX_ACTIVITY.ACTION_NOTIFY_APP_CRASH: - Logger.logDebug(LOG_TAG, "Received intent to notify app crash"); - TermuxCrashUtils.notifyAppCrashFromCrashLogFile(context, LOG_TAG); - return; - case TERMUX_ACTIVITY.ACTION_RELOAD_STYLE: - Logger.logDebug(LOG_TAG, "Received intent to reload styling"); - reloadActivityStyling(intent.getBooleanExtra(TERMUX_ACTIVITY.EXTRA_RECREATE_ACTIVITY, true)); - return; - case TERMUX_ACTIVITY.ACTION_REQUEST_PERMISSIONS: - Logger.logDebug(LOG_TAG, "Received intent to request storage permissions"); - requestStoragePermission(false); - return; - default: - } - } - } - } - - private void reloadActivityStyling(boolean recreateActivity) { - if (mProperties != null) { - reloadProperties(); - - if (mExtraKeysView != null) { - mExtraKeysView.setButtonTextAllCaps(mProperties.shouldExtraKeysTextBeAllCaps()); - mExtraKeysView.reload(mTermuxTerminalExtraKeys.getExtraKeysInfo(), mTerminalToolbarDefaultHeight); - } - - // Update NightMode.APP_NIGHT_MODE - TermuxThemeUtils.setAppNightMode(mProperties.getNightMode()); - } - - setMargins(); - setTerminalToolbarHeight(); - - FileReceiverActivity.updateFileReceiverActivityComponentsState(this); - - if (mTermuxTerminalSessionActivityClient != null) - mTermuxTerminalSessionActivityClient.onReloadActivityStyling(); - - if (mTermuxTerminalViewClient != null) - mTermuxTerminalViewClient.onReloadActivityStyling(); - - // To change the activity and drawer theme, activity needs to be recreated. - // It will destroy the activity, including all stored variables and views, and onCreate() - // will be called again. Extra keys input text, terminal sessions and transcripts will be preserved. - if (recreateActivity) { - Logger.logDebug(LOG_TAG, "Recreating activity"); - TermuxActivity.this.recreate(); - } - } - - - - public static void startTermuxActivity(@NonNull final Context context) { - ActivityUtils.startActivity(context, newInstance(context)); - } - public static Intent newInstance(@NonNull final Context context) { Intent intent = new Intent(context, TermuxActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); diff --git a/termux/termux-app/src/main/java/com/termux/app/TermuxService.java b/termux/termux-app/src/main/java/com/termux/app/TermuxService.java index 25caceed4..f01b37e97 100644 --- a/termux/termux-app/src/main/java/com/termux/app/TermuxService.java +++ b/termux/termux-app/src/main/java/com/termux/app/TermuxService.java @@ -40,6 +40,7 @@ import com.termux.terminal.TerminalSession; import com.termux.terminal.TerminalSessionClient; import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * A service holding a list of {@link TermuxSession} in {@link TermuxShellManager#mTermuxSessions} and background {@link AppShell} @@ -448,9 +449,6 @@ public final class TermuxService extends Service implements AppShell.AppShellCli updateNotification(); - // No need to recreate the activity since it likely just started and theme should already have applied - TermuxActivity.updateTermuxActivityStyling(this, false); - return newTermuxSession; } @@ -500,10 +498,8 @@ public final class TermuxService extends Service implements AppShell.AppShellCli * {@link TermuxService}, otherwise {@link TermuxTerminalSessionServiceClient}. */ public synchronized TermuxTerminalSessionClientBase getTermuxTerminalSessionClient() { - if (mTermuxTerminalSessionActivityClient != null) - return mTermuxTerminalSessionActivityClient; - else - return mTermuxTerminalSessionServiceClient; + return Objects.requireNonNullElse(mTermuxTerminalSessionActivityClient, + mTermuxTerminalSessionServiceClient); } /** This should be called when {@link TermuxActivity#onServiceConnected} is called to set the @@ -599,8 +595,6 @@ public final class TermuxService extends Service implements AppShell.AppShellCli } private void setupNotificationChannel() { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) return; - NotificationUtils.setupNotificationChannel(this, TermuxConstants.TERMUX_APP_NOTIFICATION_CHANNEL_ID, TermuxConstants.TERMUX_APP_NOTIFICATION_CHANNEL_NAME, NotificationManager.IMPORTANCE_LOW); } diff --git a/termux/termux-shared/src/main/java/com/termux/shared/termux/crash/TermuxCrashUtils.java b/termux/termux-shared/src/main/java/com/termux/shared/termux/crash/TermuxCrashUtils.java index 508198314..602bc47db 100644 --- a/termux/termux-shared/src/main/java/com/termux/shared/termux/crash/TermuxCrashUtils.java +++ b/termux/termux-shared/src/main/java/com/termux/shared/termux/crash/TermuxCrashUtils.java @@ -402,7 +402,6 @@ public class TermuxCrashUtils implements CrashHandler.CrashHandlerClient { * @param context The {@link Context} for operations. */ public static void setupCrashReportsNotificationChannel(final Context context) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) return; NotificationUtils.setupNotificationChannel(context, TermuxConstants.TERMUX_CRASH_REPORTS_NOTIFICATION_CHANNEL_ID, TermuxConstants.TERMUX_CRASH_REPORTS_NOTIFICATION_CHANNEL_NAME, NotificationManager.IMPORTANCE_HIGH); }