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 androidx.annotation.Nullable;
import androidx.preference.SwitchPreference;
import androidx.preference.SwitchPreferenceCompat;
import com.panda3ds.pandroid.R;
import com.panda3ds.pandroid.app.PandroidApplication;
@ -19,10 +19,10 @@ public class AdvancedPreferences extends BasePreferenceFragment {
setPreferencesFromResource(R.xml.advanced_preferences, rootKey);
setActivityTitle(R.string.advanced_options);
setItemClick("performanceMonitor", pref -> GlobalConfig.set(GlobalConfig.KEY_SHOW_PERFORMANCE_OVERLAY, ((SwitchPreference) pref).isChecked()));
setItemClick("shaderJit", pref -> GlobalConfig.set(GlobalConfig.KEY_SHADER_JIT, ((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, ((SwitchPreferenceCompat) pref).isChecked()));
setItemClick("loggerService", pref -> {
boolean checked = ((SwitchPreference) pref).isChecked();
boolean checked = ((SwitchPreferenceCompat) pref).isChecked();
Context ctx = PandroidApplication.getAppContext();
if (checked) {
ctx.startService(new Intent(ctx, LoggerService.class));
@ -42,8 +42,8 @@ public class AdvancedPreferences extends BasePreferenceFragment {
}
private void refresh() {
((SwitchPreference) findPreference("performanceMonitor")).setChecked(GlobalConfig.get(GlobalConfig.KEY_SHOW_PERFORMANCE_OVERLAY));
((SwitchPreference) findPreference("loggerService")).setChecked(GlobalConfig.get(GlobalConfig.KEY_LOGGER_SERVICE));
((SwitchPreference) findPreference("shaderJit")).setChecked(GlobalConfig.get(GlobalConfig.KEY_SHADER_JIT));
((SwitchPreferenceCompat) findPreference("performanceMonitor")).setChecked(GlobalConfig.get(GlobalConfig.KEY_SHOW_PERFORMANCE_OVERLAY));
((SwitchPreferenceCompat) findPreference("loggerService")).setChecked(GlobalConfig.get(GlobalConfig.KEY_LOGGER_SERVICE));
((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="android:statusBarColor">?colorSurface</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 name="PreferenceTheme" parent="PreferenceThemeOverlay">
<item name="preferenceFragmentCompatStyle">@style/PreferenceStyle</item>
<item name="switchPreferenceCompatStyle">@style/Preference.SwitchPreferenceCompat</item>
</style>
<style name="PreferenceStyle" parent="PreferenceFragment.Material">
<item name="android:divider">?colorSurfaceVariant</item>
</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">
<item name="android:windowBackground">@drawable/alert_dialog_background</item>
<item name="materialAlertDialogTitleTextStyle">@style/AlertDialog.Title</item>

View file

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