VIU fixes & improvements pt. 4

Add proper support for saving to folder paths
Fixed MainActivity switch case ordering causing buttons to swap functionality
Added version file for security components
Fixed security component paths in Forge installer
Switched default profile icon to Pojav logo
More logcat exception prints
Less unnecessary logcat prints
More null checks
This commit is contained in:
artdeell 2022-11-12 22:45:48 +03:00 committed by ArtDev
parent 3649ef6470
commit c16423d21a
11 changed files with 22 additions and 25 deletions

View File

@ -0,0 +1 @@
1

View File

@ -235,7 +235,7 @@ public class CustomControlsActivity extends BaseActivity {
private static void loadControl(String path,ControlLayout layout) { private static void loadControl(String path,ControlLayout layout) {
try { try {
layout.loadLayout(path); layout.loadLayout(path);
sSelectedName = new File(path).getName(); sSelectedName = path.replace(Tools.CTRLMAP_PATH, ".");
// Remove `.json` // Remove `.json`
sSelectedName = sSelectedName.substring(0, sSelectedName.length() - 5); sSelectedName = sSelectedName.substring(0, sSelectedName.length() - 5);
} catch (Exception e) { } catch (Exception e) {

View File

@ -275,9 +275,9 @@ public class JavaGUILauncherActivity extends BaseActivity implements View.OnTouc
// Run java on sandbox, non-overrideable. // Run java on sandbox, non-overrideable.
Collections.reverse(javaArgList); Collections.reverse(javaArgList);
javaArgList.add("-Xbootclasspath/a:" + Tools.DIR_DATA + "/pro-grade.jar"); javaArgList.add("-Xbootclasspath/a:" + Tools.DIR_DATA + "/security/pro-grade.jar");
javaArgList.add("-Djava.security.manager=net.sourceforge.prograde.sm.ProGradeJSM"); javaArgList.add("-Djava.security.manager=net.sourceforge.prograde.sm.ProGradeJSM");
javaArgList.add("-Djava.security.policy=" + Tools.DIR_DATA + "/java_sandbox.policy"); javaArgList.add("-Djava.security.policy=" + Tools.DIR_DATA + "/security/java_sandbox.policy");
Collections.reverse(javaArgList); Collections.reverse(javaArgList);
return JREUtils.launchJavaVM(this, javaArgList); return JREUtils.launchJavaVM(this, javaArgList);

View File

@ -93,9 +93,9 @@ public class MainActivity extends BaseActivity {
case 0: mControlLayout.addControlButton(new ControlData("New")); break; case 0: mControlLayout.addControlButton(new ControlData("New")); break;
case 1: mControlLayout.addDrawer(new ControlDrawerData()); break; case 1: mControlLayout.addDrawer(new ControlDrawerData()); break;
//case 2: mControlLayout.addJoystickButton(new ControlData()); break; //case 2: mControlLayout.addJoystickButton(new ControlData()); break;
case 3 : CustomControlsActivity.load(mControlLayout); break; case 2 : CustomControlsActivity.load(mControlLayout); break;
case 4: CustomControlsActivity.save(true,mControlLayout); break; case 3: CustomControlsActivity.save(true,mControlLayout); break;
case 5: CustomControlsActivity.dialogSelectDefaultCtrl(mControlLayout); break; case 4: CustomControlsActivity.dialogSelectDefaultCtrl(mControlLayout); break;
} }
}; };

View File

@ -353,11 +353,13 @@ public class ControlLayout extends FrameLayout {
// When the input window cannot be hidden, it returns false // When the input window cannot be hidden, it returns false
imm.hideSoftInputFromWindow(getWindowToken(), 0); imm.hideSoftInputFromWindow(getWindowToken(), 0);
mControlPopup.disappearColor(); if(mControlPopup != null) {
mControlPopup.disappear(); mControlPopup.disappearColor();
mControlPopup.disappear();
}
actionRow.setFollowedButton(null); if(actionRow != null) actionRow.setFollowedButton(null);
mHandleView.hide(); if(mHandleView != null) mHandleView.hide();
} }
public void save(String path){ public void save(String path){

View File

@ -26,7 +26,6 @@ import net.kdt.pojavlaunch.R;
import net.kdt.pojavlaunch.Tools; import net.kdt.pojavlaunch.Tools;
import net.kdt.pojavlaunch.extra.ExtraConstants; import net.kdt.pojavlaunch.extra.ExtraConstants;
import net.kdt.pojavlaunch.extra.ExtraCore; import net.kdt.pojavlaunch.extra.ExtraCore;
import net.kdt.pojavlaunch.fragments.FileSelectorFragment;
import net.kdt.pojavlaunch.multirt.MultiRTUtils; import net.kdt.pojavlaunch.multirt.MultiRTUtils;
import net.kdt.pojavlaunch.multirt.RTSpinnerAdapter; import net.kdt.pojavlaunch.multirt.RTSpinnerAdapter;
import net.kdt.pojavlaunch.multirt.Runtime; import net.kdt.pojavlaunch.multirt.Runtime;
@ -122,12 +121,11 @@ public class ProfileEditorFragment extends Fragment {
AlertDialog.Builder builder = new AlertDialog.Builder(mDefaultVersion.getContext()); AlertDialog.Builder builder = new AlertDialog.Builder(mDefaultVersion.getContext());
ExpandableListView expandableListView = (ExpandableListView) LayoutInflater.from(mDefaultVersion.getContext()) ExpandableListView expandableListView = (ExpandableListView) LayoutInflater.from(mDefaultVersion.getContext())
.inflate(R.layout.dialog_expendable_list_view , null); .inflate(R.layout.dialog_expendable_list_view , null);
JMinecraftVersionList jMinecraftVersionList = (JMinecraftVersionList) getValue(ExtraConstants.RELEASE_TABLE);
JMinecraftVersionList.Version[] versionList; JMinecraftVersionList.Version[] versionArray;
if(getValue(ExtraConstants.RELEASE_TABLE) == null) if(jMinecraftVersionList == null || jMinecraftVersionList.versions == null) versionArray = new JMinecraftVersionList.Version[0];
versionList = new JMinecraftVersionList.Version[0]; else versionArray = jMinecraftVersionList.versions;
else versionList = ((JMinecraftVersionList) getValue(ExtraConstants.RELEASE_TABLE)).versions; ExpandableListAdapter adapter = new VersionListAdapter(versionArray, mDefaultVersion.getContext());
ExpandableListAdapter adapter = new VersionListAdapter(versionList, mDefaultVersion.getContext());
expandableListView.setAdapter(adapter); expandableListView.setAdapter(adapter);
builder.setView(expandableListView); builder.setView(expandableListView);

View File

@ -24,8 +24,7 @@ public class ProfileIconCache {
public static void initDefault(Context context) { public static void initDefault(Context context) {
if(sDefaultIcon != null) return; if(sDefaultIcon != null) return;
sDefaultIcon = ResourcesCompat.getDrawable(context.getResources(), R.mipmap.ic_launcher_foreground, null);
sDefaultIcon = ResourcesCompat.getDrawable(context.getResources(), R.drawable.ic_gamepad_pointer, null);
sDefaultIcon.setBounds(0, 0, 10, 10); sDefaultIcon.setBounds(0, 0, 10, 10);
} }

View File

@ -1,7 +1,5 @@
package net.kdt.pojavlaunch.progresskeeper; package net.kdt.pojavlaunch.progresskeeper;
import android.util.Log;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ConcurrentLinkedQueue;
@ -29,7 +27,6 @@ public class ProgressKeeper {
progressState.varArg = va; progressState.varArg = va;
} }
Log.d("ProgressLayout", "shouldCallStarted="+shouldCallStarted+" shouldCallEnded="+shouldCallEnded);
ConcurrentLinkedQueue<ProgressListener> progressListeners = sProgressListeners.get(progressRecord); ConcurrentLinkedQueue<ProgressListener> progressListeners = sProgressListeners.get(progressRecord);
if(progressListeners != null) if(progressListeners != null)
for(ProgressListener listener : progressListeners) { for(ProgressListener listener : progressListeners) {

View File

@ -99,7 +99,7 @@ public class AsyncAssetManager {
unpackComponent(ctx, "lwjgl3", false); unpackComponent(ctx, "lwjgl3", false);
unpackComponent(ctx, "security", true); unpackComponent(ctx, "security", true);
} catch (IOException e) { } catch (IOException e) {
Log.e("AsyncAssetManager", "Failed o unpack components !"); Log.e("AsyncAssetManager", "Failed o unpack components !",e );
} }
}); });
} }

