diff options
author | Thomas <tschneider.ac@gmail.com> | 2022-12-01 18:26:46 +0100 |
---|---|---|
committer | Thomas <tschneider.ac@gmail.com> | 2022-12-01 18:26:46 +0100 |
commit | 774a73c62480a64b53f13c1ffeb34fb5088cb3d3 (patch) | |
tree | e2de76333031cddf13b024d2b2ab44a38dd668e2 | |
parent | e1e5284a47e0c17b7a57fc5c967dfd84d3664f36 (diff) |
Fix #566 #565 #564
17 files changed, 486 insertions, 68 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b38b91d10..ea3259c45 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -288,15 +288,15 @@ android:name=".activities.InstanceActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:label="@string/action_about_instance" - android:theme="@style/AlertDialog" /> + android:theme="@style/AppThemeAlertDialog" /> <activity android:name=".activities.InstanceProfileActivity" android:excludeFromRecents="true" - android:theme="@style/AlertDialog" /> + android:theme="@style/AppThemeAlertDialog" /> <activity android:name=".activities.ProxyActivity" android:excludeFromRecents="true" - android:theme="@style/AlertDialog" /> + android:theme="@style/AppThemeAlertDialog" /> <activity android:name=".activities.HashTagActivity" android:configChanges="keyboardHidden|orientation|screenSize" /> @@ -306,12 +306,12 @@ <activity android:name=".activities.MediaActivity" android:configChanges="keyboardHidden|orientation|screenSize" - android:theme="@style/TransparentDark" /> + android:theme="@style/Transparent" /> <activity android:name=".activities.InstanceHealthActivity" android:excludeFromRecents="true" - android:theme="@style/AlertDialog" /> + android:theme="@style/AppThemeAlertDialog" /> <activity android:name=".activities.ReportActivity" diff --git a/app/src/main/java/app/fedilab/android/activities/BaseActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseActivity.java index a03df07d4..fec63c0a4 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseActivity.java @@ -16,8 +16,10 @@ package app.fedilab.android.activities; import android.annotation.SuppressLint; +import android.content.Context; import android.content.SharedPreferences; import android.content.res.Configuration; +import android.os.Build; import android.os.Bundle; import androidx.annotation.Nullable; @@ -102,8 +104,20 @@ public class BaseActivity extends AppCompatActivity { } } super.onCreate(savedInstanceState); - ThemeHelper.adjustFontScale(this, getResources().getConfiguration()); + if (android.os.Build.VERSION.SDK_INT <= Build.VERSION_CODES.N) { + ThemeHelper.adjustFontScale(this, getResources().getConfiguration()); + } Helper.setLocale(this); } + @Override + protected void attachBaseContext(Context newBase) { + if (android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.N) { + final Configuration override = new Configuration(newBase.getResources().getConfiguration()); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(newBase); + override.fontScale = prefs.getFloat(newBase.getString(R.string.SET_FONT_SCALE), 1.1f); + applyOverrideConfiguration(override); + } + super.attachBaseContext(newBase); + } } diff --git a/app/src/main/java/app/fedilab/android/activities/BaseAlertDialogActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseAlertDialogActivity.java new file mode 100644 index 000000000..220526dc5 --- /dev/null +++ b/app/src/main/java/app/fedilab/android/activities/BaseAlertDialogActivity.java @@ -0,0 +1,123 @@ +package app.fedilab.android.activities; +/* Copyright 2021 Thomas Schneider + * + * This file is a part of Fedilab + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU General Public License as published by the Free Software Foundation; either version 3 of the + * License, or (at your option) any later version. + * + * Fedilab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + * Public License for more details. + * + * You should have received a copy of the GNU General Public License along with Fedilab; if not, + * see <http://www.gnu.org/licenses>. */ + + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.os.Build; +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatDelegate; +import androidx.preference.PreferenceManager; + +import com.vanniktech.emoji.EmojiManager; +import com.vanniktech.emoji.one.EmojiOneProvider; + +import app.fedilab.android.R; +import app.fedilab.android.helper.Helper; +import app.fedilab.android.helper.ThemeHelper; + + +@SuppressLint("Registered") +public class BaseAlertDialogActivity extends AppCompatActivity { + + static { + Helper.installProvider(); + EmojiManager.install(new EmojiOneProvider()); + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + + final SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this); + String currentTheme = sharedpreferences.getString(getString(R.string.SET_THEME_BASE), getString(R.string.SET_DEFAULT_THEME)); + //Default automatic switch + if (currentTheme.equals(getString(R.string.SET_DEFAULT_THEME))) { + + int currentNightMode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; + switch (currentNightMode) { + case Configuration.UI_MODE_NIGHT_NO: + String defaultLight = sharedpreferences.getString(getString(R.string.SET_THEME_DEFAULT_LIGHT), "LIGHT"); + switch (defaultLight) { + case "LIGHT": + setTheme(R.style.AppThemeAlertDialog); + break; + case "SOLARIZED_LIGHT": + setTheme(R.style.SolarizedAlertDialog); + break; + } + break; + case Configuration.UI_MODE_NIGHT_YES: + String defaultDark = sharedpreferences.getString(getString(R.string.SET_THEME_DEFAULT_DARK), "DARK"); + switch (defaultDark) { + case "DARK": + setTheme(R.style.AppThemeAlertDialog); + break; + case "SOLARIZED_DARK": + setTheme(R.style.SolarizedAlertDialog); + break; + case "BLACK": + setTheme(R.style.BlackAlertDialog); + break; + } + break; + } + } else { + switch (currentTheme) { + case "LIGHT": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + setTheme(R.style.AppThemeAlertDialog); + break; + case "DARK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.AppThemeAlertDialog); + break; + case "SOLARIZED_LIGHT": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + setTheme(R.style.SolarizedAlertDialog); + break; + case "SOLARIZED_DARK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.SolarizedAlertDialog); + break; + case "BLACK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.BlackAlertDialog); + break; + } + } + super.onCreate(savedInstanceState); + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.N) { + ThemeHelper.adjustFontScale(this, getResources().getConfiguration()); + } + Helper.setLocale(this); + } + + @Override + protected void attachBaseContext(Context newBase) { + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) { + final Configuration override = new Configuration(newBase.getResources().getConfiguration()); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(newBase); + override.fontScale = prefs.getFloat(newBase.getString(R.string.SET_FONT_SCALE), 1.1f); + applyOverrideConfiguration(override); + } + super.attachBaseContext(newBase); + } +} diff --git a/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java index 5c058f6dd..dce372699 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java @@ -16,8 +16,10 @@ package app.fedilab.android.activities; import android.annotation.SuppressLint; +import android.content.Context; import android.content.SharedPreferences; import android.content.res.Configuration; +import android.os.Build; import android.os.Bundle; import androidx.annotation.Nullable; @@ -102,8 +104,23 @@ public class BaseBarActivity extends AppCompatActivity { } } super.onCreate(savedInstanceState); - ThemeHelper.adjustFontScale(this, getResources().getConfiguration()); + if (android.os.Build.VERSION.SDK_INT <= Build.VERSION_CODES.N) { + ThemeHelper.adjustFontScale(this, getResources().getConfiguration()); + } Helper.setLocale(this); } + @Override + protected void attachBaseContext(Context newBase) { + + if (android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.N) { + final Configuration override = new Configuration(newBase.getResources().getConfiguration()); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(newBase); + override.fontScale = prefs.getFloat(newBase.getString(R.string.SET_FONT_SCALE), 1.1f); + applyOverrideConfiguration(override); + } + + + super.attachBaseContext(newBase); + } } diff --git a/app/src/main/java/app/fedilab/android/activities/BaseTransparentActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseTransparentActivity.java new file mode 100644 index 000000000..12f89e809 --- /dev/null +++ b/app/src/main/java/app/fedilab/android/activities/BaseTransparentActivity.java @@ -0,0 +1,126 @@ +package app.fedilab.android.activities; +/* Copyright 2022 Thomas Schneider + * + * This file is a part of Fedilab + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU General Public License as published by the Free Software Foundation; either version 3 of the + * License, or (at your option) any later version. + * + * Fedilab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + * Public License for more details. + * + * You should have received a copy of the GNU General Public License along with Fedilab; if not, + * see <http://www.gnu.org/licenses>. */ + + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.os.Build; +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatDelegate; +import androidx.preference.PreferenceManager; + +import com.vanniktech.emoji.EmojiManager; +import com.vanniktech.emoji.one.EmojiOneProvider; + +import app.fedilab.android.R; +import app.fedilab.android.helper.Helper; +import app.fedilab.android.helper.ThemeHelper; + + +@SuppressLint("Registered") +public class BaseTransparentActivity extends AppCompatActivity { + + static { + Helper.installProvider(); + EmojiManager.install(new EmojiOneProvider()); + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + final SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this); + String currentTheme = sharedpreferences.getString(getString(R.string.SET_THEME_BASE), getString(R.string.SET_DEFAULT_THEME)); + //Default automatic switch + if (currentTheme.equals(getString(R.string.SET_DEFAULT_THEME))) { + + int currentNightMode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; + switch (currentNightMode) { + case Configuration.UI_MODE_NIGHT_NO: + String defaultLight = sharedpreferences.getString(getString(R.string.SET_THEME_DEFAULT_LIGHT), "LIGHT"); + switch (defaultLight) { + case "LIGHT": + setTheme(R.style.Transparent); + break; + case "SOLARIZED_LIGHT": + setTheme(R.style.TransparentSolarized); + break; + } + break; + case Configuration.UI_MODE_NIGHT_YES: + String defaultDark = sharedpreferences.getString(getString(R.string.SET_THEME_DEFAULT_DARK), "DARK"); + switch (defaultDark) { + case "DARK": + setTheme(R.style.Transparent); + break; + case "SOLARIZED_DARK": + setTheme(R.style.TransparentSolarized); + break; + case "BLACK": + setTheme(R.style.TransparentBlack); + break; + } + break; + } + + } else { + switch (currentTheme) { + case "LIGHT": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + setTheme(R.style.Transparent); + break; + case "DARK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.Transparent); + break; + case "SOLARIZED_LIGHT": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + setTheme(R.style.TransparentSolarized); + break; + case "SOLARIZED_DARK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.TransparentSolarized); + break; + case "BLACK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.TransparentBlack); + break; + } + } + super.onCreate(savedInstanceState); + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.N) { + ThemeHelper.adjustFontScale(this, getResources().getConfiguration()); + } + Helper.setLocale(this); + } + + @Override + protected void attachBaseContext(Context newBase) { + + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) { + final Configuration override = new Configuration(newBase.getResources().getConfiguration()); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(newBase); + override.fontScale = prefs.getFloat(newBase.getString(R.string.SET_FONT_SCALE), 1.1f); + applyOverrideConfiguration(override); + } + + + super.attachBaseContext(newBase); + } +} diff --git a/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java b/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java index 3f16837d7..27f13a7ab 100644 --- a/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java @@ -48,7 +48,7 @@ import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.InstancesVM; -public class InstanceActivity extends BaseActivity { +public class InstanceActivity extends BaseAlertDialogActivity { ActivityInstanceBinding binding; diff --git a/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java b/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java index 25f450c16..85de47a20 100644 --- a/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java @@ -37,7 +37,7 @@ import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.InstanceSocialVM; -public class InstanceHealthActivity extends BaseActivity { +public class InstanceHealthActivity extends BaseAlertDialogActivity { private ActivityInstanceSocialBinding binding; diff --git a/app/src/main/java/app/fedilab/android/activities/InstanceProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/InstanceProfileActivity.java index cc2ea6743..327cf968c 100644 --- a/app/src/main/java/app/fedilab/android/activities/InstanceProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/InstanceProfileActivity.java @@ -31,7 +31,7 @@ import app.fedilab.android.helper.Helper; import app.fedilab.android.viewmodel.mastodon.NodeInfoVM; import es.dmoral.toasty.Toasty; -public class InstanceProfileActivity extends BaseActivity { +public class InstanceProfileActivity extends BaseAlertDialogActivity { private String instance; diff --git a/app/src/main/java/app/fedilab/android/activities/MediaActivity.java b/app/src/main/java/app/fedilab/android/activities/MediaActivity.java index 16a9f5389..2577ac922 100644 --- a/app/src/main/java/app/fedilab/android/activities/MediaActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/MediaActivity.java @@ -68,7 +68,7 @@ import app.fedilab.android.ui.fragment.media.FragmentMedia; import es.dmoral.toasty.Toasty; -public class MediaActivity extends BaseActivity implements OnDownloadInterface { +public class MediaActivity extends BaseTransparentActivity implements OnDownloadInterface { int flags; private ArrayList<Attachment> attachments; diff --git a/app/src/main/java/app/fedilab/android/activities/ProxyActivity.java b/app/src/main/java/app/fedilab/android/activities/ProxyActivity.java index f039f13d9..2ffa61201 100644 --- a/app/src/main/java/app/fedilab/android/activities/ProxyActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ProxyActivity.java @@ -29,7 +29,7 @@ import app.fedilab.android.R; import app.fedilab.android.databinding.ActivityProxyBinding; -public class ProxyActivity extends BaseActivity { +public class ProxyActivity extends BaseAlertDialogActivity { private ActivityProxyBinding binding; private int position; diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java index 019cda75d..ebe91c19b 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java @@ -63,6 +63,7 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements if (SET_THEME_BASE != null) { ThemeHelper.switchTo(SET_THEME_BASE.getValue()); requireActivity().recreate(); + Helper.recreateMainActivity(requireActivity()); } } //TODO: check if can be removed diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java index 4da7fedc8..236513755 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java @@ -210,16 +210,15 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. if (initialStatuses != null) { initializeStatusesCommonView(initialStatuses); } else { - router(null); } } else { if (isNotPinnedTimeline && lockForResumeCall == 0) { router(null); lockForResumeCall++; - } else if (!isNotPinnedTimeline) { + } /*else if (!isNotPinnedTimeline) { router(null); - } + }*/ } if (timelineStatuses != null && timelineStatuses.size() > 0) { route(DIRECTION.FETCH_NEW, true); diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 6a2a76eec..c4cddf762 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -28,9 +28,7 @@ <item name="colorOnSurfaceInverse">@color/md_theme_dark_inverseOnSurface</item> <item name="colorPrimaryInverse">@color/md_theme_dark_inversePrimary</item> - - <item name="android:statusBarColor">?attr/background</item> - <item name="android:navigationBarColor">?attr/background</item> + <item name="android:navigationBarColor">?android:colorBackground</item> <item name="android:windowLightStatusBar" tools:targetApi="m">false</item> <item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">false</item> <item name="android:isLightTheme" tools:targetApi="q">false</item> @@ -40,16 +38,13 @@ <item name="android:windowEnterTransition">@android:transition/explode</item> <item name="android:windowExitTransition">@android:transition/explode</item> <!-- specify shared element transitions --> - <item name="android:windowSharedElementEnterTransition"> - @transition/change_image_transform + <item name="android:windowSharedElementEnterTransition">@transition/change_image_transform </item> - <item name="android:windowSharedElementExitTransition"> - @transition/change_image_transform + <item name="android:windowSharedElementExitTransition">@transition/change_image_transform </item> </style> <style name="AppThemeBar" parent="Theme.Material3.Dark"> - <item name="colorPrimary">@color/md_theme_dark_primary</item> <item name="colorOnPrimary">@color/md_theme_dark_onPrimary</item> <item name="colorPrimaryContainer">@color/md_theme_dark_primaryContainer</item> @@ -76,30 +71,43 @@ <item name="colorSurfaceInverse">@color/md_theme_dark_inverseSurface</item> <item name="colorOnSurfaceInverse">@color/md_theme_dark_inverseOnSurface</item> <item name="colorPrimaryInverse">@color/md_theme_dark_inversePrimary</item> - - <item name="android:statusBarColor">?attr/background</item> - <item name="android:navigationBarColor">?attr/background</item> + <item name="android:navigationBarColor">?android:colorBackground</item> <item name="android:windowLightStatusBar" tools:targetApi="m">false</item> <item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">false</item> <item name="android:isLightTheme" tools:targetApi="q">false</item> </style> - <style name="TransparentDark" parent="Theme.Material3.Dark"> - <item name="android:colorBackgroundCacheHint">@null</item> - <item name="android:windowContentOverlay">@null</item> - <item name="android:windowIsFloating">false</item> - <item name="android:windowIsTranslucent">true</item> - <item name="android:windowNoTitle">true</item> - <item name="android:statusBarColor">?attr/background</item> - <item name="android:navigationBarColor">?attr/background</item> - <item name="android:windowLightStatusBar" tools:targetApi="m">false</item> - <item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">false</item> - <item name="android:isLightTheme" tools:targetApi="q">false</item> + <style name="AppThemeAlertDialog" parent="Theme.Material3.Dark.Dialog.Alert"> + <item name="colorPrimary">@color/md_theme_dark_primary</item> + <item name="colorOnPrimary">@color/md_theme_dark_onPrimary</item> + <item name="colorPrimaryContainer">@color/md_theme_dark_primaryContainer</item> + <item name="colorOnPrimaryContainer">@color/md_theme_dark_onPrimaryContainer</item> + <item name="colorSecondary">@color/md_theme_dark_secondary</item> + <item name="colorOnSecondary">@color/md_theme_dark_onSecondary</item> + <item name="colorSecondaryContainer">@color/md_theme_dark_secondaryContainer</item> + <item name="colorOnSecondaryContainer">@color/md_theme_dark_onSecondaryContainer</item> + <item name="colorTertiary">@color/md_theme_dark_tertiary</item> + <item name="colorOnTertiary">@color/md_theme_dark_onTertiary</item> + <item name="colorTertiaryContainer">@color/md_theme_dark_tertiaryContainer</item> + <item name="colorOnTertiaryContainer">@color/md_theme_dark_onTertiaryContainer</item> + <item name="colorError">@color/md_theme_dark_error</item> + <item name="colorOnError">@color/md_theme_dark_onError</item> + <item name="colorErrorContainer">@color/md_theme_dark_errorContainer</item> + <item name="colorOnErrorContainer">@color/md_theme_dark_onErrorContainer</item> + <item name="colorOutline">@color/md_theme_dark_outline</item> + <item name="android:colorBackground">@color/md_theme_dark_background</item> + <item name="colorOnBackground">@color/md_theme_dark_onBackground</item> + <item name="colorSurface">@color/md_theme_dark_surface</item> + <item name="colorOnSurface">@color/md_theme_dark_onSurface</item> + <item name="colorSurfaceVariant">@color/md_theme_dark_surfaceVariant</item> + <item name="colorOnSurfaceVariant">@color/md_theme_dark_onSurfaceVariant</item> + <item name="colorSurfaceInverse">@color/md_theme_dark_inverseSurface</item> + <item name="colorOnSurfaceInverse">@color/md_theme_dark_inverseOnSurface</item> + <item name="colorPrimaryInverse">@color/md_theme_dark_inversePrimary</item> + <item name="android:navigationBarColor">?android:colorBackground</item> </style> - <style name="AlertDialog" parent="Theme.Material3.Dark.Dialog.Alert" /> - <style name="SolarizedAppTheme" parent="AppTheme"> <item name="colorPrimary">@color/solarized_md_theme_dark_primary</item> @@ -167,23 +175,61 @@ <item name="colorPrimaryInverse">@color/solarized_md_theme_dark_inversePrimary</item> </style> - <style name="BlackAppTheme" parent="AppTheme"> + <style name="TransparentSolarized" parent="SolarizedAppThemeBar"> + <item name="android:colorBackgroundCacheHint">@null</item> + <item name="android:windowContentOverlay">@null</item> + <item name="android:windowIsFloating">false</item> + <item name="android:windowIsTranslucent">true</item> + <item name="android:windowNoTitle">true</item> + </style> + + <style name="SolarizedAlertDialog" parent="Theme.Material3.Dark.Dialog.Alert"> + <item name="colorPrimary">@color/solarized_md_theme_dark_primary</item> + <item name="colorOnPrimary">@color/solarized_md_theme_dark_onPrimary</item> + <item name="colorPrimaryContainer">@color/solarized_md_theme_dark_primaryContainer</item> + <item name="colorOnPrimaryContainer">@color/solarized_md_theme_dark_onPrimaryContainer + </item> + <item name="colorSecondary">@color/solarized_md_theme_dark_secondary</item> + <item name="colorOnSecondary">@color/solarized_md_theme_dark_onSecondary</item> + <item name="colorSecondaryContainer">@color/solarized_md_theme_dark_secondaryContainer + </item> + <item name="colorOnSecondaryContainer">@color/solarized_md_theme_dark_onSecondaryContainer + </item> + <item name="colorTertiary">@color/solarized_md_theme_dark_tertiary</item> + <item name="colorOnTertiary">@color/solarized_md_theme_dark_onTertiary</item> + <item name="colorTertiaryContainer">@color/solarized_md_theme_dark_tertiaryContainer</item> + <item name="colorOnTertiaryContainer">@color/solarized_md_theme_dark_onTertiaryContainer + </item> + <item name="colorError">@color/solarized_md_theme_dark_error</item> + <item name="colorErrorContainer">@color/solarized_md_theme_dark_errorContainer</item> + <item name="colorOnError">@color/solarized_md_theme_dark_onError</item> + <item name="colorOnErrorContainer">@color/solarized_md_theme_dark_onErrorContainer</item> + <item name="android:colorBackground">@color/solarized_md_theme_dark_background</item> + <item name="colorOnBackground">@color/solarized_md_theme_dark_onBackground</item> + <item name="colorSurface">@color/solarized_md_theme_dark_surface</item> + <item name="colorOnSurface">@color/solarized_md_theme_dark_onSurface</item> + <item name="colorSurfaceVariant">@color/solarized_md_theme_dark_surfaceVariant</item> + <item name="colorOnSurfaceVariant">@color/solarized_md_theme_dark_onSurfaceVariant</item> + <item name="colorOutline">@color/solarized_md_theme_dark_outline</item> + <item name="colorOnSurfaceInverse">@color/solarized_md_theme_dark_inverseOnSurface</item> + <item name="colorSurfaceInverse">@color/solarized_md_theme_dark_inverseSurface</item> + <item name="colorPrimaryInverse">@color/solarized_md_theme_dark_inversePrimary</item> + </style> + + <style name="BlackAppTheme" parent="AppTheme"> <item name="colorPrimary">@color/md_theme_dark_primary</item> <item name="colorOnPrimary">@color/white</item> <item name="colorPrimaryContainer">@color/md_theme_dark_primaryContainer</item> <item name="colorOnPrimaryContainer">@color/white</item> - <item name="colorSecondary">@color/md_theme_dark_secondary</item> <item name="colorOnSecondary">@color/md_theme_dark_onSecondary</item> <item name="colorSecondaryContainer">@color/md_theme_dark_secondaryContainer</item> <item name="colorOnSecondaryContainer">@color/md_theme_dark_onSecondaryContainer</item> - <item name="colorTertiary">@color/md_theme_dark_tertiary</item> <item name="colorOnTertiary">@color/md_theme_dark_onTertiary</item> <item name="colorTertiaryContainer">@color/md_theme_dark_tertiaryContainer</item> <item name="colorOnTertiaryContainer">@color/md_theme_dark_onTertiaryContainer</item> - <item name="colorError">@color/solarized_md_theme_dark_error</item> <item name="colorErrorContainer">@color/solarized_md_theme_dark_errorContainer</item> <item name="colorOnError">@color/solarized_md_theme_dark_onError</item> @@ -201,22 +247,56 @@ </style> <style name="BlackAppThemeBar" parent="AppThemeBar"> - <item name="colo |