Material Switch (#10) | ISHAN | REVIEW

This commit is contained in:
Ishan09811 2024-02-20 00:06:42 +05:30 committed by GitHub
parent eed85a2c7d
commit 83dbbe053c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 34 additions and 29 deletions

View file

@ -5,7 +5,7 @@ import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreferenceCompat;
import com.panda3ds.pandroid.R; import com.panda3ds.pandroid.R;
import com.panda3ds.pandroid.app.PandroidApplication; import com.panda3ds.pandroid.app.PandroidApplication;
@ -19,10 +19,10 @@ public class AdvancedPreferences extends BasePreferenceFragment {
setPreferencesFromResource(R.xml.advanced_preferences, rootKey); setPreferencesFromResource(R.xml.advanced_preferences, rootKey);
setActivityTitle(R.string.advanced_options); setActivityTitle(R.string.advanced_options);
setItemClick("performanceMonitor", pref -> GlobalConfig.set(GlobalConfig.KEY_SHOW_PERFORMANCE_OVERLAY, ((SwitchPreference) pref).isChecked())); setItemClick("performanceMonitor", pref -> GlobalConfig.set(GlobalConfig.KEY_SHOW_PERFORMANCE_OVERLAY, ((SwitchPreferenceCompat) pref).isChecked()));
setItemClick("shaderJit", pref -> GlobalConfig.set(GlobalConfig.KEY_SHADER_JIT, ((SwitchPreference) pref).isChecked())); setItemClick("shaderJit", pref -> GlobalConfig.set(GlobalConfig.KEY_SHADER_JIT, ((SwitchPreferenceCompat) pref).isChecked()));
setItemClick("loggerService", pref -> { setItemClick("loggerService", pref -> {
boolean checked = ((SwitchPreference) pref).isChecked(); boolean checked = ((SwitchPreferenceCompat) pref).isChecked();
Context ctx = PandroidApplication.getAppContext(); Context ctx = PandroidApplication.getAppContext();
if (checked) { if (checked) {
ctx.startService(new Intent(ctx, LoggerService.class)); ctx.startService(new Intent(ctx, LoggerService.class));
@ -42,8 +42,8 @@ public class AdvancedPreferences extends BasePreferenceFragment {
} }
private void refresh() { private void refresh() {
((SwitchPreference) findPreference("performanceMonitor")).setChecked(GlobalConfig.get(GlobalConfig.KEY_SHOW_PERFORMANCE_OVERLAY)); ((SwitchPreferenceCompat) findPreference("performanceMonitor")).setChecked(GlobalConfig.get(GlobalConfig.KEY_SHOW_PERFORMANCE_OVERLAY));
((SwitchPreference) findPreference("loggerService")).setChecked(GlobalConfig.get(GlobalConfig.KEY_LOGGER_SERVICE)); ((SwitchPreferenceCompat) findPreference("loggerService")).setChecked(GlobalConfig.get(GlobalConfig.KEY_LOGGER_SERVICE));
((SwitchPreference) findPreference("shaderJit")).setChecked(GlobalConfig.get(GlobalConfig.KEY_SHADER_JIT)); ((SwitchPreferenceCompat) findPreference("shaderJit")).setChecked(GlobalConfig.get(GlobalConfig.KEY_SHADER_JIT));
} }
} }

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.materialswitch.MaterialSwitch
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/switchWidget"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:clickable="false"
android:focusable="false"/>

View file

@ -7,30 +7,21 @@
<item name="preferenceTheme">@style/PreferenceTheme</item> <item name="preferenceTheme">@style/PreferenceTheme</item>
<item name="android:statusBarColor">?colorSurface</item> <item name="android:statusBarColor">?colorSurface</item>
<item name="android:windowLightStatusBar">?isLightTheme</item> <item name="android:windowLightStatusBar">?isLightTheme</item>
<item name="switchStyle">@style/SwitchStyle</item>
<item name="materialSwitchStyle">@style/SwitchStyle</item>
<item name="android:switchStyle">@style/SwitchStyle</item>
</style>
<style name="SwitchStyle" parent="Widget.Material3.CompoundButton.MaterialSwitch">
<item name="android:thumb">@drawable/switch_thumb</item>
<item name="android:track">@drawable/switch_track</item>
<item name="thumbRadius">0dp</item>
<item name="android:thumbOffset">0dp</item>
<item name="android:padding">0dp</item>
<item name="showText">false</item>
<item name="android:showText">false</item>
</style> </style>
<style name="PreferenceTheme" parent="PreferenceThemeOverlay"> <style name="PreferenceTheme" parent="PreferenceThemeOverlay">
<item name="preferenceFragmentCompatStyle">@style/PreferenceStyle</item> <item name="preferenceFragmentCompatStyle">@style/PreferenceStyle</item>
<item name="switchPreferenceCompatStyle">@style/Preference.SwitchPreferenceCompat</item>
</style> </style>
<style name="PreferenceStyle" parent="PreferenceFragment.Material"> <style name="PreferenceStyle" parent="PreferenceFragment.Material">
<item name="android:divider">?colorSurfaceVariant</item> <item name="android:divider">?colorSurfaceVariant</item>
</style> </style>
<style name="Preference.SwitchPreferenceCompat" parent="Preference.SwitchPreferenceCompat.Material">
<item name="android:widgetLayout">@layout/material_switch_widget</item>
</style>
<style name="AlertDialog" parent="ThemeOverlay.Material3.MaterialAlertDialog"> <style name="AlertDialog" parent="ThemeOverlay.Material3.MaterialAlertDialog">
<item name="android:windowBackground">@drawable/alert_dialog_background</item> <item name="android:windowBackground">@drawable/alert_dialog_background</item>
<item name="materialAlertDialogTitleTextStyle">@style/AlertDialog.Title</item> <item name="materialAlertDialogTitleTextStyle">@style/AlertDialog.Title</item>

View file

@ -2,29 +2,34 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<SwitchPreference <SwitchPreferenceCompat
android:key="performanceMonitor" android:key="performanceMonitor"
app:title="@string/pref_performance_monitor_title" app:title="@string/pref_performance_monitor_title"
app:summary="@string/pref_performance_monitor_summary" app:summaryOn="@string/pref_performance_monitor_summary"
app:summaryOff="@string/pref_performance_monitor_summary"
android:defaultValue="false"
app:iconSpaceReserved="false"/> app:iconSpaceReserved="false"/>
<SwitchPreference <SwitchPreferenceCompat
android:key="loggerService" android:key="loggerService"
app:iconSpaceReserved="false" app:iconSpaceReserved="false"
app:title="@string/pref_logger_service_title" app:title="@string/pref_logger_service_title"
app:defaultValue="true" android:defaultValue="true"
android:summary="@string/pref_logger_service_summary"/> android:summaryOn="@string/pref_logger_service_summary"
android:summaryOff="@string/pref_logger_service_summary"/>
<PreferenceCategory <PreferenceCategory
app:iconSpaceReserved="false" app:iconSpaceReserved="false"
app:title="@string/graphics"> app:title="@string/graphics">
<SwitchPreference <SwitchPreferenceCompat
app:key="shaderJit" app:key="shaderJit"
app:title="@string/pref_shader_jit_title" app:title="@string/pref_shader_jit_title"
app:summary="@string/pref_shader_jit_summary" android:defaultValue="false"
app:summaryOn="@string/pref_shader_jit_summary"
app:summaryOff="@string/pref_shader_jit_summary"
app:iconSpaceReserved="false"/> app:iconSpaceReserved="false"/>
</PreferenceCategory> </PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>