View File

@ -353,6 +353,7 @@ public class AsyncMinecraftDownloader {
public static String normalizeVersionId(String versionString) { public static String normalizeVersionId(String versionString) {
JMinecraftVersionList versionList = (JMinecraftVersionList) ExtraCore.getValue(ExtraConstants.RELEASE_TABLE); JMinecraftVersionList versionList = (JMinecraftVersionList) ExtraCore.getValue(ExtraConstants.RELEASE_TABLE);
if(versionList == null || versionList.versions == null) return versionString;
if("latest-release".equals(versionString)) versionString = versionList.latest.get("release"); if("latest-release".equals(versionString)) versionString = versionList.latest.get("release");
if("latest-snapshot".equals(versionString)) versionString = versionList.latest.get("snapshot"); if("latest-snapshot".equals(versionString)) versionString = versionList.latest.get("snapshot");
return versionString; return versionString;
@ -360,6 +361,7 @@ public class AsyncMinecraftDownloader {
public static JMinecraftVersionList.Version getListedVersion(String normalizedVersionString) { public static JMinecraftVersionList.Version getListedVersion(String normalizedVersionString) {
JMinecraftVersionList versionList = (JMinecraftVersionList) ExtraCore.getValue(ExtraConstants.RELEASE_TABLE); JMinecraftVersionList versionList = (JMinecraftVersionList) ExtraCore.getValue(ExtraConstants.RELEASE_TABLE);
if(versionList == null || versionList.versions == null) return null; // can't have listed versions if there's no list
for(JMinecraftVersionList.Version version : versionList.versions) { for(JMinecraftVersionList.Version version : versionList.versions) {
if(version.id.equals(normalizedVersionString)) return version; if(version.id.equals(normalizedVersionString)) return version;
} }

View File

@ -29,7 +29,6 @@ import java.util.Collections;
public class AsyncVersionList { public class AsyncVersionList {
public void getVersionList(@Nullable VersionDoneListener listener){ public void getVersionList(@Nullable VersionDoneListener listener){
ProgressKeeper.submitProgress(ProgressLayout.DOWNLOAD_VERSION_LIST, 0, R.string.downloading_versions);
sExecutorService.execute(() -> { sExecutorService.execute(() -> {
File versionFile = new File(Tools.DIR_DATA + "/version_list.json"); File versionFile = new File(Tools.DIR_DATA + "/version_list.json");
JMinecraftVersionList versionList = null; JMinecraftVersionList versionList = null;
@ -53,7 +52,6 @@ public class AsyncVersionList {
if(listener != null) if(listener != null)
listener.onVersionDone(versionList); listener.onVersionDone(versionList);
ProgressLayout.clearProgress(ProgressLayout.DOWNLOAD_VERSION_LIST);
}); });
} }