From a187c032687dae1db7b979a3c00e8f94b4180ea2 Mon Sep 17 00:00:00 2001 From: izzy2lost Date: Sun, 26 Oct 2025 05:05:30 -0400 Subject: [PATCH] fix theme and hopefully a crash --- app/build.gradle | 30 +- app/src/main/AndroidManifest.xml | 3 +- .../java/com/izzy2lost/psx2/MainActivity.java | 35 +- app/src/main/res/layout/activity_main.xml | 442 ++++++++++++++++++ .../main/res/layout/dialog_covers_grid.xml | 130 ++++++ app/src/main/res/values/brand_aliases.xml | 6 +- app/src/main/res/values/colors.xml | 181 +++---- app/src/main/res/values/styles_buttons.xml | 1 + app/src/main/res/values/themes.xml | 8 +- 9 files changed, 694 insertions(+), 142 deletions(-) create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/dialog_covers_grid.xml diff --git a/app/build.gradle b/app/build.gradle index 1c2d236..0ea9a38 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,18 +3,18 @@ plugins { } android { - namespace 'com.izzy2lost.psx2' - compileSdk 36 - ndkVersion '28.2.13676358' + namespace = 'com.izzy2lost.psx2' + compileSdk = 36 + ndkVersion = '28.2.13676358' defaultConfig { - applicationId "com.izzy2lost.psx2" - minSdk 26 - targetSdk 36 + applicationId = "com.izzy2lost.psx2" + minSdk = 26 + targetSdk = 36 versionCode 10 versionName "1.0.8" // APK - setProperty("archivesBaseName","PSX2_${versionCode}_${new Date().format('yyyyMMddHHmm')}") + base.archivesName = "PSX2_${versionCode}_${new Date().format('yyyyMMddHHmm')}" externalNativeBuild { cmake { @@ -36,8 +36,8 @@ android { buildTypes { release { - minifyEnabled true - shrinkResources true + minifyEnabled = true + shrinkResources = true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' ndk { debugSymbolLevel 'SYMBOL_TABLE' @@ -46,13 +46,13 @@ android { } // Relax lint for test release builds lint { - checkReleaseBuilds false - abortOnError false + checkReleaseBuilds = false + abortOnError = false } compileOptions { - sourceCompatibility JavaVersion.VERSION_21 - targetCompatibility JavaVersion.VERSION_21 - coreLibraryDesugaringEnabled true + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 + coreLibraryDesugaringEnabled = true } externalNativeBuild { cmake { @@ -66,7 +66,7 @@ android { } exclude 'META-INF/DEPENDENCIES' } - buildToolsVersion '36.0.0' + buildToolsVersion = '36.0.0' } tasks.register('bumpVersion') { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b9724f3..75278aa 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,7 +43,8 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="false" - android:theme="@style/AppTheme"> + android:theme="@style/AppTheme" + tools:ignore="UnusedAttribute"> diff --git a/app/src/main/java/com/izzy2lost/psx2/MainActivity.java b/app/src/main/java/com/izzy2lost/psx2/MainActivity.java index 58c91a1..a44cf2e 100644 --- a/app/src/main/java/com/izzy2lost/psx2/MainActivity.java +++ b/app/src/main/java/com/izzy2lost/psx2/MainActivity.java @@ -423,19 +423,12 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF @Override protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - // Force dark mode for consistent appearance - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - // Android 12+ (API 31+) - getWindow().getDecorView().getWindowInsetsController().setSystemBarsAppearance(0, - android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS | - android.view.WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS); - } - // Force dark mode using AppCompat + // FORCE dark mode always - ignore system setting androidx.appcompat.app.AppCompatDelegate.setDefaultNightMode( androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES); + super.onCreate(savedInstanceState); + // Enable edge-to-edge for Android 15+ compatibility EdgeToEdge.enable(this); @@ -1277,14 +1270,9 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF Uri treeUri = data.getData(); if (treeUri != null) { final int takeFlags = (data.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION)); - if ((takeFlags & Intent.FLAG_GRANT_READ_URI_PERMISSION) != 0) { + if (takeFlags != 0) { try { - getContentResolver().takePersistableUriPermission(treeUri, Intent.FLAG_GRANT_READ_URI_PERMISSION); - } catch (SecurityException ignored) {} - } - if ((takeFlags & Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0) { - try { - getContentResolver().takePersistableUriPermission(treeUri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + getContentResolver().takePersistableUriPermission(treeUri, takeFlags); } catch (SecurityException ignored) {} } // Save folder and optionally show games @@ -1670,12 +1658,6 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF return true; } - // Handle back button for non-gamepad sources - if (p_keyCode == KeyEvent.KEYCODE_BACK) { - showExitDialog(); - return true; - } - // Skip SDL controller manager to avoid mapping conflicts return super.onKeyDown(p_keyCode, p_event); } @@ -1795,12 +1777,7 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF } } - @Override - public void onBackPressed() { - // Fallback for older Android versions - super.onBackPressed(); - showExitDialog(); - } + // Removed deprecated onBackPressed() - using OnBackPressedCallback instead private void showExitDialog() { new MaterialAlertDialogBuilder(this, diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..b2a61fe --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,442 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/dialog_covers_grid.xml b/app/src/main/res/layout/dialog_covers_grid.xml new file mode 100644 index 0000000..4a8fb38 --- /dev/null +++ b/app/src/main/res/layout/dialog_covers_grid.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/brand_aliases.xml b/app/src/main/res/values/brand_aliases.xml index 69606cf..7455129 100644 --- a/app/src/main/res/values/brand_aliases.xml +++ b/app/src/main/res/values/brand_aliases.xml @@ -5,10 +5,10 @@ @color/md_theme_secondary @color/md_theme_outline @color/md_theme_secondary - - #800061A3 + + #809ECAFF - + #B31C2026 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index f3d7c7f..cc3f012 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,32 +1,33 @@ - #0061A3 - #FFFFFF + + #9ECAFF + #003258 #33A1FF #00365E - #416184 - #FFFFFF - #B4D4FE - #3C5C7F - #883DA4 - #FFFFFF + #A9C9F2 + #0C3253 + #2A4B6E + #9BBBE3 + #EEB1FF + #53006F #CD7DE8 #580375 - #BA1A1A - #FFFFFF - #FFDAD6 - #93000A - #F8F9FF - #181C22 - #F8F9FF - #181C22 - #DBE3F0 - #404752 - #707883 - #BFC7D4 + #FFB4AB + #690005 + #93000A + #FFDAD6 + #0F1419 + #DFE2EA + #0F1419 + #DFE2EA + #404752 + #BFC7D4 + #89919E + #404752 #000000 - #2C3137 - #EEF1F9 - #9ECAFF + #DFE2EA + #2C3137 + #0061A3 #D1E4FF #001D36 #9ECAFF @@ -39,107 +40,107 @@ #330045 #EEB1FF #6E228A - #D7DAE2 - #F8F9FF - #FFFFFF - #F0F3FC - #EBEEF6 - #E5E8F0 - #DFE2EA - #003861 + #0F1419 + #353940 + #0A0E14 + #181C22 + #1C2026 + #262A30 + #31353B + #003A5F #FFFFFF - #0070BB + #1F76C5 #FFFFFF - #143859 + #384355 #FFFFFF - #506F94 + #6A7588 #FFFFFF - #5B0777 + #513A5B #FFFFFF - #994DB4 + #846C8E #FFFFFF - #740006 + #8C0009 #FFFFFF - #CF2C27 + #DA342E #FFFFFF - #F8F9FF - #181C22 - #F8F9FF - #0D1117 - #DBE3F0 - #2F3741 - #4B535E - #666E79 + #E8E8EA + #191C1E + #E8E8EA + #191C1E + #E0E2EC + #40434A + #5C5F66 + #787A82 #000000 - #2C3137 - #EEF1F9 - #9ECAFF - #0070BB + #2E3036 + #F0F0F4 + #A6C8FF + #1F76C5 #FFFFFF - #005794 + #005DAB #FFFFFF - #506F94 + #6A7588 #FFFFFF - #37577A + #515C6F #FFFFFF - #994DB4 + #846C8E #FFFFFF - #7D3299 + #6A5474 #FFFFFF - #C3C6CE - #F8F9FF + #D9D9DC + #F9F9FC #FFFFFF - #F0F3FC - #E5E8F0 - #DADDE5 - #CED2D9 - #002E51 + #F3F3F6 + #EDEDF0 + #E7E8EA + #E2E2E5 + #00213D #FFFFFF - #004B80 + #003A5F #FFFFFF - #052E4F + #172332 #FFFFFF - #2A4B6E + #384355 #FFFFFF - #4C0066 + #2E1A39 #FFFFFF - #70258C + #513A5B #FFFFFF - #600004 + #4E0002 #FFFFFF - #98000A + #8C0009 #FFFFFF - #F8F9FF - #181C22 - #F8F9FF + #E8E8EA + #191C1E + #E8E8EA #000000 - #DBE3F0 - #000000 - #252D37 - #424A55 + #E0E2EC + #21242A + #40434A + #40434A #000000 - #2C3137 + #2E3036 #FFFFFF - #9ECAFF - #004B80 + #E1ECFF + #003A5F #FFFFFF - #00345C + #002541 #FFFFFF - #2A4B6E + #384355 #FFFFFF - #0F3456 + #222C3D #FFFFFF - #70258C + #513A5B #FFFFFF - #570074 + #3A2444 #FFFFFF - #B5B9C1 - #F8F9FF + #D9D9DC + #F9F9FC #FFFFFF - #EEF1F9 - #DFE2EA - #D1D4DC - #C3C6CE + #F3F3F6 + #EDEDF0 + #E7E8EA + #E2E2E5 #FFEB3B diff --git a/app/src/main/res/values/styles_buttons.xml b/app/src/main/res/values/styles_buttons.xml index 9b5c84d..ac90a99 100644 --- a/app/src/main/res/values/styles_buttons.xml +++ b/app/src/main/res/values/styles_buttons.xml @@ -13,6 +13,7 @@ @color/brand_ripple @color/brand_surface_container_semi true + @android:color/transparent 0dp diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 8a8653b..5efbd97 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,6 +1,9 @@ - +