Overhaul config menu to make code easier to expand upon
This also fixes a few minor syntax errors that were the reault of duplication code across individual menu options.
This commit is contained in:
parent
acef71f184
commit
684c07c5ce
|
@ -102,52 +102,10 @@ public class ConfigureFragment extends Fragment {
|
||||||
public void onCheckedChanged(CompoundButton buttonView,
|
public void onCheckedChanged(CompoundButton buttonView,
|
||||||
boolean isChecked) {
|
boolean isChecked) {
|
||||||
mPrefs.edit().putBoolean("stretch_view", isChecked).commit();
|
mPrefs.edit().putBoolean("stretch_view", isChecked).commit();
|
||||||
File config = new File(home_directory, "emu.cfg");
|
|
||||||
try {
|
|
||||||
StringBuilder rebuildFile = new StringBuilder();
|
|
||||||
if (config.exists()) {
|
|
||||||
Scanner scanner = new Scanner(config);
|
|
||||||
String currentLine;
|
|
||||||
while (scanner.hasNextLine()) {
|
|
||||||
currentLine = scanner.nextLine();
|
|
||||||
if (StringUtils.containsIgnoreCase(currentLine,
|
|
||||||
"rend.WideScreen")) {
|
|
||||||
rebuildFile.append("rend.WideScreen="
|
|
||||||
+ String.valueOf(isChecked ? 1 : 0)
|
|
||||||
+ "\n");
|
|
||||||
} else {
|
|
||||||
rebuildFile.append(currentLine + "\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
scanner.close();
|
|
||||||
config.delete();
|
|
||||||
// Investigate alternatives to not re-read
|
|
||||||
} else {
|
|
||||||
rebuildFile.append("[config]" + "\n");
|
|
||||||
rebuildFile.append("Dynarec.Enabled=1" + "\n");
|
|
||||||
rebuildFile.append("Dynarec.idleskip=1" + "\n");
|
|
||||||
rebuildFile.append("Dynarec.unstable-opt=0" + "\n");
|
|
||||||
rebuildFile.append("Dreamcast.Cable=3" + "\n");
|
|
||||||
rebuildFile.append("Dreamcast.RTC=2018927206" + "\n");
|
|
||||||
rebuildFile.append("Dreamcast.Region=3" + "\n");
|
|
||||||
rebuildFile.append("Dreamcast.Broadcast=4" + "\n");
|
|
||||||
rebuildFile.append("aica.LimitFPS=1" + "\n");
|
|
||||||
rebuildFile.append("aica.NoBatch=0" + "\n");
|
|
||||||
rebuildFile.append("rend.UseMipmaps=1" + "\n");
|
|
||||||
rebuildFile.append("rend.WideScreen="
|
|
||||||
+ String.valueOf(isChecked ? 1 : 0) + "\n");
|
|
||||||
rebuildFile.append("pvr.Subdivide=0" + "\n");
|
|
||||||
rebuildFile.append("ta.skip=" + frameskip + "\n");
|
|
||||||
rebuildFile.append("pvr.rend="
|
|
||||||
+ String.valueOf(pvrrender ? 1 : 0) + "\n");
|
|
||||||
rebuildFile.append("image=null" + "\n");
|
|
||||||
}
|
|
||||||
FileOutputStream fos = new FileOutputStream(config);
|
|
||||||
fos.write(rebuildFile.toString().getBytes());
|
|
||||||
fos.close();
|
|
||||||
widescreen = isChecked;
|
widescreen = isChecked;
|
||||||
} catch (Exception e) {
|
if (!executeAppendConfig("rend.WideScreen",
|
||||||
Log.d("reicast", "Exception: " + e);
|
String.valueOf(isChecked ? 1 : 0))) {
|
||||||
|
executeWriteConfig();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -185,7 +143,7 @@ public class ConfigureFragment extends Fragment {
|
||||||
public void onProgressChanged(SeekBar seekBar, int progress,
|
public void onProgressChanged(SeekBar seekBar, int progress,
|
||||||
boolean fromUser) {
|
boolean fromUser) {
|
||||||
progressChanged = progress;
|
progressChanged = progress;
|
||||||
mainFrames.setText(progress);
|
mainFrames.setText(String.valueOf(progress));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onStartTrackingTouch(SeekBar seekBar) {
|
public void onStartTrackingTouch(SeekBar seekBar) {
|
||||||
|
@ -194,25 +152,84 @@ public class ConfigureFragment extends Fragment {
|
||||||
|
|
||||||
public void onStopTrackingTouch(SeekBar seekBar) {
|
public void onStopTrackingTouch(SeekBar seekBar) {
|
||||||
mPrefs.edit().putInt("frame_skip", progressChanged).commit();
|
mPrefs.edit().putInt("frame_skip", progressChanged).commit();
|
||||||
|
frameskip = progressChanged;
|
||||||
|
if (!executeAppendConfig("ta.skip",
|
||||||
|
String.valueOf(progressChanged))) {
|
||||||
|
executeWriteConfig();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
OnCheckedChangeListener pvr_rendering = new OnCheckedChangeListener() {
|
||||||
|
|
||||||
|
public void onCheckedChanged(CompoundButton buttonView,
|
||||||
|
boolean isChecked) {
|
||||||
|
mPrefs.edit().putBoolean("pvr_render", isChecked).commit();
|
||||||
|
pvrrender = isChecked;
|
||||||
|
if (!executeAppendConfig("pvr.rend",
|
||||||
|
String.valueOf(isChecked ? 1 : 0))) {
|
||||||
|
executeWriteConfig();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) {
|
||||||
|
Switch pvr_render = (Switch) getView().findViewById(
|
||||||
|
R.id.render_option);
|
||||||
|
boolean rendered = mPrefs.getBoolean("pvr_render", pvrrender);
|
||||||
|
if (rendered) {
|
||||||
|
pvr_render.setChecked(true);
|
||||||
|
} else {
|
||||||
|
pvr_render.setChecked(false);
|
||||||
|
}
|
||||||
|
pvr_render.setOnCheckedChangeListener(pvr_rendering);
|
||||||
|
} else {
|
||||||
|
CheckBox pvr_render = (CheckBox) getView().findViewById(
|
||||||
|
R.id.render_option);
|
||||||
|
boolean rendered = mPrefs.getBoolean("pvr_render", pvrrender);
|
||||||
|
if (rendered) {
|
||||||
|
pvr_render.setChecked(true);
|
||||||
|
} else {
|
||||||
|
pvr_render.setChecked(false);
|
||||||
|
}
|
||||||
|
pvr_render.setOnCheckedChangeListener(pvr_rendering);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean executeAppendConfig(String identifier, String value) {
|
||||||
File config = new File(home_directory, "emu.cfg");
|
File config = new File(home_directory, "emu.cfg");
|
||||||
|
if (config.exists()) {
|
||||||
try {
|
try {
|
||||||
StringBuilder rebuildFile = new StringBuilder();
|
StringBuilder rebuildFile = new StringBuilder();
|
||||||
if (config.exists()) {
|
|
||||||
Scanner scanner = new Scanner(config);
|
Scanner scanner = new Scanner(config);
|
||||||
String currentLine;
|
String currentLine;
|
||||||
while (scanner.hasNextLine()) {
|
while (scanner.hasNextLine()) {
|
||||||
currentLine = scanner.nextLine();
|
currentLine = scanner.nextLine();
|
||||||
if (StringUtils.containsIgnoreCase(currentLine,
|
if (StringUtils.containsIgnoreCase(currentLine, identifier)) {
|
||||||
"ta.skip")) {
|
rebuildFile.append(identifier + "=" + value + "\n");
|
||||||
rebuildFile.append("ta.skip=" + progressChanged
|
|
||||||
+ "\n");
|
|
||||||
} else {
|
} else {
|
||||||
rebuildFile.append(currentLine + "\n");
|
rebuildFile.append(currentLine + "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
scanner.close();
|
scanner.close();
|
||||||
config.delete();
|
config.delete();
|
||||||
} else {
|
FileOutputStream fos = new FileOutputStream(config);
|
||||||
|
fos.write(rebuildFile.toString().getBytes());
|
||||||
|
fos.close();
|
||||||
|
return true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.d("reicast", "Exception: " + e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void executeWriteConfig() {
|
||||||
|
try {
|
||||||
|
File config = new File(home_directory, "emu.cfg");
|
||||||
|
if (config.exists()) {
|
||||||
|
config.delete();
|
||||||
|
}
|
||||||
|
StringBuilder rebuildFile = new StringBuilder();
|
||||||
rebuildFile.append("[config]" + "\n");
|
rebuildFile.append("[config]" + "\n");
|
||||||
rebuildFile.append("Dynarec.Enabled=1" + "\n");
|
rebuildFile.append("Dynarec.Enabled=1" + "\n");
|
||||||
rebuildFile.append("Dynarec.idleskip=1" + "\n");
|
rebuildFile.append("Dynarec.idleskip=1" + "\n");
|
||||||
|
@ -227,95 +244,15 @@ public class ConfigureFragment extends Fragment {
|
||||||
rebuildFile.append("rend.WideScreen="
|
rebuildFile.append("rend.WideScreen="
|
||||||
+ String.valueOf(widescreen ? 1 : 0) + "\n");
|
+ String.valueOf(widescreen ? 1 : 0) + "\n");
|
||||||
rebuildFile.append("pvr.Subdivide=0" + "\n");
|
rebuildFile.append("pvr.Subdivide=0" + "\n");
|
||||||
rebuildFile.append("ta.skip=" + progressChanged + "\n");
|
rebuildFile.append("ta.skip=" + String.valueOf(frameskip) + "\n");
|
||||||
rebuildFile.append("pvr.rend="
|
rebuildFile.append("pvr.rend=" + String.valueOf(pvrrender ? 1 : 0)
|
||||||
+ String.valueOf(pvrrender ? 1 : 0) + "\n");
|
+ "\n");
|
||||||
rebuildFile.append("image=null" + "\n");
|
rebuildFile.append("image=null" + "\n");
|
||||||
}
|
|
||||||
FileOutputStream fos = new FileOutputStream(config);
|
FileOutputStream fos = new FileOutputStream(config);
|
||||||
fos.write(rebuildFile.toString().getBytes());
|
fos.write(rebuildFile.toString().getBytes());
|
||||||
fos.close();
|
fos.close();
|
||||||
frameskip = progressChanged;
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.d("reicast", "Exception: " + e);
|
Log.d("reicast", "Exception: " + e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
OnCheckedChangeListener pvr_rendering = new OnCheckedChangeListener() {
|
|
||||||
|
|
||||||
public void onCheckedChanged(CompoundButton buttonView,
|
|
||||||
boolean isChecked) {
|
|
||||||
mPrefs.edit().putBoolean("pvr_render", isChecked).commit();
|
|
||||||
File config = new File(home_directory, "emu.cfg");
|
|
||||||
try {
|
|
||||||
StringBuilder rebuildFile = new StringBuilder();
|
|
||||||
if (config.exists()) {
|
|
||||||
Scanner scanner = new Scanner(config);
|
|
||||||
String currentLine;
|
|
||||||
while (scanner.hasNextLine()) {
|
|
||||||
currentLine = scanner.nextLine();
|
|
||||||
if (StringUtils.containsIgnoreCase(currentLine,
|
|
||||||
"pvr.rend")) {
|
|
||||||
rebuildFile.append("pvr.rend="
|
|
||||||
+ String.valueOf(isChecked ? 1 : 0)
|
|
||||||
+ "\n");
|
|
||||||
} else {
|
|
||||||
rebuildFile.append(currentLine + "\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
scanner.close();
|
|
||||||
config.delete();
|
|
||||||
// Investigate alternatives to not re-read
|
|
||||||
} else {
|
|
||||||
rebuildFile.append("[config]" + "\n");
|
|
||||||
rebuildFile.append("Dynarec.Enabled=1" + "\n");
|
|
||||||
rebuildFile.append("Dynarec.idleskip=1" + "\n");
|
|
||||||
rebuildFile.append("Dynarec.unstable-opt=0" + "\n");
|
|
||||||
rebuildFile.append("Dreamcast.Cable=3" + "\n");
|
|
||||||
rebuildFile.append("Dreamcast.RTC=2018927206" + "\n");
|
|
||||||
rebuildFile.append("Dreamcast.Region=3" + "\n");
|
|
||||||
rebuildFile.append("Dreamcast.Broadcast=4" + "\n");
|
|
||||||
rebuildFile.append("aica.LimitFPS=1" + "\n");
|
|
||||||
rebuildFile.append("aica.NoBatch=0" + "\n");
|
|
||||||
rebuildFile.append("rend.UseMipmaps=1" + "\n");
|
|
||||||
rebuildFile.append("rend.WideScreen=" + widescreen
|
|
||||||
+ "\n");
|
|
||||||
rebuildFile.append("pvr.Subdivide=0" + "\n");
|
|
||||||
rebuildFile.append("ta.skip=" + frameskip + "\n");
|
|
||||||
rebuildFile.append("pvr.rend="
|
|
||||||
+ String.valueOf(isChecked ? 1 : 0) + "\n");
|
|
||||||
rebuildFile.append("image=null" + "\n");
|
|
||||||
}
|
|
||||||
FileOutputStream fos = new FileOutputStream(config);
|
|
||||||
fos.write(rebuildFile.toString().getBytes());
|
|
||||||
fos.close();
|
|
||||||
pvrrender = isChecked;
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.d("reicast", "Exception: " + e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) {
|
|
||||||
Switch pvr_render = (Switch) getView().findViewById(
|
|
||||||
R.id.stretch_option);
|
|
||||||
boolean rendered = mPrefs.getBoolean("pvr_render", pvrrender);
|
|
||||||
if (rendered) {
|
|
||||||
pvr_render.setChecked(true);
|
|
||||||
} else {
|
|
||||||
pvr_render.setChecked(false);
|
|
||||||
}
|
|
||||||
pvr_render.setOnCheckedChangeListener(pvr_rendering);
|
|
||||||
} else {
|
|
||||||
CheckBox pvr_render = (CheckBox) getView().findViewById(
|
|
||||||
R.id.stretch_option);
|
|
||||||
boolean rendered = mPrefs.getBoolean("pvr_render", pvrrender);
|
|
||||||
if (rendered) {
|
|
||||||
pvr_render.setChecked(true);
|
|
||||||
} else {
|
|
||||||
pvr_render.setChecked(false);
|
|
||||||
}
|
|
||||||
pvr_render.setOnCheckedChangeListener(pvr_rendering);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,32 +65,6 @@ public class MainActivity extends FragmentActivity implements
|
||||||
// the fragment_container FrameLayout
|
// the fragment_container FrameLayout
|
||||||
if (findViewById(R.id.fragment_container) != null) {
|
if (findViewById(R.id.fragment_container) != null) {
|
||||||
|
|
||||||
// However, if we're being restored from a previous state,
|
|
||||||
// then we don't need to do anything and should return or else
|
|
||||||
// we could end up with overlapping fragments.
|
|
||||||
if (savedInstanceState != null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create a new Fragment to be placed in the activity layout
|
|
||||||
FileBrowser firstFragment = new FileBrowser();
|
|
||||||
Bundle args = new Bundle();
|
|
||||||
args.putBoolean("ImgBrowse", true);
|
|
||||||
args.putString("browse_entry", null);
|
|
||||||
// specify a path for selecting folder options
|
|
||||||
args.putBoolean("games_entry", false);
|
|
||||||
// specify if the desired path is for games or data
|
|
||||||
firstFragment.setArguments(args);
|
|
||||||
// In case this activity was started with special instructions from
|
|
||||||
// an
|
|
||||||
// Intent, pass the Intent's extras to the fragment as arguments
|
|
||||||
// firstFragment.setArguments(getIntent().getExtras());
|
|
||||||
|
|
||||||
// Add the fragment to the 'fragment_container' FrameLayout
|
|
||||||
getSupportFragmentManager().beginTransaction()
|
|
||||||
.add(R.id.fragment_container, firstFragment).commit();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) {
|
||||||
|
|
||||||
navMenuTitles = getResources().getStringArray(
|
navMenuTitles = getResources().getStringArray(
|
||||||
|
@ -155,12 +129,35 @@ public class MainActivity extends FragmentActivity implements
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
mDrawerLayout.setDrawerListener(mDrawerToggle);
|
mDrawerLayout.setDrawerListener(mDrawerToggle);
|
||||||
|
}
|
||||||
|
|
||||||
// if (savedInstanceState == null) {
|
// However, if we're being restored from a previous state,
|
||||||
// displayView(0);
|
// then we don't need to do anything and should return or else
|
||||||
//
|
// we could end up with overlapping fragments.
|
||||||
// }
|
if (savedInstanceState != null) {
|
||||||
} else {
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a new Fragment to be placed in the activity layout
|
||||||
|
FileBrowser firstFragment = new FileBrowser();
|
||||||
|
Bundle args = new Bundle();
|
||||||
|
args.putBoolean("ImgBrowse", true);
|
||||||
|
args.putString("browse_entry", null);
|
||||||
|
// specify a path for selecting folder options
|
||||||
|
args.putBoolean("games_entry", false);
|
||||||
|
// specify if the desired path is for games or data
|
||||||
|
firstFragment.setArguments(args);
|
||||||
|
// In case this activity was started with special instructions from
|
||||||
|
// an
|
||||||
|
// Intent, pass the Intent's extras to the fragment as arguments
|
||||||
|
// firstFragment.setArguments(getIntent().getExtras());
|
||||||
|
|
||||||
|
// Add the fragment to the 'fragment_container' FrameLayout
|
||||||
|
getSupportFragmentManager().beginTransaction()
|
||||||
|
.add(R.id.fragment_container, firstFragment).commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR1) {
|
||||||
|
|
||||||
findViewById(R.id.config).setOnClickListener(new OnClickListener() {
|
findViewById(R.id.config).setOnClickListener(new OnClickListener() {
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
|
|
Loading…
Reference in New Issue