mirror of
https://github.com/AngelAuraMC/Amethyst-Android.git
synced 2025-09-17 08:35:37 -04:00
Refactor PerVersionConfigDialog.java
This commit is contained in:
parent
098c4c7f89
commit
2a37553815
@ -17,103 +17,105 @@ import net.kdt.pojavlaunch.multirt.Runtime;
|
|||||||
import net.kdt.pojavlaunch.value.PerVersionConfig;
|
import net.kdt.pojavlaunch.value.PerVersionConfig;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class PerVersionConfigDialog{
|
public class PerVersionConfigDialog{
|
||||||
final Context ctx;
|
final Context mContext;
|
||||||
final AlertDialog dialog;
|
final AlertDialog mDialog;
|
||||||
final View v;
|
final View mRootView;
|
||||||
List<Runtime> runtimes;
|
List<Runtime> mRuntimes;
|
||||||
final Spinner javaVMSpinner;
|
final Spinner mJvmSpinner;
|
||||||
final Spinner rendererSpinner;
|
final Spinner mRendererSpinner;
|
||||||
final EditText customDirText;
|
final EditText mCustomDirEditText;
|
||||||
final EditText jvmArgsEditText;
|
final EditText mJvmArgsEditText;
|
||||||
final List<String> renderNames;
|
final List<String> mRendererNames;
|
||||||
String selectedGameVersion = null;
|
String mSelectedGameVersion = null;
|
||||||
public PerVersionConfigDialog(Context _ctx) {
|
|
||||||
ctx = _ctx;
|
public PerVersionConfigDialog(Context ctx) {
|
||||||
v = LayoutInflater.from(ctx).inflate(R.layout.pvc_popup,null);
|
mContext = ctx;
|
||||||
javaVMSpinner = v.findViewById(R.id.pvc_javaVm);
|
mRootView = LayoutInflater.from(mContext).inflate(R.layout.pvc_popup,null);
|
||||||
rendererSpinner = v.findViewById(R.id.pvc_renderer);
|
mJvmSpinner = mRootView.findViewById(R.id.pvc_javaVm);
|
||||||
{
|
mRendererSpinner = mRootView.findViewById(R.id.pvc_renderer);
|
||||||
List<String> renderList = new ArrayList<>();
|
|
||||||
Collections.addAll(renderList, ctx.getResources().getStringArray(R.array.renderer));
|
List<String> renderList = Arrays.asList(mContext.getResources().getStringArray(R.array.renderer));
|
||||||
renderList.add("Default");
|
renderList.add("Default");
|
||||||
renderNames = Arrays.asList(ctx.getResources().getStringArray(R.array.renderer_values));
|
mRendererNames = Arrays.asList(mContext.getResources().getStringArray(R.array.renderer_values));
|
||||||
rendererSpinner.setAdapter(new ArrayAdapter<>(ctx, android.R.layout.simple_spinner_dropdown_item,renderList));
|
mRendererSpinner.setAdapter(new ArrayAdapter<>(mContext, android.R.layout.simple_spinner_dropdown_item, renderList));
|
||||||
}
|
|
||||||
customDirText = v.findViewById(R.id.pvc_customDir);
|
mCustomDirEditText = mRootView.findViewById(R.id.pvc_customDir);
|
||||||
jvmArgsEditText = v.findViewById(R.id.pvc_jvmArgs);
|
mJvmArgsEditText = mRootView.findViewById(R.id.pvc_jvmArgs);
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
|
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
|
||||||
builder.setView(v);
|
builder.setView(mRootView);
|
||||||
builder.setTitle(R.string.pvc_title);
|
builder.setTitle(R.string.pvc_title);
|
||||||
builder.setNegativeButton(android.R.string.cancel,(dialogInterface,i)->dialogInterface.dismiss());
|
builder.setNegativeButton(android.R.string.cancel, null);
|
||||||
builder.setPositiveButton(android.R.string.ok, this::save);
|
builder.setPositiveButton(android.R.string.ok, this::save);
|
||||||
dialog = builder.create();
|
mDialog = builder.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void refreshRuntimes() {
|
public void refreshRuntimes() {
|
||||||
if(runtimes!=null)runtimes.clear();
|
if(mRuntimes !=null) mRuntimes.clear();
|
||||||
runtimes = MultiRTUtils.getRuntimes();
|
mRuntimes = MultiRTUtils.getRuntimes();
|
||||||
//runtimes.add(new Runtime("<Default>"));
|
//runtimes.add(new Runtime("<Default>"));
|
||||||
}
|
}
|
||||||
private void save(DialogInterface i, int which) {
|
|
||||||
if(selectedGameVersion == null) {
|
private void save(DialogInterface dialogInterface, int which) {
|
||||||
i.dismiss();
|
if(mSelectedGameVersion == null) {
|
||||||
|
dialogInterface.dismiss();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PerVersionConfig.VersionConfig conf1 = PerVersionConfig.configMap.get(selectedGameVersion);
|
|
||||||
if(conf1==null){
|
PerVersionConfig.VersionConfig versionConfig = PerVersionConfig.configMap.get(mSelectedGameVersion);
|
||||||
conf1=new PerVersionConfig.VersionConfig();
|
if(versionConfig == null){
|
||||||
|
versionConfig = new PerVersionConfig.VersionConfig();
|
||||||
}
|
}
|
||||||
conf1.jvmArgs=jvmArgsEditText.getText().toString();
|
versionConfig.jvmArgs= mJvmArgsEditText.getText().toString();
|
||||||
conf1.gamePath=customDirText.getText().toString();
|
versionConfig.gamePath= mCustomDirEditText.getText().toString();
|
||||||
|
|
||||||
if(rendererSpinner.getSelectedItemPosition() == renderNames.size()) conf1.renderer = null;
|
if(mRendererSpinner.getSelectedItemPosition() == mRendererNames.size()) versionConfig.renderer = null;
|
||||||
else conf1.renderer = renderNames.get(rendererSpinner.getSelectedItemPosition());
|
else versionConfig.renderer = mRendererNames.get(mRendererSpinner.getSelectedItemPosition());
|
||||||
|
|
||||||
String runtime=((Runtime)javaVMSpinner.getSelectedItem()).name;;
|
String runtime=((Runtime) mJvmSpinner.getSelectedItem()).name;;
|
||||||
if(!runtime.equals("<Default>"))conf1.selectedRuntime=runtime;
|
if(!runtime.equals("<Default>"))versionConfig.selectedRuntime=runtime;
|
||||||
else conf1.selectedRuntime=null;
|
else versionConfig.selectedRuntime = null;
|
||||||
|
|
||||||
PerVersionConfig.configMap.put(selectedGameVersion,conf1);
|
PerVersionConfig.configMap.put(mSelectedGameVersion, versionConfig);
|
||||||
try{
|
try{
|
||||||
PerVersionConfig.update();
|
PerVersionConfig.update();
|
||||||
}catch(IOException e){
|
}catch(IOException e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean openConfig(String selectedVersion) {
|
public boolean openConfig(String selectedVersion) {
|
||||||
selectedGameVersion = selectedVersion;
|
mSelectedGameVersion = selectedVersion;
|
||||||
try{
|
try{
|
||||||
PerVersionConfig.update();
|
PerVersionConfig.update();
|
||||||
}catch(IOException e){
|
}catch(IOException e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
PerVersionConfig.VersionConfig conf=PerVersionConfig.configMap.get(selectedGameVersion);
|
PerVersionConfig.VersionConfig versionConfig = PerVersionConfig.configMap.get(mSelectedGameVersion);
|
||||||
refreshRuntimes();
|
refreshRuntimes();
|
||||||
javaVMSpinner.setAdapter(new RTSpinnerAdapter(ctx,runtimes));
|
mJvmSpinner.setAdapter(new RTSpinnerAdapter(mContext, mRuntimes));
|
||||||
{
|
|
||||||
int jvm_index = runtimes.indexOf(new Runtime("<Default>"));
|
int jvmIndex = mRuntimes.indexOf(new Runtime("<Default>"));
|
||||||
int rnd_index = rendererSpinner.getAdapter().getCount()-1;
|
int rendererIndex = mRendererSpinner.getAdapter().getCount()-1;
|
||||||
if (conf != null) {
|
if (versionConfig != null) {
|
||||||
customDirText.setText(conf.gamePath);
|
mCustomDirEditText.setText(versionConfig.gamePath);
|
||||||
jvmArgsEditText.setText(conf.jvmArgs);
|
mJvmArgsEditText.setText(versionConfig.jvmArgs);
|
||||||
if (conf.selectedRuntime != null) {
|
if (versionConfig.selectedRuntime != null) {
|
||||||
int nindex = runtimes.indexOf(new Runtime(conf.selectedRuntime));
|
int nIndex = mRuntimes.indexOf(new Runtime(versionConfig.selectedRuntime));
|
||||||
if (nindex != -1) jvm_index = nindex;
|
if (nIndex != -1) jvmIndex = nIndex;
|
||||||
}
|
}
|
||||||
if(conf.renderer != null) {
|
if(versionConfig.renderer != null) {
|
||||||
int nindex = renderNames.indexOf(conf.renderer);
|
int nIndex = mRendererNames.indexOf(versionConfig.renderer);
|
||||||
if (nindex != -1) rnd_index = nindex;
|
if (nIndex != -1) rendererIndex = nIndex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
javaVMSpinner.setSelection(jvm_index);
|
mJvmSpinner.setSelection(jvmIndex);
|
||||||
rendererSpinner.setSelection(rnd_index);
|
mRendererSpinner.setSelection(rendererIndex);
|
||||||
}
|
|
||||||
dialog.show();
|
mDialog.show();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user