android: frontend: SettingsFragmentPresenter: Organize settings into logical categories.
This commit is contained in:
parent
68cabace70
commit
c7c41586ca
@ -149,20 +149,4 @@ public final class SettingsFragment extends Fragment implements SettingsFragment
|
||||
public void onSettingChanged() {
|
||||
mActivity.onSettingChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGcPadSettingChanged(String key, int value) {
|
||||
mActivity.onGcPadSettingChanged(key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWiimoteSettingChanged(String section, int value) {
|
||||
mActivity.onWiimoteSettingChanged(section, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExtensionSettingChanged(String key, int value) {
|
||||
mActivity.onExtensionSettingChanged(key, value);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -3,16 +3,14 @@ package org.citra.citra_android.ui.settings;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import org.citra.citra_android.R;
|
||||
import org.citra.citra_android.model.settings.IntSetting;
|
||||
import org.citra.citra_android.model.settings.Setting;
|
||||
import org.citra.citra_android.model.settings.SettingSection;
|
||||
import org.citra.citra_android.model.settings.view.CheckBoxSetting;
|
||||
import org.citra.citra_android.model.settings.view.DateTimeSetting;
|
||||
import org.citra.citra_android.model.settings.view.HeaderSetting;
|
||||
import org.citra.citra_android.model.settings.view.SettingsItem;
|
||||
import org.citra.citra_android.model.settings.view.SingleChoiceSetting;
|
||||
import org.citra.citra_android.model.settings.view.SliderSetting;
|
||||
import org.citra.citra_android.utils.EGLHelper;
|
||||
import org.citra.citra_android.model.settings.view.SubmenuSetting;
|
||||
import org.citra.citra_android.utils.SettingsFile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -66,6 +64,7 @@ public final class SettingsFragmentPresenter {
|
||||
|
||||
loadSettingsList();
|
||||
} else {
|
||||
mView.getActivity().setTitle(R.string.preferences_settings);
|
||||
mView.showSettingsList(mSettingsList);
|
||||
}
|
||||
}
|
||||
@ -78,10 +77,20 @@ public final class SettingsFragmentPresenter {
|
||||
|
||||
switch (mMenuTag) {
|
||||
case SettingsFile.FILE_NAME_CONFIG:
|
||||
addCoreSettings(sl);
|
||||
sl.add(new HeaderSetting(null, null, R.string.video_backend, 0));
|
||||
addConfigSettings(sl);
|
||||
break;
|
||||
case SettingsFile.SECTION_GENERAL:
|
||||
addGeneralSettings(sl);
|
||||
break;
|
||||
case SettingsFile.SECTION_SYSTEM:
|
||||
addSystemSettings(sl);
|
||||
break;
|
||||
case SettingsFile.SECTION_GRAPHICS:
|
||||
addGraphicsSettings(sl);
|
||||
break;
|
||||
case SettingsFile.SECTION_AUDIO:
|
||||
addAudioSettings(sl);
|
||||
break;
|
||||
default:
|
||||
mView.showToastMessage("Unimplemented menu");
|
||||
return;
|
||||
@ -91,16 +100,43 @@ public final class SettingsFragmentPresenter {
|
||||
mView.showSettingsList(mSettingsList);
|
||||
}
|
||||
|
||||
private void addCoreSettings(ArrayList<SettingsItem> sl) {
|
||||
private void addConfigSettings(ArrayList<SettingsItem> sl) {
|
||||
mView.getActivity().setTitle(R.string.preferences_settings);
|
||||
|
||||
sl.add(new SubmenuSetting(null, null, R.string.preferences_general, 0, SettingsFile.SECTION_GENERAL));
|
||||
sl.add(new SubmenuSetting(null, null, R.string.preferences_system, 0, SettingsFile.SECTION_SYSTEM));
|
||||
sl.add(new SubmenuSetting(null, null, R.string.preferences_graphics, 0, SettingsFile.SECTION_GRAPHICS));
|
||||
sl.add(new SubmenuSetting(null, null, R.string.preferences_audio, 0, SettingsFile.SECTION_AUDIO));
|
||||
}
|
||||
|
||||
private void addGeneralSettings(ArrayList<SettingsItem> sl) {
|
||||
mView.getActivity().setTitle(R.string.preferences_general);
|
||||
|
||||
Setting useCpuJit = null;
|
||||
Setting audioStretch = null;
|
||||
Setting frameLimitEnable = null;
|
||||
Setting frameLimitValue = null;
|
||||
|
||||
if (!mSettings.get(SettingsFile.SETTINGS_DOLPHIN).isEmpty()) {
|
||||
useCpuJit = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_GENERAL).getSetting(SettingsFile.KEY_CPU_JIT);
|
||||
frameLimitEnable = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_GENERAL).getSetting(SettingsFile.KEY_FRAME_LIMIT_ENABLED);
|
||||
frameLimitValue = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_GENERAL).getSetting(SettingsFile.KEY_FRAME_LIMIT);
|
||||
} else {
|
||||
mView.passSettingsToActivity(mSettings);
|
||||
}
|
||||
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_CPU_JIT, SettingsFile.SECTION_GENERAL, SettingsFile.SETTINGS_DOLPHIN, R.string.cpu_jit, 0, true, useCpuJit));
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_FRAME_LIMIT_ENABLED, SettingsFile.SECTION_GENERAL, SettingsFile.SETTINGS_DOLPHIN, R.string.overclock_enable, 0, false, frameLimitEnable));
|
||||
sl.add(new SliderSetting(SettingsFile.KEY_FRAME_LIMIT, SettingsFile.SECTION_GENERAL, SettingsFile.SETTINGS_DOLPHIN, R.string.overclock_title, R.string.overclock_enable_description, 500, "%", 100, frameLimitValue));
|
||||
}
|
||||
|
||||
private void addSystemSettings(ArrayList<SettingsItem> sl) {
|
||||
mView.getActivity().setTitle(R.string.preferences_system);
|
||||
|
||||
Setting region = null;
|
||||
Setting systemClock = null;
|
||||
Setting dateTime = null;
|
||||
|
||||
if (!mSettings.get(SettingsFile.SETTINGS_DOLPHIN).isEmpty()) {
|
||||
useCpuJit = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_CORE).getSetting(SettingsFile.KEY_CPU_JIT);
|
||||
audioStretch = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_AUDIO).getSetting(SettingsFile.KEY_ENABLE_AUDIO_STRETCHING);
|
||||
region = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_SYSTEM).getSetting(SettingsFile.KEY_REGION_VALUE);
|
||||
systemClock = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_SYSTEM).getSetting(SettingsFile.KEY_INIT_CLOCK);
|
||||
dateTime = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_SYSTEM).getSetting(SettingsFile.KEY_INIT_TIME);
|
||||
@ -108,32 +144,28 @@ public final class SettingsFragmentPresenter {
|
||||
mView.passSettingsToActivity(mSettings);
|
||||
}
|
||||
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_CPU_JIT, SettingsFile.SECTION_CORE, SettingsFile.SETTINGS_DOLPHIN, R.string.cpu_jit, 0, true, useCpuJit));
|
||||
sl.add(new SingleChoiceSetting(SettingsFile.KEY_REGION_VALUE, SettingsFile.SECTION_SYSTEM, SettingsFile.SETTINGS_DOLPHIN, R.string.region, 0, R.array.regionNames, R.array.regionValues, -1, region));
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_ENABLE_AUDIO_STRETCHING, SettingsFile.SECTION_AUDIO, SettingsFile.SETTINGS_DOLPHIN, R.string.audio_stretch, R.string.audio_stretch_description, false, audioStretch));
|
||||
sl.add(new SingleChoiceSetting(SettingsFile.KEY_INIT_CLOCK, SettingsFile.SECTION_SYSTEM, SettingsFile.SETTINGS_DOLPHIN, R.string.init_clock, R.string.init_clock_descrip, R.array.systemClockNames, R.array.systemClockValues, 0, systemClock));
|
||||
sl.add(new DateTimeSetting(SettingsFile.KEY_INIT_TIME, SettingsFile.SECTION_SYSTEM, SettingsFile.SETTINGS_DOLPHIN, R.string.init_time, R.string.init_time_descrip, "2000-01-01 00:00:01", dateTime));
|
||||
}
|
||||
|
||||
private void addGraphicsSettings(ArrayList<SettingsItem> sl) {
|
||||
mView.getActivity().setTitle(R.string.preferences_graphics);
|
||||
|
||||
Setting hardwareRenderer = null;
|
||||
Setting hardwareShader = null;
|
||||
Setting shadersAccurateMul = null;
|
||||
Setting shadersAccurateGs = null;
|
||||
Setting resolutionFactor = null;
|
||||
Setting vsyncEnable = null;
|
||||
Setting frameLimitEnable = null;
|
||||
Setting frameLimitValue = null;
|
||||
|
||||
if (!mSettings.get(SettingsFile.SETTINGS_DOLPHIN).isEmpty()) {
|
||||
hardwareRenderer = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_RENDERER).getSetting(SettingsFile.KEY_HW_RENDERER);
|
||||
hardwareShader = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_RENDERER).getSetting(SettingsFile.KEY_HW_SHADER);
|
||||
shadersAccurateMul = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_RENDERER).getSetting(SettingsFile.KEY_SHADERS_ACCURATE_MUL);
|
||||
shadersAccurateGs = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_RENDERER).getSetting(SettingsFile.KEY_SHADERS_ACCURATE_GS);
|
||||
resolutionFactor = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_RENDERER).getSetting(SettingsFile.KEY_RESOLUTION_FACTOR);
|
||||
vsyncEnable = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_RENDERER).getSetting(SettingsFile.KEY_USE_VSYNC);
|
||||
frameLimitEnable = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_RENDERER).getSetting(SettingsFile.KEY_FRAME_LIMIT_ENABLED);
|
||||
frameLimitValue = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_RENDERER).getSetting(SettingsFile.KEY_FRAME_LIMIT);
|
||||
hardwareRenderer = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_GRAPHICS).getSetting(SettingsFile.KEY_HW_RENDERER);
|
||||
hardwareShader = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_GRAPHICS).getSetting(SettingsFile.KEY_HW_SHADER);
|
||||
shadersAccurateMul = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_GRAPHICS).getSetting(SettingsFile.KEY_SHADERS_ACCURATE_MUL);
|
||||
shadersAccurateGs = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_GRAPHICS).getSetting(SettingsFile.KEY_SHADERS_ACCURATE_GS);
|
||||
resolutionFactor = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_GRAPHICS).getSetting(SettingsFile.KEY_RESOLUTION_FACTOR);
|
||||
vsyncEnable = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_GRAPHICS).getSetting(SettingsFile.KEY_USE_VSYNC);
|
||||
} else {
|
||||
mView.passSettingsToActivity(mSettings);
|
||||
}
|
||||
@ -142,13 +174,25 @@ public final class SettingsFragmentPresenter {
|
||||
mView.passSettingsToActivity(mSettings);
|
||||
}
|
||||
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_HW_RENDERER, SettingsFile.SECTION_RENDERER, SettingsFile.SETTINGS_DOLPHIN, R.string.hw_renderer, 0, true, hardwareRenderer));
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_HW_SHADER, SettingsFile.SECTION_RENDERER, SettingsFile.SETTINGS_DOLPHIN, R.string.hw_shaders, R.string.hw_shaders_descrip, true, hardwareShader));
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_SHADERS_ACCURATE_MUL, SettingsFile.SECTION_RENDERER, SettingsFile.SETTINGS_DOLPHIN, R.string.shaders_accurate_mul, 0, false, shadersAccurateMul));
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_SHADERS_ACCURATE_GS, SettingsFile.SECTION_RENDERER, SettingsFile.SETTINGS_DOLPHIN, R.string.shaders_accurate_gs, 0, false, shadersAccurateGs));
|
||||
sl.add(new SliderSetting(SettingsFile.KEY_RESOLUTION_FACTOR, SettingsFile.SECTION_RENDERER, SettingsFile.SETTINGS_DOLPHIN, R.string.internal_resolution, R.string.internal_resolution_descrip, 10, "x", 0, resolutionFactor));
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_USE_VSYNC, SettingsFile.SECTION_RENDERER, SettingsFile.SETTINGS_DOLPHIN, R.string.vsync, 0, false, vsyncEnable));
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_FRAME_LIMIT_ENABLED, SettingsFile.SECTION_RENDERER, SettingsFile.SETTINGS_DOLPHIN, R.string.overclock_enable, 0, false, frameLimitEnable));
|
||||
sl.add(new SliderSetting(SettingsFile.KEY_FRAME_LIMIT, SettingsFile.SECTION_RENDERER, SettingsFile.SETTINGS_DOLPHIN, R.string.overclock_title, R.string.overclock_enable_description, 500, "%", 100, frameLimitValue));
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_HW_RENDERER, SettingsFile.SECTION_GRAPHICS, SettingsFile.SETTINGS_DOLPHIN, R.string.hw_renderer, 0, true, hardwareRenderer));
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_HW_SHADER, SettingsFile.SECTION_GRAPHICS, SettingsFile.SETTINGS_DOLPHIN, R.string.hw_shaders, R.string.hw_shaders_descrip, true, hardwareShader));
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_SHADERS_ACCURATE_MUL, SettingsFile.SECTION_GRAPHICS, SettingsFile.SETTINGS_DOLPHIN, R.string.shaders_accurate_mul, 0, false, shadersAccurateMul));
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_SHADERS_ACCURATE_GS, SettingsFile.SECTION_GRAPHICS, SettingsFile.SETTINGS_DOLPHIN, R.string.shaders_accurate_gs, 0, false, shadersAccurateGs));
|
||||
sl.add(new SliderSetting(SettingsFile.KEY_RESOLUTION_FACTOR, SettingsFile.SECTION_GRAPHICS, SettingsFile.SETTINGS_DOLPHIN, R.string.internal_resolution, R.string.internal_resolution_descrip, 10, "x", 0, resolutionFactor));
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_USE_VSYNC, SettingsFile.SECTION_GRAPHICS, SettingsFile.SETTINGS_DOLPHIN, R.string.vsync, 0, false, vsyncEnable));
|
||||
}
|
||||
|
||||
private void addAudioSettings(ArrayList<SettingsItem> sl) {
|
||||
mView.getActivity().setTitle(R.string.preferences_audio);
|
||||
|
||||
Setting audioStretch = null;
|
||||
|
||||
if (!mSettings.get(SettingsFile.SETTINGS_DOLPHIN).isEmpty()) {
|
||||
audioStretch = mSettings.get(SettingsFile.SETTINGS_DOLPHIN).get(SettingsFile.SECTION_AUDIO).getSetting(SettingsFile.KEY_ENABLE_AUDIO_STRETCHING);
|
||||
} else {
|
||||
mView.passSettingsToActivity(mSettings);
|
||||
}
|
||||
|
||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_ENABLE_AUDIO_STRETCHING, SettingsFile.SECTION_AUDIO, SettingsFile.SETTINGS_DOLPHIN, R.string.audio_stretch, R.string.audio_stretch_description, false, audioStretch));
|
||||
}
|
||||
}
|
@ -75,29 +75,4 @@ public interface SettingsFragmentView {
|
||||
* Have the fragment tell the containing Activity that a setting was modified.
|
||||
*/
|
||||
void onSettingChanged();
|
||||
|
||||
/**
|
||||
* Have the fragment tell the containing Activity that a GCPad's setting was modified.
|
||||
*
|
||||
* @param key Identifier for the GCPad that was modified.
|
||||
* @param value New setting for the GCPad.
|
||||
*/
|
||||
void onGcPadSettingChanged(String key, int value);
|
||||
|
||||
/**
|
||||
* Have the fragment tell the containing Activity that a Wiimote's setting was modified.
|
||||
*
|
||||
* @param section Identifier for Wiimote that was modified; Wiimotes are identified by their section,
|
||||
* not their key.
|
||||
* @param value New setting for the Wiimote.
|
||||
*/
|
||||
void onWiimoteSettingChanged(String section, int value);
|
||||
|
||||
/**
|
||||
* Have the fragment tell the containing Activity that an extension setting was modified.
|
||||
*
|
||||
* @param key Identifier for the extension that was modified.
|
||||
* @param value New setting for the extension.
|
||||
*/
|
||||
void onExtensionSettingChanged(String key, int value);
|
||||
}
|
||||
|
@ -49,16 +49,10 @@ public final class SettingsFile {
|
||||
|
||||
public static final String FILE_NAME_CONFIG = "config";
|
||||
|
||||
public static final String SECTION_CONTROLS = "Controls";
|
||||
public static final String SECTION_CORE = "Core";
|
||||
public static final String SECTION_RENDERER = "Renderer";
|
||||
public static final String SECTION_LAYOUT = "Layout";
|
||||
public static final String SECTION_AUDIO = "Audio";
|
||||
public static final String SECTION_GENERAL = "General";
|
||||
public static final String SECTION_SYSTEM = "System";
|
||||
public static final String SECTION_CAMERA = "Camera";
|
||||
public static final String SECTION_MISC = "Miscellaneous";
|
||||
public static final String SECTION_DEBUGGING = "Debugging";
|
||||
public static final String SECTION_WEBSERVICE = "WebService";
|
||||
public static final String SECTION_GRAPHICS = "Graphics";
|
||||
public static final String SECTION_AUDIO = "Audio";
|
||||
|
||||
public static final String KEY_CPU_JIT = "use_cpu_jit";
|
||||
|
||||
|
@ -108,7 +108,6 @@
|
||||
<string name="vsync">Enable V-Sync</string>
|
||||
<string name="hw_renderer">Enable hardware renderer</string>
|
||||
<string name="hw_shaders">Enable hardware shader</string>
|
||||
<string name="use_shader_jit">Enable JIT compiler for shaders</string>
|
||||
<string name="hw_shaders_descrip">Use hardware to emulate 3DS shaders</string>
|
||||
<string name="shaders_accurate_mul">Enable accurate multiplication in hardware shaders</string>>
|
||||
<string name="shaders_accurate_gs">Enable accurate geometric shaders in hardware shaders</string>
|
||||
@ -132,16 +131,6 @@
|
||||
<string name="disable_fog_descrip">Makes distant objects more visible by removing fog, thus increasing the overall detail. Disabling fog will break some games which rely on proper fog emulation.</string>
|
||||
<string name="disable_copy_filter">Disable Copy Filter</string>
|
||||
<string name="disable_copy_filter_descrip">Disables the blending of adjacent rows when copying the EFB. This is known in some games as \"deflickering\" or \"smoothing\". Disabling the filter is usually safe, and may result in a sharper image.</string>
|
||||
<string name="stereoscopy">Stereoscopy</string>
|
||||
<string name="stereoscopy_descrip">Stereoscopy allows you to get a better feeling of depth if you have the necessary hardware.\nHeavily decreases emulation speed and sometimes causes issues</string>
|
||||
<string name="stereoscopy_mode">Stereoscopy Mode</string>
|
||||
<string name="stereoscopy_mode_descrip">Select the stereoscopic 3D mode.</string>
|
||||
<string name="sterescopy_depth">Depth</string>
|
||||
<string name="sterescopy_depth_descrip">Control the distance between the virtual cameras.\nA higher value creates a stronger feeling of depth while a lower value is more comfortable.</string>
|
||||
<string name="sterescopy_convergence">Convergence</string>
|
||||
<string name="sterescopy_convergence_descrip">Control the distance of the convergence plane, this is the distance at which objects will appear to be in front of the screen.\nA higher value creates stronger out-of-screen effects while a lower value is more comfortable.</string>
|
||||
<string name="sterescopy_swap_eyes">Swap Eyes</string>
|
||||
<string name="sterescopy_swap_eyes_descrip">Swap the left and right eye, mostly useful if you want to view side-by-side cross-eyed.</string>
|
||||
|
||||
<string name="hacks">Hacks</string>
|
||||
<string name="embedded_frame_buffer">Embedded Frame Buffer</string>
|
||||
@ -196,6 +185,10 @@
|
||||
<string name="preferences_settings">Settings</string>
|
||||
<string name="preferences_game_settings">Game Settings</string>
|
||||
<string name="preferences_extensions">Extension Bindings</string>
|
||||
<string name="preferences_general">General</string>
|
||||
<string name="preferences_system">System</string>
|
||||
<string name="preferences_graphics">Graphics</string>
|
||||
<string name="preferences_audio">Audio</string>
|
||||
|
||||
<!-- Emulation Menu -->
|
||||
<string name="emulation_screenshot">Take Screenshot</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user