diff --git a/app/build.gradle b/app/build.gradle
index 88eab453e..548f30e95 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -61,14 +61,14 @@ dependencies {
implementation 'javax.annotation:javax.annotation-api:1.3.2'
implementation 'commons-codec:commons-codec:1.14'
implementation 'com.wu-man:android-bsf-api:3.1.3'
- implementation 'com.android.support:support-v4:26.0.0'
- implementation 'com.android.support:preference-v7:26.0.0'
- implementation 'com.android.support:appcompat-v7:26.0.0'
- implementation 'com.android.support:preference-v14:26.0.0'
- implementation 'com.android.support:design:26.0.0'
- implementation 'com.android.support:support-annotations:26.0.0'
+ implementation 'androidx.legacy:legacy-support-v4:1.0.0'
+ implementation 'androidx.preference:preference:1.0.0'
+ implementation 'androidx.appcompat:appcompat:1.0.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.android.support:customtabs:25.2.0'
+ implementation 'androidx.browser:browser:1.0.0'
// implementation 'com.intuit.sdp:sdp-android:1.0.5'
// implementation 'com.intuit.ssp:ssp-android:1.0.5'
diff --git a/app/src/main/java/android/support/design/widget/VerticalTabLayout.java b/app/src/main/java/android/support/design/widget/VerticalTabLayout.java
index aef9fd140..2e33a8331 100644
--- a/app/src/main/java/android/support/design/widget/VerticalTabLayout.java
+++ b/app/src/main/java/android/support/design/widget/VerticalTabLayout.java
@@ -16,14 +16,15 @@
package android.support.design.widget;
-import static android.support.annotation.RestrictTo.Scope.LIBRARY_GROUP;
-import static android.support.v4.view.ViewPager.SCROLL_STATE_DRAGGING;
-import static android.support.v4.view.ViewPager.SCROLL_STATE_IDLE;
-import static android.support.v4.view.ViewPager.SCROLL_STATE_SETTLING;
+import static androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP;
+import static androidx.viewpager.widget.ViewPager.SCROLL_STATE_DRAGGING;
+import static androidx.viewpager.widget.ViewPager.SCROLL_STATE_IDLE;
+import static androidx.viewpager.widget.ViewPager.SCROLL_STATE_SETTLING;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.Resources;
@@ -33,26 +34,29 @@ import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.os.Build;
-import android.support.annotation.ColorInt;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.IntDef;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.annotation.RestrictTo;
-import android.support.annotation.StringRes;
-import android.support.design.R;
-import android.support.design.widget.*;
-import android.support.v4.util.Pools;
-import android.support.v4.view.GravityCompat;
-import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.PointerIconCompat;
-import android.support.v4.view.ViewCompat;
-import android.support.v4.view.ViewPager;
-import android.support.v4.widget.TextViewCompat;
-import android.support.v7.app.ActionBar;
-import android.support.v7.content.res.AppCompatResources;
-import android.support.v7.widget.TooltipCompat;
+import androidx.annotation.ColorInt;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.IntDef;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.RestrictTo;
+import androidx.annotation.StringRes;
+import com.google.android.material.R;
+
+import androidx.core.util.Pools;
+import androidx.core.view.GravityCompat;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentPagerAdapter;
+import androidx.viewpager.widget.PagerAdapter;
+import androidx.core.view.PointerIconCompat;
+import androidx.core.view.ViewCompat;
+import androidx.viewpager.widget.ViewPager;
+import androidx.core.widget.TextViewCompat;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.content.res.AppCompatResources;
+import androidx.appcompat.widget.TooltipCompat;
import android.text.Layout;
import android.text.TextUtils;
import android.util.AttributeSet;
@@ -76,7 +80,11 @@ import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.*;
-import android.support.v4.app.*;
+import androidx.core.app.*;
+
+import com.google.android.material.animation.AnimationUtils;
+import com.google.android.material.tabs.TabItem;
+import com.google.android.material.tabs.TabLayout;
/**
* VerticalTabLayout provides a vertical layout to display tabs.
@@ -114,7 +122,7 @@ import android.support.v4.app.*;
*
*
ViewPager integration
*
- * If you're using a {@link android.support.v4.view.ViewPager} together
+ * If you're using a {@link ViewPager} together
* with this layout, you can call {@link #setupWithViewPager(ViewPager)} to link the two together.
* This layout will be automatically populated from the {@link PagerAdapter}'s page titles.
*
@@ -299,7 +307,7 @@ public class VerticalTabLayout extends LinearLayout {
public VerticalTabLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
- ThemeUtils.checkAppCompatTheme(context);
+ //ndroidx.appcompat.widget.ThemeUtils.checkAppCompatTheme(context);
setOrientation(VERTICAL);
@@ -340,12 +348,12 @@ public class VerticalTabLayout extends LinearLayout {
// Text colors/sizes come from the text appearance first
final TypedArray ta = context.obtainStyledAttributes(mTabTextAppearance,
- android.support.v7.appcompat.R.styleable.TextAppearance);
+ androidx.appcompat.R.styleable.TextAppearance);
try {
mTabTextSize = ta.getDimensionPixelSize(
- android.support.v7.appcompat.R.styleable.TextAppearance_android_textSize, 0);
+ androidx.appcompat.R.styleable.TextAppearance_android_textSize, 0);
mTabTextColors = ta.getColorStateList(
- android.support.v7.appcompat.R.styleable.TextAppearance_android_textColor);
+ androidx.appcompat.R.styleable.TextAppearance_android_textColor);
} finally {
ta.recycle();
}
@@ -406,7 +414,7 @@ public class VerticalTabLayout extends LinearLayout {
/**
* Set the scroll position of the tabs. This is useful for when the tabs are being displayed as
- * part of a scrolling container such as {@link android.support.v4.view.ViewPager}.
+ * part of a scrolling container such as {@link ViewPager}.
*
* Calling this method does not update the selected tab, it is only used for drawing purposes.
*
@@ -518,15 +526,16 @@ public class VerticalTabLayout extends LinearLayout {
}
private void addTabFromItemView(@NonNull TabItem item) {
+
final Tab tab = newTab();
- if (item.mText != null) {
- tab.setText(item.mText);
+ if (item.text != null) {
+ tab.setText(item.text);
}
- if (item.mIcon != null) {
- tab.setIcon(item.mIcon);
+ if (item.icon != null) {
+ tab.setIcon(item.icon);
}
- if (item.mCustomLayout != 0) {
- tab.setCustomView(item.mCustomLayout);
+ if (item.customLayout != 0) {
+ tab.setCustomView(item.customLayout);
}
if (!TextUtils.isEmpty(item.getContentDescription())) {
tab.setContentDescription(item.getContentDescription());
@@ -696,7 +705,7 @@ public class VerticalTabLayout extends LinearLayout {
*
{@link #MODE_SCROLLABLE}: Scrollable tabs display a subset of tabs at any given moment,
* and can contain longer tab labels and a larger number of tabs. They are best used for
* browsing contexts in touch interfaces when users don’t need to directly compare the tab
- * labels. This mode is commonly used with a {@link android.support.v4.view.ViewPager}.
+ * labels. This mode is commonly used with a {@link ViewPager}.
*
*
* @param mode one of {@link #MODE_FIXED} or {@link #MODE_SCROLLABLE}.
@@ -2056,6 +2065,7 @@ public class VerticalTabLayout extends LinearLayout {
animator.setDuration(duration);
animator.setFloatValues(0, 1);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+ @SuppressLint("RestrictedApi")
@Override
public void onAnimationUpdate(ValueAnimator animator) {
final float fraction = animator.getAnimatedFraction();
diff --git a/app/src/main/java/com/kdt/mcgui/app/MineActivity.java b/app/src/main/java/com/kdt/mcgui/app/MineActivity.java
index 3150b2703..cc220518c 100644
--- a/app/src/main/java/com/kdt/mcgui/app/MineActivity.java
+++ b/app/src/main/java/com/kdt/mcgui/app/MineActivity.java
@@ -2,13 +2,10 @@ package com.kdt.mcgui.app;
import android.content.pm.*;
import android.os.*;
-import android.support.v7.app.*;
+import androidx.appcompat.app.*;
import android.view.*;
import android.widget.*;
import net.kdt.pojavlaunch.*;
-import java.util.*;
-import android.content.*;
-import com.kdt.mcgui.*;
public class MineActivity extends BaseActivity implements View.OnClickListener
{
@@ -22,6 +19,7 @@ public class MineActivity extends BaseActivity implements View.OnClickListener
@Override
protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
this.onCreate(savedInstanceState, true);
}
diff --git a/app/src/main/java/com/kdt/mcgui/app/MinePrefActivity.java b/app/src/main/java/com/kdt/mcgui/app/MinePrefActivity.java
index 803a70d8c..98866b5c8 100644
--- a/app/src/main/java/com/kdt/mcgui/app/MinePrefActivity.java
+++ b/app/src/main/java/com/kdt/mcgui/app/MinePrefActivity.java
@@ -1,10 +1,13 @@
package com.kdt.mcgui.app;
-import android.support.v7.app.*;
+import androidx.appcompat.app.*;
import android.os.*;
-import android.support.v4.app.*;
+import androidx.core.app.*;
import android.widget.*;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentTransaction;
+
public class MinePrefActivity extends MineActivity
{
@Override
diff --git a/app/src/main/java/com/kdt/mcgui/pref/MineSeekBarPref.java b/app/src/main/java/com/kdt/mcgui/pref/MineSeekBarPref.java
index 0f3fb871a..fd91fe6be 100644
--- a/app/src/main/java/com/kdt/mcgui/pref/MineSeekBarPref.java
+++ b/app/src/main/java/com/kdt/mcgui/pref/MineSeekBarPref.java
@@ -19,13 +19,11 @@ package com.kdt.mcgui.pref;
import android.content.*;
import android.content.res.*;
import android.os.*;
-import android.support.v7.preference.*;
+import androidx.preference.*;
import android.util.*;
import android.view.*;
-import android.view.View.*;
import android.widget.*;
import android.widget.SeekBar.*;
-import net.kdt.pojavlaunch.*;
import android.view.View.BaseSavedState;
import net.kdt.pojavlaunch.R;
diff --git a/app/src/main/java/com/kdt/pickafile/FileListView.java b/app/src/main/java/com/kdt/pickafile/FileListView.java
index cf19eed3b..361b862a5 100644
--- a/app/src/main/java/com/kdt/pickafile/FileListView.java
+++ b/app/src/main/java/com/kdt/pickafile/FileListView.java
@@ -1,6 +1,6 @@
package com.kdt.pickafile;
-import android.support.v7.app.*;
+import androidx.appcompat.app.*;
import android.content.*;
import android.util.*;
import android.view.*;
diff --git a/app/src/main/java/net/kdt/pojavlaunch/BaseActivity.java b/app/src/main/java/net/kdt/pojavlaunch/BaseActivity.java
index 4e47f70e8..d32f02935 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/BaseActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/BaseActivity.java
@@ -2,7 +2,7 @@ package net.kdt.pojavlaunch;
import android.content.*;
import android.os.*;
-import android.support.v7.app.*;
+import androidx.appcompat.app.*;
import net.kdt.pojavlaunch.utils.*;
public class BaseActivity extends AppCompatActivity
diff --git a/app/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java b/app/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java
index 1626c53dd..91e5544a6 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java
@@ -2,7 +2,7 @@ package net.kdt.pojavlaunch;
import android.app.*;
import android.content.*;
-import android.support.v7.app.*;
+import androidx.appcompat.app.*;
import android.text.*;
import android.view.*;
import android.widget.*;
@@ -12,7 +12,7 @@ import net.kdt.pojavlaunch.fragments.*;
import net.kdt.pojavlaunch.prefs.*;
import net.kdt.pojavlaunch.tasks.*;
-import android.support.v7.app.AlertDialog;
+import androidx.appcompat.app.AlertDialog;
public abstract class BaseLauncherActivity extends BaseActivity {
public Button mPlayButton;
@@ -160,23 +160,26 @@ public abstract class BaseLauncherActivity extends BaseActivity {
@Override
protected void onPostResume() {
super.onPostResume();
+ System.out.println("call to onPostResume");
Tools.updateWindowSize(this);
-
+ System.out.println("call to onPostResume; E");
}
@Override
protected void onResume(){
super.onResume();
+ System.out.println("call to onResume");
final int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
final View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(uiOptions);
+ System.out.println("call to onResume; E");
}
@Override
protected void onResumeFragments() {
super.onResumeFragments();
new RefreshVersionListTask(this).execute();
-
+ System.out.println("call to onResumeFragments");
try{
final ProgressDialog barrier = new ProgressDialog(this);
barrier.setMessage(getString(R.string.global_waiting));
@@ -219,11 +222,12 @@ public abstract class BaseLauncherActivity extends BaseActivity {
if(CrashFragment.isNewCrash(lastCrashFile) || !mCrashView.getLastCrash().isEmpty()){
mCrashView.resetCrashLog = false;
selectTabPage(2);
- } else throw new Exception();
+ } /*else throw new Exception();*/
} catch(Throwable e) {
e.printStackTrace();
// selectTabPage(tabLayout.getSelectedTabPosition());
}
+ System.out.println("call to onResumeFragments; E");
}
// Catching touch exception
diff --git a/app/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java b/app/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java
index a4b68b64b..2b4cbe761 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java
@@ -4,18 +4,22 @@ import android.app.*;
import android.content.*;
import android.graphics.*;
import android.os.*;
-import android.support.design.widget.*;
-import android.support.v4.widget.*;
+
+import androidx.core.widget.*;
import android.util.*;
import android.view.*;
import android.view.View.*;
import android.view.inputmethod.*;
import android.widget.*;
+
+import androidx.drawerlayout.widget.DrawerLayout;
+
+import com.google.android.material.navigation.NavigationView;
import com.kdt.pointer.*;
import java.io.*;
import java.lang.reflect.*;
import java.util.*;
-import net.kdt.pojavlaunch.customcontrols.*;
+
import net.kdt.pojavlaunch.prefs.*;
import net.kdt.pojavlaunch.utils.*;
import org.lwjgl.glfw.*;
diff --git a/app/src/main/java/net/kdt/pojavlaunch/CustomControlsActivity.java b/app/src/main/java/net/kdt/pojavlaunch/CustomControlsActivity.java
index 05bbcfaaf..79fd7d65b 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/CustomControlsActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/CustomControlsActivity.java
@@ -2,16 +2,19 @@ package net.kdt.pojavlaunch;
import android.content.*;
import android.os.*;
-import android.support.design.widget.*;
-import android.support.v4.widget.*;
-import android.support.v7.app.*;
-import android.support.v7.preference.*;
+
+import androidx.core.widget.*;
+import androidx.appcompat.app.*;
+import androidx.preference.*;
import android.view.*;
import android.widget.*;
-import com.google.gson.*;
+
+import androidx.drawerlayout.widget.DrawerLayout;
+
+import com.google.android.material.navigation.NavigationView;
import com.kdt.pickafile.*;
import java.io.*;
-import net.kdt.pojavlaunch.*;
+
import net.kdt.pojavlaunch.prefs.*;
import net.kdt.pojavlaunch.customcontrols.*;
diff --git a/app/src/main/java/net/kdt/pojavlaunch/CustomTabs.java b/app/src/main/java/net/kdt/pojavlaunch/CustomTabs.java
index dbf25de1d..978b2fdf6 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/CustomTabs.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/CustomTabs.java
@@ -2,7 +2,7 @@ package net.kdt.pojavlaunch;
import android.content.*;
import android.net.*;
-import android.support.customtabs.*;
+import androidx.browser.customtabs.*;
// import androidx.browser.customtabs.*;
public class CustomTabs {
diff --git a/app/src/main/java/net/kdt/pojavlaunch/FatalErrorActivity.java b/app/src/main/java/net/kdt/pojavlaunch/FatalErrorActivity.java
index 2b8a89b0f..6b8a4af76 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/FatalErrorActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/FatalErrorActivity.java
@@ -3,9 +3,9 @@ package net.kdt.pojavlaunch;
import android.app.*;
import android.content.*;
import android.os.*;
-import android.support.v7.app.*;
+import androidx.appcompat.app.*;
import android.util.*;
-import android.support.v7.app.AlertDialog;
+import androidx.appcompat.app.AlertDialog;
public class FatalErrorActivity extends BaseActivity
{
diff --git a/app/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java b/app/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java
index 631491d71..ed5ae0cf2 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java
@@ -2,7 +2,7 @@ package net.kdt.pojavlaunch;
import android.graphics.*;
import android.os.*;
-import android.support.v7.app.*;
+import androidx.appcompat.app.*;
import android.util.*;
import android.view.*;
import android.widget.*;
@@ -12,7 +12,6 @@ import net.kdt.pojavlaunch.installers.*;
import net.kdt.pojavlaunch.utils.*;
import org.lwjgl.glfw.*;
import android.content.*;
-import android.system.*;
public class JavaGUILauncherActivity extends LoggableActivity {
private AWTCanvasView mTextureView;
diff --git a/app/src/main/java/net/kdt/pojavlaunch/LoggableActivity.java b/app/src/main/java/net/kdt/pojavlaunch/LoggableActivity.java
index d5aac4ece..bf73d3617 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/LoggableActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/LoggableActivity.java
@@ -1,6 +1,6 @@
package net.kdt.pojavlaunch;
-import android.support.v7.app.*;
+import androidx.appcompat.app.*;
public abstract class LoggableActivity extends BaseActivity {
public void appendToLog(String text) {
diff --git a/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java b/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java
index ac305921b..e00836d18 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java
@@ -1,35 +1,25 @@
package net.kdt.pojavlaunch;
-import android.content.*;
-import android.graphics.*;
import android.os.*;
-import android.support.design.widget.*;
-import android.support.v4.app.*;
-import android.support.v4.view.*;
-import android.support.v7.app.*;
-import android.text.*;
-import android.util.*;
+
+import androidx.core.app.*;
+import androidx.core.view.*;
+import androidx.appcompat.app.*;
+
import android.view.*;
import android.widget.*;
-import android.widget.AdapterView.*;
-import com.google.gson.*;
-import com.kdt.pickafile.*;
+
+import com.google.android.material.tabs.TabLayout;
+
import java.io.*;
-import java.nio.charset.*;
import java.util.*;
-import net.kdt.pojavlaunch.*;
+
import net.kdt.pojavlaunch.fragments.*;
-import net.kdt.pojavlaunch.prefs.*;
-import net.kdt.pojavlaunch.utils.*;
-import net.kdt.pojavlaunch.value.*;
+
import org.lwjgl.glfw.*;
-import android.support.v7.app.AlertDialog;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.app.*;
-import org.apache.commons.io.*;
-import net.kdt.pojavlaunch.tasks.*;
+import androidx.appcompat.app.AlertDialog;
+import androidx.viewpager.widget.ViewPager;
import android.support.design.widget.VerticalTabLayout.*;
diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java b/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java
index 2d627f195..9ff4db037 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java
@@ -5,13 +5,13 @@ import android.content.*;
import android.content.pm.*;
import android.content.res.*;
import android.os.*;
-import android.support.v4.app.*;
-import android.support.v7.preference.*;
+import androidx.core.app.*;
+import androidx.preference.*;
import android.util.*;
import java.io.*;
import java.text.*;
import java.util.*;
-import net.kdt.pojavlaunch.prefs.*;
+
import net.kdt.pojavlaunch.utils.*;
public class PojavApplication extends Application
diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java b/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java
index 35862b91a..5f9c275cf 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java
@@ -1,33 +1,25 @@
package net.kdt.pojavlaunch;
-import android.app.*;
-import android.content.*;
-import android.graphics.*;
import android.os.*;
import android.support.design.widget.*;
import android.support.design.widget.VerticalTabLayout.*;
-import android.support.v4.view.*;
-import android.support.v7.app.*;
-import android.text.*;
+import androidx.core.view.*;
+import androidx.appcompat.app.*;
+
import android.util.*;
import android.view.*;
import android.widget.*;
-import android.widget.AdapterView.*;
-import com.google.gson.*;
-import com.kdt.pickafile.*;
+
import java.io.*;
-import java.nio.charset.*;
import java.util.*;
-import net.kdt.pojavlaunch.*;
+
import net.kdt.pojavlaunch.fragments.*;
import net.kdt.pojavlaunch.prefs.*;
-import net.kdt.pojavlaunch.utils.*;
-import net.kdt.pojavlaunch.value.*;
-import org.apache.commons.io.*;
+
import org.lwjgl.glfw.*;
-import android.support.v7.app.AlertDialog;
-import net.kdt.pojavlaunch.tasks.*;
+import androidx.appcompat.app.AlertDialog;
+import androidx.viewpager.widget.ViewPager;
//import android.support.v7.view.menu.*;
//import net.zhuoweizhang.boardwalk.downloader.*;
diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java b/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java
index 184585da5..77a5dbddc 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java
@@ -6,10 +6,11 @@ import android.content.pm.*;
import android.content.res.*;
import android.net.*;
import android.os.*;
-import android.support.annotation.*;
-import android.support.v4.app.*;
-import android.support.v4.content.*;
-import android.support.v7.app.*;
+
+import androidx.annotation.NonNull;
+import androidx.core.app.*;
+import androidx.core.content.*;
+import androidx.appcompat.app.*;
import android.system.*;
import android.text.*;
import android.text.style.*;
diff --git a/app/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/ActionPopupWindow.java b/app/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/ActionPopupWindow.java
index 5205f43b5..96e2aa2bb 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/ActionPopupWindow.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/ActionPopupWindow.java
@@ -21,17 +21,14 @@ package net.kdt.pojavlaunch.customcontrols.handleview;
import android.content.*;
import android.view.*;
-import android.view.View.*;
import android.view.ViewGroup.*;
import android.widget.*;
-import java.lang.reflect.*;
+
import net.kdt.pojavlaunch.*;
import android.view.View.OnClickListener;
import net.kdt.pojavlaunch.customcontrols.*;
-import android.support.v7.app.*;
-import android.content.res.*;
-import net.objecthunter.exp4j.*;
+import androidx.appcompat.app.*;
public class ActionPopupWindow extends PinnedPopupWindow implements OnClickListener {
private TextView mEditTextView;
diff --git a/app/src/main/java/net/kdt/pojavlaunch/fragments/ConsoleFragment.java b/app/src/main/java/net/kdt/pojavlaunch/fragments/ConsoleFragment.java
index 4cd1bd485..439ec931b 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/fragments/ConsoleFragment.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/fragments/ConsoleFragment.java
@@ -1,15 +1,18 @@
package net.kdt.pojavlaunch.fragments;
import android.os.*;
-import android.support.annotation.*;
-import android.support.v4.app.*;
+
+import androidx.annotation.Nullable;
+import androidx.core.app.*;
import android.view.*;
import android.widget.*;
-import java.io.*;
+
import net.kdt.pojavlaunch.*;
-import android.util.*;
+
import android.graphics.*;
+import androidx.fragment.app.Fragment;
+
public class ConsoleFragment extends Fragment
{
public TextView consoleView;
diff --git a/app/src/main/java/net/kdt/pojavlaunch/fragments/CrashFragment.java b/app/src/main/java/net/kdt/pojavlaunch/fragments/CrashFragment.java
index ad2ba6a1e..1061e0dc7 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/fragments/CrashFragment.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/fragments/CrashFragment.java
@@ -1,16 +1,18 @@
package net.kdt.pojavlaunch.fragments;
import android.os.*;
-import android.support.annotation.*;
-import android.support.v4.app.*;
+
+import androidx.annotation.Nullable;
+import androidx.core.app.*;
import android.view.*;
import android.widget.*;
import java.io.*;
import net.kdt.pojavlaunch.*;
-import android.util.*;
+
import android.graphics.*;
-import android.content.*;
-import android.support.v4.os.*;
+
+import androidx.core.os.*;
+import androidx.fragment.app.Fragment;
public class CrashFragment extends Fragment
{
diff --git a/app/src/main/java/net/kdt/pojavlaunch/fragments/LauncherFragment.java b/app/src/main/java/net/kdt/pojavlaunch/fragments/LauncherFragment.java
index 32ef791e4..ccce7948c 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/fragments/LauncherFragment.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/fragments/LauncherFragment.java
@@ -1,8 +1,8 @@
package net.kdt.pojavlaunch.fragments;
import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
import android.view.View;
import android.view.ViewGroup;
import android.view.LayoutInflater;
diff --git a/app/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferenceFragment.java b/app/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferenceFragment.java
index 39b9005ad..a75b8e71f 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferenceFragment.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferenceFragment.java
@@ -1,9 +1,8 @@
package net.kdt.pojavlaunch.prefs;
import android.os.*;
-import android.support.v4.app.*;
-import android.support.v7.preference.*;
-import net.kdt.pojavlaunch.*;
+import androidx.core.app.*;
+import androidx.preference.*;
import net.kdt.pojavlaunch.R;
import android.content.*;
diff --git a/app/src/main/java/net/kdt/pojavlaunch/prefs/UninstallJREDialogPreference.java b/app/src/main/java/net/kdt/pojavlaunch/prefs/UninstallJREDialogPreference.java
index 9ef90587a..9fc5fe6bd 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/prefs/UninstallJREDialogPreference.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/prefs/UninstallJREDialogPreference.java
@@ -1,8 +1,8 @@
package net.kdt.pojavlaunch.prefs;
import android.content.*;
-import android.support.v7.app.*;
-import android.support.v7.preference.*;
+import androidx.appcompat.app.*;
+import androidx.preference.*;
import android.util.*;
import android.widget.*;
import java.io.*;
diff --git a/app/src/main/java/net/kdt/pojavlaunch/tasks/RefreshVersionListTask.java b/app/src/main/java/net/kdt/pojavlaunch/tasks/RefreshVersionListTask.java
index 7602872db..aa0a52655 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/tasks/RefreshVersionListTask.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/tasks/RefreshVersionListTask.java
@@ -1,18 +1,18 @@
package net.kdt.pojavlaunch.tasks;
import android.os.*;
-import android.support.v7.widget.*;
+import androidx.appcompat.widget.*;
import android.view.*;
import android.widget.*;
import android.widget.AdapterView.*;
-import com.google.gson.*;
+
import java.io.*;
import java.util.*;
import net.kdt.pojavlaunch.*;
import net.kdt.pojavlaunch.prefs.*;
import net.kdt.pojavlaunch.utils.*;
-import android.support.v7.widget.PopupMenu;
+import androidx.appcompat.widget.PopupMenu;
public class RefreshVersionListTask extends AsyncTask>
{
diff --git a/app/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java b/app/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java
index 67560db3f..df690fe8d 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java
@@ -2,9 +2,11 @@ package net.kdt.pojavlaunch.utils;
import android.app.*;
import android.content.*;
-import android.support.annotation.*;
import android.system.*;
import android.util.*;
+
+import androidx.annotation.Nullable;
+
import com.oracle.dalvik.*;
import java.io.*;
import java.util.*;
diff --git a/app/src/main/java/net/kdt/pojavlaunch/utils/LocaleUtils.java b/app/src/main/java/net/kdt/pojavlaunch/utils/LocaleUtils.java
index 435a455fc..3ec66f5cb 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/utils/LocaleUtils.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/utils/LocaleUtils.java
@@ -2,7 +2,7 @@ package net.kdt.pojavlaunch.utils;
import android.content.*;
import android.content.res.*;
-import android.support.v7.preference.*;
+import androidx.preference.*;
import java.util.*;
import net.kdt.pojavlaunch.prefs.*;
diff --git a/app/src/main/res/layout/control_mapping.xml b/app/src/main/res/layout/control_mapping.xml
index 5239def3e..51ef1ffa4 100644
--- a/app/src/main/res/layout/control_mapping.xml
+++ b/app/src/main/res/layout/control_mapping.xml
@@ -1,5 +1,5 @@
-
-
-
+
diff --git a/app/src/main/res/layout/launcher_main.xml b/app/src/main/res/layout/launcher_main.xml
index 1e066a901..1a5cafd65 100644
--- a/app/src/main/res/layout/launcher_main.xml
+++ b/app/src/main/res/layout/launcher_main.xml
@@ -18,12 +18,12 @@
android:layout_weight="1.0"
android:orientation="vertical">
-
-
-
-
-
-
+
diff --git a/app/src/main/res/xml/pref_main.xml b/app/src/main/res/xml/pref_main.xml
index 90cf799b0..a92701406 100644
--- a/app/src/main/res/xml/pref_main.xml
+++ b/app/src/main/res/xml/pref_main.xml
@@ -1,21 +1,21 @@
-
-
-
-
-
+
-
-
-
-
+
-
-
-
-
-
-
+
-
+
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 000000000..5465fec0e
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,2 @@
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file
diff --git a/scripts/languagelist_updater.sh b/scripts/languagelist_updater.sh
old mode 100644
new mode 100755