From d2caf2d386575555160c088ef6c0467de680f5e8 Mon Sep 17 00:00:00 2001 From: Charles Lombardo <clombardo169@gmail.com> Date: Thu, 9 Mar 2023 17:22:11 -0500 Subject: [PATCH] citra_android: Start material 3 migration (#6335) --- src/android/app/src/main/AndroidManifest.xml | 8 +- .../org/citra/citra_emu/NativeLibrary.java | 12 +- .../activities/EmulationActivity.java | 112 +++++++----------- .../citra/citra_emu/adapters/GameAdapter.java | 28 +---- .../citra/citra_emu/applets/MiiSelector.java | 6 +- .../citra_emu/applets/SoftwareKeyboard.java | 6 +- .../DiskShaderCacheProgress.java | 20 ++-- .../cheats/ui/CheatDetailsFragment.java | 14 ++- .../features/cheats/ui/CheatsActivity.java | 7 ++ .../settings/ui/SettingsActivity.java | 7 ++ .../ui/SettingsActivityPresenter.java | 4 +- .../features/settings/ui/SettingsAdapter.java | 105 +++++++--------- .../citra/citra_emu/ui/main/MainActivity.java | 2 +- .../ui/platform/PlatformGamesFragment.java | 11 +- .../citra/citra_emu/utils/StartupHandler.java | 4 +- .../org/citra/citra_emu/utils/ThemeUtil.java | 14 ++- .../main/res/drawable-hdpi/ic_cia_install.png | Bin 514 -> 0 bytes .../src/main/res/drawable-hdpi/ic_folder.png | Bin 275 -> 0 bytes .../src/main/res/drawable-hdpi/ic_premium.png | Bin 961 -> 0 bytes .../res/drawable-hdpi/ic_settings_core.png | Bin 793 -> 0 bytes .../main/res/drawable-mdpi/ic_cia_install.png | Bin 364 -> 0 bytes .../src/main/res/drawable-mdpi/ic_folder.png | Bin 214 -> 0 bytes .../src/main/res/drawable-mdpi/ic_premium.png | Bin 605 -> 0 bytes .../drawable-night-hdpi/ic_cia_install.png | Bin 556 -> 0 bytes .../res/drawable-night-hdpi/ic_folder.png | Bin 289 -> 0 bytes .../res/drawable-night-hdpi/ic_premium.png | Bin 955 -> 0 bytes .../drawable-night-hdpi/ic_settings_core.png | Bin 1152 -> 0 bytes .../drawable-night-mdpi/ic_cia_install.png | Bin 405 -> 0 bytes .../res/drawable-night-mdpi/ic_folder.png | Bin 227 -> 0 bytes .../res/drawable-night-mdpi/ic_premium.png | Bin 595 -> 0 bytes .../drawable-night-xhdpi/ic_cia_install.png | Bin 729 -> 0 bytes .../res/drawable-night-xhdpi/ic_folder.png | Bin 347 -> 0 bytes .../res/drawable-night-xhdpi/ic_premium.png | Bin 1281 -> 0 bytes .../drawable-night-xhdpi/ic_settings_core.png | Bin 1431 -> 0 bytes .../drawable-night-xxhdpi/ic_cia_install.png | Bin 1168 -> 0 bytes .../res/drawable-night-xxhdpi/ic_folder.png | Bin 555 -> 0 bytes .../res/drawable-night-xxhdpi/ic_premium.png | Bin 2049 -> 0 bytes .../ic_settings_core.png | Bin 2125 -> 0 bytes .../drawable-night-xxxhdpi/ic_cia_install.png | Bin 1433 -> 0 bytes .../res/drawable-night-xxxhdpi/ic_folder.png | Bin 657 -> 0 bytes .../res/drawable-night-xxxhdpi/ic_premium.png | Bin 2614 -> 0 bytes .../ic_settings_core.png | Bin 2587 -> 0 bytes .../res/drawable-xhdpi/ic_cia_install.png | Bin 656 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_folder.png | Bin 325 -> 0 bytes .../main/res/drawable-xhdpi/ic_premium.png | Bin 1334 -> 0 bytes .../res/drawable-xhdpi/ic_settings_core.png | Bin 1029 -> 0 bytes .../res/drawable-xxhdpi/ic_cia_install.png | Bin 967 -> 0 bytes .../main/res/drawable-xxhdpi/ic_folder.png | Bin 487 -> 0 bytes .../main/res/drawable-xxhdpi/ic_premium.png | Bin 2096 -> 0 bytes .../res/drawable-xxhdpi/ic_settings_core.png | Bin 1647 -> 0 bytes .../res/drawable-xxxhdpi/ic_cia_install.png | Bin 1244 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_folder.png | Bin 591 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_premium.png | Bin 2654 -> 0 bytes .../res/drawable-xxxhdpi/ic_settings_core.png | Bin 2093 -> 0 bytes .../main/res/drawable/gamelist_divider.xml | 2 +- .../app/src/main/res/drawable/ic_add.xml | 2 +- .../app/src/main/res/drawable/ic_back.xml | 10 ++ .../app/src/main/res/drawable/ic_folder.xml | 9 ++ .../app/src/main/res/drawable/ic_heart.xml | 9 ++ .../app/src/main/res/drawable/ic_install.xml | 9 ++ .../app/src/main/res/drawable/ic_settings.xml | 9 ++ .../main/res/drawable/popup_background.xml | 4 + .../main/res/layout-ldrtl/list_item_cheat.xml | 1 - .../src/main/res/layout/activity_cheats.xml | 66 ++++++++--- .../app/src/main/res/layout/activity_main.xml | 31 ++--- .../src/main/res/layout/activity_settings.xml | 30 ++++- .../app/src/main/res/layout/card_game.xml | 11 +- .../{dialog_seekbar.xml => dialog_slider.xml} | 6 +- .../main/res/layout/fragment_emulation.xml | 1 - .../app/src/main/res/layout/fragment_grid.xml | 8 +- .../src/main/res/layout/fragment_settings.xml | 11 +- .../src/main/res/layout/list_item_cheat.xml | 1 - .../src/main/res/layout/list_item_setting.xml | 4 +- .../res/layout/list_item_setting_checkbox.xml | 2 - .../res/layout/list_item_settings_header.xml | 4 +- .../main/res/layout/premium_item_setting.xml | 5 +- .../app/src/main/res/menu/menu_game_grid.xml | 6 +- .../main/res/values-night/citra_colors.xml | 33 ++++++ .../app/src/main/res/values-night/colors.xml | 17 --- .../app/src/main/res/values/citra_colors.xml | 35 ++++++ .../app/src/main/res/values/colors.xml | 17 --- .../app/src/main/res/values/styles.xml | 88 +++++--------- .../app/src/main/res/values/themes.xml | 55 +++++++++ 83 files changed, 494 insertions(+), 352 deletions(-) delete mode 100644 src/android/app/src/main/res/drawable-hdpi/ic_cia_install.png delete mode 100644 src/android/app/src/main/res/drawable-hdpi/ic_folder.png delete mode 100644 src/android/app/src/main/res/drawable-hdpi/ic_premium.png delete mode 100644 src/android/app/src/main/res/drawable-hdpi/ic_settings_core.png delete mode 100644 src/android/app/src/main/res/drawable-mdpi/ic_cia_install.png delete mode 100644 src/android/app/src/main/res/drawable-mdpi/ic_folder.png delete mode 100644 src/android/app/src/main/res/drawable-mdpi/ic_premium.png delete mode 100644 src/android/app/src/main/res/drawable-night-hdpi/ic_cia_install.png delete mode 100644 src/android/app/src/main/res/drawable-night-hdpi/ic_folder.png delete mode 100644 src/android/app/src/main/res/drawable-night-hdpi/ic_premium.png delete mode 100644 src/android/app/src/main/res/drawable-night-hdpi/ic_settings_core.png delete mode 100644 src/android/app/src/main/res/drawable-night-mdpi/ic_cia_install.png delete mode 100644 src/android/app/src/main/res/drawable-night-mdpi/ic_folder.png delete mode 100644 src/android/app/src/main/res/drawable-night-mdpi/ic_premium.png delete mode 100644 src/android/app/src/main/res/drawable-night-xhdpi/ic_cia_install.png delete mode 100644 src/android/app/src/main/res/drawable-night-xhdpi/ic_folder.png delete mode 100644 src/android/app/src/main/res/drawable-night-xhdpi/ic_premium.png delete mode 100644 src/android/app/src/main/res/drawable-night-xhdpi/ic_settings_core.png delete mode 100644 src/android/app/src/main/res/drawable-night-xxhdpi/ic_cia_install.png delete mode 100644 src/android/app/src/main/res/drawable-night-xxhdpi/ic_folder.png delete mode 100644 src/android/app/src/main/res/drawable-night-xxhdpi/ic_premium.png delete mode 100644 src/android/app/src/main/res/drawable-night-xxhdpi/ic_settings_core.png delete mode 100644 src/android/app/src/main/res/drawable-night-xxxhdpi/ic_cia_install.png delete mode 100644 src/android/app/src/main/res/drawable-night-xxxhdpi/ic_folder.png delete mode 100644 src/android/app/src/main/res/drawable-night-xxxhdpi/ic_premium.png delete mode 100644 src/android/app/src/main/res/drawable-night-xxxhdpi/ic_settings_core.png delete mode 100644 src/android/app/src/main/res/drawable-xhdpi/ic_cia_install.png delete mode 100644 src/android/app/src/main/res/drawable-xhdpi/ic_folder.png delete mode 100644 src/android/app/src/main/res/drawable-xhdpi/ic_premium.png delete mode 100644 src/android/app/src/main/res/drawable-xhdpi/ic_settings_core.png delete mode 100644 src/android/app/src/main/res/drawable-xxhdpi/ic_cia_install.png delete mode 100644 src/android/app/src/main/res/drawable-xxhdpi/ic_folder.png delete mode 100644 src/android/app/src/main/res/drawable-xxhdpi/ic_premium.png delete mode 100644 src/android/app/src/main/res/drawable-xxhdpi/ic_settings_core.png delete mode 100644 src/android/app/src/main/res/drawable-xxxhdpi/ic_cia_install.png delete mode 100644 src/android/app/src/main/res/drawable-xxxhdpi/ic_folder.png delete mode 100644 src/android/app/src/main/res/drawable-xxxhdpi/ic_premium.png delete mode 100644 src/android/app/src/main/res/drawable-xxxhdpi/ic_settings_core.png create mode 100644 src/android/app/src/main/res/drawable/ic_back.xml create mode 100644 src/android/app/src/main/res/drawable/ic_folder.xml create mode 100644 src/android/app/src/main/res/drawable/ic_heart.xml create mode 100644 src/android/app/src/main/res/drawable/ic_install.xml create mode 100644 src/android/app/src/main/res/drawable/ic_settings.xml create mode 100644 src/android/app/src/main/res/drawable/popup_background.xml rename src/android/app/src/main/res/layout/{dialog_seekbar.xml => dialog_slider.xml} (93%) create mode 100644 src/android/app/src/main/res/values-night/citra_colors.xml delete mode 100644 src/android/app/src/main/res/values-night/colors.xml create mode 100644 src/android/app/src/main/res/values/citra_colors.xml delete mode 100644 src/android/app/src/main/res/values/colors.xml create mode 100644 src/android/app/src/main/res/values/themes.xml diff --git a/src/android/app/src/main/AndroidManifest.xml b/src/android/app/src/main/AndroidManifest.xml index cfc9a7474..dcae891e4 100644 --- a/src/android/app/src/main/AndroidManifest.xml +++ b/src/android/app/src/main/AndroidManifest.xml @@ -34,7 +34,7 @@ <activity android:name="org.citra.citra_emu.ui.main.MainActivity" - android:theme="@style/CitraBase" + android:theme="@style/Theme.Citra.Main" android:resizeableActivity="false"> <!-- This intentfilter marks this Activity as the one that gets launched from Home screen. --> @@ -48,13 +48,13 @@ <activity android:name="org.citra.citra_emu.features.settings.ui.SettingsActivity" android:configChanges="orientation|screenSize|uiMode" - android:theme="@style/CitraSettingsBase" + android:theme="@style/Theme.Citra.Main" android:label="@string/preferences_settings"/> <activity android:name="org.citra.citra_emu.activities.EmulationActivity" android:resizeableActivity="false" - android:theme="@style/CitraEmulationBase" + android:theme="@style/Theme.Citra.Main" android:launchMode="singleTop"/> <service android:name="org.citra.citra_emu.utils.ForegroundService"/> @@ -72,7 +72,7 @@ <activity android:name="org.citra.citra_emu.features.cheats.ui.CheatsActivity" android:exported="false" - android:theme="@style/CitraSettingsBase" + android:theme="@style/Theme.Citra.Main" android:label="@string/cheats"/> <service android:name="org.citra.citra_emu.utils.DirectoryInitialization"/> diff --git a/src/android/app/src/main/java/org/citra/citra_emu/NativeLibrary.java b/src/android/app/src/main/java/org/citra/citra_emu/NativeLibrary.java index 90d774f6c..5899d62a6 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/NativeLibrary.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/NativeLibrary.java @@ -38,6 +38,8 @@ import java.util.Objects; import static android.Manifest.permission.CAMERA; import static android.Manifest.permission.RECORD_AUDIO; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + /** * Class which contains methods that interact * with the native side of the Citra code. @@ -245,7 +247,7 @@ public final class NativeLibrary { final String title = Objects.requireNonNull(Objects.requireNonNull(getArguments()).getString("title")); final String message = Objects.requireNonNull(Objects.requireNonNull(getArguments()).getString("message")); - return new AlertDialog.Builder(emulationActivity) + return new MaterialAlertDialogBuilder(emulationActivity) .setTitle(title) .setMessage(message) .setPositiveButton(R.string.continue_button, (dialog, which) -> { @@ -345,7 +347,7 @@ public final class NativeLibrary { } else { // Create object used for waiting. final Object lock = new Object(); - AlertDialog.Builder builder = new AlertDialog.Builder(emulationActivity) + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(emulationActivity) .setTitle(caption) .setMessage(text); @@ -427,7 +429,7 @@ public final class NativeLibrary { return alertPromptResult; } - public static AlertDialog.Builder displayAlertPromptImpl(String caption, String text, int buttonConfig) { + public static MaterialAlertDialogBuilder displayAlertPromptImpl(String caption, String text, int buttonConfig) { final EmulationActivity emulationActivity = sEmulationActivity.get(); alertPromptResult = ""; alertPromptButton = 0; @@ -444,7 +446,7 @@ public final class NativeLibrary { FrameLayout container = new FrameLayout(emulationActivity); container.addView(alertPromptEditText); - AlertDialog.Builder builder = new AlertDialog.Builder(emulationActivity) + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(emulationActivity) .setTitle(caption) .setView(container) .setPositiveButton(android.R.string.ok, (dialogInterface, i) -> @@ -506,7 +508,7 @@ public final class NativeLibrary { captionId = R.string.loader_error_encrypted; } - AlertDialog.Builder builder = new AlertDialog.Builder(emulationActivity) + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(emulationActivity) .setTitle(captionId) .setMessage(Html.fromHtml("Please follow the guides to redump your <a href=\"https://citra-emu.org/wiki/dumping-game-cartridges/\">game cartidges</a> or <a href=\"https://citra-emu.org/wiki/dumping-installed-titles/\">installed titles</a>.", Html.FROM_HTML_MODE_LEGACY)) .setPositiveButton(android.R.string.ok, (dialog, whichButton) -> emulationActivity.finish()) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.java b/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.java index b5e547266..28659589e 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.java @@ -18,13 +18,11 @@ import android.view.MotionEvent; import android.view.SubMenu; import android.view.View; import android.widget.CheckBox; -import android.widget.SeekBar; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.IntDef; import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.PopupMenu; import androidx.core.app.NotificationManagerCompat; @@ -45,6 +43,7 @@ import org.citra.citra_emu.utils.EmulationMenuSettings; import org.citra.citra_emu.utils.FileBrowserHelper; import org.citra.citra_emu.utils.FileUtil; import org.citra.citra_emu.utils.ForegroundService; +import org.citra.citra_emu.utils.ThemeUtil; import java.io.File; import java.io.IOException; @@ -56,6 +55,9 @@ import static android.Manifest.permission.CAMERA; import static android.Manifest.permission.RECORD_AUDIO; import static java.lang.annotation.RetentionPolicy.SOURCE; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.google.android.material.slider.Slider; + public final class EmulationActivity extends AppCompatActivity { public static final String EXTRA_SELECTED_GAME = "SelectedGame"; public static final String EXTRA_SELECTED_TITLE = "SelectedTitle"; @@ -151,6 +153,8 @@ public final class EmulationActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { + ThemeUtil.applyTheme(this); + super.onCreate(savedInstanceState); if (savedInstanceState == null) { @@ -179,8 +183,6 @@ public final class EmulationActivity extends AppCompatActivity { // Set these options now so that the SurfaceView the game renders into is the right size. enableFullscreenImmersive(); - setTheme(R.style.CitraEmulationBase); - setContentView(R.layout.activity_emulation); // Find or create the EmulationFragment @@ -243,7 +245,7 @@ public final class EmulationActivity extends AppCompatActivity { case NativeLibrary.REQUEST_CODE_NATIVE_CAMERA: if (grantResults[0] != PackageManager.PERMISSION_GRANTED && shouldShowRequestPermissionRationale(CAMERA)) { - new AlertDialog.Builder(this) + new MaterialAlertDialogBuilder(this) .setTitle(R.string.camera) .setMessage(R.string.camera_permission_needed) .setPositiveButton(android.R.string.ok, null) @@ -254,7 +256,7 @@ public final class EmulationActivity extends AppCompatActivity { case NativeLibrary.REQUEST_CODE_NATIVE_MIC: if (grantResults[0] != PackageManager.PERMISSION_GRANTED && shouldShowRequestPermissionRationale(RECORD_AUDIO)) { - new AlertDialog.Builder(this) + new MaterialAlertDialogBuilder(this) .setTitle(R.string.microphone) .setMessage(R.string.microphone_permission_needed) .setPositiveButton(android.R.string.ok, null) @@ -324,7 +326,7 @@ public final class EmulationActivity extends AppCompatActivity { View view = inflater.inflate(R.layout.dialog_checkbox, null); CheckBox checkBox = view.findViewById(R.id.checkBox); - new AlertDialog.Builder(this) + new MaterialAlertDialogBuilder(this) .setTitle(R.string.savestate_warning_title) .setMessage(R.string.savestate_warning_message) .setView(view) @@ -464,8 +466,8 @@ public final class EmulationActivity extends AppCompatActivity { case MENU_ACTION_LOAD_AMIIBO: FileBrowserHelper.openFilePicker(this, REQUEST_SELECT_AMIIBO, - R.string.select_amiibo, - Collections.singletonList("bin"), false); + R.string.select_amiibo, + Collections.singletonList("bin"), false); break; case MENU_ACTION_REMOVE_AMIIBO: @@ -490,7 +492,7 @@ public final class EmulationActivity extends AppCompatActivity { case MENU_ACTION_CLOSE_GAME: NativeLibrary.PauseEmulation(); - new AlertDialog.Builder(this) + new MaterialAlertDialogBuilder(this) .setTitle(R.string.emulation_close_game) .setMessage(R.string.emulation_close_game_message) .setPositiveButton(android.R.string.yes, (dialogInterface, i) -> @@ -498,11 +500,8 @@ public final class EmulationActivity extends AppCompatActivity { mEmulationFragment.stopEmulation(); finish(); }) - .setNegativeButton(android.R.string.cancel, (dialogInterface, i) -> - NativeLibrary.UnPauseEmulation()) - .setOnCancelListener(dialogInterface -> - NativeLibrary.UnPauseEmulation()) - .create() + .setNegativeButton(android.R.string.cancel, (dialogInterface, i) -> NativeLibrary.UnPauseEmulation()) + .setOnCancelListener(dialogInterface -> NativeLibrary.UnPauseEmulation()) .show(); break; } @@ -589,11 +588,10 @@ public final class EmulationActivity extends AppCompatActivity { } if (!success) { - new AlertDialog.Builder(this) + new MaterialAlertDialogBuilder(this) .setTitle(R.string.amiibo_load_error) .setMessage(R.string.amiibo_load_error_message) .setPositiveButton(android.R.string.ok, null) - .create() .show(); } } @@ -605,8 +603,6 @@ public final class EmulationActivity extends AppCompatActivity { private void toggleControls() { final SharedPreferences.Editor editor = mPreferences.edit(); boolean[] enabledButtons = new boolean[14]; - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(R.string.emulation_toggle_controls); for (int i = 0; i < enabledButtons.length; i++) { // Buttons that are disabled by default @@ -621,63 +617,47 @@ public final class EmulationActivity extends AppCompatActivity { enabledButtons[i] = mPreferences.getBoolean("buttonToggle" + i, defaultValue); } - builder.setMultiChoiceItems(R.array.n3dsButtons, enabledButtons, - (dialog, indexSelected, isChecked) -> editor - .putBoolean("buttonToggle" + indexSelected, isChecked)); - builder.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> - { - editor.apply(); - mEmulationFragment.refreshInputOverlay(); - }); - - AlertDialog alertDialog = builder.create(); - alertDialog.show(); + new MaterialAlertDialogBuilder(this) + .setTitle(R.string.emulation_toggle_controls) + .setMultiChoiceItems(R.array.n3dsButtons, enabledButtons, + (dialog, indexSelected, isChecked) -> editor + .putBoolean("buttonToggle" + indexSelected, isChecked)) + .setPositiveButton(android.R.string.ok, (dialogInterface, i) -> + { + editor.apply(); + mEmulationFragment.refreshInputOverlay(); + }) + .show(); } private void adjustScale() { LayoutInflater inflater = LayoutInflater.from(this); - View view = inflater.inflate(R.layout.dialog_seekbar, null); + View view = inflater.inflate(R.layout.dialog_slider, null); - final SeekBar seekbar = view.findViewById(R.id.seekbar); - final TextView value = view.findViewById(R.id.text_value); + final Slider slider = view.findViewById(R.id.slider); + final TextView textValue = view.findViewById(R.id.text_value); final TextView units = view.findViewById(R.id.text_units); - seekbar.setMax(150); - seekbar.setProgress(mPreferences.getInt("controlScale", 50)); - seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { - public void onStartTrackingTouch(SeekBar seekBar) { - } - - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - value.setText(String.valueOf(progress + 50)); - } - - public void onStopTrackingTouch(SeekBar seekBar) { - setControlScale(seekbar.getProgress()); - } + slider.setValueTo(150); + slider.setValue(mPreferences.getInt("controlScale", 50)); + slider.addOnChangeListener((slider1, progress, fromUser) -> { + textValue.setText(String.valueOf((int) progress + 50)); + setControlScale((int) slider1.getValue()); }); - value.setText(String.valueOf(seekbar.getProgress() + 50)); + textValue.setText(String.valueOf((int) slider.getValue() + 50)); units.setText("%"); - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(R.string.emulation_control_scale); - builder.setView(view); - final int previousProgress = seekbar.getProgress(); - builder.setNegativeButton(android.R.string.cancel, (dialogInterface, i) -> { - setControlScale(previousProgress); - }); - builder.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> - { - setControlScale(seekbar.getProgress()); - }); - builder.setNeutralButton(R.string.slider_default, (dialogInterface, i) -> { - setControlScale(50); - }); + final int previousProgress = (int) slider.getValue(); - AlertDialog alertDialog = builder.create(); - alertDialog.show(); + new MaterialAlertDialogBuilder(this) + .setTitle(R.string.emulation_control_scale) + .setView(view) + .setNegativeButton(android.R.string.cancel, (dialogInterface, i) -> setControlScale(previousProgress)) + .setPositiveButton(android.R.string.ok, (dialogInterface, i) -> setControlScale((int) slider.getValue())) + .setNeutralButton(R.string.slider_default, (dialogInterface, i) -> setControlScale(50)) + .show(); } private void setControlScale(int scale) { @@ -688,12 +668,10 @@ public final class EmulationActivity extends AppCompatActivity { } private void resetOverlay() { - new AlertDialog.Builder(this) + new MaterialAlertDialogBuilder(this) .setTitle(getString(R.string.emulation_touch_overlay_reset)) .setPositiveButton(android.R.string.yes, (dialogInterface, i) -> mEmulationFragment.resetInputOverlay()) - .setNegativeButton(android.R.string.cancel, (dialogInterface, i) -> { - }) - .create() + .setNegativeButton(android.R.string.cancel, null) .show(); } diff --git a/src/android/app/src/main/java/org/citra/citra_emu/adapters/GameAdapter.java b/src/android/app/src/main/java/org/citra/citra_emu/adapters/GameAdapter.java index bc791638a..ca66c3b9b 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/adapters/GameAdapter.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/adapters/GameAdapter.java @@ -2,8 +2,6 @@ package org.citra.citra_emu.adapters; import android.database.Cursor; import android.database.DataSetObserver; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; import android.os.Build; import android.os.SystemClock; import android.view.LayoutInflater; @@ -12,14 +10,14 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.color.MaterialColors; + import org.citra.citra_emu.R; import org.citra.citra_emu.activities.EmulationActivity; import org.citra.citra_emu.model.GameDatabase; -import org.citra.citra_emu.ui.DividerItemDecoration; import org.citra.citra_emu.utils.Log; import org.citra.citra_emu.utils.PicassoUtils; import org.citra.citra_emu.viewholders.GameViewHolder; @@ -99,9 +97,9 @@ public final class GameAdapter extends RecyclerView.Adapter<GameViewHolder> impl holder.regions = mCursor.getString(GameDatabase.GAME_COLUMN_REGIONS); holder.company = mCursor.getString(GameDatabase.GAME_COLUMN_COMPANY); - final int backgroundColorId = isValidGame(holder.path) ? R.color.card_view_background : R.color.card_view_disabled; + final int backgroundColorId = isValidGame(holder.path) ? R.attr.colorSurface : R.attr.colorErrorContainer; View itemView = holder.getItemView(); - itemView.setBackgroundColor(ContextCompat.getColor(itemView.getContext(), backgroundColorId)); + itemView.setBackgroundColor(MaterialColors.getColor(itemView, backgroundColorId)); } else { Log.error("[GameAdapter] Can't bind view; Cursor is not valid."); } @@ -204,24 +202,6 @@ public final class GameAdapter extends RecyclerView.Adapter<GameViewHolder> impl EmulationActivity.launch((FragmentActivity) view.getContext(), holder.path, holder.title); } - public static class SpacesItemDecoration extends DividerItemDecoration { - private int space; - - public SpacesItemDecoration(Drawable divider, int space) { - super(divider); - this.space = space; - } - - @Override - public void getItemOffsets(Rect outRect, @NonNull View view, @NonNull RecyclerView parent, - @NonNull RecyclerView.State state) { - outRect.left = 0; - outRect.right = 0; - outRect.bottom = space; - outRect.top = 0; - } - } - private boolean isValidGame(String path) { return Stream.of( ".rar", ".zip", ".7z", ".torrent", ".tar", ".gz").noneMatch(suffix -> path.toLowerCase().endsWith(suffix)); diff --git a/src/android/app/src/main/java/org/citra/citra_emu/applets/MiiSelector.java b/src/android/app/src/main/java/org/citra/citra_emu/applets/MiiSelector.java index 85b55b00d..d6fce6a30 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/applets/MiiSelector.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/applets/MiiSelector.java @@ -22,6 +22,8 @@ import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + public final class MiiSelector { public static class MiiSelectorConfig implements java.io.Serializable { public boolean enable_cancel_button; @@ -69,8 +71,8 @@ public final class MiiSelector { ? (int) config.initially_selected_mii_index : 0; data.index = initialIndex; - AlertDialog.Builder builder = - new AlertDialog.Builder(emulationActivity) + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(emulationActivity) .setTitle(config.title.isEmpty() ? emulationActivity.getString(R.string.mii_selector) : config.title) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/applets/SoftwareKeyboard.java b/src/android/app/src/main/java/org/citra/citra_emu/applets/SoftwareKeyboard.java index 7be5f6d97..800ecaf86 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/applets/SoftwareKeyboard.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/applets/SoftwareKeyboard.java @@ -19,6 +19,8 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.citra.citra_emu.CitraApplication; import org.citra.citra_emu.NativeLibrary; import org.citra.citra_emu.R; @@ -124,7 +126,7 @@ public final class SoftwareKeyboard { FrameLayout container = new FrameLayout(emulationActivity); container.addView(editText); - AlertDialog.Builder builder = new AlertDialog.Builder(emulationActivity) + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(emulationActivity) .setTitle(R.string.software_keyboard) .setView(container); setCancelable(false); @@ -227,7 +229,7 @@ public final class SoftwareKeyboard { break; } - new AlertDialog.Builder(emulationActivity) + new MaterialAlertDialogBuilder(emulationActivity) .setTitle(R.string.software_keyboard) .setMessage(message) .setPositiveButton(android.R.string.ok, null) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/disk_shader_cache/DiskShaderCacheProgress.java b/src/android/app/src/main/java/org/citra/citra_emu/disk_shader_cache/DiskShaderCacheProgress.java index e71c2cfc1..1e3111739 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/disk_shader_cache/DiskShaderCacheProgress.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/disk_shader_cache/DiskShaderCacheProgress.java @@ -8,7 +8,6 @@ import android.app.Activity; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; -import android.os.Handler; import android.view.LayoutInflater; import android.view.View; import android.widget.ProgressBar; @@ -18,6 +17,8 @@ import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.citra.citra_emu.NativeLibrary; import org.citra.citra_emu.R; import org.citra.citra_emu.activities.EmulationActivity; @@ -70,22 +71,15 @@ public class DiskShaderCacheProgress { setCancelable(false); setRetainInstance(true); - AlertDialog.Builder builder = new AlertDialog.Builder(emulationActivity); - builder.setTitle(title); - builder.setMessage(message); - builder.setView(view); - builder.setNegativeButton(android.R.string.cancel, null); - - dialog = builder.create(); - dialog.create(); - - dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setOnClickListener((v) -> emulationActivity.onBackPressed()); - synchronized (finishLock) { finishLock.notifyAll(); } - return dialog; + return new MaterialAlertDialogBuilder(emulationActivity) + .setTitle(title) + .setMessage(message) + .setNegativeButton(android.R.string.cancel, (dialog, which) -> emulationActivity.onBackPressed()) + .create(); } private void onUpdateProgress(String msg, int progress, int max) { diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/cheats/ui/CheatDetailsFragment.java b/src/android/app/src/main/java/org/citra/citra_emu/features/cheats/ui/CheatDetailsFragment.java index 762cdb80e..f4833c0c5 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/cheats/ui/CheatDetailsFragment.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/cheats/ui/CheatDetailsFragment.java @@ -15,6 +15,8 @@ import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.citra.citra_emu.R; import org.citra.citra_emu.features.cheats.model.Cheat; import org.citra.citra_emu.features.cheats.model.CheatsViewModel; @@ -80,12 +82,12 @@ public class CheatDetailsFragment extends Fragment { private void onDeleteClicked(View view) { String name = mEditName.getText().toString(); - AlertDialog.Builder builder = new AlertDialog.Builder(requireContext()); - builder.setMessage(getString(R.string.cheats_delete_confirmation, name)); - builder.setPositiveButton(android.R.string.yes, - (dialog, i) -> mViewModel.deleteSelectedCheat()); - builder.setNegativeButton(android.R.string.no, null); - builder.show(); + new MaterialAlertDialogBuilder(requireContext()) + .setMessage(getString(R.string.cheats_delete_confirmation, name)) + .setPositiveButton(android.R.string.yes, + (dialog, i) -> mViewModel.deleteSelectedCheat()) + .setNegativeButton(android.R.string.no, null) + .show(); } private void onEditClicked(View view) { diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/cheats/ui/CheatsActivity.java b/src/android/app/src/main/java/org/citra/citra_emu/features/cheats/ui/CheatsActivity.java index a36bf427c..a6ab89429 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/cheats/ui/CheatsActivity.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/cheats/ui/CheatsActivity.java @@ -14,10 +14,13 @@ import androidx.core.view.ViewCompat; import androidx.lifecycle.ViewModelProvider; import androidx.slidingpanelayout.widget.SlidingPaneLayout; +import com.google.android.material.appbar.MaterialToolbar; + import org.citra.citra_emu.R; import org.citra.citra_emu.features.cheats.model.Cheat; import org.citra.citra_emu.features.cheats.model.CheatsViewModel; import org.citra.citra_emu.ui.TwoPaneOnBackPressedCallback; +import org.citra.citra_emu.utils.ThemeUtil; public class CheatsActivity extends AppCompatActivity implements SlidingPaneLayout.PanelSlideListener { @@ -37,6 +40,8 @@ public class CheatsActivity extends AppCompatActivity @Override protected void onCreate(Bundle savedInstanceState) { + ThemeUtil.applyTheme(this); + super.onCreate(savedInstanceState); mViewModel = new ViewModelProvider(this).get(CheatsViewModel.class); @@ -63,6 +68,8 @@ public class CheatsActivity extends AppCompatActivity mViewModel.getOpenDetailsViewEvent().observe(this, this::openDetailsView); // Show "Up" button in the action bar for navigation + MaterialToolbar toolbar = findViewById(R.id.toolbar_cheats); + setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); } diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivity.java b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivity.java index 91adf7dae..cfbcf5099 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivity.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivity.java @@ -15,11 +15,14 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.FragmentTransaction; import androidx.localbroadcastmanager.content.LocalBroadcastManager; +import com.google.android.material.appbar.MaterialToolbar; + import org.citra.citra_emu.NativeLibrary; import org.citra.citra_emu.R; import org.citra.citra_emu.utils.DirectoryInitialization; import org.citra.citra_emu.utils.DirectoryStateReceiver; import org.citra.citra_emu.utils.EmulationMenuSettings; +import org.citra.citra_emu.utils.ThemeUtil; public final class SettingsActivity extends AppCompatActivity implements SettingsActivityView { private static final String ARG_MENU_TAG = "menu_tag"; @@ -38,6 +41,8 @@ public final class SettingsActivity extends AppCompatActivity implements Setting @Override protected void onCreate(Bundle savedInstanceState) { + ThemeUtil.applyTheme(this); + super.onCreate(savedInstanceState); setContentView(R.layout.activity_settings); @@ -49,6 +54,8 @@ public final class SettingsActivity extends AppCompatActivity implements Setting mPresenter.onCreate(savedInstanceState, menuTag, gameID); // Show "Back" button in the action bar for navigation + MaterialToolbar toolbar = findViewById(R.id.toolbar_settings); + setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); } diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivityPresenter.java b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivityPresenter.java index 0d63873bb..e288bf934 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivityPresenter.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivityPresenter.java @@ -4,6 +4,8 @@ import android.content.IntentFilter; import android.os.Bundle; import android.text.TextUtils; +import androidx.appcompat.app.AppCompatActivity; + import org.citra.citra_emu.NativeLibrary; import org.citra.citra_emu.features.settings.model.Settings; import org.citra.citra_emu.features.settings.utils.SettingsFile; @@ -109,8 +111,6 @@ public final class SettingsActivityPresenter { mSettings.saveSettings(mView); } - ThemeUtil.applyTheme(); - NativeLibrary.ReloadSettings(); } diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsAdapter.java b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsAdapter.java index bfd7c71a9..59c37394e 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsAdapter.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsAdapter.java @@ -6,13 +6,16 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.DatePicker; -import android.widget.SeekBar; import android.widget.TextView; import android.widget.TimePicker; +import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.google.android.material.slider.Slider; + import org.citra.citra_emu.R; import org.citra.citra_emu.dialogs.MotionAlertDialog; import org.citra.citra_emu.features.settings.model.FloatSetting; @@ -41,15 +44,14 @@ import org.citra.citra_emu.utils.Log; import java.util.ArrayList; -public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolder> - implements DialogInterface.OnClickListener, SeekBar.OnSeekBarChangeListener { +public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolder> implements DialogInterface.OnClickListener, Slider.OnChangeListener { private SettingsFragmentView mView; private Context mContext; private ArrayList<SettingsItem> mSettings; private SettingsItem mClickedItem; private int mClickedPosition; - private int mSeekbarProgress; + private int mSliderProgress; private AlertDialog mDialog; private TextView mTextSliderValue; @@ -149,11 +151,9 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde int value = getSelectionForSingleChoiceValue(item); - AlertDialog.Builder builder = new AlertDialog.Builder(mView.getActivity()); - - builder.setTitle(item.getNameId()); - builder.setSingleChoiceItems(item.getChoicesId(), value, this); - + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(mView.getActivity()) + .setTitle(item.getNameId()) + .setSingleChoiceItems(item.getChoicesId(), value, this); mDialog = builder.show(); } @@ -162,11 +162,9 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde int value = getSelectionForSingleChoiceValue(item); - AlertDialog.Builder builder = new AlertDialog.Builder(mView.getActivity()); - - builder.setTitle(item.getNameId()); - builder.setSingleChoiceItems(item.getChoicesId(), value, this); - + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(mView.getActivity()) + .setTitle(item.getNameId()) + .setSingleChoiceItems(item.getChoicesId(), value, this); mDialog = builder.show(); } @@ -199,11 +197,9 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde public void onStringSingleChoiceClick(StringSingleChoiceSetting item) { mClickedItem = item; - AlertDialog.Builder builder = new AlertDialog.Builder(mView.getActivity()); - - builder.setTitle(item.getNameId()); - builder.setSingleChoiceItems(item.getChoicesId(), item.getSelectValueIndex(), this); - + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(mView.getActivity()) + .setTitle(item.getNameId()) + .setSingleChoiceItems(item.getChoicesId(), item.getSelectValueIndex(), this); mDialog = builder.show(); } @@ -226,8 +222,6 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde mClickedItem = item; mClickedPosition = position; - AlertDialog.Builder builder = new AlertDialog.Builder(mView.getActivity()); - LayoutInflater inflater = LayoutInflater.from(mView.getActivity()); View view = inflater.inflate(R.layout.sysclock_datetime_picker, null); @@ -265,44 +259,45 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde closeDialog(); }; - builder.setView(view); - builder.setPositiveButton(android.R.string.ok, ok); - builder.setNegativeButton(android.R.string.cancel, defaultCancelListener); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(mView.getActivity()) + .setView(view) + .setPositiveButton(android.R.string.ok, ok) + .setNegativeButton(android.R.string.cancel, defaultCancelListener); mDialog = builder.show(); } public void onSliderClick(SliderSetting item, int position) { mClickedItem = item; mClickedPosition = position; - mSeekbarProgress = item.getSelectedValue(); - AlertDialog.Builder builder = new AlertDialog.Builder(mView.getActivity()); + mSliderProgress = item.getSelectedValue(); LayoutInflater inflater = LayoutInflater.from(mView.getActivity()); - View view = inflater.inflate(R.layout.dialog_seekbar, null); + View view = inflater.inflate(R.layout.dialog_slider, null); - SeekBar seekbar = view.findViewById(R.id.seekbar); + Slider slider = view.findViewById(R.id.slider); - builder.setTitle(item.getNameId()); - builder.setView(view); - builder.setPositiveButton(android.R.string.ok, this); - builder.setNegativeButton(android.R.string.cancel, defaultCancelListener); - builder.setNeutralButton(R.string.slider_default, (DialogInterface dialog, int which) -> { - seekbar.setProgress(item.getDefaultValue()); - onClick(dialog, which); - }); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(mView.getActivity()) + .setTitle(item.getNameId()) + .setView(view) + .setPositiveButton(android.R.string.ok, this) + .setNegativeButton(android.R.string.cancel, defaultCancelListener) + .setNeutralButton(R.string.slider_default, (DialogInterface dialog, int which) -> { + slider.setValue(item.getDefaultValue()); + onClick(dialog, which); + }); mDialog = builder.show(); mTextSliderValue = view.findViewById(R.id.text_value); - mTextSliderValue.setText(String.valueOf(mSeekbarProgress)); + mTextSliderValue.setText(String.valueOf(mSliderProgress)); TextView units = view.findViewById(R.id.text_units); units.setText(item.getUnits()); - seekbar.setMin(item.getMin()); - seekbar.setMax(item.getMax()); - seekbar.setProgress(mSeekbarProgress); + slider.setValueFrom(item.getMin()); + slider.setValueTo(item.getMax()); + slider.setValue(mSliderProgress); - seekbar.setOnSeekBarChangeListener(this); + slider.addOnChangeListener(this); } public void onSubmenuClick(SubmenuSetting item) { @@ -375,19 +370,19 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde closeDialog(); } else if (mClickedItem instanceof SliderSetting) { SliderSetting sliderSetting = (SliderSetting) mClickedItem; - if (sliderSetting.getSelectedValue() != mSeekbarProgress) { + if (sliderSetting.getSelectedValue() != mSliderProgress) { mView.onSettingChanged(); } if (sliderSetting.getSetting() instanceof FloatSetting) { - float value = (float) mSeekbarProgress; + float value = (float) mSliderProgress; FloatSetting setting = sliderSetting.setSelectedValue(value); if (setting != null) { mView.putSetting(setting); } } else { - IntSetting setting = sliderSetting.setSelectedValue(mSeekbarProgress); + IntSetting setting = sliderSetting.setSelectedValue(mSliderProgress); if (setting != null) { mView.putSetting(setting); } @@ -397,7 +392,7 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde } mClickedItem = null; - mSeekbarProgress = -1; + mSliderProgress = -1; } public void closeDialog() { @@ -411,20 +406,6 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde } } - @Override - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - mSeekbarProgress = progress; - mTextSliderValue.setText(String.valueOf(mSeekbarProgress)); - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) { - } - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - } - private int getValueForSingleChoiceSelection(SingleChoiceSetting item, int which) { int valuesId = item.getValuesId(); @@ -484,4 +465,10 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde return -1; } + + @Override + public void onValueChange(@NonNull Slider slider, float value, boolean fromUser) { + mSliderProgress = (int) value; + mTextSliderValue.setText(String.valueOf(mSliderProgress)); + } } diff --git a/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.java b/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.java index 402c8a4e0..75e25c4b1 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.java @@ -48,7 +48,7 @@ public final class MainActivity extends AppCompatActivity implements MainView { @Override protected void onCreate(Bundle savedInstanceState) { - ThemeUtil.applyTheme(); + ThemeUtil.applyTheme(this); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); diff --git a/src/android/app/src/main/java/org/citra/citra_emu/ui/platform/PlatformGamesFragment.java b/src/android/app/src/main/java/org/citra/citra_emu/ui/platform/PlatformGamesFragment.java index 9fc30796f..4d863d9f9 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/ui/platform/PlatformGamesFragment.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/ui/platform/PlatformGamesFragment.java @@ -10,9 +10,13 @@ import android.widget.TextView; import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; +import com.google.android.material.color.MaterialColors; +import com.google.android.material.divider.MaterialDividerItemDecoration; + import org.citra.citra_emu.CitraApplication; import org.citra.citra_emu.R; import org.citra.citra_emu.adapters.GameAdapter; @@ -49,7 +53,9 @@ public final class PlatformGamesFragment extends Fragment implements PlatformGam mRecyclerView.setLayoutManager(layoutManager); mRecyclerView.setAdapter(mAdapter); - mRecyclerView.addItemDecoration(new GameAdapter.SpacesItemDecoration(ContextCompat.getDrawable(getActivity(), R.drawable.gamelist_divider), 1)); + MaterialDividerItemDecoration divider = new MaterialDividerItemDecoration(requireContext(), LinearLayoutManager.VERTICAL); + divider.setLastItemDecorated(false); + mRecyclerView.addItemDecoration(divider); // Add swipe down to refresh gesture final SwipeRefreshLayout pullToRefresh = view.findViewById(R.id.refresh_grid_games); @@ -59,6 +65,9 @@ public final class PlatformGamesFragment extends Fragment implements PlatformGam refresh(); pullToRefresh.setRefreshing(false); }); + + pullToRefresh.setProgressBackgroundColorSchemeColor(MaterialColors.getColor(pullToRefresh, R.attr.colorPrimary)); + pullToRefresh.setColorSchemeColors(MaterialColors.getColor(pullToRefresh, R.attr.colorOnPrimary)); } @Override diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/StartupHandler.java b/src/android/app/src/main/java/org/citra/citra_emu/utils/StartupHandler.java index 9112bf90c..56820eb33 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/utils/StartupHandler.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/StartupHandler.java @@ -7,6 +7,8 @@ import android.text.TextUtils; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.FragmentActivity; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.citra.citra_emu.R; import org.citra.citra_emu.activities.EmulationActivity; @@ -33,7 +35,7 @@ public final class StartupHandler { public static void HandleInit(FragmentActivity parent) { if (PermissionsHandler.isFirstBoot(parent)) { // Prompt user with standard first boot disclaimer - new AlertDialog.Builder(parent) + new MaterialAlertDialogBuilder(parent) .setTitle(R.string.app_name) .setIcon(R.mipmap.ic_launcher) .setMessage(parent.getResources().getString(R.string.app_disclaimer)) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/ThemeUtil.java b/src/android/app/src/main/java/org/citra/citra_emu/utils/ThemeUtil.java index 74ef3867f..98556514a 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/utils/ThemeUtil.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/ThemeUtil.java @@ -1,10 +1,14 @@ package org.citra.citra_emu.utils; import android.content.SharedPreferences; +import android.content.res.Configuration; import android.os.Build; import android.preference.PreferenceManager; +import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatDelegate; +import androidx.core.view.WindowCompat; +import androidx.core.view.WindowInsetsControllerCompat; import org.citra.citra_emu.CitraApplication; import org.citra.citra_emu.features.settings.utils.SettingsFile; @@ -12,7 +16,7 @@ import org.citra.citra_emu.features.settings.utils.SettingsFile; public class ThemeUtil { private static SharedPreferences mPreferences = PreferenceManager.getDefaultSharedPreferences(CitraApplication.getAppContext()); - private static void applyTheme(int designValue) { + private static void applyTheme(int designValue, AppCompatActivity activity) { switch (designValue) { case 0: AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); @@ -26,9 +30,13 @@ public class ThemeUtil { AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY); break; } + + int systemReportedThemeMode = activity.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; + WindowInsetsControllerCompat windowController = WindowCompat.getInsetsController(activity.getWindow(), activity.getWindow().getDecorView()); + windowController.setAppearanceLightStatusBars(systemReportedThemeMode == Configuration.UI_MODE_NIGHT_NO); } - public static void applyTheme() { - applyTheme(mPreferences.getInt(SettingsFile.KEY_DESIGN, 0)); + public static void applyTheme(AppCompatActivity activity) { + applyTheme(mPreferences.getInt(SettingsFile.KEY_DESIGN, 0), activity); } } diff --git a/src/android/app/src/main/res/drawable-hdpi/ic_cia_install.png b/src/android/app/src/main/res/drawable-hdpi/ic_cia_install.png deleted file mode 100644 index 8c00d8c34106eb6e1fb045821696da60afe0841f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmV+d0{#7oP)<h;3K|Lk000e1NJLTq001Na001Hg1^@s6H(7gy0005WNkl<ZScUDF zNlF7j6ox;OAPx~H6cs^4w~F@=7vjP*xDmkvcmPkJ;L1BV;6^lp1Bi+nhlMym1ThdW zpiv?fs^O*Rbkfz`i9&vOkg8O@_jUc9s_qbiW`G=!2j;^_7(~s$BT&%s26P8W7z+rb zig$^2FVJ64AZ63H(f+C@Q0Qs^RZ;_}lKvggG_VMChEOXBEC92%36{kUd<*osjOhX1 z#W=MGjk=8M04~J16&s)vkwC?r2Jj2i0$duoZpsz)vh2)gj{~PZ&#E?kVUtGxv5y=j z+A^+8#l1MMyjCb_*yKbCXtD)T+9?BtPMi__d10$*lZqoC9t6e<>KqsZu0-DxFb3>J z3FBznrHHcRS+rk0Y>Gr~D^)2%Ul~(=pdyEH<Yu24hqVBa+Vy}*)$5#evoA2r2(SUH z0__&_rF{n$^OL%^Vi-p6Cr-k3i-bzoz=P$=Y>N8D`z|dyY|oeh9X8q*^|J~6*6GOh zj7eM0Q~DI2b1?&=5Fl|VGCi*cP)SV_C|_HaqJCr}VSG8I@AP=kXO=2d(68YWa;Pf$ z0t`i5yjo?HW!XOhqx7LxXbxD@kDu}<SWBt@nOcFRU)AWn7-M7OJ^%m!07*qoM6N<$ Ef&?$zwg3PC diff --git a/src/android/app/src/main/res/drawable-hdpi/ic_folder.png b/src/android/app/src/main/res/drawable-hdpi/ic_folder.png deleted file mode 100644 index 90085252b23d6578e9b10c112becfe8c409dd9a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmV+u0qp*XP)<h;3K|Lk000e1NJLTq001Na0012b1^@s6!gbF50002mNkl<ZScUDE zF$%&!5Jg`Sv9V6)8AN+aEj)yG@C0Jzfy7Siyn$G0BZ7jhm7qjMcfrab$s$wigJB?9 zc3&pj{DcoZVCuT?<Tou~3ygq=vbHo`w`ozKHb4^Chjm36U#pNZ@^x1ruer|xn7LnF zW?~u81a`p9KRnl*P>8w!6F;F7(5^Y5P>ih!9Z~}l-{jVW?$(3~YeGaJjVPoMg*2j& zMikPBLK-H8G6No-RD>EfT;4QAXm3EobCljU5QBUTe5f0`Y~OKVPhS25IbZIu1jRY9 Zd;z`*c?FdiugL%a002ovPDHLkV1g@hY}5b% diff --git a/src/android/app/src/main/res/drawable-hdpi/ic_premium.png b/src/android/app/src/main/res/drawable-hdpi/ic_premium.png deleted file mode 100644 index 7dd45a4055928d18ea4b3f8f47537f69aafce256..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 961 zcmV;y13vtTP)<h;3K|Lk000e1NJLTq001Na0015c1^@s6MB%(s000AsNkl<ZScS!x zd5BJ76vlsM#xjH$!dQ~Xl58c}cZEU{NtXGCzbuU?>mRl$ONvM-ArT1)k!)GAW#1WL z7$)o3Gh^vY&(+)O-fzD7X7JS4z2Ezu_r1?O_nhaPw_N#(l?XvsU<A+}Xbk)W9s-wu zoxr)UML=y}7|;)B0i*$Mfjhu4U<dFjVr>z8Ld}7tz>rvrfW5#x;F>cw9heQ&jIr)D zumD&U524P$5g@e~G6B8=J%Q7}eqd0X>kJ!#j97#k0QZ5=?-v94zzu!kl42P!Gm6l0 zz3sn-eU-EBGm|v<Kgbvs`2#7y*uVVH%RsiW%N&rd<Y@-<)%{(UP{+SOA_rKjY`hg= z(;b+h=l>>TF_a6`D?>7t(sO{1-gpgV=6i3v3h*iTlcZl+VLUKZWResP+a;=RfOo)c zV4WiqpWJ7ghpqx`%7D-)DY0Pyuo7tH%-jDT63_sqUsFW*H=!-Sm{O9-l1dvU$pbzb z0pEZZ-uMTgm&#I+TMv|y%oB%9{}3|Ifx!y&JYb;i15{O=tBX98D#NM?5}F9Cm&)7Q zS9j(tK3a-^725(yfF;obpt56Yr23eLz5t68BxCO0qWj4n8ALQk8q`&(o+GbidA7ZQ zE<uJZ_uLpSj_QRB<3iR18kDBGm#w;4AIJ@{&j<*aJ`7KQP|$wZLt2N-57u=PP+mf8 zcm%8ovG3$+&_(q)CBaMCHi=j>RGymvYy%4QnNuP<i#on2TCv+&0z!qlCdaTb@2rp) zPXg6|%@MXqDItSnw75qcglgy-77s2mfip_&YEtxcwYo0yqsoREUWkKGb6xKN&%C)p zDR&Uqk0p*rq<`~6_PZKIs6ZaNQ4FEpy4oRNw>MW#<z%G(S5YlP@sk&_-}YFA^{cew zYz&)*QfCw=E|OJTZvrQPS|Vb__Ok@l#Zx=cL>+_tjSoBC@Nr6lXP5;napu421anA- zhd{H&tI>C1`yY>|^)QX<1MG{K@22!d>bt?2s{kAX_Gq6}#gI=XQ+@p(=d$8pk}x{N z#%fkuDY0Q8FxRsgsX*W5jG1~*a|xD|5b6jghm05M(*-ftPR-hoki%oPVrjMCj)dt@ zahRev^F2`Db)Q#s7_@@h0cfghybhe#{U1ogLjlZ7!I9XyPU~~5ikAw>$tj6AsR;I# j7CTln?ObPGD;<De<gvfFUHQ<g00000NkvXXu0mjfl$O72 diff --git a/src/android/app/src/main/res/drawable-hdpi/ic_settings_core.png b/src/android/app/src/main/res/drawable-hdpi/ic_settings_core.png deleted file mode 100644 index 2e7837020c61b6171d433971387e64e990f7c6a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 793 zcmV+!1LpjRP)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru<OKp3G7R2F8DIba0;Wks zK~z}7y_m~u6hRQif3?||fJ#^viEL0r!59rfa`F9$AQ5kpASmcRAbK+3)q@0lfQT0r zMR7qC7J`bGfDj?X!y-x~Mo0v~L~)~{9z5(O?ZIA<al5CxH%>z_hwA$Jo1U((Y8s^! zp$6OpO28cO1^5hHs|&LZGQEH@*r8C|6yam9#dk0i)JjN14v5G)gL{=Fbd3RTy@>RQ zNP{ub@Hv`+XL|d~z}bj@DKKvNWFLT*NX!6G(f(IJ*69oZO+c~6A|t>);2bb(Ayc(a zz(rseP^jUbjFSF`kbd*$4vQ_8jRVVVgpMRgrfNrRS@weD$4l#>22LlqJLjE*5g1B< z%$T!M18W^Y^T1)COIts1+cCD=htTC1uu))>rL1)PrDG<$;;KU}S`1A<ML-<u-IxVu z9>_#vL@9-c^Z-3TH?RRPm5U0HQ%aRw(nmxxS|FDgrc42^wQ?7gQjY-!Jr3g4fUe+@ z2Yw#lr$@l<07Bb5@aI#&cSiv$1JeP*_YU~wIJcAn791xp=!57xDjso?0y2)1n}D_e zLT$h@$GO>*ZVg;VZvdhF9&_{6wC@LYXhG|=?8KZ>YK0FQ5%~zLG~wx#p8|%JQiWPs zu{tIb?s;U`ofxck*V0jl0lEb=ScnL4JqF{EPc7?m(2TdhNnj(8*46=>0NyynZ}lN` z-?No?ugxcB$hEkhO0YpY6W8SDVk-UruufY~y;+}yB*z|OPwnsnxY#xgw7N8ClQn{$ z0>|~!b-@uGGi*qNR@W@cMt15##J?Swu@ET%J0mfJk-yfQ*L4ig2pj{p82k^sMemPh z^#RSMb<>thh%#{3au{bVz8M4N1TYbN9TPL2SbU?wsC8cH-2lD;U-gyV58xq?4#oTp XV;1BxGI*AY00000NkvXXu0mjf6ZTW7 diff --git a/src/android/app/src/main/res/drawable-mdpi/ic_cia_install.png b/src/android/app/src/main/res/drawable-mdpi/ic_cia_install.png deleted file mode 100644 index c6dc232b44e3d1f2aee1efaaea1ca15fc431fc33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmV-y0h9iTP)<h;3K|Lk000e1NJLTq000;O000*V1^@s65h0H)0003qNkl<ZNQvE* zF-k*05Qe`<3Xzm)ZA@cfVNT!;0wNJ4!6Jor+F1rIgn%I-0YNa3D_DuWHZ~r>!UKp& z7gW?l7G_~s9yt5*()h!`%w+y=c8j+mLaV?t@B*yG7_DjmGl^rXX(?jCr^-JTv0$q5 zpG7Q4rT@9$5O@IU5u6?19yqcL&s6NIeogfcRKFT{{?ties3m|J(%TMZPpwyO2F5Z_ zQuQXV9?Z0?aIZ6Eo&W>jTfT=OFjBv_W8q%s!6~Of?V_6&?$t_w`smLK_qs@cUs}xt zV8bxiQSd9nykoAo<Vj3>2Gb32YnZDG^U)PwQVa}6t9t&n?x}bc(<s9QW6#uY(OZTK z{GrJMImvf{BCtFs{2kbmJm=u12P&=H4X%NT{0(Nc%pE)r-2DPfCSucpN4VGk0000< KMNUMnLSTZG+M5Re diff --git a/src/android/app/src/main/res/drawable-mdpi/ic_folder.png b/src/android/app/src/main/res/drawable-mdpi/ic_folder.png deleted file mode 100644 index 1e428dfe3e37038c6a9d7773de521189ae7d09fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^5<o1>!3HF|Hk`EvQgc0B978O6-(I!lVlot9yRf~x zzISTIQ%0N4@DECHhiBi2%6e#+!xAX6{fg7Z0H$b8rx;JgHwVI5+A38VS=b^Tb}94a z@0{{_V%OFK#!9Sh_k|?Sy>S1QZ{W<{%WrGBD<XL%OHx^Y>ScyGLQJ>!ygKR{rf*u{ z&%2^g>W8p`w}m~ogR$ZTt^<0C8~BeKACt+wb1MA9bS~q=^&byBVQqZsYc^MSWgyU@ N44$rjF6*2UngF(pO?ChP diff --git a/src/android/app/src/main/res/drawable-mdpi/ic_premium.png b/src/android/app/src/main/res/drawable-mdpi/ic_premium.png deleted file mode 100644 index 4dfb625961f6f7c7b125454449d7be2e456c9789..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 605 zcmV-j0;2tiP)<h;3K|Lk000e1NJLTq000;O000yS1^@s6m$m(a0006cNkl<ZIE|gv zTZqk36bA60xip$QP{^%`<SsReNDaA!7e!IZgK|rxB#K9Qkno~LNGUZT#e)Zzro6c2 zGQ^AI7R`g)@8yy<>tEYHhcmu9owL_odwqMY^{sun)i-pPVHFl&48G$IPT)Z1GZ1Sr z9YgRES8)jKN+<|=;w&bV9ReK@uo<V&Six^MHspqa;1<SJI8@*n`u@WwVKcVp1S_z= zii2H2Dr0BzudS`CYsH}d40I_j*BZTgfKh0`xgvwqq+VSNd>zZ8w12`-+)wtpMAF6J z$FVSer-m*@k5JtU>_uDQoH9ta8DC}ao1vtBQJ%qJ-xLHpV|@j)@GkYB2`yC;q~P!I z82!Vx16y%1D$)`?ot^rV2+}ZZtRi@OG;>=VPB@BPn1>PAgFcuT7wD`BeQ&9P;9z{O z%WOB$6q(HpCDms8EAyu!)pXKd2u9;BzGb%O5%?NbM}|3G*JO*C#c))>*FTth<1%K1 zdghldP@5Bcz!bc#Krk|t@+GrfiIObBdORw<MNeu<L6XDdP)Zp~V%?V6*I;Roq_=E1 z9%lPT%FlIyVYm>A$Wb4kk74VGvLw8T2|gJzeT4z#3<}(f;d@-NCs}^NoLDzU){UX2 zYgzEA_*{t~;c1ZE&TQ$==rGP;ERKae_2PUqcwZ>)=ebHHDwiew8BL3Inuq1tetI_2 rUQ$`|`%NU(5EM8agH_E?{sMjgYyxm5Sn*(S00000NkvXXu0mjftwt2> diff --git a/src/android/app/src/main/res/drawable-night-hdpi/ic_cia_install.png b/src/android/app/src/main/res/drawable-night-hdpi/ic_cia_install.png deleted file mode 100644 index cc986c8ac9865062c63f5c1d78c195e8246daff9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmV+{0@MA8P)<h;3K|Lk000e1NJLTq001Na001Hg1^@s6H(7gy0005=Nkl<ZScUDF z%SyvQ7==$Sh?j~tEGQNcb?N0H+=&Zu;WM}q!3XdGd;$emzJnLsSp};gDsI#+1Qm3l z1;K)idSqmR<Cvt$OlcK*U`i(a=l{RV$z>9dv~5!)izFSAv$pwS;>SV_0P+AbGQ}f+ zVE_fwlyMsx0386@m3|k1v`s==AP2yk)-Tl(sN$*vl~Wz4oc<lqB!GDUZ561M0x$<) zIxs5WHonMjU6Snfi0LHxq{Nj-4tT`1k~~r3mi+1l0p*kgLRS(XDo`WIQ!UqpU)><f zj<o&|fJ6DX2&-lQIRK+t{DFyOqHXZE@+8wCW+<iE<Z6#(%)~OcZTUb!CN3!Z9mQ7N zCZT<jiJ*F6*C}35$0U15o+<loNDh+RF@cE!B-*A&5n;)#(tilBDO8=PD>|>4DyL90 zV+s@%DiVw-ke_|JvL?ArfkfL5fDz|RyxKs1_8G&tK>Z}wNG_9Xv9xd3V0=o}77Trm z_Y+sEhDUZz^4f4_)|L9%B!FJ!Nuob<!fHaseHe_*DBEKKsHp6S83NrKjuU!Swu^BM z!s<1)64I9+wE+52QwMUY%krgnwUgBT90!mEkgzzP!iw@Wd_;{G>zO<4N~@&`!m{T- u0weSyW@rY$iu`J!UV_z>_|DV>VBr%0;-TvT!dD{z0000<MNUMnLSTZZC-iFo diff --git a/src/android/app/src/main/res/drawable-night-hdpi/ic_folder.png b/src/android/app/src/main/res/drawable-night-hdpi/ic_folder.png deleted file mode 100644 index ee688b09f6df10cb882f385258cd0bd5a649e2c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289 zcmV++0p9+JP)<h;3K|Lk000e1NJLTq001Na0012b1^@s6!gbF50002!Nkl<ZScUDE zF%CgN5QaaGyhg2a2BAjz3Wsn9ClHm+WkjVFolaCVA|cVLBxGb{B`O>5t(aoJW|Pg% z=F999`<Fxnpal%ws@(ZZ6<7m3;O05|6)MyORzNvN{SxQ`5=tlmCOKu4HZTt*gX_>4 zs1>|t3XI%Sm%gaeMx?+7xIA}6<S75=Bq9TyXYJ4ds2A)|DEiifc8LLrcWTyzuGWOa znh;UQM-=iAg?vOIA5q9h6!KwGC~xBU1&In(3<;$wv^5~|Vy~b44zRG{L-xw{nalPK n7xschV-FfCb%r%4j)B<&yTZMuhjtaV00000NkvXXu0mjfTm*Hs diff --git a/src/android/app/src/main/res/drawable-night-hdpi/ic_premium.png b/src/android/app/src/main/res/drawable-night-hdpi/ic_premium.png deleted file mode 100644 index 6b678d22c76c2238696b46b2fa7dc1b3f80be3d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 955 zcmV;s14R6ZP)<h;3K|Lk000e1NJLTq001Na0015c1^@s6MB%(s000AmNkl<ZScS!x zd5BJ76vltXSccFTvP+^tvXx}tWho?$B+LB6UzUin{$VXkibyFT5eW&AY*`vh_MH*N zntj*ISUP&H-d^{9^L^h8p8C4?d*AcE_qpeu^PKaR%K!R>5Of5F0<D1tzz^Uaa30tW zoDN$AR0jqFy?`b_2Ji;B2^;~o0WTxg{(?^^6IcukjI{{Z4a^2EJ7ZIT89>z->s|qK zffex(Y7ZO&(uyDx;2Y2tI0@_p`p3D>upY>cMW`-t2PmJwriORGRej<_u>_bFMd+yB z_Fu!kN{;)?6b=3lGKTs7Kq@fuFF*7GkgM!62h>*bGzNO={+3Iq?Oz~~2dq{$UXQTp z3{2JYe-pA8dIHocK{A%oGl7rZc)Bw4y*FMF_!Rs}(XXU18ki_DDGG<J64lqhTi^z; z#*v9n?z7E9mw*-}Kxmkh*w6=94m5M-?f-WPXaLi%2_pQP&?aC+G07~FN*l(>13u~l z`M@)8`~%QUW$Bk&_Z5@OLx)W75He4J0SffzKtJ6FsH8eq6L~02hLw^eG!|GZmAALA z;>=lmG!+3Wwgr*^OQO3#1;^G%^)L^aR4+)9jJbQ0?#Fv%5YaqoP)DVDp1iimv+WLa z2r_J`=f-$(STAH46|yGKpbXW$T-D7wz>^UB?0}Hz!;mBh1?`7Dq<P5v09`i#WhBIg z`@pIY`*yAdol}pK2wupxVZ@q2^4u6;3s9)foEp(t)bK^oirwY}2o>sDI);sTXPLZs z9H<OzjId2f4H+Dv#a-ecl&))7Jh+$)oKk96mZH~ItLx%jRM{}YvvCm0)b%#-*qbYq zatDF^K;n2v`Zp(Jze`bs3gn@yMG)$)s~rM%dUK^zPO|jBqG}n6pXVX_ZH-k}ze+oD zV%XG^I-@voQCh|I8gLA#CL&gBKTA+uJhBr_)G^54_@LtrA15SuhUvgUXFgvim;*XI z1P>dnM&E_)e>9%f!!)V~uqR@^lhPZh?>c9$EU+KgrG3&ALq3_w>g)eFmlXw*gyA7J zR<l}4i4F6BS)NUn0)2-wX6il3C7387)Deyk886hQ3u3O7nzex;hsRvS(n`M_3DcpX zFhOtTd!WGUJ}>GpXa%<o&`8;M1vsPoKah-v0+^SABe8Xz*5_CiFBX#VPylmxIrYYU dl~Kh5@Dunt<FWLQ9VP$(002ovPDHLkV1h($v?Blj diff --git a/src/android/app/src/main/res/drawable-night-hdpi/ic_settings_core.png b/src/android/app/src/main/res/drawable-night-hdpi/ic_settings_core.png deleted file mode 100644 index bc9dc0beba2f43f6a9e6bbed2a0ed64c16199755..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1152 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$UKz!04SB5>XQ2>tmIipR1RclAn~S zSCLx)lxJYDv9BmdOwLX%QAkQn&&;z`dcS+Wl0s&Rtx~wDuYqrYb81GWM^#a3aFt(3 za#eP+Wr~u$9hXgo70`g()RIJnirk#MVyg;UC9t_xKsHENUr7P1q$Jx`$q{6sLWFOC zf^&XRs)DJWnQpS7iIIZ2rJkXgfu)g&j)IYap}D?+xxS&Xu7RPIfti)Dr2-Tv*>Ne@ z6s4qD1-ZCEEd%mwl`=|73as??%gf94%8m8%i_-NCEiEne4UF`SjC6r2bc-wVN)jt{ z^NN*0MnKGPNi9w;$}A|!%+FH*nVFcBUs__Tq@)kBL?3Dk(0lrD{{cDh5K7Gh21^mp z|MO%L-ZL;TeeiT~42fvnJHy{2)KTPE{rjbo5*;1_UV@xc|2AhO&ivbIu&8BI?v@<E zt-`mqb%=?%Y|-LUQtnb&nGqZ)`N&O4(`O}%^4Sf(9$Nx_N8S1T%IfTy-Jj$3@Sl5h zZszB+<>}|n*cKa4(qIa23{w!kty92n5oWM>iPKuwJQ<xS=Fvyqy!rCuo2b_;{|j*o z?mdit)EWIOBc5>!<L5aO`&LFPtW=-(FVk~5Z~f9G=JQm4>#RK0kvZK&_&2-C)f>mQ zb*`LnC13JM>yo>Z&Ur|E?>L$0bji~5wn}N_A7`<PDJJF9Lz(;=-Od;N@!!Kbt6^nK z^GxTpsv^uA#4IM{7_jcunmf(DVs4EAD=+igrI(%94J?))o%V9lu3(kijW0I$=BkzQ zoo?*cy!Sz^K)yoW{yOvT#>JXR=84{d$9ZB;d@kEN>6%5-#48K-KcB%Zp1aX(la_1y zLhiqljN}YGUw{5^#%q;Xa*_8o?QOjWwC>FBmRuk<!)K!k!_@;U2KOKScPJ6#W%zr* zS!M27<E@@CUY5q5*767LcP?4k(D0U(<Cf3?``N7fme2W@dFic<u=0WPQ)<;WA6P$S zZoOb=%fcC)9j8+|h4gu~8g?<UTxH}A{<iicQ!L{X-G@~-gfDD2-u{-KIl7T;k^Y8k zwSA1;OsutxV%0y`I=1~!UT}Jw_Oxd=Ikz*F-S}z~qkUFFeB#<e-j8N2sgzTc^ql^= zz-GhIT^#056ell9^i)?_J1s;kx_QatN%xj^+?P>$QO0#h#VwiJu{_FAow>97pk{H+ zX1P_YZjGA`%njkWCRm%$Snqw~tEw3D2IZd#TveV<xts<}cYMueG}SSjbve4PGu>tB z%gqgp)sJSVi``dWWPS6x<=SmN;U#B%<EC2k)K6Yw=)cL&E6XftQt9;xOQLSy*cZGl z=8~XiFW-OJeudWym%liZ75wG>0jqWTjmsOQ<^JzDZvHGo{>YwoNsVX!FDUn~-yRTj seXox0I)PBGuC+21d@@Q}XPQ1rJ4x-znjevE3@SK0UHx3vIVCg!0Ft@Vr2qf` diff --git a/src/android/app/src/main/res/drawable-night-mdpi/ic_cia_install.png b/src/android/app/src/main/res/drawable-night-mdpi/ic_cia_install.png deleted file mode 100644 index f61d84961525c9e2ebe234ab1af54b2f401b153c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 405 zcmV;G0c!q<P)<h;3K|Lk000e1NJLTq000;O000*V1^@s65h0H)00048Nkl<ZNQvE* zy-Gtt5QV=;3K2_N3lYJ>LZ84!O9c@HNwCx|t(}lU5EMm05DbW|m6h07X=CFf_yA(; z#J`v$D;pSZe(oeDjRSM<?CzX%b}r1Fj3k^k3|s?QU<P>b!1}!Gz$`EZi~w_9P&)$e zCVuOMK-I)wy%6Zg{-?k?a0}$y;8_H2fI{6#=!1k?TQz4nv%hBcmlBv?e2psDF!33X zi}8oquf+EPaBlXCo(h6*CT=w)Y1FJIC5<O?wi|IZ69`^3;1@|HNfk*|NvD#^=6tsq zPb-1oTZvm%Rd4&PIMM`&r8l#~G`vS3_)Y_XBM&w_1|>~6lJ^Yxu_Hfl4us%7f>s=$ z3rUxbynN)m3yaUVC^<iu#}8_yhDLjgEm3ac*N|q<HBQ^fPhAwKUHWIfW@5Yy3<3Rr zB!2~_W1I;?-#zs^u~5MYFdxTYx5UC%$pTm3tcK?ffh~Q}00000NkvXXu0mjf#i6GK diff --git a/src/android/app/src/main/res/drawable-night-mdpi/ic_folder.png b/src/android/app/src/main/res/drawable-night-mdpi/ic_folder.png deleted file mode 100644 index 05847c34bd911312b9932efd37a35effacedac99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmV<90382`P)<h;3K|Lk000e1NJLTq000;O000vR1^@s6im=T)00020Nkl<ZIF0Sq zF=|3V6a~=pKWc1DBZ*DckqroL!Iij->?1{5OPj1BSc#;N*lD8(zVHeQi@^WL6ag<x zH{3Hb#k?vap7D-X>~VITN9-`hm$r$Bc{Iy5B3>dwo0T{C!BfL?E%AmvI)Ch`F~BDl zZGpC#C9uJ$5U{EX6<;ze4IE1Y?!X=RCqPxOze=E65a=baE(m<*Z#uyT9&pGRbYp2g ddCrRyroS`LbonQ*OvL~I002ovPDHLkV1lmpSy=!8 diff --git a/src/android/app/src/main/res/drawable-night-mdpi/ic_premium.png b/src/android/app/src/main/res/drawable-night-mdpi/ic_premium.png deleted file mode 100644 index 87bac27dfa30bf09c36b3bb6d80cdaf8105103d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 595 zcmV-Z0<8UsP)<h;3K|Lk000e1NJLTq000;O000yS1^@s6m$m(a0006SNkl<ZIE|&% zTZm3k6bJC18S^rEKuAa=5>i7#9>}G5q>%EU7!rw;BHlbm@}Q7gDJ7(MkXtD)Vls>g zNfIJS?$^n^%{sN6e0*R2b=qgIz4rR=wf0(Tcly-vQHCX$h2i*y8#snNnND9U$7Bq| z3tYy2oKr$U&=qGfrmPTX3xiEKfyN4YTd_J96a?)USz%Lwr|9($orJa6loK>#cNH6J zK?>vJq~93}|HIHloWw0OL<kpQCDs%kq)X~nqv0!Yu=Wb;gK)R-pi_;;k79QGrwg5j zE|GQ5u@eUi<>Wy+&8RAkUyCsGj_?c!`I;cu67v>J!`tM+sTv4o#CQ|k<9~A){vPSR z9%FGHqwBD(O5>@Bo?v5U{4n-n0p?-@w#QmJbaP$g_qr+w_Qkj&lU+ss2-}RP`uc2r zao#FYOvn9&U>I)WYbJXZhFh@|J4$<A)n${ZMR8QXmp_Pm;1Z@p_RK6Dpgt#fj|q5F zfnaE4%I8eh5+Rv`Rk&a3MGxyrMv}sKy!!*e{1^{rvSo3>_0h|Q;9j<VsNAj#48{fY zEXf<<`w;WC2us52sNm!1hnMJ6_MpI>NV5kec}mN4qUkYj3a=X@n_4sD6VXwLAmLGv zT+d|bF*<-V7=a@pPj`_DD_!ue$he>TDut*Vmh>1+ig~Js)G-UBwvpCSmL<L4lB61f h0;i*}swv7}zz=mAi%Ib8?Bf6c002ovPDHLkV1mSp6i@&F diff --git a/src/android/app/src/main/res/drawable-night-xhdpi/ic_cia_install.png b/src/android/app/src/main/res/drawable-night-xhdpi/ic_cia_install.png deleted file mode 100644 index 1eccbe68ddab28b5f736be8839792bbedb4dc73b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmV;~0w(>5P)<h;3K|Lk000e1NJLTq001xm001rs1^@s6Zr++~0007@Nkl<ZXo2mS zKWG#|6vlrSFQ6huMFbl=Q4}O0BBCHF*rgIIY{XbwS*Qe5kQ9QVh5txU6b?cJO(AJi zObXFTuu5mC1{4*e!JrpE8JN>^GyCWEX51Xy2Lrcn?!EVYyF0^svq%axPD^?#>4T)f zP<cX;Kc<B^5h7OyVQ|P1^>Bzxp#*$$*ychc3MF9PVXKBn6iUE<Lt8-6XbUJBZ2?82 zEud&*6|f(u0K>qxfSfl1*MJeAFOx@xitj+AuB=*HlFz848l6n>*&*pm#OI)oYIGoS zy##n<pNcQ^0#AXJk$C6Q;%5=i>9Cc6$G~0>0=j_-V1;9@oaUTGz~vabc@j^6JsD!e z!K|lA$DL2h{RdeDi~*-&=E_#Y?i}Q|+B?50X8sazJ2grJ?c0E3Vb<_n($2d7-b-1; zn<c$Zh<7DaPkc5Z>8zw~`@aW{`R8_SgQV$%I9EeA_2(0kf0DFT(iz9xkfbh2uM_-l zHp(aOX~19tiI<Yb9rg)HFB1HQ@^Hy3z>EtCWE#b-ygZr_V8%rc<nJ`Yp;-ag9V0I) z&F1$Z0K0QEiV+{VeF-q*dIJJRedYBjz>MJx<nQ~;>01DHM~TCj?|ii%n<O2P)axnm zU59{&o?`b%Ix1;PO+de`Woqd6l&De{bKFzRlXWrYB=wafeFWCj)pzsudL~DO8O1YT z8L-_$EYmN1jo7A5Is7>yz|{HcJPFvBr76jXvOTu1Z+w=Q9mn4D9*@GS9%KCienxDw z?Q@}`;Sx}?qh$q{HSn$gE@_x?eY%R<A$9?8fTe{}{)->B`Cq`-C7{!u7PJI9TIqdv z!3gMDe6%uSwGr^DMaa4^Won`Izzv|seofcn<M|KFD{nTJDd6~T(#8bgZPq7`00000 LNkvXXu0mjfNGDM+ diff --git a/src/android/app/src/main/res/drawable-night-xhdpi/ic_folder.png b/src/android/app/src/main/res/drawable-night-xhdpi/ic_folder.png deleted file mode 100644 index ffa1d200ed55c122f0412cfde7fc2a9815cd2eac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^20*ON!3HEfFP>h)z`&^F>Eaj?(fW4g-Yh0Z5x4X2 zqL!SJj(EZ<a;e4S;PMZwEC)}S2yxt4!r5}<kduzC&f3-~)565U#5R5~OgVXick%?I zwEA~^cbGR{J$Lv0n=^Ta=0)co?qs$)z$?J0S?~UCKg%?S?>&__1sR{m+<$uf$aS66 z6Hm>Kf4IMAimCuJKda6g28n4Kn_U(J2E0{&uy4UF`xEXp46j)2l9^>1Rh)T$UXEcf zP2fG#AR3pzAM<qjc9WFZ``UCAwmjl$IdLfY1=HCJtcxzNUb?_)z?kdfAT5017|Rwz zH0ErJ$1|6jdA{NIYmQ|Qyb-E!qW-5qW8jRN`zwSS%OC7yN<5d!qf=L|dE0@1$2Zwi n=et;^P1oh^(=}jy#-N_$R@k%W3%@Eb&=@>j{an^LB{Ts5YW|H| diff --git a/src/android/app/src/main/res/drawable-night-xhdpi/ic_premium.png b/src/android/app/src/main/res/drawable-night-xhdpi/ic_premium.png deleted file mode 100644 index 23a5cec5135b940f18327604b3d6a1edf43fb001..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1281 zcmV+c1^)VpP)<h;3K|Lk000e1NJLTq001xm001Zm1^@s6xQBUh000EYNkl<ZScT1) z35Zrz6vuxveQi@}i)q?A5e=0Hwm~^WR<uByxwH^WVl{0T7Km-sKtrh&Q9%o~SQ(TV zr8FfK6fKNY)3nn<r8ZV-HKC|wI&tFv;Pklneee6e_f7rb<Gt_PbMHOp-E+_R-`nu# z=1pW^1aJ;;6wm^U0=5CGfiHmffF;1MS%Wy7tlwe4{=iV+7vLM<Ghiw3QO>dcLCgU& z^k$$9Xeu+tdSC%C2lyePb15(rI5dY%F9UOdH*)9(9heL}01VGFfWz;=wZNlJHV(KS zIIhC64D*0l<&@G6Tn*e;#bh3~60?C5fY*V>8pc|z4;qDc;B4T98jVlzFfaw!y`Zt$ zV~vReHc=n2a{&|91CxN~L*pjPJLi9Fyx~D$hfqVKQswl)x2YoR7269X#eOXttqA<6 z-v-%a_2B?uh#T8J^3x#)j{lF0eic}z=Sra8wIz{Zb>nnkB5)$GZ@SjlCSDF4Gl+&; zrn?h(r-D9BT7kEKUf*C2tdeK-#v0%%;JL^=yU5T1t;Sz@>?sXW{C}u0Sdo%X5H~sr z7!B+v`M1DVq7@cqU&aQu73fjPuNOW5T7k`O{8n+TQ&MyGXa$aRGAmS10=EIHLJnBD zKDSQBTiA>N);gKR|8)`l?G-u$fwtdNkr#QPh0puN+Wap}Od0=dhVh6I49RG-{?oj$ zQ888z*s{Ot#=TekD1=vlGk|rX=ci`yGGn`^C4Ukw^eJ$7flh1%4s<!&a(P!o_YUBC zz3-^!A9~&b+#2X()V<llD#<|e3N#+k;KcYwG0G6SWqgyU_ra>bOT>LTQmdF?7|@AJ zp$h^jt`<Dz`d*MxXP(ltLzT8)$I~;Fr4W$|;WA*PuK`yUWV{*iX3BvWewO?QJuP&$ z=siiXJ(0fKS@!e}bcM)L73fv&MoT?DV~Bm++$aNW)B9M3Qfvhb6Vg?9dZ<`bh?P#= zYQSz8-P`oM3wTI$Vpqv_QYf`%^lwQ!VAXPJjShHLxn~*OaqbIWu57q9vT;Kg9^ygW z?#onzEv`=~NB?$F>haQFqxXySo`r@Ok$VETsY(Ziy7%=t`xv2nTbErHawCC-+T5!% z`fbc&qMc<nPz)oS{Obs>iD8rOqdr$!?Q`iggcaqe^cAWRm0+yX{XTsFarjPmP@c+I z2Kouu19(KTr5PWgJI`6*;@Fi&1kJkpOz>hv&zze9T<By2%I~=1w;{uU#d!}ilhQP{ z49<7W^CPNujBQZm{aCV+yFN+gYl$4X>?qt*$!TnA2B%5m68FDP_fBb8&hM1Wa{c3y zm2|nAtjvv(IqV)bdOMwkyLHoC4(-n2l5%`YppT7pPh>2UUlWnftkwaPp>8On(=V#9 zQU6Elc)52#ce&VThc@!<z*)c{0o`Sx^FTG26$uTGMXAc(EPgX4qTirrY}49!=lS+p zZY1XFnj{NTq?f=_=dl^}Wk!S*uM^dnns%<16-Y2SM}}G`YT#i!s7*$ViuCK%Ie32R zY+a}Wh`Ya(!F@swB(PiYqZRMN^o7^T_)p4BT$BTdw{(fec+AeRSE@#l4xml?8gP*Q rPg8!c8;W+oU@P#9IFvsd7Z2cX&wV63(nax-00000NkvXXu0mjfU_5ND diff --git a/src/android/app/src/main/res/drawable-night-xhdpi/ic_settings_core.png b/src/android/app/src/main/res/drawable-night-xhdpi/ic_settings_core.png deleted file mode 100644 index 9ca7975bbe0962a5167f55337559d885028d3a5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1431 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezr3(FnVW(M3hAM`dB6B=jtV<<R_)- zRpb@`<rx@k>?;Zqle1Gx6p~WYGxKbf-tXS8q>!0ns}yePYv5bpoSKp8QB{;0T;&&% zT$P<{nWAKG$7NGt1vDTxwIorYA~z?m*s8)-32d$vkPQ;nS5g2gDap1~as*kZ5aAo3 z;GAESs$i;TrkiYNVx(Yhsb^?rU}<EcqhMrUXs&Nyu5W0pYhY+)U}j}(sQ?8^c3cWJ zMJZ`kK`w4k%YZyvrHqo20xNy}^73-Ma$~*xqI7*jOG`_A10#JSBVC{h-Qvo;lEez# zykcdL5fC$6Qj3#|G7CyF^YauyW+o=(mzLNnDd~eO(TCas^qxN4e?SgAgi`Z>!BPbD z|2&z5_Y4dy?4B-;AsLNlXT^4ehKd}o|6b%SyY*x98J#&FjYXz*yiwHZ@XC-gaeJXy ztLeqgVjs}4Xu%6tA<gD{uUwsse@Sq0W;IDjXidnF+v4+kR^gUF&A?)x&HrrQ6u&65 z`TeH9`kg`j4W2ifzt#V}zOVf4)^q!UC%T-x!IHz4$FxqZShz9xfZT(#Msq{G_!3kL zP9zqae+Z4_Tb(MX8u2=D^G2WcRQ7^uPqTX;co(qlxOg~kU;9~`gh_|f7!7VWpVn^h zdtjZwQ8E3I?4F~|`DzANKjkQXkSnl}^tZUFBHCMe>UdwzT_w+Ioo$sB&X*p^#6K_2 z*)EdVBRD^4{}Mk>c9p-v3j5^bJ*qq|o#xwp)@<&!<SoKKZajW%FfD@r&3V6PtOmjs zoz@qRNnJPS{9FAuB~Ix6fgi&B0nE2HO|E3*VUjnE^|ScZ5Wi{iHkldBJi&Dfvsq3z zD&O>+eIUN^`0SNx0{Rn_<?fulv--d`kLCLl&6s>Xo$Y$^a^Z^Oo93=R86j4&uHUOF z_L7$8<kuBZs<sL*O+Ce#E#GTidcn28{J_QbNzbf*Ot_-=@-M@^^U2H+A`eoww|{tZ zL-N3W8<hqzPh*w0Usc|B3e4}@Zd?0i@)fm}lb(7^uHf9jw?jChapkdK8=*H$1;z!I zMvmDBULKjxUC*F=VEYW=m%<D9J+oC}Ki}!piOWj(e)(h0l6=pqT}m${Hdqv~i!<4~ zuJbL_E?`>Wvc@)^HA-2Q|I&^MgWks*Pizfeb)>$2e}7E4+V%L}FIM4F5wnkmZuhiX zb)e<M*3U_EpDj=>y4#}lQTDk|Le-O7RX)dL?i#KLZ46fu-_8&_G5ht#SwF;Ah+lTP zHnYdN;kH5R(r1nZA`wzAZH_Yhn;t7}sD593hTc~5^&5O9nS@_*JfHL_hS@b|_wxR@ zndf%so(^=Wo3Fl8#a2qO&X?i8mURE=ll+W+Ys$?nlY<%F2MA6-eep13pUO*P&;Ao7 zTO!xZT5@%g9q*GjT9;mUUHQ!{{OMo{5A*#G_jR4vpEb;oJ~2J(#YQ{bj&~am%*|4p zH^p`N+og44%T8u>-q@Jt;9&i1@?ZI!&<gd(?lv>Rs`KA9&+$*-dghyL6PvX(f>CDO z{1d{O4=&9(!FjxNZG9ZW;sb5ZvN?~1Jvjb4E%&Bw@Qkhkhh?G`R}Z`_vU*r?Ix#&r zJf=0LyY<6QtJy0j&6{*ZUg3|o=iN!mu70$6{7~D1L8x#sXXO4R)w*SCC;j`vlhD`t zSZ}7<r+m-pPkz+;u$C%xm-*!WxRv<b_?`Jy!82cL1;rAI3XiCsS^k{;v+(N)?ROR4 zG5A${sJLG?rS{tHfBsCT_MX+SZK#zqdq3snhBpjs4S8q6A21b&SuoG>{`ZcFZ`#Wb Y@y85OmXvM@N&uCop00i_>zopr07r*qhyVZp diff --git a/src/android/app/src/main/res/drawable-night-xxhdpi/ic_cia_install.png b/src/android/app/src/main/res/drawable-night-xxhdpi/ic_cia_install.png deleted file mode 100644 index fc3c434b0802be5af58f6ad39ae560ef6077ffa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1168 zcmV;B1aJF^P)<h;3K|Lk000e1NJLTq002k;002Y?1^@s6A}@11000D6Nkl<Zc%1E< zO^8-i7{`C_IBArNAQ9=)OvTU^8W|J`1vA-~h2uvHHzGoQY+Xo1;J#H<n-;aIs32(3 zrW*UOqU;N*&5Trt5mB!LnzNXkC(iJ^@y>YfJs<DA=Unvs;4;J9GtYVM|DNZ3Jm=hw zh|mJo0nY+kfMMVya18i5wQFq<=uY5$;Kl`ip9Z!8A0+Z?jy4GNA@E?yz3+jIk^Py+ zP|C`+)vT$wzZSSBqCc0ATA-`6&#Ah9bwqzIA+<pN0v9XpU(_<mNG(t&as5_O3)FhD zKo+t<7P3GVvOpHHKo+t<7P3GVvOpHHKo+t<7P3GVvOpFF6{w>*n>Mb>JDO`6$hScR z+5x-`d<wh<Y#zjsn%Mxn2pk9A1NP~Q^vC3+1FmCI%zjT>H;c&W5?h985xLLP<~9+T zEwJ@U$g_rsGg9$DhJy(O8WWM33VVBepEo4L9=6;!P5bEtVYM50%aY@M(${E+K+7D; zyc}61vw!xwLx+5w?=y!8^tod>BhtYD`@W0;?>LTDW<Z(su^%GP8^8~aWlgvp2&luA zT@GQ@;}76f-wHwmn$jWujAQwi8Va{3^kuoUobwunzxh@YIuDuz9@3vKm~cBBSXU8a zItOzRrwcqDdJtleiQ-SdR*$#xLQO4cr$<;#sW`_&D;spFaS9mm2)98yZZk~3=@C{V z9)n6Dbu3mVJj2a&+=ujcQ~#ohvWxnB9MhKLB2KU6oOJZ5oWP|<(RI6s{9>79_p?`R z{9I9{D<Ze(?7e9DQ1(Cf*7aO2aqLPj+{S^M9RBBd^L~H}6=lu=qrg#*uo|tU<tR-Y zpjr>S3#@i1JF6m<g;{S>=h79J(P}&Jv4^i#nmS>&N>7fhY{GZ}XMsn7FX}ej<Pp5p zI=n7CdssIn3?Bf#X~KAuDc4Eu4<;I{qpLIIM#Le~Ax;x+9|5=4Y}bU<Bfyt6+nq<O zQ?6@tbgL`e&TClJHd>VtYgeN;nXDt+{?-n;adAj+PWm<tx6sk8tKu{oR{f+nNFEw) zjgD4jq}VtN2{#i~kHr>;#GfL#hFe!R3ciZu*F5?Kx*pgB{G-XGnF#gUCX+G4$}D&8 zQXRh26z%`3`NJaeXWxqWgoxZ-<4V8k+8`nm1*`JEL}W`OAMO{C&-yY3CL^#<bmQ>3 zlC*(IT`Z5};K~K55+ly$NOhZraIQpyr-pQApa|19)R{-F;#W<TOlz6Zh<%Pp{x2=L zcVxKFsUlXy@o|nxo#QM9zKvLK)jrt`!;v~;SH=_6S@rxEZ1bR2e9)Q@$tTP#WPvPX zfh=T!EM$Q!*aT|R6rd?8KN_|PG}ZdY8=T5UVB1;UuHUUMxeUWm`f}T)*aW&muPc_^ zNn04oB305c;#|{W2UD}u2=wEXtwANHOitS5p+5nxZLy=N*xF0ln`HGfy3;V@d)WFi iqW5{%?{f#dVEjL{8e4%2#!XHD0000<MNUMnLSTY|5h`y0 diff --git a/src/android/app/src/main/res/drawable-night-xxhdpi/ic_folder.png b/src/android/app/src/main/res/drawable-night-xxhdpi/ic_folder.png deleted file mode 100644 index 013600d1f2243a553dee40745de52262902f0843..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmeAS@N?(olHy`uVBq!ia0vp^9zblx!3HFS+2wl~7#Kf!x;TbZ%z1lfzxS0wnd2Xy z*ZvK3X$<Cj=M=!p8aR2<B?YT(t{1L6xgXH$*!z#uiPdp|LPwvTl4EDnjaxUSM9ixE z*mwSD<-NPwM}ODtfAxCf9p2})_rC9Wzy9IAuvJ&Jc-tBcAMh1${@|6Vx@dT$I>x78 zzhS0u#reL~{8#w*Fv&gL@J`Qw@r?NQi~s#~FN7xW?U?%bmh}OP4HF*Ea-X);e#R+F zza0#FSo5Cmc{lNhSc!auPC?uH1I!6~4@gFJ>ApxjXw0)D`Qp~5=NVc|vHAyP1Yi1E z1y1oYzYspDF>jgh(d-227nTc8cZYquELHgOqwo)=H75Ja`W)vsO3TVT+46(0h9z#9 z{;TzC4&T3&S;Q*Al-BtCYvY>*8J~D&sJu;@f9YR7`_Zfa7HnT|t*TL-@5;Rn=B?%r z9GaN7ZhsFXIr&s9CV;pUFa#R4md@LdFmwB&ZM!yo5w6L87d|cT(S~PcN*Ah+XTEg4 z(<Q+EQuRTcXS>cRse<ig+s_9-xc&3Zg)9A6QdXC-MYFm!KAprH)w1=9(l;%s{~HfH zE#ZItxP(8G<&O2?>s}up?!NTdH$kf6dwxFCKL$UBU^mWxf-b;Bz~JfX=d#Wzp$Pzm Ct^54| diff --git a/src/android/app/src/main/res/drawable-night-xxhdpi/ic_premium.png b/src/android/app/src/main/res/drawable-night-xxhdpi/ic_premium.png deleted file mode 100644 index 2a0f1568fa4085becbe422c2a9c3a1b94750cc63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2049 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 diff --git a/src/android/app/src/main/res/drawable-night-xxhdpi/ic_settings_core.png b/src/android/app/src/main/res/drawable-night-xxhdpi/ic_settings_core.png deleted file mode 100644 index 23706188b6beaafec4fd6c2f604cdfe653995ef1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2125 zcmX|DdpHy98{TH-5Q>x>TQi3oHbc%s5vGQmLddWfGm9;AD8pCC;c{Mb_*RY2AzC?9 z3@gc5k}?!>N+G3EWc8cx*Y&;E^*rzMyzhP8_jNyiyw{uV;$$x=t{@Ho03<OEwyuKR zVJAc(g6y%{U=IKQPY~R_C|=l;W<ik=2wZSvARa-BAPepR01GP`85b0er$7VoAp{Z{ zw$|DKgA#(#u+vAddRVdzK9t}P7ln6=b8-)g3lB04hFMvPThPn|1QB=&4oZt4lA_IM zXxP8JW`cU>7zu;^3!#LgVMliap<Y-Qs7+)P9(n{}q#J}X)Q1|IB2Y$pruv3DP<=g= zF;dSMi89dDLz(FrnHiWu|16lLIMgC4_?(%mt=%6nL5GHgQYd6IBr+x@1`%U`h>QwB zqD)Oqk$U<_eSKX4LN_{=M8VN?Nztl16#wV2#YYE45y%umBni61i3^ORQqV9Maz_OD zM@3){`JX>Q^WTK<B*9ps1pdpF0@eTkNE^oXs5`CnO(~(u!$Y<^acyJZZ5z>v=wdKf zeKV>ijjdA+&v^p5uDAEHor9Pn-$mU>dh^iD-emQwdougjw`C*Pwr>4mqw0!{?{1^{ z-*Ih>vE{b!D{ap#*Zik<OIb{v3BN;qWg4<O{0=`1e(I1DKm~9Gq@46Lx#K?Y7tj(= zX~cg$JL;}!Z4WvN3Nh<T+~q4l>>s!#Gw(AIu=oCqiV_{j^^@OpEpikNrO}6~mi$dz z(g97vEy7Dwk*zMOTCpQ|Nn(ZtXv?-<>uHC(rUR(J4<M>}7v;(23G24Gq|e+_T$!1O z0LHD4=aY<pTX8)qQkg;!kU3qBzQ)mYTyH}#8a+ks`Hs|OZ{_bBI%%({s>XL=PR_iY z`^|_X*B3Ol4M=hhS4Ye9+w<DjGkSry^9<Q1e=5VV*w7$fdA>VPL5q;uiM?G&IbQA` zkGX|+PQ0ITNv0J(m}lteda=CBKuwoS3~E$bo206vm1qY`ezoe$d+k06-l8S`ByEE& zcCA3l!Py(b%95Px@Oc^L4XzHeEcLU^WktGipBP-YO7Yc~pBBY7>1A9~UWr!$D|Yxz z<J1hGQRJhJMvg2qe{R#Ysi2IZCcKo9mhG;c(Z@$s?+z2u5srKEwd(2*WkuWx^|`z$ zrXRNrg|5+;F(|D6!hFwNMOoCq76A-(v4;>%kp!XAl9B2#oVF3?4n~H8jaliOVk#dl ztx<nEw@2xd^Tf0$2Qmsa@yJATL%83$VH+9?%Smo`|FHls?detF&T;wmkJ~qy+2!jM zUO<j$0$9g6XI0V{lG%lPe)cNXf26+F2U7;;D{vsj8;;l2tA{#Cmpo@s70*P81(cdv zzk?zgm6Vkb3?q)GP4$Bl{2b4!TxfdtVf1a@{tEJvGv?g`vjy_E!bZ!>R@#&RMD_fF z*;PqsLYf?T?<?u<KvS{-+t{VUczF6ao2PjJ+<fH4E)(fV%mYyq^WoxDy1fuJ|A7ci z-6aNP<h?EVL*7g5wy?tb<#i#7BpKZtO%^W_cj%WPR!zy>sB_f;3}p-t?GI38i(eDr zfVZE&?%<Tq#v{5V5!11K;kI_|NXBTB-3WLlUDTPGbCw<3zbG*=^p8q^+{OTNH71(- zQr=LaX#Sa*NkGF|v3wI+)BZIf!P4s7C<)~$NI}^t+O2`m06)lTQJ`9LeFip2s<oI$ z?A&4&&BhRAuR3|YRL<gd$T#_AUJN!Y?2$%NbDhy-q5yw0+vH1gN>A?KnNi5n^`os7 zOX+ohK(`W)gJ2x~!VSu^sy7phzR~+74sope8N2kuVn|smH@Y*si*WKUJaD_VWqT>B zZZkp4+1E?Lw_L~w(8*rUJ<iLKPf_qWR~u^aIk`bTp6SNEM${?#xFl7Ytv1*SD7(wQ zmDA^ryYu_8b!xte;xg=*<pN|Tn%Le9Ea4#{S~lh$1gaEAc_`(jIJHDMG8Q=FUD?Zf ztQem<;TP$rLDc@w;%~i&&|IS2(J=r&t8nXzzIg3?Sjo+-b74u0y9MEzYcmsLahwsk zN?KWow`TR<se_Me8LU|8?E{NpFUB6pOP7Y{d`)AOt6Xr-H^hugORsb+<Hq8bV<nnZ z6;dE84P~h>Me843@y6}jMzbG|Z*r+zRPKrspgd~dhL}s@Owc{=zewFOi-YlBs63M6 zMM(26pk07X0?ZP)C4NA5$-U{WM9G3iIr6-6SNY9vV3C#A<I#v@MC7m<4{|1a-iO$O z#JJL<xCyhw0T0z>dV^+uJ$CEKm5~<9x??SYlVfTa@nJoYVw<vi4_T~|X@%#xVHGRQ zr(Nm(U5lD^g%^3}Yx3a2p=eJ<o=<Ta-tENfNCzif7nKmJ+&v!VxF}=*`l=3c)^Lo~ zd2MHofF$M?vY^#=Mc1yEg~fW8n&v%q2zwE{to4wwfOWO2-8?UL#j0SmBF#UG1-z&A zaxmNYRA${ht?@^BQrdy<g2%^sQ5IgdNFRERa@~}7z*i*ZdoL)L^_ydFEgt*qdAB*d z4l(>j^}YY}Pf5&$j?4;;r#LY_o_B-KO8#`tQ<z7roPXX6stl4Jm}JNGuX4|Tzoy?% zjQ>(nuk`D<5TUuyGrores;poOv;I~~b$2Ji6Iv(N4jct*-Oc<VrQP}szbjjV5-50{ zBObRQdqad?O*d&4`lPkXF&pT_<+=>l>csU|z#p;)Rx~>#wH>~{XWeqC1|;z{IET4~ ty!RjMq*gfLC714l%!fWvPne5-I%qQ6lix-gFW&hDV2(T4)*lN<{vWu>#l-*s diff --git a/src/android/app/src/main/res/drawable-night-xxxhdpi/ic_cia_install.png b/src/android/app/src/main/res/drawable-night-xxxhdpi/ic_cia_install.png deleted file mode 100644 index b4d1b92b754f4874ae4a465328da0893c0e8104b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1433 zcmbW1X*k;l0LK53Af&V*)LPL;kW^`DT4&~%#MPE!i5|{6>%JzX6@rq4HUx90st2V9 z-CRwTIEJ~+MrpKKXBbK}O}1e6eV_I`zxRDVy<dL}7iW6~`6KcG04O**5Zw0HcRwCb znf<<_Lv;rLX<tXecf^G9HTFmp$rjPuPSN#qO9Aa(b@Y&L%p_=u9&T4Zk8}#S_5h}Q zftT)~v?ulZ-BVu0$KlGn7UEMCNru`5?On+Ej9PjYG!HuMFEe5^GCgT>V{y<TZdI%u zwYe3vUVf`BIB1>iQ<qM6!D~S36}WbQ9*`vMdypEuLe`5%%q9Xk4WhM^Kt8aj*Q8r) z=XD_P-sMg)GX^lY6zZxSUkeHYB+Dg2GC)&$r)9$q<q{YTUoj2%0&}@h5^8PbHks~* z0i7yv_}ktFN2u|@{CPgYylLTtb%Y_P;Pn53k2uvP%XJ69k{u*q0JL1ztCN&HZ$<NC zfu8|y>CZ3U{xQ>US~)^SaUAvnGwF8H{Rs)Iux7s^>%>*YvTydPmF|K`4SLxXxY+!} zbq1&c@wABUD%)TYlv|}5XrVZ(D~HpDv>f5aY4EE;QJpe?EZ{kXo>2svyH(MeT(Hh> z&YSX!p1S2JKUP!T`EB5BsGyv)L#-t>&{a@UpV4&Dy|*?x5YwZ%y$nONOA~?uSRRLq zrQ3fgG|=RRrHXlxh49oZfBsybk4iLq(jQiIh-*9C#%+xPtEtp$7R2)weUx+ew5c;M zWgILrIZV-OZtM6tqe>Ih)=c)o8({a2k<B@3g{Z`g2)U%3nGwF(VYcUcU%(!h1*sPr z5@PlH%=Va2xR69tzWHiO?ylsuSjP#%?`Sbo{TSezy#Ki!5n4qnV;g}Iz2>7nmTK8$ zjg6W`GTROgwp+2F83Md8M`eilM8JwRon}M_6P(_TjG=8!OmLMftG-W+{8-CbQ|b^4 zb-<Xi0c~|Qv0rZlB{IO841sIM?Lh{;bXI+LT?(FbrGr0VN7(%qw`Xnb9aUQl|2q@6 z_<gE)=F#vMorj+f!In{b94Z#J)P5|t89{P#)L3GQY1CGvq-p0e<8XysatADeoY^us zPo%haPt%2J>Lt4AnYCGxv|7wU@GF1C2&UUR9PzQBvf+eZAui}c{>9q+*U9gna(sv8 zLbH0iaxsXIrt7B1`d8DKF>#N)lrtO4a}KBmA?FsC8{EWQlH#X!ih6TFBKVi3tO4X0 z*%EuT)U?YWjKnbP$0Jwf$w8h5IgPXn@V~Hm*#g$bPrSNU{>~)jp4eDRtQV4k;CcbW zP@fy+n53UjlM8(N7PJGyaM&L|#S-jNwRorZloHttPj*hJI**e|dob|gDt?&d<3dAX zePoR7uh=JdbRHS)ilP;5a*EFNbX)M3N=GB7Ohv#(jsCOUG7mF4-QL4$XX)_!niw#A z%{u_ocNYEyw*G*zW9l*7FoitBV!bJ&FW<Ed=iv!nMQIiE3HVrzPUNyWe5SYr+TK(j zkJZBUPDA>yp;ms7^9jixeQEOWXj}ydW&WDmQ;zyTVcrzQSFeJ35Me~bbbX@tsP;}Q zqH74SoRfTY)K@wDD0_0?MR?q=2D~bcKx2VZ{kRNB${TY^9%iqt43-}hPHt#OJzLR_ z8I5PA!1BiPozKkk>tKQJ!J*<Ps}ek!n2JSH|C>Nau}7hXLzmfy$}((lkJHxn{cW?j z0fi-zUa7F=q~kZi>pShYjHM@JkNZpg%eWz&$iFTUPS`2A8z(4KRdzK;lDZcQXs&AK zw_MVjv(^o*NW=R+2=zW{-WhEDHKsQ_|8qz*rmr=Dk01jnAi{Lhy#Pvl$i8v`M_XsY J3mf0Ge*i6Kna}_L diff --git a/src/android/app/src/main/res/drawable-night-xxxhdpi/ic_folder.png b/src/android/app/src/main/res/drawable-night-xxxhdpi/ic_folder.png deleted file mode 100644 index 166bd052df4b1a63528452577279b1a565dbb003..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 657 zcmeAS@N?(olHy`uVBq!ia0vp^2|(=2!3HEFS0!FxU|@>yba4!+nDh4TM(@x>nPVT< zD_u!&?%v|ntk4zoV3G5M5P=r2WXD{y*2ZS%W<}Os(@^Jn2Pc6Qj^FrqNQ4MARr9`D zGNtqp`|}G=AIUztS3U20$-MIwg6H4wi$AybdFh9@CpYzowKYUOU@~C%!mvO3Zvp$! z(sK;+8+IS4<Gen_Qu9FN1J(k~#-H07I3Kt(Z7y-mzpTHP^Nq@;ABj8_^AE_xUY2;k z_d)BR<no5CEYDtaJyL$5v|;9tHQEP!n2Jk63fXPe9awX@^WMVTPKL<`o_3v)z8~l> zJY#XP(t)X6XJz`A^$X2dtgLjPg7tYEgBVaESMWiMYkED$9q)v`ZAXFw-dMD2|B*}j z_x`|2mb8<f=KhI%puS=H`R}`~)~PYou(+L`zqPFF^WJOi$HZrsAG&7Se8BB9a|`nn zeL01BBH^VBy_FBx_!PFv+&{>-K)C+f{8EOs*?bF3Uok{6^DX##nsJK}yFf96A-#x= zaqbtoj@qyL%+&GKwIP3N9Mjrnjt^VUX)AnFW!kg)t5C*TarYTH&yR;iRz9j&ckmJC zi$?K%CEkJyKgw)OKM+%UZ~qnP2UhAbPreE5h~52E<GNPC)*VTo)pY*t|Ev4pg?${u z(%-$^{@sgt4!`{4*HOINt)VXe#=l7U0*)HCdrap)3!DC9`p3{19iHNuGT|&RsWEuE L`njxgN@xNAlNk?m diff --git a/src/android/app/src/main/res/drawable-night-xxxhdpi/ic_premium.png b/src/android/app/src/main/res/drawable-night-xxxhdpi/ic_premium.png deleted file mode 100644 index 8d357b22845f1af71ccf1f1d64211f3dea998b0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2614 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 YA4=f~i5K>1qW}N^07*qoM6N<$f>n3_dH?_b diff --git a/src/android/app/src/main/res/drawable-night-xxxhdpi/ic_settings_core.png b/src/android/app/src/main/res/drawable-night-xxxhdpi/ic_settings_core.png deleted file mode 100644 index 32eb4faff6531285cac44352ce1a6203a4f74772..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2587 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 diff --git a/src/android/app/src/main/res/drawable-xhdpi/ic_cia_install.png b/src/android/app/src/main/res/drawable-xhdpi/ic_cia_install.png deleted file mode 100644 index 83986940130f8813dc1a43d78d04da476367de8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmV;B0&o3^P)<h;3K|Lk000e1NJLTq001xm001rs1^@s6Zr++~00074Nkl<ZXo2mS zy=xRf7>A!638V;Wz$T5AK~WGzkYGSWNS7*qfSA}?S%?T)ND3iEibO*~K;b|xpcWDc zSeQbzi69o~Ed2mK^NCUKk}xt8j?H^>d&xVuyRZ*TGrRM?zu(T>?mKe?<R<V5_y!Dz zOca74U@OwDXUV{vU|=CcqC$wEz?#sv5h7720~MjK93oLD15G10kTki0q{$5=O>Q7* z;u^RF6oDz=R6xz$z&P+2=+_F`7b(ihw$DdNDCXwtj5!A^N5%|j7?>BtY}#3=MWY7J z0;|H9_w~fZSwd|>UkmU8xEN!6Jx&8JfezumR)zTgr!o3uT>A%H5XQuv0rPwM<%xe) z!+_z2C&?e6cMk?m0^dDxN3_H{Zh4aZ270RQovCBsIPldIZ&X{n<Blikx?RtPr^5Bu z_SzBPizm)lDDjTFp5#A)!@zCf+9Yrg_~02o5n8-s*dyXCFe~(%H_aQ*xXEUTcii)c zX|zo@TfAdLLHxs{#5+d!A-<Tjc*oct#G8UGRorhtd?{txcbJMH{z*!-)@0fv{#mG` z$AHVWtkvL=ApW^h>@&a>;DqZKw6%;&G^muQSQT?tDQ0z1x#4zgKO#@c?6?jnC46PS z%o=nEv-+7DwaHPXq-I0Xt`zH#uxndt6^^|tibvsP#aNqm169p>elC<Wl7SZ6GHamX ze%&c!Mf&Ti*0IHT;G^OjWWW5iZ=qd!B?E1C_ml|=Sz7NB1-sGCDxJo_y9^sxG|Q(8 qcwnnMQy`g7beb`m&C6vGxV8=HY)DiIlt1zS0000<MNUMnLSTYsk1mJ+ diff --git a/src/android/app/src/main/res/drawable-xhdpi/ic_folder.png b/src/android/app/src/main/res/drawable-xhdpi/ic_folder.png deleted file mode 100644 index 02bc3d75a3114df9068e04b2aa68822e4d019842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^20*ON!3HEfFP>h)z`)4k>Eaj?(fW3#Js+c^NW1-R zuBp-*a~u{4_P&U5h;dK~3|yfS)#|70)yll$i`P`Ar3(sp1fQtxUic+FeZJ?t>3h=3 z)4zW|d&Vr^$Yv#D?gFM0U$x&WpMTzHdf{h6OwyNzY9~`~>l)L89}0ahi9}cmOpsct zT2Q2-aJ5`Eu5O=kK*5h**#gEx^7j-cPh{S7KrDh`_K#(!MGGRC7l{fqCMgxqwflPD z@&iNX`>bC3xKnDxcl^?8;LJ#7x;3N0Ol?6gI+Mlzo6c6w<`v~H-!gR^c*x&Wb2{*t zsm)tIZ`0(D8`~c)7y9#c$|ly5#-b9Z%HNycD&3Cdv-oyECW6U^;nJT^em|48`T>K7 N!PC{xWt~$(69D}tg?9h| diff --git a/src/android/app/src/main/res/drawable-xhdpi/ic_premium.png b/src/android/app/src/main/res/drawable-xhdpi/ic_premium.png deleted file mode 100644 index ac4b19ff4221bfb6e731b04453457fcf8e898f2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1334 zcmV-61<Cq}P)<h;3K|Lk000e1NJLTq001xm001Zm1^@s6xQBUh000F2Nkl<ZScT1* z3y4)!6o$W<xxO1M6HR+gL_?zqY6Ue@WJM3MhiOlOsif>hP=Qz!HIbBAAQkk$GP4PC znkcO)(ZC+Y4COSvpHyo0P}2!T3mYd^{3mwXz0W=O&Yj60F6W$m*4}%qv)5khU;CEz z8!(U*j0DaHjsdEH(ZFutC*TX<ePAiDC2bG~r|DM%90CjlegnP*J_D8kA7vctAH)nW zMehXafx&sk*aj>D<^n%PWUdBo29C<0)9b(kz^V+gK?9}(j{zgH4B+5*;1=L%r)>i8 zC~!i7V;SZFv+@a5ROE8*^Nqm53|~D2`x55?gMgL5$-rv4N-?Mfjs})wHNYl+w#dm` z)B$6Fdy4!JE^0K^t1*GZh4uqB=<Dr`m<GHQ(yLt8xqGqlhR1>ap%>;t7AhNUHTqt! z%oqZE34G#r$jSH1iyylr_*uX0(#i6}p+KcG_zd9rkO3$CPfD)<mg~9>=ycwdD~Vd( zI188xoB|x==Nj9@ZNPDTsQAmkg9@=(F<2|`4$$EnuwIt+HZ}q`053-786riywHkkA z(I?kO{{NxeV6E3aS={JU#ruQR{vGhOXob1iSFwR@1=^MJdkbrn-2QOJuM^ig-J7#r zD=^7v+X*ZN?giF|3}^-}=q2UNZN>qcoHq0STO;!Q<T~AfcUys(K$F{O?(;!ub^Z^g zdde?JQ64dZ%9MB3|4O&9Tt3ztuw{SG8TVn}!pJ;t08@a?qUUEQT7_V2_spa{;X<DR zV@qg67jT#pvn`glL}c#=Zqxk$UH{beF5vD!AEWM7=2l4rnpZ;Q4b6`7Hpi0@xmGD} z;qy)42xZ`<;yw-DDkc~P%)tqvivl68Cs^q8y)-4yJf~}eGHs{I({mK15RnVv8eo*0 z1FkQT@}|UFo&hoZs`iPxn(OS+eG+2ZBYi6@db$R*gve46=uqrNOI@2X#DUJ-C<5)) z{dl=jYy}LH{VY5qlq?FwI!D}cz`iNn>veqyctUhyAGHmXE7hg+ul5bFY<W=+4RBfI z{&{34IA8c$MZ>Ph#tmUahzGSgU#1xBa{A;l^q(n8T`T#Gy1!iaX()>kIV<k(DAItT z&i%HGeT>k(s}l@!xlyVTC+ZL_h8<~4bWWZP6vIfT{hJ7{iD9SCqdr$y-Qa}N5Z30S z($^_R6oT=N><@kc;^2GW5s%7P1o{OS4m_o{Whoz_HA^jUMeIl;f-0ToBzPqvXU5$G zT;{ZOE573-zwIdoG-oYlruj5B4=!<DFNla*8C#~z`?1<`&hbeyUv;GDvQoI+KUz#f zld7gk8Dx)CY)2b;P#~V0qW#5z8g-!Drh1@D?u*>4hCOky<*Y&sKu3I*U60QrSE*x? zHF{p93H<}(6U8jwmaA=%%dFJ<`M_0y@#iNioA3XD7%W2Fo=2urRAGmn$H<@q0<vvd zi3V-t`+#$`l0KG)>VaY~OGlDvX!0_9mH5rLNT1|%Ft%x%w37e6FVuxxtX8>rc8bhc z@tYNT?o_2VT>tv`*s49|kGWa@J<Rqy^kfAROwSOZ8bu9U7!Rt~3XP8R>rfrMz^koG zY5?NyucdIGkO2uSLLDoAA13$MB<1%w%=J+!0}yX%5sz^(JHuWn8l^M<ZBh$?hwIsn sK%VI><qf4az+fxzf;g008<!ry-#$+H^gA!HJpcdz07*qoM6N<$g8x*0U;qFB diff --git a/src/android/app/src/main/res/drawable-xhdpi/ic_settings_core.png b/src/android/app/src/main/res/drawable-xhdpi/ic_settings_core.png deleted file mode 100644 index 8cff45f84e7b386285ac35050516d78702c96cc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1029 zcmV+g1p51lP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru<OKp3G9jCoMHK)51CmKZ zK~!ko&6!<j&rul1KhM8yHt*JE7G{`Iqa|DjC9JqGQ4-}sG^Mr+N<@+yDKU~8ZX|Dc zSt~b8A&Od}gvjf>G)rRGFg$LK`p56T-#O=ZE`Cp)R_i(6=lh)B|2%I;RF#k-BI|($ zU^wu@{JS6U7HCq{BSGzjbU;L=0c|mAGgS3fD4Q9=%2ErR`j7@gJ5UoyC#(Y^k}o19 z7OG<{bSg!pFvi|E5h=6sKvnx(z(U{&&<&gcYWmRq2&ly>$+3Sta2EIlbOEbl`Nfc5 znS;Q_fAp$=CQI@P90n#t*!mQq+vw#$ALRe86Xxrj0)9J?&tB(&`M~ZNy#^--3^7gF zS{cRlzdRr!#lRb&kaWpUpiEUi#6_V&DI^b&2Mo4~LO@Fje?nJX?m)Q-WodGt+BFKT zN)h?(zIk9@0;BJNduDYez&W2JkySey>jn-2wLt$YoFZT@upjvBh&eNf1Fa5*T7a<@ zrAY;F&H?v|ZzisCFtR6(cm)0~2mDFa4gmSUFyN>qc(W_{EL$fnZ5%f_Kq51-h)guK z&s1PCPz(&PNG@H#2vzOz?BMc%cg9|vd;vOu2f%&cqN-j4s55EWCqnG>J^ie&uq8o+ z+63@80l>Hb4vb7t&3??75a%N=RrOiY0!LNfm_ziD?-`)SbMvEsg_<u`Z<40|dq4+% zBx&jkJoi=xbYP6<zJg4G(aJ;-85&?1*58C~uO1--?DgE74=f3A`il}YP&=}F-~+&Q zlURB!!`Q<BVf3y;*z7X;hk)8#r9>ex8n|Eyx-|j$4VE@qO=UdTrI?%Ta5Bq0$k#dG z*ZP*zPaKRiIFMiOfZLv=A6Vd++Ajl(f&2)pJab_$Ibts9i(_8QEuZ5U73P`sT14&u zFS6qN6mz#+We(8nJlq9Vq^PN1<2qU_HR(Mq4*Uj2MRCoQg?E`ml@<}xA;$lNOedDM zp;pe`IO+>1@Rf8*kL_%9c?wUz(RHlS5CeG1lmc%Pka}k@j`@}=afz%k2jI3Woq@nw z;D!V7o4`6?NEXiKI9tvR7~r*LWT=MZtQ>kpz&A?=%5z{$H$~(xa}OKi_*uQwi%11f zs;akR^qyOEY8|Rt9{0=&bgOEI&8vsa<e(jBx0zH}IPl8Cp7pdN^h<r4g-*z6MsNp? zTj-n)YB6a`7;zEnfv4uty3>Tp59aUg(DwcSTpQ9dBBo+l00000NkvXXu0mjf1w6>+ diff --git a/src/android/app/src/main/res/drawable-xxhdpi/ic_cia_install.png b/src/android/app/src/main/res/drawable-xxhdpi/ic_cia_install.png deleted file mode 100644 index e6812f0d48724cae80aa63a67070b5ee5f5f14b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 967 zcmV;&133JNP)<h;3K|Lk000e1NJLTq002k;002Y?1^@s6A}@11000AyNkl<Zc%1E< z$!irc9LGOT>w<a^6cNR(R#00nYF#RBpr8mU?gtNw3U2>_2cdY?oAlzvgLtVY&r-4K z$?c#X)Z&VQbP<;d)>?^X;PKv@WHK`^$$QNQey0hUU%r!Xl1XOpgvG!$;63mOxCylS zlALRn0Uv;ok{ATGjBaWEbE|?lQ9Sk`L6^)1-YEq70jzeJ;26gOjRP7q*C$%crwrEu z{RV~=*N0^pXSf!q;Q0PpTnpqqK_Cr5APqqv4M89cK_Cr5APqqv4M89cK_Cr5APqqv z4M89cSp_P{JsTh2$_sL@DN}A)1lk950^Pt>U{#hxa;62i4BVCn0LSEmv_^Z(7U>DY z1m?(-jJPe=pTIi9I(GtpD%5qwmN;7#4H9wMpsu_H+6xRR>N}jGy~bS92qfZU!b<ZL z=wM9GDUMFl#-<sArY9)VVIWc-2wPoGFd$DgZF3rd?k6nQVQ9Cs2wUAqI9qkgURG7a zQ+SfVW>K6{B$L%*2NKvS3UQ=8uj-FW(iC%CY&s@o5onizINw~H^)~}A4MaLyp^mfy z>1M0q=mR!c(4!&?fj1d?QW}Bw8}yt3pv{#y5sM7%Ry=T<3bfnMRx8~|QjV$J&d3_X zp!rcz?ia9LmNl`}fJ<A&A?)_rK%}Fxp67}({lHwgdQaMO`hBof98DU_ls4oD@IX=K zEpQy@sYP4GVPd!F>kZZQ;e>UG*=nPol9bbEXt%5(dgEH(M9^Wnm`odAffasB5zkWK zMHR(yx(LjRM#IHq(h#;<Q|sbHm@X#kVzx4+IVZdI0vl?p>B(7;adzvgCtJml)^0UD zTbW{Nx4O1f97*lg=gXPfH2G54X7P|sx0tkPtFiJyYzJnRUKG21pNkT^XK{<NCFb4D zrme)5%H5(JgMN7$`;YT6Pfv9J8I}^9Ut+gji?(W&>#9l`91;bdDY|&Or6iGd8<h85 zZt=bs6zzZ5Ah$K+DDz?!c?IkM#siNm-dA-_HmgByWBNjugFIC2AJm<!j^vz7tuYe5 zFw+nO(hvmF5CqZ?1k#`r$fqShwNU;vtP|*q_sz?WvJ<HOSr_b)|E*7`LpzE!-gjWL zs*p~gB{D`WVUX4^CWxe@AjFyEae}UyA_RImx;0SJQ;?fecYw(rC+doA(Z|<fWBi;v pX&AEcv9+f}zjukx0xtqxe*tO<mDk!ZLZ<)#002ovPDHLkV1np3wekP} diff --git a/src/android/app/src/main/res/drawable-xxhdpi/ic_folder.png b/src/android/app/src/main/res/drawable-xxhdpi/ic_folder.png deleted file mode 100644 index 05f42961492978a54db21c7a726d38b43954183c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 487 zcmeAS@N?(olHy`uVBq!ia0vp^9zblx!3HFS+2wl~7#P=ix;TbZ%z1m;U)v>6=Ge#e zAJtDD>T2D)$U~Fc%&BYd+D}Y-*y9?uiYrJ5ojMezxin%zZ$#9lg-`5d=dSLV`8y!( z*@K_g*3Udz^8B8EdfK}rKiT=xjLRAv7qC_^#d+;{x4Sjj<oI#cgwO1Kkyou6o>nkU zooAi!$o%0JX7<oSC!dK)_&>O{|4P)<!c99_*n*Brt`+n%d+y-R#FrYq$}phq%G?$F z)|?EjmOb_&o>v*Rs1`ZZ9uV8WafhK-a9xn?@$VUZ_7dp_>Q;WY@=9U7TD7hrH(`^+ ziwhR=YIh{gOM9G;Ik2+Zp;q+In*Z0{HLg2UAAVvb=M2+;x@5Lf>n}SfF+csDqcE}2 zg-uA(BZV?XNXP$@(p0Sq(WhbZ1?z<E4n}<s=$LI0^U{y$!mh$o+Z_K)y7%>7kAE@G zmb9Y12U-K~slN%A){6`KdthGSy|8luZ9z5sBGayz7zlr#(Dr`Car>I}A`Y(}e-2Jy gjp*IIk+Fi+=}@5zOG=tHFajAoUHx3vIVCg!02Hyv+5i9m diff --git a/src/android/app/src/main/res/drawable-xxhdpi/ic_premium.png b/src/android/app/src/main/res/drawable-xxhdpi/ic_premium.png deleted file mode 100644 index 63f162e529bf138d38907d4b3b4d0ef6bdbdcd2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2096 zcmV-02+#M4P)<h;3K|Lk000e1NJLTq002k;0027(1^@s6*jvmf000N~Nkl<Zc%0>% z39wdU9L9guCEd~{yFwxwbY-crr%<*j#yZJ9gN$`#iW!W38Io<r5}GVUmXtL@WUClE zAxa}lWGU&U%)fcg%-iWb=e*~9%e_s{%$<9_@4VahocI0jr^!0a*CQu31L}Z1fGza5 zA+Q4Y3789f54;C_1pJbB0uOBboq?V}NBwOKGy#4CzSF!jH0KXxm~$m+a<n}RI05LZ z1&3fB@DeZ<c(K6x`T<7){ejH``z!<|0b_s{3e33*LUzzTz;(c0CCsxNcni23m=e&w zkLKLHggFgw0>go+MF&VDs2OlOa8}{v`C(6X2=J%pt{t0efYZu6=LldJuq1ECB!V{A z581yg%Uc~^0H*?PJ9p}IBsQ+loYR1Vfxq)~@)2Z0_jzE)vMz6R)JvYd0UQd92bx!S z&Y8df3G^T|YgV(0oHn*50J~Lqq38(j3H&a3vr!f1+*I0djI?eh;slM5)~FUb07n8F zRB_JEK)X;4=N>U5=81|ft#QGQ^>bM(YU*4MUrUIIaEXq2Dk6dg13emaxz)$MI^L;> z2pX`KkP^q>tOh2bx0AYE)A1j$2v{tG&>ns(pk<2r&<ofB_&klEU4Zr1Kyu7|c^`NO z_yqV8_`@N|<Vzc%7T82~-LAmijxpLnu2d#LYZB%Fqhwfq1uRWjyX)0ItN$Bl=M0e( zY_`}vX#{m%L&&imatm;8sF9a|1@iVMiJ%_ZZU6b2n;kS=Td%RgT#~DS8;dxbrJ|;h z%b(f6@xZ$o?V8Dr=p?xl**8lR#Iu0fUqu#BleD!O0W8oqC?z7<Lh_@p1Z|x(mJi>H zWE=BU5g!CQVpApA8xx+E5tk%uP6Ey;=u}%A>M7uQg<Vo%w!*iKj2sKK9GyUpX`c^( z2UEy-PqFLW6vd3AwFoxZdqY-;rD>k+Rt1<{b0V<JGu1E!*y=KtF-s)P$k-uv9EU1K zv_n#(rdm{Ez(PIQ1)eqD4_q6#Mpq8i2DI;{pk2Qtg1%7Ds-ZDF!J-|d@N6i4cG~?E z*r$UG&tCBxQ9NjTh-X_t%+TWEN9zh@LbC9?h#U=k8q>_%>e!wckgl35g*7Km&>3mw zb`@|eFfKMt|B!$d@GEct@Nq`FE>iIwGupkZ;QmS_5rsR(Nw_rx%-MW0HgB!miY(Mi z<3;3{upQ|1F}bp(uD_PindZA04g@ZYK12kW7yM`g5j4tkwCp%+AJF#>;5A)$mX<r) zxqq$%a1`@4wSQB<xI?1j=!RTJ0^bC5E+^*8x^-a!^Yp+u+?{u|+zi*HSSa`7+Jrty z*jf*16@nHht5Ho%mK)%rcbZ+|V6o&6QteU5c)8Oiy6!FVPzWSMoR}P1uW9VdJ0+y5 zh3TGo`UK8h?`W&$8HE^Dk<wMy3$=5zV6_N!@j+K8+TT+qc_m?UeHI(Pl{8Wa+NeD$ zfw8f+QAtc3Ep-HE>34<5H$%_(4nn@pr4=Rz8F6u$SC=z@=Nfib>3`dVwg*ap56V%# z)7?i9(hg>HRT7Il7W`Hrxhe-|IfT3~weA)~<f(u1Vf!S44Ce<JU!`EN%nKJuPd^De z=|M(BSdrFcPTP4UuCYxTLH2Y9dwxW@@NZ1xP=FxA;mWgj^4uG$5}sEIu6f-wf(#$( z%vK`m=sQaP6dbFMcKZl<=Mik(uPf?!q>gnSEYBjyFfk+pSpc<;7K-p&3FDb|Ixptj zwsjtaMG^M{e#|lEq7Z@%kGTFxnNaH(ZxKSn6KPo2xpyD%fb)4q&LWNPLJ2b53S3!y z-K(L!r*icp$2u+wR~#%;sKX^`f<hu8_%sheC_Ymzl3IGo{C-d^VHWCT@sCvk&{q(O z;{*?qyMd1J%)m8H%S#X<>E;6ceCY1^?)iXz|H_y>PQv%YjP^AOoJ9!9k(r6`NfCk! z7njMg-P_~RObO67tsJ$!G_Cl+fxF8>UN5j*{@kJj87?TpPU_()P`4cX!vTHWw9lhD zcEo(K==v)iMWh^DQ^1EMD)gijg3wMHTH+W!6XG^cb|a4Clx{}0&Y8M)vl=aQ98YnM z)sDX4d<<iwoLaofwFssuJ$z`v{#~@4T^0X}jzRB~er-iS6t^}f`x!aFQ9f+8WM=fa zy^@YTt2@Gc5xUYQD+fWyQJkexzP!7#Mn86Z?EBYs1iL2mL+^5IBaOCHKh8}S&U55h z7peH38S6RO&B&IEAY|&>-!Ta>nKX3Mizo3c?_~K}Y2k_PdJAcZQ+gMXvY|pK=P35Q zWy(0ngt^=OqR9JVS?DJr+dgN%cjQwoj(y)*L~R{7&ST16AW#3qz<!oRxhVc+sY2R^ z7vvlUzYihwa)MqizLiJ*T3TlZ?(PkBvWNM|p+W>9f!SBNs64n(nlX+!+Fc>JvRdbN z#hu|eOl}^eQW!5Pal~BMn?n!fh%-m9ywqI@_j)KOHZbA-B0ZQD63jl5=F7JnnN`+T zX@ZcJG7WV^&VF}^C?A?ggB_!HOtuObuU<(+%Zoi8`YvrX2tqNL(b6`dm?#aFg_bJC z+g(NRtz|<k)9#qBI_jx`F3BpW7C{kiRjfM;BNhB=aFo*y3c-s?+<A+YgiEWGb_znZ z2}0GTvvqu2ExJrr?48wKP#UUz#9Z{3LD^2S;*h{s#;b~k*g+9Y6`K!d!quuds#y~d a2H<~iE0-6A<**X~0000<MNUMnLSTY6R@=e= diff --git a/src/android/app/src/main/res/drawable-xxhdpi/ic_settings_core.png b/src/android/app/src/main/res/drawable-xxhdpi/ic_settings_core.png deleted file mode 100644 index 0b9049f468b4e5cfb3a0a3f3e83db616f7d65381..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1647 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 diff --git a/src/android/app/src/main/res/drawable-xxxhdpi/ic_cia_install.png b/src/android/app/src/main/res/drawable-xxxhdpi/ic_cia_install.png deleted file mode 100644 index 69ae32dc307646b202b0e5d33d472f2ee28457e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1244 zcmeAS@N?(olHy`uVBq!ia0vp^2|ygp!3HFIR2#w=7+4m2x;TbZ%y~P<y<5~#;Q0UD zZU%`Cdtbb}{a{y|OHa06x+8znyepg8-#5h{DEP#!p~dm)Xfu29k&Y%MrLK;3mg+sb zFM0FY$xB;>_<!BAR{l)l&37-WzOH{a@8!Bokttgl`WP#i9<VliW-t@~dR(N}mcgoe zhadBbx9|D7PHu~vGe5R{)%WM8jjkQ~dDC>UhW#p!yQMpwZ-xrKO<3x|#8a$ct+q&Z zjfiK%e7@9r_bts+vucxG_#9x<{xZ>5LezmgG^6p%+35^x7%zC$$FpqUKd|1Z@@f6G z0KZEC4E>BUtOeSt%*NX$EY{w9MUFAzOu_%Jd@~EJC2nQ273^*Q{XS)fz4mOKIh%Ag z9JFE0VEnMM->l5_!(#EpGBUzSPH{{=j2|v;nwz=s+~XN7;nq`ZSras!XKyq(x1TFv z$<x2)ZMP08I;?h`S>&g#)g<|OePI8#r6RX9+8O5CzLF4}X0YX~t8jxh-^BSJO}EtY zG4@qovt~{ZbpE~2B=AZ9w;ks@S>C*VH0Ll&WaUk}MaO2eNHgyFyybSyY%_%e>9GZS zIcInN*qMHJvy<&YMTJjif1mSWsCVjpAoM`DVJ4%}47n{6PKrrOy-+=U{O7TkxeV_L zBo6HqOPOPD?a=bs@@orQ)s-*3e<~UB3M3EjmALMwwCBs3{HjAtX|qphUff`OZSlI! zKR>S&-{{yVb<6MYMeg&z#FaWHSl)mBdt=Ux#8NvYJ$GrrXDnY@xJ7bfu3X;mSo&wK zik!9KcjhyOOq-cpGqiv2KK9w}tH{pBHm}Np6kH1Jif&A(l)50?b67vLBjL1yR=Bvp zPuVAbR?C%6P8MnipQmqgOz?5$!ZX{>u?c<Hnm#-2#>{BmKK*o|uPpNIGkoX1{qlFc z@6WxA`Ojs)tcaX?h1DfhZ05ew-+MnBzhY`zd}I3gnqZGt%+*dkC!W{5(PeRKF_-$e zX~_lQB)wXZrl13}_E^pD6w=Ln{_>B_^!?n9&V5QtHi*traclVwRA=J$hEqm!(qE>@ zD?c>e{HeM0pa_$n;FX{AOpMQPF7!P3S8jSrWbYpjlWHFK){Z}?a`y?@F5_LcXS%ji zS*bgBE^prkjonQ~8-o+Aa?j5?u!HA8-qKiM2ALOXUFR<G`?rd9KRofY<ME9dZzfE> zd!u5*AC(8k?8J`jW0)~x28V6!-c3r3zm2AS5!5K(l>enKqGx&g<R6~@GnQ`o5u$wm z!-YfZqkRv~7GwQyQMY3Pd+_Nu(KBb{rd9mRdw9Ki8F$U*9Sc3<XYxEK<2!b{sK0HF zq2|+<!pGw68F*eUzVo7SNei!RWyCuVFMq42B~ia#FZWKGwl<)v+5hVbro<2i>?npM zW4#yuk%!%HFZG_DS(x_lbzMvGvsJv0e>_aRzw&EWw{h@o;T2pZd;)H)AhayZRbc6| zYh~NQ78xAj_~1~heQdMTsT*Bo60MiCUvH|<<2>VV?eyPUy<K-MxR$V$2>YJd#VOBT j+;ryOy5Jj(e^{qm_s{PA7{3r$YB6}a`njxgN@xNAfb2K} diff --git a/src/android/app/src/main/res/drawable-xxxhdpi/ic_folder.png b/src/android/app/src/main/res/drawable-xxxhdpi/ic_folder.png deleted file mode 100644 index c85074c60a1d59bf44477e7b6306b2259241ea0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmeAS@N?(olHy`uVBq!ia0vp^2|(=2!3HEFS0!FxU|<sSba4!+nDh4TMlYE_iMEH= zQv<n!mu!sJVd?DET)T%sTilylH@H<-M<+-^#r4z@A#Qz#4FZ7|BbN9oGEPpI$bCV{ zbE?usUiP#AHaEjJ=gQBW`+ng5+A|;a@3zQ(D7om4$_2KxhC+os-=598{@rWGIpGH~ z6^wt@JeU<YlfkbskENK6=X&N(?}<A9-qrLZ=ueI4Ecp3ThUeF(`R;rE)RZaR2)-|) zE}(Gcn}S}w*~F*MKkGHk{d(o~5vG<(V~5}A`Ue>juPNP#^{??VahNfErGCA}?_-vt z2lxJ2U+_QtfCtO>OJ~b|iTq&xbK;%8&B3`-{$6<AV$Y~~wmf0ojz4bq?+Z`MW|Z&Z z7vKxn8~Px(E|mSk3x;lshAVDATHi8QJv{#}m;J)5a)z~;>=&efR5tsCS5^%(m^&=# zMVQJsYU}*ZpDV6#jfYV$doR=4c*O&*bIldLnX*`{`pUJ1?{o5+eW}O8B1;c_j9L4K z^Tky0_?=%LNoKzPD}PRV_T5dlqT~GTr~hBrA7ydo?RN32(_e~Ak1d<_L}LSw4#W8d t!}`SPEotA}{!N;DdGpM<D+;-Pu*=W>A7-NDT?0%g44$rjF6*2UngDBi13Lf! diff --git a/src/android/app/src/main/res/drawable-xxxhdpi/ic_premium.png b/src/android/app/src/main/res/drawable-xxxhdpi/ic_premium.png deleted file mode 100644 index 6f1550a1087834d2920e9821fc1aa330bc46c9f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2654 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 M07*qoM6N<$f|B(9=l}o! diff --git a/src/android/app/src/main/res/drawable-xxxhdpi/ic_settings_core.png b/src/android/app/src/main/res/drawable-xxxhdpi/ic_settings_core.png deleted file mode 100644 index 2827a1777face21e079f802a8b76c4ce1bd21bb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2093 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 XBkJ97^-|{S00000NkvXXu0mjf-5}Lk diff --git a/src/android/app/src/main/res/drawable/gamelist_divider.xml b/src/android/app/src/main/res/drawable/gamelist_divider.xml index 7da9dccce..a1cec8e41 100644 --- a/src/android/app/src/main/res/drawable/gamelist_divider.xml +++ b/src/android/app/src/main/res/drawable/gamelist_divider.xml @@ -6,6 +6,6 @@ android:width="1dp" android:height="1dp" /> - <solid android:color="@color/gamelist_divider" /> + <solid android:color="@color/citra_outlineVariant" /> </shape> diff --git a/src/android/app/src/main/res/drawable/ic_add.xml b/src/android/app/src/main/res/drawable/ic_add.xml index bdd99f48d..64360e8d9 100644 --- a/src/android/app/src/main/res/drawable/ic_add.xml +++ b/src/android/app/src/main/res/drawable/ic_add.xml @@ -4,6 +4,6 @@ android:viewportWidth="24" android:viewportHeight="24"> <path - android:fillColor="@android:color/white" + android:fillColor="?attr/colorControlNormal" android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/> </vector> diff --git a/src/android/app/src/main/res/drawable/ic_back.xml b/src/android/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 000000000..f99fea719 --- /dev/null +++ b/src/android/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:autoMirrored="true" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="?attr/colorControlNormal" + android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z" /> +</vector> diff --git a/src/android/app/src/main/res/drawable/ic_folder.xml b/src/android/app/src/main/res/drawable/ic_folder.xml new file mode 100644 index 000000000..17d6c7927 --- /dev/null +++ b/src/android/app/src/main/res/drawable/ic_folder.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="?attr/colorControlNormal" + android:pathData="M10,4H4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2V8c0,-1.1 -0.9,-2 -2,-2h-8l-2,-2z" /> +</vector> diff --git a/src/android/app/src/main/res/drawable/ic_heart.xml b/src/android/app/src/main/res/drawable/ic_heart.xml new file mode 100644 index 000000000..6845a40e7 --- /dev/null +++ b/src/android/app/src/main/res/drawable/ic_heart.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="?attr/colorControlNormal" + android:pathData="M12,21.35l-1.45,-1.32C5.4,15.36 2,12.28 2,8.5 2,5.42 4.42,3 7.5,3c1.74,0 3.41,0.81 4.5,2.09C13.09,3.81 14.76,3 16.5,3 19.58,3 22,5.42 22,8.5c0,3.78 -3.4,6.86 -8.55,11.54L12,21.35z" /> +</vector> diff --git a/src/android/app/src/main/res/drawable/ic_install.xml b/src/android/app/src/main/res/drawable/ic_install.xml new file mode 100644 index 000000000..fe58acf84 --- /dev/null +++ b/src/android/app/src/main/res/drawable/ic_install.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="?attr/colorControlNormal" + android:pathData="M19,12v7L5,19v-7L3,12v7c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2v-7h-2zM13,12.67l2.59,-2.58L17,11.5l-5,5 -5,-5 1.41,-1.41L11,12.67L11,3h2z" /> +</vector> diff --git a/src/android/app/src/main/res/drawable/ic_settings.xml b/src/android/app/src/main/res/drawable/ic_settings.xml new file mode 100644 index 000000000..12ce6e231 --- /dev/null +++ b/src/android/app/src/main/res/drawable/ic_settings.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="?attr/colorControlNormal" + android:pathData="M19.14,12.94c0.04,-0.3 0.06,-0.61 0.06,-0.94c0,-0.32 -0.02,-0.64 -0.07,-0.94l2.03,-1.58c0.18,-0.14 0.23,-0.41 0.12,-0.61l-1.92,-3.32c-0.12,-0.22 -0.37,-0.29 -0.59,-0.22l-2.39,0.96c-0.5,-0.38 -1.03,-0.7 -1.62,-0.94L14.4,2.81c-0.04,-0.24 -0.24,-0.41 -0.48,-0.41h-3.84c-0.24,0 -0.43,0.17 -0.47,0.41L9.25,5.35C8.66,5.59 8.12,5.92 7.63,6.29L5.24,5.33c-0.22,-0.08 -0.47,0 -0.59,0.22L2.74,8.87C2.62,9.08 2.66,9.34 2.86,9.48l2.03,1.58C4.84,11.36 4.8,11.69 4.8,12s0.02,0.64 0.07,0.94l-2.03,1.58c-0.18,0.14 -0.23,0.41 -0.12,0.61l1.92,3.32c0.12,0.22 0.37,0.29 0.59,0.22l2.39,-0.96c0.5,0.38 1.03,0.7 1.62,0.94l0.36,2.54c0.05,0.24 0.24,0.41 0.48,0.41h3.84c0.24,0 0.44,-0.17 0.47,-0.41l0.36,-2.54c0.59,-0.24 1.13,-0.56 1.62,-0.94l2.39,0.96c0.22,0.08 0.47,0 0.59,-0.22l1.92,-3.32c0.12,-0.22 0.07,-0.47 -0.12,-0.61L19.14,12.94zM12,15.6c-1.98,0 -3.6,-1.62 -3.6,-3.6s1.62,-3.6 3.6,-3.6s3.6,1.62 3.6,3.6S13.98,15.6 12,15.6z" /> +</vector> diff --git a/src/android/app/src/main/res/drawable/popup_background.xml b/src/android/app/src/main/res/drawable/popup_background.xml new file mode 100644 index 000000000..057f81c83 --- /dev/null +++ b/src/android/app/src/main/res/drawable/popup_background.xml @@ -0,0 +1,4 @@ +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <solid android:color="?attr/colorSurface"/> + <corners android:radius="4dp" /> +</shape> diff --git a/src/android/app/src/main/res/layout-ldrtl/list_item_cheat.xml b/src/android/app/src/main/res/layout-ldrtl/list_item_cheat.xml index 9bcf883e1..ec9942cc5 100644 --- a/src/android/app/src/main/res/layout-ldrtl/list_item_cheat.xml +++ b/src/android/app/src/main/res/layout-ldrtl/list_item_cheat.xml @@ -13,7 +13,6 @@ android:id="@+id/text_name" android:layout_width="0dp" android:layout_height="wrap_content" - android:textColor="@color/header_text" android:textSize="16sp" android:layout_margin="@dimen/spacing_large" style="@style/TextAppearance.AppCompat.Headline" diff --git a/src/android/app/src/main/res/layout/activity_cheats.xml b/src/android/app/src/main/res/layout/activity_cheats.xml index b9414ab6d..0b6204b6d 100644 --- a/src/android/app/src/main/res/layout/activity_cheats.xml +++ b/src/android/app/src/main/res/layout/activity_cheats.xml @@ -1,22 +1,58 @@ <?xml version="1.0" encoding="utf-8"?> -<androidx.slidingpanelayout.widget.SlidingPaneLayout +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/sliding_pane_layout" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> - <androidx.fragment.app.FragmentContainerView - android:layout_width="320dp" - android:layout_height="match_parent" - android:layout_weight="1" - android:id="@+id/cheat_list" - android:name="org.citra.citra_emu.features.cheats.ui.CheatListFragment" /> + <androidx.coordinatorlayout.widget.CoordinatorLayout + android:id="@+id/coordinator_cheats" + android:layout_width="match_parent" + android:layout_height="wrap_content" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> - <androidx.fragment.app.FragmentContainerView - android:layout_width="320dp" - android:layout_height="match_parent" - android:layout_weight="1" - android:id="@+id/cheat_details" - android:name="org.citra.citra_emu.features.cheats.ui.CheatDetailsFragment" /> + <com.google.android.material.appbar.AppBarLayout + android:id="@+id/appbar_cheats" + android:layout_width="match_parent" + android:layout_height="wrap_content" + app:elevation="0dp" + app:liftOnScroll="false"> -</androidx.slidingpanelayout.widget.SlidingPaneLayout> + <com.google.android.material.appbar.MaterialToolbar + android:id="@+id/toolbar_cheats" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?attr/colorSurface" /> + + </com.google.android.material.appbar.AppBarLayout> + + </androidx.coordinatorlayout.widget.CoordinatorLayout> + + <androidx.slidingpanelayout.widget.SlidingPaneLayout + android:id="@+id/sliding_pane_layout" + android:layout_width="match_parent" + android:layout_height="0dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/coordinator_cheats"> + + <androidx.fragment.app.FragmentContainerView + android:layout_width="320dp" + android:layout_height="match_parent" + android:layout_weight="1" + android:id="@+id/cheat_list" + android:name="org.citra.citra_emu.features.cheats.ui.CheatListFragment" /> + + <androidx.fragment.app.FragmentContainerView + android:layout_width="320dp" + android:layout_height="match_parent" + android:layout_weight="1" + android:id="@+id/cheat_details" + android:name="org.citra.citra_emu.features.cheats.ui.CheatDetailsFragment" /> + + </androidx.slidingpanelayout.widget.SlidingPaneLayout> + +</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/src/android/app/src/main/res/layout/activity_main.xml b/src/android/app/src/main/res/layout/activity_main.xml index cea0922a7..1f737c321 100644 --- a/src/android/app/src/main/res/layout/activity_main.xml +++ b/src/android/app/src/main/res/layout/activity_main.xml @@ -1,27 +1,30 @@ <?xml version="1.0" encoding="utf-8"?> -<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.coordinatorlayout.widget.CoordinatorLayout + xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/coordinator_main" android:layout_width="match_parent" android:layout_height="match_parent"> + <com.google.android.material.appbar.AppBarLayout + android:id="@+id/appbar" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <com.google.android.material.appbar.MaterialToolbar + android:id="@+id/toolbar_main" + android:layout_width="match_parent" + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorSurface" + app:subtitleTextColor="?attr/colorOnSurface" + app:titleTextColor="?attr/colorOnSurface" /> + + </com.google.android.material.appbar.AppBarLayout> + <FrameLayout android:id="@+id/games_platform_frame" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> - <com.google.android.material.appbar.AppBarLayout - android:id="@+id/appbar" - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <androidx.appcompat.widget.Toolbar - android:id="@+id/toolbar_main" - android:layout_width="match_parent" - android:layout_height="?attr/actionBarSize" - android:background="?colorPrimary"/> - - </com.google.android.material.appbar.AppBarLayout> - </androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/src/android/app/src/main/res/layout/activity_settings.xml b/src/android/app/src/main/res/layout/activity_settings.xml index 11b91c45f..9da84faea 100644 --- a/src/android/app/src/main/res/layout/activity_settings.xml +++ b/src/android/app/src/main/res/layout/activity_settings.xml @@ -1,5 +1,27 @@ -<?xml version="1.0" encoding="utf-8"?> -<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.coordinatorlayout.widget.CoordinatorLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:id="@+id/coordinator_settings" android:layout_width="match_parent" - android:layout_height="match_parent" - android:id="@+id/frame_content" /> + android:layout_height="match_parent"> + + <com.google.android.material.appbar.AppBarLayout + android:id="@+id/appbar_settings" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <com.google.android.material.appbar.MaterialToolbar + android:id="@+id/toolbar_settings" + android:layout_width="match_parent" + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorSurface" /> + + </com.google.android.material.appbar.AppBarLayout> + + <FrameLayout + android:id="@+id/frame_content" + android:layout_width="match_parent" + android:layout_height="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior" /> + +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/src/android/app/src/main/res/layout/card_game.xml b/src/android/app/src/main/res/layout/card_game.xml index 6e87490f9..84ca54abb 100644 --- a/src/android/app/src/main/res/layout/card_game.xml +++ b/src/android/app/src/main/res/layout/card_game.xml @@ -36,15 +36,13 @@ android:layout_marginStart="8dp" android:baselineAligned="false" android:ellipsize="end" - android:gravity="center_vertical" android:lines="1" android:maxLines="1" android:textAlignment="viewStart" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/image_game_screen" app:layout_constraintTop_toTopOf="parent" - tools:text="The Legend of Zelda\nOcarina of Time 3D" - android:textColor="@color/header_text" /> + tools:text="The Legend of Zelda\nOcarina of Time 3D" /> <TextView android:id="@+id/text_company" @@ -58,8 +56,7 @@ app:layout_constraintStart_toStartOf="@+id/text_game_title" app:layout_constraintTop_toBottomOf="@+id/text_game_title" app:layout_constraintVertical_bias="0.842" - tools:text="Nintendo" - android:textColor="@color/header_subtext" /> + tools:text="Nintendo" /> <TextView android:id="@+id/text_filename" @@ -73,10 +70,8 @@ app:layout_constraintStart_toStartOf="@+id/text_game_title" app:layout_constraintTop_toBottomOf="@+id/text_game_title" app:layout_constraintVertical_bias="0.0" - tools:text="Pilotwings_Resort.cxi" - android:textColor="@color/header_subtext" /> + tools:text="Pilotwings_Resort.cxi" /> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.cardview.widget.CardView> - diff --git a/src/android/app/src/main/res/layout/dialog_seekbar.xml b/src/android/app/src/main/res/layout/dialog_slider.xml similarity index 93% rename from src/android/app/src/main/res/layout/dialog_seekbar.xml rename to src/android/app/src/main/res/layout/dialog_slider.xml index 35abecfcb..59719e013 100644 --- a/src/android/app/src/main/res/layout/dialog_seekbar.xml +++ b/src/android/app/src/main/res/layout/dialog_slider.xml @@ -5,8 +5,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - <SeekBar - android:id="@+id/seekbar" + <com.google.android.material.slider.Slider + android:id="@+id/slider" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/spacing_large" @@ -34,4 +34,4 @@ android:layout_alignTop="@+id/text_value" android:layout_toEndOf="@+id/text_value" /> -</RelativeLayout> \ No newline at end of file +</RelativeLayout> diff --git a/src/android/app/src/main/res/layout/fragment_emulation.xml b/src/android/app/src/main/res/layout/fragment_emulation.xml index d6e47e1e4..bd64d5d16 100644 --- a/src/android/app/src/main/res/layout/fragment_emulation.xml +++ b/src/android/app/src/main/res/layout/fragment_emulation.xml @@ -40,7 +40,6 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:padding="@dimen/spacing_small" - android:background="@color/citra_orange" android:text="@string/emulation_done" android:visibility="gone" /> diff --git a/src/android/app/src/main/res/layout/fragment_grid.xml b/src/android/app/src/main/res/layout/fragment_grid.xml index f5b6c2e19..5978bf998 100644 --- a/src/android/app/src/main/res/layout/fragment_grid.xml +++ b/src/android/app/src/main/res/layout/fragment_grid.xml @@ -17,17 +17,19 @@ android:id="@+id/gamelist_empty_text" android:layout_width="match_parent" android:layout_height="match_parent" + android:gravity="center" android:text="@string/empty_gamelist" - android:visibility="gone" android:textSize="18sp" - android:gravity="center" /> + android:visibility="gone" /> <androidx.recyclerview.widget.RecyclerView android:id="@+id/grid_games" android:layout_width="match_parent" android:layout_height="match_parent" tools:listitem="@layout/card_game" /> + </RelativeLayout> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout> -</FrameLayout> \ No newline at end of file + +</FrameLayout> diff --git a/src/android/app/src/main/res/layout/fragment_settings.xml b/src/android/app/src/main/res/layout/fragment_settings.xml index 4c5d597c1..f8724552c 100644 --- a/src/android/app/src/main/res/layout/fragment_settings.xml +++ b/src/android/app/src/main/res/layout/fragment_settings.xml @@ -1,12 +1,13 @@ <?xml version="1.0" encoding="utf-8"?> -<org.citra.citra_emu.features.settings.ui.SettingsFrameLayout xmlns:android="http://schemas.android.com/apk/res/android" +<org.citra.citra_emu.features.settings.ui.SettingsFrameLayout + xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:background="?attr/colorSurface"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/list_settings" android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="@color/card_view_background" /> + android:layout_height="match_parent" /> -</org.citra.citra_emu.features.settings.ui.SettingsFrameLayout> \ No newline at end of file +</org.citra.citra_emu.features.settings.ui.SettingsFrameLayout> diff --git a/src/android/app/src/main/res/layout/list_item_cheat.xml b/src/android/app/src/main/res/layout/list_item_cheat.xml index c0b5f982f..d31ae63f9 100644 --- a/src/android/app/src/main/res/layout/list_item_cheat.xml +++ b/src/android/app/src/main/res/layout/list_item_cheat.xml @@ -13,7 +13,6 @@ android:id="@+id/text_name" android:layout_width="0dp" android:layout_height="wrap_content" - android:textColor="@color/header_text" android:textSize="16sp" android:layout_margin="@dimen/spacing_large" style="@style/TextAppearance.AppCompat.Headline" diff --git a/src/android/app/src/main/res/layout/list_item_setting.xml b/src/android/app/src/main/res/layout/list_item_setting.xml index df83684f7..a2a07b381 100644 --- a/src/android/app/src/main/res/layout/list_item_setting.xml +++ b/src/android/app/src/main/res/layout/list_item_setting.xml @@ -21,7 +21,6 @@ android:layout_alignParentEnd="true" android:layout_marginStart="@dimen/spacing_large" android:layout_marginEnd="@dimen/spacing_large" - android:textColor="@color/header_text" android:textSize="16sp" tools:text="Setting Name" /> @@ -37,7 +36,6 @@ android:layout_marginTop="@dimen/spacing_small" android:layout_marginEnd="@dimen/spacing_large" android:visibility="visible" - tools:text="@string/app_disclaimer" - android:textColor="@color/header_subtext" /> + tools:text="@string/app_disclaimer" /> </RelativeLayout> \ No newline at end of file diff --git a/src/android/app/src/main/res/layout/list_item_setting_checkbox.xml b/src/android/app/src/main/res/layout/list_item_setting_checkbox.xml index 86ba83f11..332b2e08f 100644 --- a/src/android/app/src/main/res/layout/list_item_setting_checkbox.xml +++ b/src/android/app/src/main/res/layout/list_item_setting_checkbox.xml @@ -19,7 +19,6 @@ android:layout_marginStart="@dimen/spacing_large" android:layout_marginTop="@dimen/spacing_large" android:layout_toStartOf="@+id/checkbox" - android:textColor="@color/header_text" android:textSize="16sp" tools:text="@string/frame_limit_enable" /> @@ -36,7 +35,6 @@ android:layout_marginTop="@dimen/spacing_small" android:layout_toStartOf="@+id/checkbox" android:textAlignment="textStart" - android:textColor="@color/header_subtext" tools:text="@string/frame_limit_enable_description" /> <CheckBox diff --git a/src/android/app/src/main/res/layout/list_item_settings_header.xml b/src/android/app/src/main/res/layout/list_item_settings_header.xml index d220dfd61..aabd4cfc1 100644 --- a/src/android/app/src/main/res/layout/list_item_settings_header.xml +++ b/src/android/app/src/main/res/layout/list_item_settings_header.xml @@ -12,8 +12,8 @@ android:layout_marginStart="@dimen/spacing_large" android:layout_marginBottom="@dimen/spacing_small" android:layout_marginTop="@dimen/spacing_small" - android:textColor="?android:colorAccent" + android:textColor="?attr/colorPrimary" android:textStyle="bold" tools:text="CPU Settings" /> -</FrameLayout> \ No newline at end of file +</FrameLayout> diff --git a/src/android/app/src/main/res/layout/premium_item_setting.xml b/src/android/app/src/main/res/layout/premium_item_setting.xml index 17d5a13b2..1a606a458 100644 --- a/src/android/app/src/main/res/layout/premium_item_setting.xml +++ b/src/android/app/src/main/res/layout/premium_item_setting.xml @@ -21,7 +21,7 @@ android:layout_alignParentEnd="true" android:layout_marginStart="@dimen/spacing_large" android:layout_marginEnd="@dimen/spacing_large" - android:textColor="?android:colorAccent" + android:textColor="?attr/colorPrimary" android:textStyle="bold" tools:text="Setting Name" /> @@ -37,7 +37,6 @@ android:layout_marginTop="@dimen/spacing_small" android:layout_marginEnd="@dimen/spacing_large" android:visibility="visible" - tools:text="@string/app_disclaimer" - android:textColor="@color/header_subtext" /> + tools:text="@string/app_disclaimer" /> </RelativeLayout> \ No newline at end of file diff --git a/src/android/app/src/main/res/menu/menu_game_grid.xml b/src/android/app/src/main/res/menu/menu_game_grid.xml index 9cdcc7f08..1a4bee6df 100644 --- a/src/android/app/src/main/res/menu/menu_game_grid.xml +++ b/src/android/app/src/main/res/menu/menu_game_grid.xml @@ -4,7 +4,7 @@ <item android:id="@+id/button_premium" - android:icon="@drawable/ic_premium" + android:icon="@drawable/ic_heart" android:title="@string/premium_text" app:showAsAction="ifRoom" /> <item @@ -20,14 +20,14 @@ app:showAsAction="ifRoom" /> <item android:id="@+id/button_install_cia" - android:icon="@drawable/ic_cia_install" + android:icon="@drawable/ic_install" android:title="@string/install_cia_title" app:showAsAction="ifRoom" /> </menu> </item> <item android:id="@+id/menu_settings_core" - android:icon="@drawable/ic_settings_core" + android:icon="@drawable/ic_settings" android:title="@string/grid_menu_core_settings" app:showAsAction="ifRoom" /> diff --git a/src/android/app/src/main/res/values-night/citra_colors.xml b/src/android/app/src/main/res/values-night/citra_colors.xml new file mode 100644 index 000000000..54e6a913a --- /dev/null +++ b/src/android/app/src/main/res/values-night/citra_colors.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <color name="citra_primary">#F8BE00</color> + <color name="citra_onPrimary">#3F2E00</color> + <color name="citra_primaryContainer">#451C00</color> + <color name="citra_onPrimaryContainer">#FFDF9A</color> + <color name="citra_secondary">#D7C4A0</color> + <color name="citra_onSecondary">#3A2F15</color> + <color name="citra_secondaryContainer">#52452A</color> + <color name="citra_onSecondaryContainer">#F4E0BB</color> + <color name="citra_tertiary">#FFB2BC</color> + <color name="citra_onTertiary">#5F1126</color> + <color name="citra_tertiaryContainer">#7D293B</color> + <color name="citra_onTertiaryContainer">#FFD9DD</color> + <color name="citra_error">#FFB4AB</color> + <color name="citra_errorContainer">#93000A</color> + <color name="citra_onError">#690005</color> + <color name="citra_onErrorContainer">#FFDAD6</color> + <color name="citra_background">#1E1B16</color> + <color name="citra_onBackground">#E9E1D9</color> + <color name="citra_surface">#1E1B16</color> + <color name="citra_onSurface">#E9E1D9</color> + <color name="citra_surfaceVariant">#4D4639</color> + <color name="citra_onSurfaceVariant">#D0C5B4</color> + <color name="citra_outline">#999080</color> + <color name="citra_inverseOnSurface">#1E1B16</color> + <color name="citra_inverseSurface">#E9E1D9</color> + <color name="citra_inversePrimary">#785A00</color> + <color name="citra_surfaceTint">#F8BE00</color> + <color name="citra_outlineVariant">#4D4639</color> + +</resources> diff --git a/src/android/app/src/main/res/values-night/colors.xml b/src/android/app/src/main/res/values-night/colors.xml deleted file mode 100644 index 43b948021..000000000 --- a/src/android/app/src/main/res/values-night/colors.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> - - <color name="citra_orange">#272727</color> - <color name="citra_orange_dark">#121212</color> - <color name="citra_accent">#FEC303</color> - - <color name="card_view_background">#121212</color> - <color name="card_view_disabled">#3D3D3D</color> - - <color name="gamelist_divider">#404040</color> - - <color name="header_text">#E0E0E0</color> - <color name="header_subtext">#A0A0A0</color> - - <color name="citra_logo_text_color">@color/citra_accent</color> -</resources> diff --git a/src/android/app/src/main/res/values/citra_colors.xml b/src/android/app/src/main/res/values/citra_colors.xml new file mode 100644 index 000000000..f0cfd3780 --- /dev/null +++ b/src/android/app/src/main/res/values/citra_colors.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <color name="citra_primary">#FFAB03</color> + <color name="citra_onPrimary">#FFFFFF</color> + <color name="citra_primaryContainer">#FFDF9A</color> + <color name="citra_onPrimaryContainer">#251A00</color> + <color name="citra_secondary">#6B5D3F</color> + <color name="citra_onSecondary">#FFFFFF</color> + <color name="citra_secondaryContainer">#F4E0BB</color> + <color name="citra_onSecondaryContainer">#241A04</color> + <color name="citra_tertiary">#9B4052</color> + <color name="citra_onTertiary">#FFFFFF</color> + <color name="citra_tertiaryContainer">#FFD9DD</color> + <color name="citra_onTertiaryContainer">#400013</color> + <color name="citra_error">#BA1A1A</color> + <color name="citra_errorContainer">#FFDAD6</color> + <color name="citra_onError">#FFFFFF</color> + <color name="citra_onErrorContainer">#410002</color> + <color name="citra_background">#FFFBFF</color> + <color name="citra_onBackground">#1E1B16</color> + <color name="citra_surface">#FFFBFF</color> + <color name="citra_onSurface">#1E1B16</color> + <color name="citra_surfaceVariant">#EDE1CF</color> + <color name="citra_onSurfaceVariant">#4D4639</color> + <color name="citra_outline">#7F7667</color> + <color name="citra_inverseOnSurface">#F7F0E7</color> + <color name="citra_inverseSurface">#33302A</color> + <color name="citra_inversePrimary">#F8BE00</color> + <color name="citra_shadow">#000000</color> + <color name="citra_surfaceTint">#783E00</color> + <color name="citra_outlineVariant">#D0C5B4</color> + <color name="citra_scrim">#000000</color> + +</resources> diff --git a/src/android/app/src/main/res/values/colors.xml b/src/android/app/src/main/res/values/colors.xml deleted file mode 100644 index 6668288a7..000000000 --- a/src/android/app/src/main/res/values/colors.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> - - <color name="citra_orange">#FFC303</color> - <color name="citra_orange_dark">#FF8D03</color> - <color name="citra_accent">#CC7102</color> - - <color name="card_view_background">#ffffff</color> - <color name="card_view_disabled">#D5D5D5</color> - - <color name="gamelist_divider">#ffffff</color> - - <color name="header_text">#1C1424</color> - <color name="header_subtext">#5C5661</color> - - <color name="citra_logo_text_color">@color/header_text</color> -</resources> diff --git a/src/android/app/src/main/res/values/styles.xml b/src/android/app/src/main/res/values/styles.xml index 47fe6f6ea..b1d36498e 100644 --- a/src/android/app/src/main/res/values/styles.xml +++ b/src/android/app/src/main/res/values/styles.xml @@ -1,65 +1,37 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <!-- Inherit from the material theme --> - <style name="CitraBase" parent="Theme.AppCompat.DayNight.NoActionBar"> - <!-- Main theme colors --> - <!-- Branding color for the app bar --> - <item name="colorPrimary">@color/citra_orange</item> - <!-- Darker variant for the status bar and contextual app bars --> - <item name="colorPrimaryDark">@color/citra_orange_dark</item> - <item name="colorAccent">@color/citra_accent</item> - - <item name="titleTextColor">@color/citra_logo_text_color</item> - - <!-- Enable window content transitions --> - <item name="android:windowContentTransitions">true</item> - <item name="android:windowAllowEnterTransitionOverlap">true</item> - <item name="android:windowAllowReturnTransitionOverlap">true</item> - - <item name="android:colorControlHighlight">?attr/colorAccent</item> - </style> - - <!-- Same as above, but use default action bar, and mandate margins. --> - <style name="CitraSettingsBase" parent="Theme.AppCompat.DayNight"> - <item name="colorPrimary">@color/citra_orange</item> - <item name="colorPrimaryDark">@color/citra_orange_dark</item> - <item name="colorAccent">@color/citra_accent</item> - </style> - - <!-- Inherit from the Base Citra Dialog Theme --> - <style name="CitraEmulationBase" parent="Theme.AppCompat.DayNight"> - <item name="colorPrimary">@color/citra_orange</item> - <item name="colorPrimaryDark">@color/citra_orange_dark</item> - <item name="colorAccent">@color/citra_accent</item> - <item name="android:windowTranslucentNavigation">true</item> - - <item name="android:windowBackground">@android:color/black</item> - - <!-- Enable window content transitions --> - <item name="android:windowContentTransitions">true</item> - <item name="android:windowAllowEnterTransitionOverlap">true</item> - <item name="android:windowAllowReturnTransitionOverlap">true</item> - </style> - - <!-- Inherit from a base file picker theme that handles day/night --> - <style name="FilePickerTheme" parent="FilePickerBaseTheme"> - <item name="colorPrimary">@color/citra_orange</item> - <item name="colorPrimaryDark">@color/citra_orange_dark</item> - <item name="colorAccent">@color/citra_accent</item> - <item name="android:windowBackground">@color/card_view_background</item> - - <!-- Need to set this also to style create folder dialog --> - <item name="alertDialogTheme">@style/FilePickerAlertDialogTheme</item> - - <item name="nnf_list_item_divider">@drawable/gamelist_divider</item> - <item name="nnf_toolbarTheme">@style/ThemeOverlay.AppCompat.DayNight.ActionBar</item> - </style> - <style name="FilePickerAlertDialogTheme" parent="Theme.AppCompat.DayNight.Dialog.Alert"> - <item name="colorPrimary">@color/citra_orange</item> - <item name="colorPrimaryDark">@color/citra_orange_dark</item> - <item name="colorAccent">@color/citra_accent</item> + <item name="colorPrimary">@color/citra_primary</item> + <item name="colorPrimaryDark">@color/citra_secondary</item> + <item name="colorAccent">@color/citra_primaryContainer</item> + </style> + + <style name="CitraMaterialDialog" parent="ThemeOverlay.Material3.MaterialAlertDialog"> + <item name="colorPrimary">@color/citra_surface</item> + <item name="colorSurface">@color/citra_surface</item> + <item name="colorSecondary">@color/citra_primary</item> + <item name="buttonBarPositiveButtonStyle">@style/CitraButton</item> + <item name="buttonBarNegativeButtonStyle">@style/CitraButton</item> + <item name="buttonBarNeutralButtonStyle">@style/CitraButton</item> + </style> + + <style name="CitraButton" parent="Widget.Material3.Button.TextButton.Dialog"> + <item name="android:textColor">@color/citra_primary</item> + <item name="rippleColor">@color/citra_secondaryContainer</item> + </style> + + <style name="CitraShapedPopup" parent="Widget.Material3.PopupMenu"> + <item name="android:popupBackground">@drawable/popup_background</item> + </style> + + <style name="CitraPopup" parent="ThemeOverlay.Material3"> + <item name="colorPrimary">@color/citra_surface</item> + </style> + + <style name="CitraSlider" parent="Widget.Material3.Slider"> + <item name="tickVisible">false</item> + <item name="labelBehavior">gone</item> </style> </resources> diff --git a/src/android/app/src/main/res/values/themes.xml b/src/android/app/src/main/res/values/themes.xml new file mode 100644 index 000000000..edff173fe --- /dev/null +++ b/src/android/app/src/main/res/values/themes.xml @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <style name="Theme.Citra.Main" parent="Theme.Material3.DayNight.NoActionBar"> + <!-- Main theme colors --> + <item name="colorPrimary">@color/citra_primary</item> + <item name="colorOnPrimary">@color/citra_onPrimary</item> + <item name="colorPrimaryContainer">@color/citra_primaryContainer</item> + <item name="colorOnPrimaryContainer">@color/citra_onPrimaryContainer</item> + <item name="colorSecondary">@color/citra_secondary</item> + <item name="colorOnSecondary">@color/citra_onSecondary</item> + <item name="colorSecondaryContainer">@color/citra_secondaryContainer</item> + <item name="colorOnSecondaryContainer">@color/citra_onSecondaryContainer</item> + <item name="colorTertiary">@color/citra_tertiary</item> + <item name="colorOnTertiary">@color/citra_onTertiary</item> + <item name="colorTertiaryContainer">@color/citra_tertiaryContainer</item> + <item name="colorOnTertiaryContainer">@color/citra_onTertiaryContainer</item> + <item name="colorError">@color/citra_error</item> + <item name="colorErrorContainer">@color/citra_errorContainer</item> + <item name="colorOnError">@color/citra_onError</item> + <item name="colorOnErrorContainer">@color/citra_onErrorContainer</item> + <item name="android:colorBackground">@color/citra_background</item> + <item name="colorOnBackground">@color/citra_onBackground</item> + <item name="colorSurface">@color/citra_surface</item> + <item name="colorOnSurface">@color/citra_onSurface</item> + <item name="colorSurfaceVariant">@color/citra_surfaceVariant</item> + <item name="colorOnSurfaceVariant">@color/citra_onSurfaceVariant</item> + <item name="colorOutline">@color/citra_outline</item> + <item name="colorOnSurfaceInverse">@color/citra_inverseOnSurface</item> + <item name="colorSurfaceInverse">@color/citra_inverseSurface</item> + <item name="colorPrimaryInverse">@color/citra_inversePrimary</item> + + <item name="homeAsUpIndicator">@drawable/ic_back</item> + <item name="android:statusBarColor">@color/citra_surface</item> + <item name="android:textColorLink">@color/citra_primary</item> + <item name="materialAlertDialogTheme">@style/CitraMaterialDialog</item> + <item name="popupMenuStyle">@style/CitraShapedPopup</item> + <item name="popupTheme">@style/CitraPopup</item> + <item name="sliderStyle">@style/CitraSlider</item> + </style> + + <!-- Inherit from a base file picker theme that handles day/night --> + <style name="FilePickerTheme" parent="FilePickerBaseTheme"> + <item name="colorPrimary">@color/citra_primary</item> + <item name="colorPrimaryDark">@color/citra_primary</item> + <item name="colorAccent">@color/citra_primary</item> + + <!-- Need to set this also to style create folder dialog --> + <item name="alertDialogTheme">@style/FilePickerAlertDialogTheme</item> + + <item name="nnf_list_item_divider">@drawable/gamelist_divider</item> + <item name="nnf_toolbarTheme">@style/ThemeOverlay.AppCompat.DayNight.ActionBar</item> + </style> + +</resources>