diff --git a/app_pojavlauncher/build.gradle b/app_pojavlauncher/build.gradle index 88fc81d2e..a20bc070c 100644 --- a/app_pojavlauncher/build.gradle +++ b/app_pojavlauncher/build.gradle @@ -68,11 +68,14 @@ dependencies { // implementation 'com.wu-man:android-bsf-api:3.1.3' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.preference:preference:1.1.1' - implementation 'androidx.appcompat:appcompat:1.0.0' + implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.legacy:legacy-preference-v14:1.0.0' - implementation 'com.google.android.material:material:1.0.0' - implementation 'androidx.annotation:annotation:1.0.0' - implementation 'androidx.browser:browser:1.0.0' + implementation 'com.google.android.material:material:1.2.1' + implementation 'androidx.annotation:annotation:1.1.0' + implementation 'androidx.browser:browser:1.3.0' + + implementation "androidx.constraintlayout:constraintlayout:2.0.4" + // implementation 'com.intuit.sdp:sdp-android:1.0.5' // implementation 'com.intuit.ssp:ssp-android:1.0.5' 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 28ad8ab70..058337f47 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java @@ -75,10 +75,7 @@ public abstract class BaseLauncherActivity extends BaseActivity { case 2: // Custom controls startActivity(new Intent(BaseLauncherActivity.this, CustomControlsActivity.class)); break; - case 3: // Settings - startActivity(new Intent(BaseLauncherActivity.this, LauncherPreferenceActivity.class)); - break; - case 4: { // About + case 3: { // About final AlertDialog.Builder aboutB = new AlertDialog.Builder(BaseLauncherActivity.this); aboutB.setTitle(R.string.mcl_option_about); try { @@ -223,7 +220,8 @@ public abstract class BaseLauncherActivity extends BaseActivity { File lastCrashFile = Tools.lastFileModified(Tools.DIR_HOME_CRASH); if(CrashFragment.isNewCrash(lastCrashFile) || !mCrashView.getLastCrash().isEmpty()){ mCrashView.resetCrashLog = false; - selectTabPage(2); + initTabs(2); + } /*else throw new Exception();*/ } catch(Throwable e) { e.printStackTrace(); @@ -238,6 +236,5 @@ public abstract class BaseLauncherActivity extends BaseActivity { return super.onTouchEvent(event); } - protected abstract void selectTabPage(int pageIndex); - protected abstract float updateWidthHeight(); + protected abstract void initTabs(int pageIndex); } diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java deleted file mode 100644 index 285013665..000000000 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java +++ /dev/null @@ -1,170 +0,0 @@ -package net.kdt.pojavlaunch; - -import android.os.*; - -import androidx.core.app.*; -import androidx.core.view.*; -import androidx.appcompat.app.*; - -import android.view.*; -import android.widget.*; - -import com.google.android.material.tabs.TabLayout; - -import java.io.*; -import java.util.*; - -import net.kdt.pojavlaunch.fragments.*; - -import org.lwjgl.glfw.*; - -import androidx.appcompat.app.AlertDialog; -import androidx.viewpager.widget.ViewPager; - -import android.support.design.widget.VerticalTabLayout.*; - -//import android.support.v7.view.menu.*; -//import net.zhuoweizhang.boardwalk.downloader.*; - -public class MCLauncherActivity extends BaseLauncherActivity -{ - //private FragmentTabHost mTabHost; - private LinearLayout fullTab; - /* - private PojavLauncherViewPager viewPager; - private VerticalTabLayout tabLayout; - */ - - private ViewPager viewPager; - private TabLayout tabLayout; - - private TextView tvUsernameView; - private ViewPagerAdapter viewPageAdapter; - - private Button switchUsrBtn, logoutBtn; // MineButtons - private ViewGroup leftView, rightView; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - if (BuildConfig.DEBUG) { - Toast.makeText(this, "Launcher process id: " + android.os.Process.myPid(), Toast.LENGTH_LONG).show(); - } - setContentView(R.layout.launcher_main); - - fullTab = findViewById(R.id.launchermainFragmentTabView); - tabLayout = findViewById(R.id.launchermainTabLayout); - viewPager = findViewById(R.id.launchermainTabPager); - - mConsoleView = new ConsoleFragment(); - mCrashView = new CrashFragment(); - - viewPageAdapter = new ViewPagerAdapter(getSupportFragmentManager()); - - viewPageAdapter.addFragment(new LauncherFragment(), 0, getStr(R.string.mcl_tab_news)); - viewPageAdapter.addFragment(mConsoleView, 0, getStr(R.string.mcl_tab_console)); - viewPageAdapter.addFragment(mCrashView, 0, getStr(R.string.mcl_tab_crash)); - - viewPager.setAdapter(viewPageAdapter); - tabLayout.setupWithViewPager(viewPager); - - tvUsernameView = (TextView) findViewById(R.id.launchermain_text_welcome); - mTextVersion = (TextView) findViewById(R.id.launcherMainVersionView); - - try { - mProfile = PojavProfile.getCurrentProfileContent(this); - - tvUsernameView.setText(getString(R.string.main_welcome, mProfile.username)); - } catch(Exception e) { - Tools.showError(this, e); - } - - //showProfileInfo(); - - List versions = new ArrayList(); - final File fVers = new File(Tools.DIR_HOME_VERSION); - - try { - if (fVers.listFiles().length < 1) { - throw new Exception(getStr(R.string.error_no_version)); - } - - for (File fVer : fVers.listFiles()) { - if (fVer.isDirectory()) - versions.add(fVer.getName()); - } - } catch (Exception e) { - versions.add(getStr(R.string.global_error) + ":"); - versions.add(e.getMessage()); - - } finally { - mAvailableVersions = versions.toArray(new String[0]); - } - - //availableVersions; - - ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, mAvailableVersions); - adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice); - mVersionSelector = (Spinner) findViewById(R.id.launcherMainSelectVersion); - mVersionSelector.setAdapter(adapter); - - mLaunchProgress = (ProgressBar) findViewById(R.id.progressDownloadBar); - mLaunchTextStatus = (TextView) findViewById(R.id.progressDownloadText); - LinearLayout exitLayout = (LinearLayout) findViewById(R.id.launcherMainExitbtns); - switchUsrBtn = (Button) exitLayout.getChildAt(0); - logoutBtn = (Button) exitLayout.getChildAt(1); - - leftView = (LinearLayout) findViewById(R.id.launcherMainLeftLayout); - mPlayButton = (Button) findViewById(R.id.launcherMainPlayButton); - rightView = (ViewGroup) findViewById(R.id.launcherMainRightLayout); - - statusIsLaunching(false); - } - // DEBUG - //new android.support.design.widget.NavigationView(this); - - private String getStr(int id, Object... val) { - if (val != null && val.length > 0) { - return getResources().getString(id, val); - } else { - return getResources().getString(id); - } - } - - @Override - protected float updateWidthHeight() { - float leftRightWidth = (float) CallbackBridge.windowWidth / 100f * 32f; - float mPlayButtonWidth = CallbackBridge.windowWidth - leftRightWidth * 2f; - LinearLayout.LayoutParams leftRightParams = new LinearLayout.LayoutParams((int) leftRightWidth, (int) Tools.dpToPx(CallbackBridge.windowHeight / 9)); - LinearLayout.LayoutParams mPlayButtonParams = new LinearLayout.LayoutParams((int) mPlayButtonWidth, (int) Tools.dpToPx(CallbackBridge.windowHeight / 9)); - leftView.setLayoutParams(leftRightParams); - rightView.setLayoutParams(leftRightParams); - mPlayButton.setLayoutParams(mPlayButtonParams); - - return leftRightWidth; - } - - @Override - protected void selectTabPage(int pageIndex) { - if (tabLayout.getSelectedTabPosition() != pageIndex) { - tabLayout.setScrollPosition(pageIndex,0f,true); - viewPager.setCurrentItem(pageIndex); - } - } - - public void statusIsLaunching(boolean isLaunching) { - LinearLayout.LayoutParams reparam = new LinearLayout.LayoutParams((int) updateWidthHeight(), LinearLayout.LayoutParams.WRAP_CONTENT); - ViewGroup.MarginLayoutParams lmainTabParam = (ViewGroup.MarginLayoutParams) fullTab.getLayoutParams(); - int launchVisibility = isLaunching ? View.VISIBLE : View.GONE; - mLaunchProgress.setVisibility(launchVisibility); - mLaunchTextStatus.setVisibility(launchVisibility); - lmainTabParam.bottomMargin = reparam.height; - leftView.setLayoutParams(reparam); - - switchUsrBtn.setEnabled(!isLaunching); - logoutBtn.setEnabled(!isLaunching); - mVersionSelector.setEnabled(!isLaunching); - canBack = !isLaunching; - } -} 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 aea6bb355..aedab0e2c 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java @@ -1,86 +1,99 @@ package net.kdt.pojavlaunch; -import android.os.*; -import android.support.design.widget.*; -import android.support.design.widget.VerticalTabLayout.*; -import androidx.core.view.*; -import androidx.appcompat.app.*; +import android.animation.ValueAnimator; +import android.graphics.Color; +import android.graphics.Typeface; +import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +import android.support.design.widget.VerticalTabLayout.ViewPagerAdapter; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.ProgressBar; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.Toast; -import android.util.*; -import android.view.*; -import android.widget.*; - -import java.io.*; -import java.util.*; - -import net.kdt.pojavlaunch.fragments.*; -import net.kdt.pojavlaunch.prefs.*; - -import org.lwjgl.glfw.*; - -import androidx.appcompat.app.AlertDialog; import androidx.viewpager.widget.ViewPager; -import net.kdt.pojavlaunch.value.*; -//import android.support.v7.view.menu.*; -//import net.zhuoweizhang.boardwalk.downloader.*; + +import net.kdt.pojavlaunch.fragments.ConsoleFragment; +import net.kdt.pojavlaunch.fragments.CrashFragment; +import net.kdt.pojavlaunch.fragments.LauncherFragment; +import net.kdt.pojavlaunch.prefs.LauncherPreferenceFragment; +import net.kdt.pojavlaunch.value.MinecraftAccount; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; public class PojavLauncherActivity extends BaseLauncherActivity { - //private FragmentTabHost mTabHost; - private LinearLayout fullTab, leftTab; - /* - private PojavLauncherViewPager viewPager; - private VerticalTabLayout tabLayout; - */ private ViewPager viewPager; - private VerticalTabLayout tabLayout; private TextView tvUsernameView; private Spinner accountSelector; private ViewPagerAdapter viewPageAdapter; + private final Button[] Tabs = new Button[4]; + private View selected; private Button switchUsrBtn, logoutBtn; // MineButtons - private ViewGroup leftView, rightView; + + public PojavLauncherActivity() { + } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setContentView(R.layout.launcher_main_v4); + if (BuildConfig.DEBUG) { Toast.makeText(this, "Launcher process id: " + android.os.Process.myPid(), Toast.LENGTH_LONG).show(); } - - setContentView(R.layout.launcher_main_v3); - // setContentView(R.layout.launcher_main); - leftTab = findViewById(R.id.launchermain_layout_leftmenu); - leftTab.setLayoutParams(new LinearLayout.LayoutParams( - CallbackBridge.windowWidth / 4, - LinearLayout.LayoutParams.MATCH_PARENT)); - - fullTab = findViewById(R.id.launchermain_layout_viewpager); - tabLayout = findViewById(R.id.launchermainTabLayout); + viewPager = findViewById(R.id.launchermainTabPager); + selected = findViewById(R.id.viewTabSelected); mConsoleView = new ConsoleFragment(); mCrashView = new CrashFragment(); viewPageAdapter = new ViewPagerAdapter(getSupportFragmentManager()); - viewPageAdapter.addFragment(new LauncherFragment(), R.drawable.ic_menu_news, getString(R.string.mcl_tab_news)); - viewPageAdapter.addFragment(mConsoleView, R.drawable.ic_menu_java, getString(R.string.mcl_tab_console)); + viewPageAdapter.addFragment(new LauncherFragment(), 0, getString(R.string.mcl_tab_news)); + viewPageAdapter.addFragment(mConsoleView, 0, getString(R.string.mcl_tab_console)); viewPageAdapter.addFragment(mCrashView, 0, getString(R.string.mcl_tab_crash)); - viewPageAdapter.addFragment(new LauncherPreferenceFragment(), R.drawable.ic_menu_settings, - getString(R.string.mcl_option_settings)); - + viewPageAdapter.addFragment(new LauncherPreferenceFragment(), 0, getString(R.string.mcl_option_settings)); + + viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { + @Override + public void onPageSelected(int position) { + setTabActive(position); + } + + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + + } + + @Override + public void onPageScrollStateChanged(int state) { + + } + }); viewPager.setAdapter(viewPageAdapter); - // tabLayout.setTabMode(VerticalTabLayout.MODE_SCROLLABLE); - tabLayout.setupWithViewPager(viewPager); - tabLayout.setLastTabAsBottom(); tvUsernameView = (TextView) findViewById(R.id.launchermain_text_welcome); mTextVersion = (TextView) findViewById(R.id.launcherMainVersionView); + Tabs[0] = findViewById(R.id.btnTab1); + Tabs[1] = findViewById(R.id.btnTab2); + Tabs[2] = findViewById(R.id.btnTab3); + Tabs[3] = findViewById(R.id.btnTab4); + + pickAccount(); /* @@ -128,6 +141,7 @@ public class PojavLauncherActivity extends BaseLauncherActivity } } } + accountSelector.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){ @Override public void onItemSelected(AdapterView p1, View p2, int position, long p4) { @@ -167,7 +181,6 @@ public class PojavLauncherActivity extends BaseLauncherActivity } //mAvailableVersions; - ArrayAdapter adapterVer = new ArrayAdapter(this, android.R.layout.simple_spinner_item, mAvailableVersions); adapterVer.setDropDownViewResource(android.R.layout.simple_list_item_single_choice); mVersionSelector = (Spinner) findViewById(R.id.launchermain_spinner_version); @@ -175,40 +188,23 @@ public class PojavLauncherActivity extends BaseLauncherActivity mLaunchProgress = (ProgressBar) findViewById(R.id.progressDownloadBar); mLaunchTextStatus = (TextView) findViewById(R.id.progressDownloadText); - LinearLayout exitLayout = (LinearLayout) findViewById(R.id.launcherMainExitbtns); - switchUsrBtn = (Button) exitLayout.getChildAt(0); - logoutBtn = (Button) exitLayout.getChildAt(1); + switchUsrBtn = (Button) findViewById(R.id.infoDevBtn); + logoutBtn = (Button) findViewById(R.id.switchUserBtn); - leftView = (LinearLayout) findViewById(R.id.launcherMainLeftLayout); - mPlayButton = (Button) findViewById(R.id.launcherMainPlayButton); - rightView = (ViewGroup) findViewById(R.id.launcherMainRightLayout); + mPlayButton = (Button) findViewById(R.id.launchermainPlayButton); statusIsLaunching(false); + + initTabs(0); } - @Override - protected float updateWidthHeight() { - float leftRightWidth = (float) CallbackBridge.windowWidth / 100f * 32f; - float mPlayButtonWidth = CallbackBridge.windowWidth - leftRightWidth * 2f; - LinearLayout.LayoutParams leftRightParams = new LinearLayout.LayoutParams((int) leftRightWidth, - (int) Tools.dpToPx(CallbackBridge.windowHeight / 9)); - LinearLayout.LayoutParams mPlayButtonParams = new LinearLayout.LayoutParams((int) mPlayButtonWidth, - (int) Tools.dpToPx(CallbackBridge.windowHeight / 9)); - leftView.setLayoutParams(leftRightParams); - rightView.setLayoutParams(leftRightParams); - mPlayButton.setLayoutParams(mPlayButtonParams); - return leftRightWidth; + + private void selectTabPage(int pageIndex){ + viewPager.setCurrentItem(pageIndex); + setTabActive(pageIndex); } - @Override - protected void selectTabPage(int pageIndex){ - if (tabLayout.getSelectedTabPosition() != pageIndex) { - tabLayout.setScrollPosition(pageIndex,0f,true); - viewPager.setCurrentItem(pageIndex); - } - } - private void pickAccount() { try { mProfile = PojavProfile.getCurrentProfileContent(this); @@ -221,19 +217,50 @@ public class PojavLauncherActivity extends BaseLauncherActivity } public void statusIsLaunching(boolean isLaunching) { - LinearLayout.LayoutParams reparam = new LinearLayout.LayoutParams((int) updateWidthHeight(), - LinearLayout.LayoutParams.WRAP_CONTENT); - ViewGroup.MarginLayoutParams lmainTabParam = (ViewGroup.MarginLayoutParams) fullTab.getLayoutParams(); int launchVisibility = isLaunching ? View.VISIBLE : View.GONE; mLaunchProgress.setVisibility(launchVisibility); mLaunchTextStatus.setVisibility(launchVisibility); - lmainTabParam.bottomMargin = reparam.height; - leftView.setLayoutParams(reparam); switchUsrBtn.setEnabled(!isLaunching); logoutBtn.setEnabled(!isLaunching); mVersionSelector.setEnabled(!isLaunching); canBack = !isLaunching; } + + public void onTabClicked(View view) { + for(int i=0; i selected.setY((float) animation1.getAnimatedValue())); + animation.start(); + } + + protected void initTabs(int activeTab){ + final Handler handler = new Handler(Looper.getMainLooper()); + handler.postDelayed(new Runnable() { + @Override + public void run() { + //Do something after 100ms + selectTabPage(activeTab); + } + }, 500); + } + } 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 b00a5e119..a36fa13d0 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java @@ -1,9 +1,12 @@ package net.kdt.pojavlaunch; import android.*; +import android.app.Dialog; import android.content.*; import android.content.pm.*; import android.content.res.*; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; import android.net.*; import android.os.*; @@ -666,94 +669,87 @@ public class PojavLoginActivity extends BaseActivity } public void loginSavedAcc(View view) { - AlertDialog.Builder builder = new AlertDialog.Builder(this); + final Dialog accountDialog = new Dialog(PojavLoginActivity.this); - if (Tools.ENABLE_DEV_FEATURES) { - builder.setNegativeButton("Toggle UI v2", new DialogInterface.OnClickListener(){ + 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); - @Override - public void onClick(DialogInterface p1, int p2) - { - int ver = PojavV2ActivityManager.getLauncherRemakeInt(PojavLoginActivity.this) == 0 ? 1 : 0; - PojavV2ActivityManager.setLauncherRemakeVer(PojavLoginActivity.this, ver); - Toast.makeText(PojavLoginActivity.this, "Changed to use v" + (ver + 1), Toast.LENGTH_SHORT).show(); - } - }); - } - - final ArrayAdapter listAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1); for (String s : new File(Tools.DIR_ACCOUNT_NEW).list()) { - listAdapter.add(s.substring(0, s.length() - 5)); - } - - builder.setPositiveButton(android.R.string.cancel, null); - builder.setTitle(this.getString(R.string.login_select_account)); - builder.setSingleChoiceItems(listAdapter, 0, new DialogInterface.OnClickListener(){ + View child = inflater.inflate(R.layout.simple_account_list_item, null); + TextView accountName = child.findViewById(R.id.accountName); + ImageButton removeButton = child.findViewById(R.id.removeBtn); + + accountName.setText(s.substring(0, s.length() - 5)); + + accountListLayout.addView(child); + + accountName.setOnClickListener(new View.OnClickListener() { + final String selectedAccName = accountName.getText().toString(); @Override - public void onClick(final DialogInterface di, final int selectedIndex) { - PopupMenu popup = new PopupMenu(PojavLoginActivity.this, getViewFromList(selectedIndex, ((AlertDialog) di).getListView())); - popup.inflate(R.menu.menu_options_account); - popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { + public void onClick(View v) { + try { + RefreshListener authListener = new RefreshListener(){ @Override - public boolean onMenuItemClick(MenuItem item) { - final String selectedAccName = listAdapter.getItem(selectedIndex); - switch (item.getItemId()) { - case R.id.menu_account_select: - try { - RefreshListener authListener = new RefreshListener(){ - @Override - public void onFailed(Throwable e) { - Tools.showError(PojavLoginActivity.this, e); - } - - @Override - public void onSuccess(MinecraftAccount out) { - di.dismiss(); - mProfile = out; - playProfile(true); - } - }; - - MinecraftAccount acc = MinecraftAccount.load(selectedAccName); - if (acc.isMicrosoft){ - new MicrosoftAuthTask(PojavLoginActivity.this, authListener) - .execute("true", acc.msaRefreshToken); - } else if (acc.accessToken.length() >= 5) { - PojavProfile.updateTokens(PojavLoginActivity.this, selectedAccName, authListener); - } else { - di.dismiss(); - PojavProfile.launch(PojavLoginActivity.this, selectedAccName); - } - } catch (Exception e) { - Tools.showError(PojavLoginActivity.this, e); - } - break; - - case R.id.menu_account_remove: - AlertDialog.Builder builder2 = new AlertDialog.Builder(PojavLoginActivity.this); - builder2.setTitle(selectedAccName); - builder2.setMessage(R.string.warning_remove_account); - builder2.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener(){ - - @Override - public void onClick(DialogInterface p1, int p2) { - new InvalidateTokenTask(PojavLoginActivity.this) - .execute(selectedAccName); - listAdapter.remove(selectedAccName); - listAdapter.notifyDataSetChanged(); - } - }); - builder2.setNegativeButton(android.R.string.cancel, null); - builder2.show(); - break; - } - return true; + public void onFailed(Throwable e) { + Tools.showError(PojavLoginActivity.this, e); } - }); - popup.show(); + + @Override + public void onSuccess(MinecraftAccount out) { + accountDialog.dismiss(); + mProfile = out; + playProfile(true); + } + }; + + MinecraftAccount acc = MinecraftAccount.load(selectedAccName); + if (acc.isMicrosoft){ + new MicrosoftAuthTask(PojavLoginActivity.this, authListener) + .execute("true", acc.msaRefreshToken); + } else if (acc.accessToken.length() >= 5) { + PojavProfile.updateTokens(PojavLoginActivity.this, selectedAccName, authListener); + } else { + accountDialog.dismiss(); + PojavProfile.launch(PojavLoginActivity.this, selectedAccName); + } + } catch (Exception e) { + Tools.showError(PojavLoginActivity.this, e); + } } }); - builder.show(); + removeButton.setOnClickListener(new View.OnClickListener() { + final String selectedAccName = accountName.getText().toString(); + @Override + public void onClick(View v) { + AlertDialog.Builder builder2 = new AlertDialog.Builder(PojavLoginActivity.this); + builder2.setTitle(selectedAccName); + builder2.setMessage(R.string.warning_remove_account); + builder2.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) { + new InvalidateTokenTask(PojavLoginActivity.this).execute(selectedAccName); + accountListLayout.removeViewsInLayout(0,1); + //Resize the window + accountDialog.getWindow().setLayout((int)(xScreen*0.4),(int)Math.min((yScreen*0.8), 200 + accountListLayout.getChildCount()*150)); + } + }); + builder2.setNegativeButton(android.R.string.cancel, null); + builder2.show(); + } + }); + + } + + accountDialog.getWindow().setLayout((int)(xScreen*0.4),(int)Math.min((yScreen*0.8), 200 + accountListLayout.getChildCount()*150)); + accountDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + accountDialog.show(); } private MinecraftAccount loginOffline() { diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavProfile.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavProfile.java index 8b5fc9468..eab24f646 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavProfile.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavProfile.java @@ -17,7 +17,7 @@ public class PojavProfile private static String PROFILE_PREF = "pojav_profile"; private static String PROFILE_PREF_FILE = "file"; public static String PROFILE_PREF_TEMP_CONTENT = "tempContent"; - + public static SharedPreferences getPrefs(Context ctx) { return ctx.getSharedPreferences(PROFILE_PREF, Context.MODE_PRIVATE); } @@ -58,7 +58,7 @@ public class PojavProfile return null; } } - + public static String getCurrentProfileName(Context ctx) { String name = getPrefs(ctx).getString(PROFILE_PREF_FILE, ""); // A dirty fix @@ -101,7 +101,7 @@ public class PojavProfile public static void launch(Activity ctx, Object o) { PojavProfile.setCurrentProfile(ctx, o); - Intent intent = new Intent(ctx, PojavV2ActivityManager.getLauncherRemakeVer(ctx)); //MCLauncherActivity.class); + Intent intent = new Intent(ctx, PojavLauncherActivity.class); //MCLauncherActivity.class); ctx.startActivity(intent); } diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavV2ActivityManager.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavV2ActivityManager.java deleted file mode 100644 index c9edc09b1..000000000 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavV2ActivityManager.java +++ /dev/null @@ -1,37 +0,0 @@ -package net.kdt.pojavlaunch; -import android.content.*; - -public class PojavV2ActivityManager -{ - public static String CATEGORY_LAUNCHER = "launcher"; - public static Class LAUNCHER_V1 = MCLauncherActivity.class; - public static Class LAUNCHER_V2 = PojavLauncherActivity.class; - - public static boolean setLauncherRemakeClass(Context context, Class cls) { - return setLauncherRemakeVer(context, cls.getName().equals(LAUNCHER_V1.getName()) ? 0 : 1); - } - - public static boolean setLauncherRemakeVer(Context context, int i) { - Context context2 = context; - int i2 = i; - if (i2 >= 0 && i2 <= 1) { - return getPref(context2).edit().putInt(CATEGORY_LAUNCHER, i2).commit(); - } else throw new IllegalArgumentException("ver must be 0 or 1"); - } - - public static int getLauncherRemakeInt(Context context) { - if (Tools.ENABLE_DEV_FEATURES) { - return getPref(context).getInt(CATEGORY_LAUNCHER, 0); - } else { - return 0; - } - } - - public static Class getLauncherRemakeVer(Context context) { - return getLauncherRemakeInt(context) == 0 ? LAUNCHER_V1 : LAUNCHER_V2; - } - - private static SharedPreferences getPref(Context ctx) { - return ctx.getSharedPreferences("remake", Context.MODE_PRIVATE); - } -} diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/mojang/InvalidateTokenTask.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/mojang/InvalidateTokenTask.java index dc266025f..2229d3362 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/mojang/InvalidateTokenTask.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/mojang/InvalidateTokenTask.java @@ -38,7 +38,7 @@ public class InvalidateTokenTask extends AsyncTask { if (result != null) { Tools.showError(ctx, result); } - new File(path).delete(); + new File(Tools.DIR_ACCOUNT_NEW + "/" + path + ".json").delete(); } } diff --git a/app_pojavlauncher/src/main/res/drawable-mdpi/ic_menu_java.png b/app_pojavlauncher/src/main/res/drawable-mdpi/ic_menu_java.png new file mode 100755 index 000000000..91f945e66 Binary files /dev/null and b/app_pojavlauncher/src/main/res/drawable-mdpi/ic_menu_java.png differ diff --git a/app_pojavlauncher/src/main/res/drawable-mdpi/ic_menu_news.png b/app_pojavlauncher/src/main/res/drawable-mdpi/ic_menu_news.png new file mode 100755 index 000000000..5fdcc0754 Binary files /dev/null and b/app_pojavlauncher/src/main/res/drawable-mdpi/ic_menu_news.png differ diff --git a/app_pojavlauncher/src/main/res/drawable-mdpi/ic_menu_settings.png b/app_pojavlauncher/src/main/res/drawable-mdpi/ic_menu_settings.png new file mode 100755 index 000000000..cda0fed91 Binary files /dev/null and b/app_pojavlauncher/src/main/res/drawable-mdpi/ic_menu_settings.png differ diff --git a/app_pojavlauncher/src/main/res/drawable-mdpi/ic_menu_warning.png b/app_pojavlauncher/src/main/res/drawable-mdpi/ic_menu_warning.png new file mode 100755 index 000000000..88e8f78e9 Binary files /dev/null and b/app_pojavlauncher/src/main/res/drawable-mdpi/ic_menu_warning.png differ diff --git a/app_pojavlauncher/src/main/res/drawable-mdpi/ic_remove.png b/app_pojavlauncher/src/main/res/drawable-mdpi/ic_remove.png new file mode 100755 index 000000000..f266a302b Binary files /dev/null and b/app_pojavlauncher/src/main/res/drawable-mdpi/ic_remove.png differ diff --git a/app_pojavlauncher/src/main/res/drawable/ic_menu_java.png b/app_pojavlauncher/src/main/res/drawable/ic_menu_java.png deleted file mode 100644 index dea5ffa4c..000000000 Binary files a/app_pojavlauncher/src/main/res/drawable/ic_menu_java.png and /dev/null differ diff --git a/app_pojavlauncher/src/main/res/drawable/ic_menu_news.png b/app_pojavlauncher/src/main/res/drawable/ic_menu_news.png deleted file mode 100644 index 836049e6a..000000000 Binary files a/app_pojavlauncher/src/main/res/drawable/ic_menu_news.png and /dev/null differ diff --git a/app_pojavlauncher/src/main/res/drawable/ic_menu_settings.png b/app_pojavlauncher/src/main/res/drawable/ic_menu_settings.png deleted file mode 100644 index 95562a75b..000000000 Binary files a/app_pojavlauncher/src/main/res/drawable/ic_menu_settings.png and /dev/null differ diff --git a/app_pojavlauncher/src/main/res/layout/launcher_main.xml b/app_pojavlauncher/src/main/res/layout/launcher_main.xml deleted file mode 100644 index 1a5cafd65..000000000 --- a/app_pojavlauncher/src/main/res/layout/launcher_main.xml +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -