diff --git a/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java b/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java index ff4702bc9..0e8aa880a 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java +++ b/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java @@ -11,13 +11,6 @@ public class AndroidLWJGLKeycode { private static final ArrayMap androidToLwjglMap; private static String[] androidKeyNameArray; static { - /* - * There are already have mapped in - * org.lwjgl.opengl.AndroidKeyCodes - * but this key map is more than. - */ - - // Mapping Android Keycodes to LWJGL Keycodes androidToLwjglMap = new ArrayMap(); diff --git a/app/src/main/java/net/kdt/pojavlaunch/MCProfile.java b/app/src/main/java/net/kdt/pojavlaunch/MCProfile.java index 876b671f7..05eb529bc 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/MCProfile.java +++ b/app/src/main/java/net/kdt/pojavlaunch/MCProfile.java @@ -52,6 +52,10 @@ public class MCProfile } public static MCProfile.Builder parse(String content) { + if (content == null || content.isEmpty()) { + return null; + } + MCProfile.Builder builder = new MCProfile.Builder(); String[] profileInfos = content.split(":"); diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java b/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java index 272d12795..97dc17356 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java +++ b/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java @@ -121,17 +121,38 @@ public class PojavLauncherActivity extends BaseLauncherActivity //showProfileInfo(); - final String[] accountList = new File(Tools.mpProfiles).list(); + final List accountList = new ArrayList(); + final MCProfile.Builder tempProfile = PojavProfile.getTempProfileContent(this); + if (tempProfile != null) { + accountList.add(tempProfile.getUsername()); + } + accountList.addAll(Arrays.asList(new File(Tools.mpProfiles).list())); ArrayAdapter adapterAcc = new ArrayAdapter(this, android.R.layout.simple_spinner_item, accountList); adapterAcc.setDropDownViewResource(android.R.layout.simple_list_item_single_choice); accountSelector = (Spinner) findViewById(R.id.launchermain_spinner_account); accountSelector.setAdapter(adapterAcc); + if (tempProfile != null) { + accountSelector.setSelection(0); + } else { + for (int i = 0; i < accountList.size(); i++) { + String account = accountList.get(i); + if (account.equals(mProfile.getUsername())) { + accountSelector.setSelection(i); + } + } + } accountSelector.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){ @Override public void onItemSelected(AdapterView p1, View p2, int position, long p4) { - PojavProfile.setCurrentProfile(PojavLauncherActivity.this, accountList[position]); + if (tempProfile != null && position == 0) { + PojavProfile.setCurrentProfile(PojavLauncherActivity.this, tempProfile); + } else { + PojavProfile.setCurrentProfile(PojavLauncherActivity.this, accountList.get(position + (tempProfile != null ? 1 : 0))); + } + finish(); + startActivity(getIntent()); } @Override diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavProfile.java b/app/src/main/java/net/kdt/pojavlaunch/PojavProfile.java index 339f8c84d..972eabc24 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/PojavProfile.java +++ b/app/src/main/java/net/kdt/pojavlaunch/PojavProfile.java @@ -7,14 +7,23 @@ public class PojavProfile private static String PROFILE_PREF = "pojav_profile"; private static String PROFILE_PREF_FILE = "file"; private static String PROFILE_PREF_CONTENT = "content"; + private static String PROFILE_PREF_TEMP_CONTENT = "tempContent"; private static SharedPreferences getPrefs(Context ctx) { return ctx.getSharedPreferences(PROFILE_PREF, Context.MODE_PRIVATE); } public static MCProfile.Builder getCurrentProfileContent(Context ctx) { - return MCProfile.parse(getPrefs(ctx).getString(PROFILE_PREF_CONTENT, "")); + MCProfile.Builder build = MCProfile.parse(getPrefs(ctx).getString(PROFILE_PREF_CONTENT, "")); + if (build == null) { + getTempProfileContent(ctx); + } + return build; } + + public static MCProfile.Builder getTempProfileContent(Context ctx) { + return MCProfile.parse(getPrefs(ctx).getString(PROFILE_PREF_TEMP_CONTENT, "")); + } public static String getCurrentProfilePath(Context ctx) { return getPrefs(ctx).getString(PROFILE_PREF_FILE, ""); @@ -25,7 +34,9 @@ public class PojavProfile try { if (obj instanceof MCProfile.Builder) { - pref.putString(PROFILE_PREF_CONTENT, MCProfile.toString((MCProfile.Builder) obj)); + String str = MCProfile.toString((MCProfile.Builder) obj); + pref.putString(PROFILE_PREF_CONTENT, str); + pref.putString(PROFILE_PREF_TEMP_CONTENT, str); } else if (obj instanceof String) { pref.putString(PROFILE_PREF_FILE, (String) obj); pref.putString(PROFILE_PREF_CONTENT, MCProfile.toString((String) obj)); diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftAuthenticationDatabase.java b/app/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftAuthenticationDatabase.java index 461ff7ffc..401572d1d 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftAuthenticationDatabase.java +++ b/app/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftAuthenticationDatabase.java @@ -3,6 +3,8 @@ package net.kdt.pojavlaunch.value.launcherprofiles; public class MinecraftAuthenticationDatabase { public String accessToken; + public String displayName; public String username; - public MinecraftProfile[] profiles; + public String uuid; + // public MinecraftProfile[] profiles; } diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftLauncherProfiles.java b/app/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftLauncherProfiles.java index e5af5e201..a5f9b3d6d 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftLauncherProfiles.java +++ b/app/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftLauncherProfiles.java @@ -1,12 +1,12 @@ package net.kdt.pojavlaunch.value.launcherprofiles; -import com.google.gson.*; +import java.util.*; import net.kdt.pojavlaunch.*; public class MinecraftLauncherProfiles { - public MinecraftProfile[] profiles; + public Map profiles; public String clientToken; - public MinecraftAuthenticationDatabase[] authenticationDatabase; + public Map authenticationDatabase; // public Map launcherVersion; public MinecraftLauncherSettings settings; // public Map analyticsToken; diff --git a/app/src/main/res/layout/main_with_customctrl.xml b/app/src/main/res/layout/main_with_customctrl.xml index 5027f36be..5479bd48f 100644 --- a/app/src/main/res/layout/main_with_customctrl.xml +++ b/app/src/main/res/layout/main_with_customctrl.xml @@ -21,7 +21,8 @@ + android:layout_height="fill_parent" + android:background="#00000000"/>