mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2024-11-27 16:15:41 +00:00
Android: Use switch for trait game settings
This commit is contained in:
parent
b2447e2270
commit
7ff35828e4
|
@ -99,6 +99,11 @@ public class GamePropertiesActivity extends AppCompatActivity {
|
||||||
ps.addPreference(pref);
|
ps.addPreference(pref);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createTraitGameSetting(PreferenceScreen ps, String key, int titleId) {
|
||||||
|
GameTraitPreference pref = new GameTraitPreference(ps.getContext(), mGameListEntry.getPath(), key, titleId);
|
||||||
|
ps.addPreference(pref);
|
||||||
|
}
|
||||||
|
|
||||||
private void createListGameSetting(PreferenceScreen ps, String key, int titleId, int entryId, int entryValuesId) {
|
private void createListGameSetting(PreferenceScreen ps, String key, int titleId, int entryId, int entryValuesId) {
|
||||||
GameSettingPreference pref = new GameSettingPreference(ps.getContext(), mGameListEntry.getPath(), key, titleId, entryId, entryValuesId);
|
GameSettingPreference pref = new GameSettingPreference(ps.getContext(), mGameListEntry.getPath(), key, titleId, entryId, entryValuesId);
|
||||||
ps.addPreference(pref);
|
ps.addPreference(pref);
|
||||||
|
@ -136,11 +141,11 @@ public class GamePropertiesActivity extends AppCompatActivity {
|
||||||
activity.createBooleanGameSetting(ps, "GPUPGXP", R.string.settings_pgxp_geometry_correction);
|
activity.createBooleanGameSetting(ps, "GPUPGXP", R.string.settings_pgxp_geometry_correction);
|
||||||
activity.createBooleanGameSetting(ps, "PGXPPreserveProjFP", R.string.settings_pgxp_preserve_projection_precision);
|
activity.createBooleanGameSetting(ps, "PGXPPreserveProjFP", R.string.settings_pgxp_preserve_projection_precision);
|
||||||
activity.createBooleanGameSetting(ps, "GPUPGXPDepthBuffer", R.string.settings_pgxp_depth_buffer);
|
activity.createBooleanGameSetting(ps, "GPUPGXPDepthBuffer", R.string.settings_pgxp_depth_buffer);
|
||||||
activity.createBooleanGameSetting(ps, "ForceSoftwareRenderer", R.string.settings_use_software_renderer);
|
activity.createTraitGameSetting(ps, "ForceSoftwareRenderer", R.string.settings_use_software_renderer);
|
||||||
activity.createBooleanGameSetting(ps, "ForceSoftwareRendererForReadbacks", R.string.settings_use_software_renderer_for_readbacks);
|
activity.createTraitGameSetting(ps, "ForceSoftwareRendererForReadbacks", R.string.settings_use_software_renderer_for_readbacks);
|
||||||
activity.createBooleanGameSetting(ps, "DisableWidescreen", R.string.settings_disable_widescreen);
|
activity.createTraitGameSetting(ps, "DisableWidescreen", R.string.settings_disable_widescreen);
|
||||||
activity.createBooleanGameSetting(ps, "ForcePGXPVertexCache", R.string.settings_pgxp_vertex_cache);
|
activity.createTraitGameSetting(ps, "ForcePGXPVertexCache", R.string.settings_pgxp_vertex_cache);
|
||||||
activity.createBooleanGameSetting(ps, "ForcePGXPCPUMode", R.string.settings_pgxp_cpu_mode);
|
activity.createTraitGameSetting(ps, "ForcePGXPCPUMode", R.string.settings_pgxp_cpu_mode);
|
||||||
|
|
||||||
setPreferenceScreen(ps);
|
setPreferenceScreen(ps);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
package com.github.stenzek.duckstation;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import androidx.preference.ListPreference;
|
||||||
|
import androidx.preference.SwitchPreference;
|
||||||
|
|
||||||
|
public class GameTraitPreference extends SwitchPreference {
|
||||||
|
private String mGamePath;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a boolean game property preference.
|
||||||
|
*/
|
||||||
|
public GameTraitPreference(Context context, String gamePath, String settingKey, int titleId) {
|
||||||
|
super(context);
|
||||||
|
mGamePath = gamePath;
|
||||||
|
setPersistent(false);
|
||||||
|
setTitle(titleId);
|
||||||
|
setKey(settingKey);
|
||||||
|
setIconSpaceReserved(false);
|
||||||
|
updateValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateValue() {
|
||||||
|
final String value = AndroidHostInterface.getInstance().getGameSettingValue(mGamePath, getKey());
|
||||||
|
super.setChecked(value != null && value.equals("true"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setChecked(boolean checked) {
|
||||||
|
super.setChecked(checked);
|
||||||
|
AndroidHostInterface.getInstance().setGameSettingValue(mGamePath, getKey(), checked ? "true" : "false");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue