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,
|
||||
boolean isChecked) {
|
||||
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;
|
||||
} catch (Exception e) {
|
||||
Log.d("reicast", "Exception: " + e);
|
||||
if (!executeAppendConfig("rend.WideScreen",
|
||||
String.valueOf(isChecked ? 1 : 0))) {
|
||||
executeWriteConfig();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -185,7 +143,7 @@ public class ConfigureFragment extends Fragment {
|
|||
public void onProgressChanged(SeekBar seekBar, int progress,
|
||||
boolean fromUser) {
|
||||
progressChanged = progress;
|
||||
mainFrames.setText(progress);
|
||||
mainFrames.setText(String.valueOf(progress));
|
||||
}
|
||||
|
||||
public void onStartTrackingTouch(SeekBar seekBar) {
|
||||
|
@ -194,25 +152,84 @@ public class ConfigureFragment extends Fragment {
|
|||
|
||||
public void onStopTrackingTouch(SeekBar seekBar) {
|
||||
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");
|
||||
if (config.exists()) {
|
||||
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,
|
||||
"ta.skip")) {
|
||||
rebuildFile.append("ta.skip=" + progressChanged
|
||||
+ "\n");
|
||||
if (StringUtils.containsIgnoreCase(currentLine, identifier)) {
|
||||
rebuildFile.append(identifier + "=" + value + "\n");
|
||||
} else {
|
||||
rebuildFile.append(currentLine + "\n");
|
||||
}
|
||||
}
|
||||
scanner.close();
|
||||
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("Dynarec.Enabled=1" + "\n");
|
||||
rebuildFile.append("Dynarec.idleskip=1" + "\n");
|
||||
|
@ -227,95 +244,15 @@ public class ConfigureFragment extends Fragment {
|
|||
rebuildFile.append("rend.WideScreen="
|
||||
+ String.valueOf(widescreen ? 1 : 0) + "\n");
|
||||
rebuildFile.append("pvr.Subdivide=0" + "\n");
|
||||
rebuildFile.append("ta.skip=" + progressChanged + "\n");
|
||||
rebuildFile.append("pvr.rend="
|
||||
+ String.valueOf(pvrrender ? 1 : 0) + "\n");
|
||||
rebuildFile.append("ta.skip=" + String.valueOf(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();
|
||||
frameskip = progressChanged;
|
||||
} catch (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
|
||||
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) {
|
||||
|
||||
navMenuTitles = getResources().getStringArray(
|
||||
|
@ -155,12 +129,35 @@ public class MainActivity extends FragmentActivity implements
|
|||
}
|
||||
};
|
||||
mDrawerLayout.setDrawerListener(mDrawerToggle);
|
||||
}
|
||||
|
||||
// if (savedInstanceState == null) {
|
||||
// displayView(0);
|
||||
//
|
||||
// }
|
||||
} else {
|
||||
// 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) {
|
||||
|
||||
findViewById(R.id.config).setOnClickListener(new OnClickListener() {
|
||||
public void onClick(View view) {
|
||||
|
|
Loading…
Reference in New Issue