fixed menu button crash again

This commit is contained in:
izzy2lost
2025-10-28 01:45:22 -04:00
parent 2176fdcba4
commit cd9eddf25c
4 changed files with 84 additions and 9 deletions
+21 -2
View File
@@ -2,17 +2,35 @@ plugins {
id 'com.android.application'
}
// Load keystore properties
def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
namespace = 'com.izzy2lost.psx2'
compileSdk = 36
ndkVersion = '28.2.13676358'
signingConfigs {
release {
if (keystorePropertiesFile.exists()) {
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
}
}
}
defaultConfig {
applicationId = "com.izzy2lost.psx2"
minSdk = 26
targetSdk = 36
versionCode 12
versionName "1.1.0"
versionCode 13
versionName "1.1.1"
// APK
base.archivesName = "PSX2_${versionCode}_${new Date().format('yyyyMMddHHmm')}"
@@ -39,6 +57,7 @@ android {
minifyEnabled = true
shrinkResources = true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
ndk {
debugSymbolLevel 'SYMBOL_TABLE'
}
@@ -419,8 +419,19 @@ public class GamesCoverDialogFragment extends DialogFragment {
// Refresh drawer settings before opening
refreshDialogDrawerSettings();
androidx.drawerlayout.widget.DrawerLayout drawer = root.findViewById(R.id.dlg_drawer_layout);
if (drawer != null) drawer.openDrawer(GravityCompat.START);
} catch (Throwable ignored) {}
if (drawer != null) {
// Defer the open to avoid layout/reentrancy races similar to activity path
drawer.post(() -> {
try {
drawer.openDrawer(GravityCompat.START);
} catch (Throwable t) {
android.util.Log.e("GamesCoverDialog", "Error opening dialog drawer (posted): " + t.getMessage());
}
});
}
} catch (Throwable t) {
android.util.Log.e("GamesCoverDialog", "Error scheduling dialog drawer open: " + t.getMessage());
}
});
// Setup drawer listener for pause/resume tracking
@@ -605,8 +616,18 @@ public class GamesCoverDialogFragment extends DialogFragment {
// Refresh drawer settings before opening
refreshDialogDrawerSettings();
androidx.drawerlayout.widget.DrawerLayout drawer = root.findViewById(R.id.dlg_drawer_layout);
if (drawer != null) drawer.openDrawer(androidx.core.view.GravityCompat.START);
} catch (Throwable ignored) {}
if (drawer != null) {
drawer.post(() -> {
try {
drawer.openDrawer(androidx.core.view.GravityCompat.START);
} catch (Throwable t) {
android.util.Log.e("GamesCoverDialog", "Error opening dialog drawer (posted): " + t.getMessage());
}
});
}
} catch (Throwable t) {
android.util.Log.e("GamesCoverDialog", "Error scheduling dialog drawer open: " + t.getMessage());
}
}
private void setupDialogDrawerSettings(View header) {
@@ -571,13 +571,20 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF
if (btn_settings != null) {
btn_settings.setOnClickListener(v -> {
try {
// Just open the drawer - let the drawer listener handle pausing
// Open the drawer via post() to avoid reentrancy/layout timing issues
// (programmatic open can sometimes race with layout/insets handling)
DrawerLayout drawer = findViewById(R.id.drawer_layout);
if (drawer != null) {
drawer.openDrawer(androidx.core.view.GravityCompat.START);
drawer.post(() -> {
try {
drawer.openDrawer(androidx.core.view.GravityCompat.START);
} catch (Throwable t) {
android.util.Log.e("MainActivity", "Error opening settings drawer (posted): " + t.getMessage());
}
});
}
} catch (Throwable t) {
android.util.Log.e("MainActivity", "Error opening settings drawer: " + t.getMessage());
android.util.Log.e("MainActivity", "Error scheduling settings drawer open: " + t.getMessage());
}
});
}
+28
View File
@@ -0,0 +1,28 @@
@echo off
REM Build signed AAB for Google Play release
echo Building release AAB...
call gradlew.bat bundleRelease
if %ERRORLEVEL% EQU 0 (
echo.
echo ========================================
echo Build successful!
echo ========================================
echo.
echo AAB location:
dir /b app\build\outputs\bundle\release\*.aab
echo.
echo Full path:
cd
echo \app\build\outputs\bundle\release\
echo.
) else (
echo.
echo ========================================
echo Build failed!
echo ========================================
echo.
)
pause