Changed: Store app wide night mode in NightMode.APP_NIGHT_MODE so that libraries can use it directly without having to load or get it from termux properties

This commit is contained in:
agnostic-apollo
2021-11-12 08:33:11 +05:00
parent 1b794b3518
commit b79ed509f1
5 changed files with 97 additions and 14 deletions

View File

@@ -50,6 +50,8 @@ import com.termux.app.settings.properties.TermuxAppSharedProperties;
import com.termux.shared.termux.interact.TextInputDialogUtils;
import com.termux.shared.logger.Logger;
import com.termux.shared.termux.TermuxUtils;
import com.termux.shared.termux.theme.TermuxThemeUtils;
import com.termux.shared.theme.NightMode;
import com.termux.shared.theme.ThemeUtils;
import com.termux.shared.view.ViewUtils;
import com.termux.terminal.TerminalSession;
@@ -408,7 +410,10 @@ public final class TermuxActivity extends Activity implements ServiceConnection
private void setActivityTheme() {
if (ThemeUtils.shouldEnableDarkTheme(this, mProperties.getNightMode())) {
// Update NightMode.APP_NIGHT_MODE
TermuxThemeUtils.setAppNightMode(mProperties.getNightMode());
if (ThemeUtils.shouldEnableDarkTheme(this, NightMode.getAppNightMode().getName())) {
this.setTheme(R.style.Theme_Termux_Black);
} else {
this.setTheme(R.style.Theme_Termux);
@@ -416,7 +421,7 @@ public final class TermuxActivity extends Activity implements ServiceConnection
}
private void setDrawerTheme() {
if (ThemeUtils.shouldEnableDarkTheme(this, mProperties.getNightMode())) {
if (ThemeUtils.shouldEnableDarkTheme(this, NightMode.getAppNightMode().getName())) {
findViewById(R.id.left_drawer).setBackgroundColor(ContextCompat.getColor(this,
android.R.color.background_dark));
((ImageButton) findViewById(R.id.settings_button)).setColorFilter(Color.WHITE);
@@ -904,13 +909,16 @@ public final class TermuxActivity extends Activity implements ServiceConnection
}
private void reloadActivityStyling() {
if (mProperties!= null) {
if (mProperties != null) {
mProperties.loadTermuxPropertiesFromDisk();
if (mExtraKeysView != null) {
mExtraKeysView.setButtonTextAllCaps(mProperties.shouldExtraKeysTextBeAllCaps());
mExtraKeysView.reload(mProperties.getExtraKeysInfo());
}
// Update NightMode.APP_NIGHT_MODE
TermuxThemeUtils.setAppNightMode(mProperties.getNightMode());
}
setMargins();

View File

@@ -7,19 +7,25 @@ import com.termux.shared.termux.TermuxConstants;
import com.termux.shared.termux.crash.TermuxCrashUtils;
import com.termux.shared.termux.settings.preferences.TermuxAppSharedPreferences;
import com.termux.shared.logger.Logger;
import com.termux.shared.termux.theme.TermuxThemeUtils;
public class TermuxApplication extends Application {
public void onCreate() {
super.onCreate();
Context context = getApplicationContext();
// Set crash handler for the app
TermuxCrashUtils.setCrashHandler(this);
// Set log config for the app
setLogConfig(getApplicationContext());
setLogConfig(context);
Logger.logDebug("Starting Application");
// Set NightMode.APP_NIGHT_MODE
TermuxThemeUtils.setAppNightMode(context);
}
public static void setLogConfig(Context context) {

View File

@@ -21,6 +21,7 @@ import androidx.core.content.ContextCompat;
import com.termux.R;
import com.termux.app.TermuxActivity;
import com.termux.shared.termux.shell.command.runner.terminal.TermuxSession;
import com.termux.shared.theme.NightMode;
import com.termux.shared.theme.ThemeUtils;
import com.termux.terminal.TerminalSession;
@@ -56,7 +57,7 @@ public class TermuxSessionsListViewController extends ArrayAdapter<TermuxSession
return sessionRowView;
}
boolean shouldEnableDarkTheme = ThemeUtils.shouldEnableDarkTheme(mActivity, mActivity.getProperties().getNightMode());
boolean shouldEnableDarkTheme = ThemeUtils.shouldEnableDarkTheme(mActivity, NightMode.getAppNightMode().getName());
if (shouldEnableDarkTheme) {
sessionTitleView.setBackground(