From 4e227a702a05417d58f4d4eb4fb62c3c7bd9c34a Mon Sep 17 00:00:00 2001 From: SerpentSpirale Date: Sun, 21 Feb 2021 21:29:41 +0100 Subject: [PATCH 1/7] - Created login layout v3, using ConstraintLayout. --- .../src/main/res/layout/launcher_login_v3.xml | 188 ++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 app_pojavlauncher/src/main/res/layout/launcher_login_v3.xml diff --git a/app_pojavlauncher/src/main/res/layout/launcher_login_v3.xml b/app_pojavlauncher/src/main/res/layout/launcher_login_v3.xml new file mode 100644 index 000000000..cfdea5611 --- /dev/null +++ b/app_pojavlauncher/src/main/res/layout/launcher_login_v3.xml @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 2eb88ff0ba6b28df39eda662f4834ed80637f7b3 Mon Sep 17 00:00:00 2001 From: SerpentSpirale Date: Sun, 21 Feb 2021 21:34:00 +0100 Subject: [PATCH 2/7] - Improved scaling of the select account menu for portrait/split screen mode and small scren devices. --- .../net/kdt/pojavlaunch/PojavLoginActivity.java | 14 +++++--------- .../res/layout/simple_account_list_holder.xml | 15 ++++++++++----- .../main/res/layout/simple_account_list_item.xml | 2 +- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java index 6bbdf6f40..265ef1027 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java @@ -23,6 +23,7 @@ import android.util.Base64; import android.util.Log; import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.ArrayAdapter; @@ -675,12 +676,8 @@ public class PojavLoginActivity extends BaseActivity final Dialog accountDialog = new Dialog(PojavLoginActivity.this); - int xScreen = PojavLoginActivity.this.getResources().getDisplayMetrics().widthPixels; - int yScreen = PojavLoginActivity.this.getResources().getDisplayMetrics().heightPixels; - accountDialog.setContentView(R.layout.simple_account_list_holder); - LinearLayout accountListLayout = accountDialog.findViewById(R.id.accountListLayout); LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE); @@ -764,12 +761,14 @@ public class PojavLoginActivity extends BaseActivity public void onClick(DialogInterface p1, int p2) { new InvalidateTokenTask(PojavLoginActivity.this).execute(selectedAccName); accountListLayout.removeViewsInLayout(accountIndex_final, 1); - //Resize the window + if (accountListLayout.getChildCount() == 0) { accountDialog.dismiss(); //No need to keep it, since there is no account return; } - accountDialog.getWindow().setLayout((int)(xScreen*0.4),(int) Math.min((yScreen*0.8), (73 + accountListLayout.getChildCount()*55)*(PojavLoginActivity.this.getResources().getDisplayMetrics().densityDpi/160f) )); + //Refreshes the layout with the same settings so it take the missing child into account. + accountListLayout.setLayoutParams(accountListLayout.getLayoutParams()); + } }); builder2.setNegativeButton(android.R.string.cancel, null); @@ -778,9 +777,6 @@ public class PojavLoginActivity extends BaseActivity }); } - - //The value 73 and 56 are dp numbers, converted into px in order to resize the layout. - accountDialog.getWindow().setLayout((int)(xScreen*0.4),(int)Math.min((yScreen*0.8), (73 + accountListLayout.getChildCount()*56)*(PojavLoginActivity.this.getResources().getDisplayMetrics().densityDpi/160f) )); accountDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); accountDialog.show(); } diff --git a/app_pojavlauncher/src/main/res/layout/simple_account_list_holder.xml b/app_pojavlauncher/src/main/res/layout/simple_account_list_holder.xml index d8dcb4e8c..bb33c8565 100644 --- a/app_pojavlauncher/src/main/res/layout/simple_account_list_holder.xml +++ b/app_pojavlauncher/src/main/res/layout/simple_account_list_holder.xml @@ -3,19 +3,21 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:background="#424242" - android:layout_width="match_parent" + android:layout_width="300dp" android:layout_height="match_parent"> Date: Sun, 21 Feb 2021 21:35:33 +0100 Subject: [PATCH 3/7] - Switched from v2 to v3, cleaned up a bit. --- .../kdt/pojavlaunch/PojavLoginActivity.java | 14 +- .../src/main/res/layout/launcher_login_v2.xml | 143 ------------------ 2 files changed, 1 insertion(+), 156 deletions(-) delete mode 100644 app_pojavlauncher/src/main/res/layout/launcher_login_v2.xml diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java index 265ef1027..f892590b1 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java @@ -205,17 +205,9 @@ public class PojavLoginActivity extends BaseActivity } private void uiInit() { - setContentView(R.layout.launcher_login_v2); + setContentView(R.layout.launcher_login_v3); - loginLayout = findViewById(R.id.login_layout_linear); spinnerChgLang = findViewById(R.id.login_spinner_language); - imageLogo = findViewById(R.id.login_image_logo); - loginLayout.postDelayed(new Runnable(){ - @Override - public void run(){ - imageLogo.setTranslationY(loginLayout.getY() - (imageLogo.getHeight() / 2f)); - } - }, 100); String defaultLang = LocaleUtils.DEFAULT_LOCALE.getDisplayName(); SpannableString defaultLangChar = new SpannableString(defaultLang); @@ -306,10 +298,6 @@ public class PojavLoginActivity extends BaseActivity Tools.updateWindowSize(this); - if (loginLayout != null && imageLogo != null) { - imageLogo.setTranslationY(loginLayout.getY() - (imageLogo.getHeight() / 2f)); - } - // Clear current profile PojavProfile.setCurrentProfile(this, null); } diff --git a/app_pojavlauncher/src/main/res/layout/launcher_login_v2.xml b/app_pojavlauncher/src/main/res/layout/launcher_login_v2.xml deleted file mode 100644 index eb183c61f..000000000 --- a/app_pojavlauncher/src/main/res/layout/launcher_login_v2.xml +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 166398ea22adc9184fbb10b45c8c15b17769a871 Mon Sep 17 00:00:00 2001 From: SerpentSpirale Date: Sun, 21 Feb 2021 22:25:37 +0100 Subject: [PATCH 4/7] - Some objects are final now - Cleaned up some code. - Reduced the scope of some variables. --- .../kdt/pojavlaunch/PojavLoginActivity.java | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java index f892590b1..475d857e6 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java @@ -1,6 +1,7 @@ package net.kdt.pojavlaunch; import android.Manifest; +import android.annotation.SuppressLint; import android.app.Dialog; import android.content.DialogInterface; import android.content.Intent; @@ -75,16 +76,12 @@ import org.apache.commons.io.IOUtils; public class PojavLoginActivity extends BaseActivity // MineActivity { - private Object mLockStoragePerm = new Object(), - mLockSelectJRE = new Object(); + private final Object mLockStoragePerm = new Object(); + private final Object mLockSelectJRE = new Object(); private EditText edit2, edit3; - private int REQUEST_STORAGE_REQUEST_CODE = 1; - private ProgressBar prb; + private final int REQUEST_STORAGE_REQUEST_CODE = 1; private CheckBox sRemember, sOffline; - private LinearLayout loginLayout; - private Spinner spinnerChgLang; - private ImageView imageLogo; private TextView startupTextView; private SharedPreferences firstLaunchPrefs; @@ -116,12 +113,8 @@ public class PojavLoginActivity extends BaseActivity private AlertDialog startAle; private ProgressBar progress; - private ProgressBar progressSpin; - private AlertDialog progDlg; - @Override - protected void onPreExecute() - { + protected void onPreExecute() { LinearLayout startScr = new LinearLayout(PojavLoginActivity.this); LayoutInflater.from(PojavLoginActivity.this).inflate(R.layout.start_screen, startScr); @@ -196,9 +189,7 @@ public class PojavLoginActivity extends BaseActivity @Override protected void onPostExecute(Integer obj) { startAle.dismiss(); - if (progressSpin != null) progressSpin.setVisibility(View.GONE); if (obj == 0) { - if (progDlg != null) progDlg.dismiss(); uiInit(); } } @@ -207,7 +198,7 @@ public class PojavLoginActivity extends BaseActivity private void uiInit() { setContentView(R.layout.launcher_login_v3); - spinnerChgLang = findViewById(R.id.login_spinner_language); + Spinner spinnerChgLang = findViewById(R.id.login_spinner_language); String defaultLang = LocaleUtils.DEFAULT_LOCALE.getDisplayName(); SpannableString defaultLangChar = new SpannableString(defaultLang); @@ -276,7 +267,6 @@ public class PojavLoginActivity extends BaseActivity edit2 = (EditText) findViewById(R.id.login_edit_email); edit3 = (EditText) findViewById(R.id.login_edit_password); - if(prb == null) prb = (ProgressBar) findViewById(R.id.launcherAccProgress); sRemember = findViewById(R.id.login_switch_remember); sOffline = findViewById(R.id.login_switch_offline); @@ -557,6 +547,7 @@ public class PojavLoginActivity extends BaseActivity } final String tarEntryName = tarEntry.getName(); runOnUiThread(new Runnable(){ + @SuppressLint("StringFormatInvalid") @Override public void run() { startupTextView.setText(getString(R.string.global_unpacking, tarEntryName)); @@ -797,8 +788,10 @@ public class PojavLoginActivity extends BaseActivity mProfile = loginOffline(); playProfile(false); } else { + ProgressBar prb = findViewById(R.id.launcherAccProgress); new LoginTask().setLoginListener(new LoginListener(){ + @Override public void onBeforeLogin() { v.setEnabled(false); From 53db976a158b79f8018062bd3107bf37ea6ade3c Mon Sep 17 00:00:00 2001 From: SerpentSpirale Date: Sun, 21 Feb 2021 22:39:53 +0100 Subject: [PATCH 5/7] Further cleaning --- .../kdt/pojavlaunch/PojavLoginActivity.java | 25 ++++--------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java index 475d857e6..ab1347290 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java @@ -24,7 +24,6 @@ import android.util.Base64; import android.util.Log; import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.ArrayAdapter; @@ -33,7 +32,6 @@ import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.EditText; import android.widget.ImageButton; -import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.ProgressBar; @@ -83,27 +81,17 @@ public class PojavLoginActivity extends BaseActivity private final int REQUEST_STORAGE_REQUEST_CODE = 1; private CheckBox sRemember, sOffline; private TextView startupTextView; - private SharedPreferences firstLaunchPrefs; private static boolean isSkipInit = false; - public static final String PREF_IS_INSTALLED_JAVARUNTIME = "isJavaRuntimeInstalled"; - public static final String PREF_JAVARUNTIME_VER = "javaRuntimeVersion"; @Override protected void onCreate(Bundle savedInstanceState){ - super.onCreate(savedInstanceState); // false); + super.onCreate(savedInstanceState); // false; Tools.updateWindowSize(this); - - ControlData[] specialButtons = ControlData.getSpecialButtons(); - specialButtons[0].name = getString(R.string.control_keyboard); - specialButtons[1].name = getString(R.string.control_toggle); - specialButtons[2].name = getString(R.string.control_primary); - specialButtons[3].name = getString(R.string.control_secondary); - specialButtons[4].name = getString(R.string.control_mouse); firstLaunchPrefs = getSharedPreferences("pojav_extract", MODE_PRIVATE); new InitTask().execute(isSkipInit); @@ -141,14 +129,13 @@ public class PojavLoginActivity extends BaseActivity @Override protected Integer doInBackground(Boolean[] params) { // If trigger a quick restart - if (params[0] == true) { - return 0; - } + if (params[0]) return 0; try { Thread.sleep(2000); } catch (InterruptedException e) {} + publishProgress("visible"); while (Build.VERSION.SDK_INT >= 23 && !isStorageAllowed()){ @@ -189,9 +176,7 @@ public class PojavLoginActivity extends BaseActivity @Override protected void onPostExecute(Integer obj) { startAle.dismiss(); - if (obj == 0) { - uiInit(); - } + if (obj == 0) uiInit(); } } @@ -254,7 +239,7 @@ public class PojavLoginActivity extends BaseActivity } LauncherPreferences.PREF_LANGUAGE = locale.getLanguage(); - LauncherPreferences.DEFAULT_PREF.edit().putString("language", LauncherPreferences.PREF_LANGUAGE).commit(); + LauncherPreferences.DEFAULT_PREF.edit().putString("language", LauncherPreferences.PREF_LANGUAGE).apply(); // Restart to apply language change finish(); From 4c6dd80be8f5b96cda3085909a7270df00d9b2b3 Mon Sep 17 00:00:00 2001 From: SerpentSpirale Date: Mon, 22 Feb 2021 11:24:38 +0100 Subject: [PATCH 6/7] - De-cluttered the launcher ui. - Removed stuff that wasn't used. --- .../kdt/pojavlaunch/BaseLauncherActivity.java | 17 -------- .../pojavlaunch/PojavLauncherActivity.java | 5 +-- .../kdt/pojavlaunch/PojavLoginActivity.java | 3 +- .../src/main/res/layout/launcher_main_v4.xml | 43 ++++++------------- 4 files changed, 16 insertions(+), 52 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java index 4546bb871..002506aa9 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java @@ -34,28 +34,11 @@ public abstract class BaseLauncherActivity extends BaseActivity { public abstract void statusIsLaunching(boolean isLaunching); - public void mcaccSwitchUser(View view) { - showProfileInfo(); - } - public void mcaccLogout(View view) { //PojavProfile.reset(); finish(); } - private void showProfileInfo() { - /* - new AlertDialog.Builder(this) - .setTitle("Info player") - .setMessage( - "AccessToken=" + profile.getAccessToken() + "\n" + - "ClientID=" + profile.getClientID() + "\n" + - "ProfileID=" + profile.getProfileID() + "\n" + - "Username=" + profile.getUsername() + "\n" + - "Version=" + profile.getVersion() - ).show(); - */ - } public void launcherMenu(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(this); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java index 8cface1ba..31ff5106c 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java @@ -52,7 +52,7 @@ public class PojavLauncherActivity extends BaseLauncherActivity private final Button[] Tabs = new Button[4]; private View selected; - private Button switchUsrBtn, logoutBtn; // MineButtons + private Button logoutBtn; // MineButtons public PojavLauncherActivity() { } @@ -185,7 +185,6 @@ public class PojavLauncherActivity extends BaseLauncherActivity mLaunchProgress = (ProgressBar) findViewById(R.id.progressDownloadBar); mLaunchTextStatus = (TextView) findViewById(R.id.progressDownloadText); - switchUsrBtn = (Button) findViewById(R.id.infoDevBtn); logoutBtn = (Button) findViewById(R.id.switchUserBtn); mPlayButton = (Button) findViewById(R.id.launchermainPlayButton); @@ -235,7 +234,7 @@ public class PojavLauncherActivity extends BaseLauncherActivity mLaunchProgress.setVisibility(launchVisibility); mLaunchTextStatus.setVisibility(launchVisibility); - switchUsrBtn.setEnabled(!isLaunching); + logoutBtn.setEnabled(!isLaunching); mVersionSelector.setEnabled(!isLaunching); canBack = !isLaunching; diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java index ab1347290..ede7330b4 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java @@ -82,6 +82,7 @@ public class PojavLoginActivity extends BaseActivity private CheckBox sRemember, sOffline; private TextView startupTextView; private SharedPreferences firstLaunchPrefs; + private MinecraftAccount mProfile = null; private static boolean isSkipInit = false; @@ -765,7 +766,7 @@ public class PojavLoginActivity extends BaseActivity return null; } - private MinecraftAccount mProfile = null; + public void loginMC(final View v) { diff --git a/app_pojavlauncher/src/main/res/layout/launcher_main_v4.xml b/app_pojavlauncher/src/main/res/layout/launcher_main_v4.xml index 558f9b40b..9a2761a29 100644 --- a/app_pojavlauncher/src/main/res/layout/launcher_main_v4.xml +++ b/app_pojavlauncher/src/main/res/layout/launcher_main_v4.xml @@ -205,20 +205,6 @@ app:layout_constraintStart_toStartOf="@+id/guidelineLeft" tools:visibility="visible" /> - -