diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/PerVersionConfigDialog.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/PerVersionConfigDialog.java index 79bb595b3..eb14119fc 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/PerVersionConfigDialog.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/PerVersionConfigDialog.java @@ -17,103 +17,105 @@ import net.kdt.pojavlaunch.multirt.Runtime; import net.kdt.pojavlaunch.value.PerVersionConfig; import java.io.IOException; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.List; public class PerVersionConfigDialog{ - final Context ctx; - final AlertDialog dialog; - final View v; - List runtimes; - final Spinner javaVMSpinner; - final Spinner rendererSpinner; - final EditText customDirText; - final EditText jvmArgsEditText; - final List renderNames; - String selectedGameVersion = null; - public PerVersionConfigDialog(Context _ctx) { - ctx = _ctx; - v = LayoutInflater.from(ctx).inflate(R.layout.pvc_popup,null); - javaVMSpinner = v.findViewById(R.id.pvc_javaVm); - rendererSpinner = v.findViewById(R.id.pvc_renderer); - { - List renderList = new ArrayList<>(); - Collections.addAll(renderList, ctx.getResources().getStringArray(R.array.renderer)); - renderList.add("Default"); - renderNames = Arrays.asList(ctx.getResources().getStringArray(R.array.renderer_values)); - rendererSpinner.setAdapter(new ArrayAdapter<>(ctx, android.R.layout.simple_spinner_dropdown_item,renderList)); - } - customDirText = v.findViewById(R.id.pvc_customDir); - jvmArgsEditText = v.findViewById(R.id.pvc_jvmArgs); - AlertDialog.Builder builder = new AlertDialog.Builder(ctx); - builder.setView(v); + final Context mContext; + final AlertDialog mDialog; + final View mRootView; + List mRuntimes; + final Spinner mJvmSpinner; + final Spinner mRendererSpinner; + final EditText mCustomDirEditText; + final EditText mJvmArgsEditText; + final List mRendererNames; + String mSelectedGameVersion = null; + + public PerVersionConfigDialog(Context ctx) { + mContext = ctx; + mRootView = LayoutInflater.from(mContext).inflate(R.layout.pvc_popup,null); + mJvmSpinner = mRootView.findViewById(R.id.pvc_javaVm); + mRendererSpinner = mRootView.findViewById(R.id.pvc_renderer); + + List renderList = Arrays.asList(mContext.getResources().getStringArray(R.array.renderer)); + renderList.add("Default"); + mRendererNames = Arrays.asList(mContext.getResources().getStringArray(R.array.renderer_values)); + mRendererSpinner.setAdapter(new ArrayAdapter<>(mContext, android.R.layout.simple_spinner_dropdown_item, renderList)); + + mCustomDirEditText = mRootView.findViewById(R.id.pvc_customDir); + mJvmArgsEditText = mRootView.findViewById(R.id.pvc_jvmArgs); + AlertDialog.Builder builder = new AlertDialog.Builder(mContext); + builder.setView(mRootView); builder.setTitle(R.string.pvc_title); - builder.setNegativeButton(android.R.string.cancel,(dialogInterface,i)->dialogInterface.dismiss()); - builder.setPositiveButton(android.R.string.ok,this::save); - dialog = builder.create(); + builder.setNegativeButton(android.R.string.cancel, null); + builder.setPositiveButton(android.R.string.ok, this::save); + mDialog = builder.create(); } + public void refreshRuntimes() { - if(runtimes!=null)runtimes.clear(); - runtimes = MultiRTUtils.getRuntimes(); + if(mRuntimes !=null) mRuntimes.clear(); + mRuntimes = MultiRTUtils.getRuntimes(); //runtimes.add(new Runtime("")); } - private void save(DialogInterface i, int which) { - if(selectedGameVersion == null) { - i.dismiss(); + + private void save(DialogInterface dialogInterface, int which) { + if(mSelectedGameVersion == null) { + dialogInterface.dismiss(); return; } - PerVersionConfig.VersionConfig conf1 = PerVersionConfig.configMap.get(selectedGameVersion); - if(conf1==null){ - conf1=new PerVersionConfig.VersionConfig(); + + PerVersionConfig.VersionConfig versionConfig = PerVersionConfig.configMap.get(mSelectedGameVersion); + if(versionConfig == null){ + versionConfig = new PerVersionConfig.VersionConfig(); } - conf1.jvmArgs=jvmArgsEditText.getText().toString(); - conf1.gamePath=customDirText.getText().toString(); + versionConfig.jvmArgs= mJvmArgsEditText.getText().toString(); + versionConfig.gamePath= mCustomDirEditText.getText().toString(); - if(rendererSpinner.getSelectedItemPosition() == renderNames.size()) conf1.renderer = null; - else conf1.renderer = renderNames.get(rendererSpinner.getSelectedItemPosition()); + if(mRendererSpinner.getSelectedItemPosition() == mRendererNames.size()) versionConfig.renderer = null; + else versionConfig.renderer = mRendererNames.get(mRendererSpinner.getSelectedItemPosition()); - String runtime=((Runtime)javaVMSpinner.getSelectedItem()).name;; - if(!runtime.equals(""))conf1.selectedRuntime=runtime; - else conf1.selectedRuntime=null; + String runtime=((Runtime) mJvmSpinner.getSelectedItem()).name;; + if(!runtime.equals(""))versionConfig.selectedRuntime=runtime; + else versionConfig.selectedRuntime = null; - PerVersionConfig.configMap.put(selectedGameVersion,conf1); + PerVersionConfig.configMap.put(mSelectedGameVersion, versionConfig); try{ PerVersionConfig.update(); }catch(IOException e){ e.printStackTrace(); } } + public boolean openConfig(String selectedVersion) { - selectedGameVersion = selectedVersion; + mSelectedGameVersion = selectedVersion; try{ PerVersionConfig.update(); }catch(IOException e){ e.printStackTrace(); } - PerVersionConfig.VersionConfig conf=PerVersionConfig.configMap.get(selectedGameVersion); + PerVersionConfig.VersionConfig versionConfig = PerVersionConfig.configMap.get(mSelectedGameVersion); refreshRuntimes(); - javaVMSpinner.setAdapter(new RTSpinnerAdapter(ctx,runtimes)); - { - int jvm_index = runtimes.indexOf(new Runtime("")); - int rnd_index = rendererSpinner.getAdapter().getCount()-1; - if (conf != null) { - customDirText.setText(conf.gamePath); - jvmArgsEditText.setText(conf.jvmArgs); - if (conf.selectedRuntime != null) { - int nindex = runtimes.indexOf(new Runtime(conf.selectedRuntime)); - if (nindex != -1) jvm_index = nindex; - } - if(conf.renderer != null) { - int nindex = renderNames.indexOf(conf.renderer); - if (nindex != -1) rnd_index = nindex; - } + mJvmSpinner.setAdapter(new RTSpinnerAdapter(mContext, mRuntimes)); + + int jvmIndex = mRuntimes.indexOf(new Runtime("")); + int rendererIndex = mRendererSpinner.getAdapter().getCount()-1; + if (versionConfig != null) { + mCustomDirEditText.setText(versionConfig.gamePath); + mJvmArgsEditText.setText(versionConfig.jvmArgs); + if (versionConfig.selectedRuntime != null) { + int nIndex = mRuntimes.indexOf(new Runtime(versionConfig.selectedRuntime)); + if (nIndex != -1) jvmIndex = nIndex; + } + if(versionConfig.renderer != null) { + int nIndex = mRendererNames.indexOf(versionConfig.renderer); + if (nIndex != -1) rendererIndex = nIndex; } - javaVMSpinner.setSelection(jvm_index); - rendererSpinner.setSelection(rnd_index); } - dialog.show(); + mJvmSpinner.setSelection(jvmIndex); + mRendererSpinner.setSelection(rendererIndex); + + mDialog.show(); return true; - } + } }