summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorSimonx22 <26326692+Simonx22@users.noreply.github.com>2019-11-15 01:51:54 -0500
committerSimonx22 <26326692+Simonx22@users.noreply.github.com>2019-11-15 12:57:42 -0500
commit9d606a6ad0671dd8a262870cdf48deef1bcefa27 (patch)
treed09be44389c1347f6a4a3d38ae56cb6518590e01 /Source/Android/app/src/main/java
parent294fd8dd3a3317b73fe9603402c0604b1fdd1121 (diff)
migrate to AndroidX
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/AppLinkActivity.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/CustomFilePickerActivity.java3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java14
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java13
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java18
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.java8
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameSettingsDialog.java4
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java8
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.java10
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentView.java2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SettingViewHolder.java3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/CustomFilePickerFragment.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java7
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/SaveLoadStateFragment.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/GameFileCacheService.java359
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncChannelJobService.java8
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncProgramsJobService.java8
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/DividerItemDecoration.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/CustomTitleView.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java16
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java20
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.java10
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AfterDirectoryInitializationRunner.java3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AppLinkHelper.java3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java5
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java5
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java12
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/FileViewHolder.java3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/GameViewHolder.java3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/TvGameViewHolder.java5
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/TvSettingsViewHolder.java5
39 files changed, 331 insertions, 289 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/AppLinkActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/AppLinkActivity.java
index 5b5c310f75..09c8441a7a 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/AppLinkActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/AppLinkActivity.java
@@ -6,8 +6,10 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.content.LocalBroadcastManager;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+
import android.util.Log;
import android.widget.Toast;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/CustomFilePickerActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/CustomFilePickerActivity.java
index 34ff216fc6..f715766bff 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/CustomFilePickerActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/CustomFilePickerActivity.java
@@ -1,7 +1,8 @@
package org.dolphinemu.dolphinemu.activities;
import android.os.Environment;
-import android.support.annotation.Nullable;
+
+import androidx.annotation.Nullable;
import com.nononsenseapps.filepicker.AbstractFilePickerFragment;
import com.nononsenseapps.filepicker.FilePickerActivity;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java
index ad97625af0..5c81a11727 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java
@@ -6,16 +6,17 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
-import android.content.res.Configuration;
import android.hardware.usb.UsbManager;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
-import android.support.annotation.IntDef;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-import android.support.v7.app.AppCompatActivity;
+
+import androidx.annotation.IntDef;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentManager;
+import androidx.appcompat.app.AppCompatActivity;
+
import android.text.TextUtils;
import android.util.SparseIntArray;
import android.view.InputDevice;
@@ -42,7 +43,6 @@ import org.dolphinemu.dolphinemu.services.GameFileCacheService;
import org.dolphinemu.dolphinemu.overlay.InputOverlay;
import org.dolphinemu.dolphinemu.overlay.InputOverlayPointer;
import org.dolphinemu.dolphinemu.ui.main.MainActivity;
-import org.dolphinemu.dolphinemu.ui.main.MainPresenter;
import org.dolphinemu.dolphinemu.ui.platform.Platform;
import org.dolphinemu.dolphinemu.utils.ControllerMappingHelper;
import org.dolphinemu.dolphinemu.utils.FileBrowserHelper;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java
index 52312b29f9..1e208e16df 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java
@@ -1,27 +1,22 @@
package org.dolphinemu.dolphinemu.adapters;
import android.app.AlertDialog;
-import android.content.DialogInterface;
import android.graphics.Rect;
-import android.support.v4.app.FragmentActivity;
-import android.support.v7.widget.RecyclerView;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.recyclerview.widget.RecyclerView;
+
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.Toast;
import org.dolphinemu.dolphinemu.R;
import org.dolphinemu.dolphinemu.activities.EmulationActivity;
import org.dolphinemu.dolphinemu.dialogs.GameSettingsDialog;
-import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag;
-import org.dolphinemu.dolphinemu.features.settings.ui.SettingsActivity;
import org.dolphinemu.dolphinemu.model.GameFile;
-import org.dolphinemu.dolphinemu.utils.DirectoryInitialization;
-import org.dolphinemu.dolphinemu.ui.platform.Platform;
import org.dolphinemu.dolphinemu.utils.PicassoUtils;
import org.dolphinemu.dolphinemu.viewholders.GameViewHolder;
-import java.io.File;
import java.util.ArrayList;
import java.util.List;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java
index 8047a438e8..ab5c200100 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java
@@ -2,29 +2,23 @@ package org.dolphinemu.dolphinemu.adapters;
import android.app.AlertDialog;
import android.content.Context;
-import android.content.DialogInterface;
import android.graphics.drawable.Drawable;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.content.ContextCompat;
-import android.view.View;
+
+import androidx.leanback.widget.ImageCardView;
+import androidx.leanback.widget.Presenter;
+import androidx.fragment.app.FragmentActivity;
+import androidx.core.content.ContextCompat;
+
import android.view.ViewGroup;
import android.widget.ImageView;
-import android.widget.Toast;
import org.dolphinemu.dolphinemu.R;
import org.dolphinemu.dolphinemu.dialogs.GameSettingsDialog;
-import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag;
-import org.dolphinemu.dolphinemu.features.settings.ui.SettingsActivity;
import org.dolphinemu.dolphinemu.model.GameFile;
-import org.dolphinemu.dolphinemu.utils.DirectoryInitialization;
import org.dolphinemu.dolphinemu.ui.platform.Platform;
import org.dolphinemu.dolphinemu.utils.PicassoUtils;
import org.dolphinemu.dolphinemu.viewholders.TvGameViewHolder;
-import java.io.File;
-
/**
* The Leanback library / docs call this a Presenter, but it works very
* similarly to a RecyclerView.Adapter.
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.java
index 05c7dd3124..dd13742d61 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.java
@@ -2,9 +2,11 @@ package org.dolphinemu.dolphinemu.adapters;
import android.content.Context;
import android.graphics.drawable.Drawable;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentPagerAdapter;
+
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentPagerAdapter;
+
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ImageSpan;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.java
index a69508cc52..65751468ac 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.java
@@ -1,8 +1,10 @@
package org.dolphinemu.dolphinemu.adapters;
import android.content.res.Resources;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.Presenter;
+
+import androidx.leanback.widget.ImageCardView;
+import androidx.leanback.widget.Presenter;
+
import android.view.ViewGroup;
import org.dolphinemu.dolphinemu.model.TvSettingsItem;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameSettingsDialog.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameSettingsDialog.java
index 53e314d57b..10d66f255a 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameSettingsDialog.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameSettingsDialog.java
@@ -3,7 +3,9 @@ package org.dolphinemu.dolphinemu.dialogs;
import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;
-import android.support.v4.app.DialogFragment;
+
+import androidx.fragment.app.DialogFragment;
+
import android.widget.Toast;
import org.dolphinemu.dolphinemu.R;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java
index 314e8daf51..f0d0b65711 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java
@@ -7,9 +7,11 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.provider.Settings;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v4.content.LocalBroadcastManager;
-import android.support.v7.app.AppCompatActivity;
+
+import androidx.fragment.app.FragmentTransaction;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+import androidx.appcompat.app.AppCompatActivity;
+
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java
index a4ce9ce7a8..cc7f586105 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java
@@ -4,8 +4,10 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.RecyclerView;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.recyclerview.widget.RecyclerView;
+
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.java
index a9e2720cd7..c27e481465 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.java
@@ -3,10 +3,12 @@ package org.dolphinemu.dolphinemu.features.settings.ui;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentView.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentView.java
index bc818dbf14..eeff02d7db 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentView.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentView.java
@@ -1,6 +1,6 @@
package org.dolphinemu.dolphinemu.features.settings.ui;
-import android.support.v4.app.FragmentActivity;
+import androidx.fragment.app.FragmentActivity;
import org.dolphinemu.dolphinemu.features.settings.model.Setting;
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SettingViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SettingViewHolder.java
index d6848d7bab..9523939e3e 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SettingViewHolder.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SettingViewHolder.java
@@ -1,6 +1,7 @@
package org.dolphinemu.dolphinemu.features.settings.ui.viewholder;
-import android.support.v7.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView;
+
import android.view.View;
import org.dolphinemu.dolphinemu.features.settings.model.view.SettingsItem;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java
index aac139266f..7c24bac42d 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java
@@ -1,6 +1,7 @@
package org.dolphinemu.dolphinemu.features.settings.utils;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
+
import android.text.TextUtils;
import org.dolphinemu.dolphinemu.NativeLibrary;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/CustomFilePickerFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/CustomFilePickerFragment.java
index 58cfcb9121..5f20e10325 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/CustomFilePickerFragment.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/CustomFilePickerFragment.java
@@ -2,8 +2,10 @@ package org.dolphinemu.dolphinemu.fragments;
import android.net.Uri;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v4.content.FileProvider;
+
+import androidx.annotation.NonNull;
+import androidx.core.content.FileProvider;
+
import android.view.View;
import android.widget.TextView;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java
index 64959601bb..881fd3c554 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java
@@ -5,8 +5,10 @@ import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
-import android.support.v4.app.Fragment;
-import android.support.v4.content.LocalBroadcastManager;
+
+import androidx.fragment.app.Fragment;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+
import android.view.LayoutInflater;
import android.view.Surface;
import android.view.SurfaceHolder;
@@ -24,7 +26,6 @@ import org.dolphinemu.dolphinemu.utils.DirectoryInitialization;
import org.dolphinemu.dolphinemu.utils.DirectoryInitialization.DirectoryInitializationState;
import org.dolphinemu.dolphinemu.utils.DirectoryStateReceiver;
import org.dolphinemu.dolphinemu.utils.Log;
-import org.dolphinemu.dolphinemu.utils.StartupHandler;
import java.io.File;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java
index 7296946346..f81853661b 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java
@@ -1,8 +1,10 @@
package org.dolphinemu.dolphinemu.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.util.SparseIntArray;
import android.view.LayoutInflater;
import android.view.View;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/SaveLoadStateFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/SaveLoadStateFragment.java
index 9bd30d68fe..026b95d1e1 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/SaveLoadStateFragment.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/SaveLoadStateFragment.java
@@ -1,8 +1,10 @@
package org.dolphinemu.dolphinemu.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.util.SparseIntArray;
import android.view.LayoutInflater;
import android.view.View;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/GameFileCacheService.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/GameFileCacheService.java
index 440f70a5bb..fa6f039d84 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/GameFileCacheService.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/GameFileCacheService.java
@@ -1,179 +1,180 @@
-package org.dolphinemu.dolphinemu.services;
-
-import android.app.IntentService;
-import android.content.Context;
-import android.content.Intent;
-import android.support.v4.content.LocalBroadcastManager;
-
-import org.dolphinemu.dolphinemu.model.GameFile;
-import org.dolphinemu.dolphinemu.model.GameFileCache;
-import org.dolphinemu.dolphinemu.ui.platform.Platform;
-import org.dolphinemu.dolphinemu.utils.AfterDirectoryInitializationRunner;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * A service that loads game list data on a separate thread.
- */
-public final class GameFileCacheService extends IntentService
-{
- public static final String BROADCAST_ACTION = "org.dolphinemu.dolphinemu.GAME_FILE_CACHE_UPDATED";
-
- private static final String ACTION_LOAD = "org.dolphinemu.dolphinemu.LOAD_GAME_FILE_CACHE";
- private static final String ACTION_RESCAN = "org.dolphinemu.dolphinemu.RESCAN_GAME_FILE_CACHE";
-
- private static GameFileCache gameFileCache = null;
- private static AtomicReference<GameFile[]> gameFiles = new AtomicReference<>(new GameFile[]{});
- private static AtomicBoolean hasLoadedCache = new AtomicBoolean(false);
- private static AtomicBoolean hasScannedLibrary = new AtomicBoolean(false);
-
- public GameFileCacheService()
- {
- // Superclass constructor is called to name the thread on which this service executes.
- super("GameFileCacheService");
- }
-
- public static List<GameFile> getGameFilesForPlatform(Platform platform)
- {
- GameFile[] allGames = gameFiles.get();
- ArrayList<GameFile> platformGames = new ArrayList<>();
- for (GameFile game : allGames)
- {
- if (Platform.fromNativeInt(game.getPlatform()) == platform)
- {
- platformGames.add(game);
- }
- }
- return platformGames;
- }
-
- public static GameFile getGameFileByGameId(String gameId)
- {
- GameFile[] allGames = gameFiles.get();
- for (GameFile game : allGames)
- {
- if (game.getGameId().equals(gameId))
- {
- return game;
- }
- }
- return null;
- }
-
- public static GameFile findSecondDisc(GameFile game)
- {
- GameFile matchWithoutRevision = null;
-
- GameFile[] allGames = gameFiles.get();
- for (GameFile otherGame : allGames)
- {
- if (game.getGameId().equals(otherGame.getGameId()) &&
- game.getDiscNumber() != otherGame.getDiscNumber())
- {
- if (game.getRevision() == otherGame.getRevision())
- return otherGame;
- else
- matchWithoutRevision = otherGame;
- }
- }
-
- return matchWithoutRevision;
- }
-
- public static boolean hasLoadedCache()
- {
- return hasLoadedCache.get();
- }
-
- public static boolean hasScannedLibrary()
- {
- return hasScannedLibrary.get();
- }
-
- private static void startService(Context context, String action)
- {
- Intent intent = new Intent(context, GameFileCacheService.class);
- intent.setAction(action);
- context.startService(intent);
- }
-
- /**
- * Asynchronously loads the game file cache from disk without checking
- * which games are present on the file system.
- */
- public static void startLoad(Context context)
- {
- new AfterDirectoryInitializationRunner().run(context,
- () -> startService(context, ACTION_LOAD));
- }
-
- /**
- * Asynchronously scans for games in the user's configured folders,
- * updating the game file cache with the results.
- * If startLoad hasn't been called before this, this has no effect.
- */
- public static void startRescan(Context context)
- {
- new AfterDirectoryInitializationRunner().run(context,
- () -> startService(context, ACTION_RESCAN));
- }
-
- public static GameFile addOrGet(String gamePath)
- {
- // The existence of this one function, which is called from one
- // single place, forces us to use synchronization in onHandleIntent...
- // A bit annoying, but should be good enough for now
- synchronized (gameFileCache)
- {
- return gameFileCache.addOrGet(gamePath);
- }
- }
-
- @Override
- protected void onHandleIntent(Intent intent)
- {
- // Load the game list cache if it isn't already loaded, otherwise do nothing
- if (ACTION_LOAD.equals(intent.getAction()) && gameFileCache == null)
- {
- GameFileCache temp = new GameFileCache(getCacheDir() + File.separator + "gamelist.cache");
- synchronized (temp)
- {
- gameFileCache = temp;
- gameFileCache.load();
- updateGameFileArray();
- hasLoadedCache.set(true);
- sendBroadcast();
- }
- }
-
- // Rescan the file system and update the game list cache with the results
- if (ACTION_RESCAN.equals(intent.getAction()) && gameFileCache != null)
- {
- synchronized (gameFileCache)
- {
- boolean changed = gameFileCache.scanLibrary(this);
- if (changed)
- updateGameFileArray();
- hasScannedLibrary.set(true);
- sendBroadcast();
- }
- }
- }
-
- private void updateGameFileArray()
- {
- GameFile[] gameFilesTemp = gameFileCache.getAllGames();
- Arrays.sort(gameFilesTemp, (lhs, rhs) -> lhs.getTitle().compareToIgnoreCase(rhs.getTitle()));
- gameFiles.set(gameFilesTemp);
- }
-
- private void sendBroadcast()
- {
- LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(BROADCAST_ACTION));
- }
-}
+package org.dolphinemu.dolphinemu.services;
+
+import android.app.IntentService;
+import android.content.Context;
+import android.content.Intent;
+
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+
+import org.dolphinemu.dolphinemu.model.GameFile;
+import org.dolphinemu.dolphinemu.model.GameFileCache;
+import org.dolphinemu.dolphinemu.ui.platform.Platform;
+import org.dolphinemu.dolphinemu.utils.AfterDirectoryInitializationRunner;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ * A service that loads game list data on a separate thread.
+ */
+public final class GameFileCacheService extends IntentService
+{
+ public static final String BROADCAST_ACTION = "org.dolphinemu.dolphinemu.GAME_FILE_CACHE_UPDATED";
+
+ private static final String ACTION_LOAD = "org.dolphinemu.dolphinemu.LOAD_GAME_FILE_CACHE";
+ private static final String ACTION_RESCAN = "org.dolphinemu.dolphinemu.RESCAN_GAME_FILE_CACHE";
+
+ private static GameFileCache gameFileCache = null;
+ private static AtomicReference<GameFile[]> gameFiles = new AtomicReference<>(new GameFile[]{});
+ private static AtomicBoolean hasLoadedCache = new AtomicBoolean(false);
+ private static AtomicBoolean hasScannedLibrary = new AtomicBoolean(false);
+
+ public GameFileCacheService()
+ {
+ // Superclass constructor is called to name the thread on which this service executes.
+ super("GameFileCacheService");
+ }
+
+ public static List<GameFile> getGameFilesForPlatform(Platform platform)
+ {
+ GameFile[] allGames = gameFiles.get();
+ ArrayList<GameFile> platformGames = new ArrayList<>();
+ for (GameFile game : allGames)
+ {
+ if (Platform.fromNativeInt(game.getPlatform()) == platform)
+ {
+ platformGames.add(game);
+ }
+ }
+ return platformGames;
+ }
+
+ public static GameFile getGameFileByGameId(String gameId)
+ {
+ GameFile[] allGames = gameFiles.get();
+ for (GameFile game : allGames)
+ {
+ if (game.getGameId().equals(gameId))
+ {
+ return game;
+ }
+ }
+ return null;
+ }
+
+ public static GameFile findSecondDisc(GameFile game)
+ {
+ GameFile matchWithoutRevision = null;
+
+ GameFile[] allGames = gameFiles.get();
+ for (GameFile otherGame : allGames)
+ {
+ if (game.getGameId().equals(otherGame.getGameId()) &&
+ game.getDiscNumber() != otherGame.getDiscNumber())
+ {
+ if (game.getRevision() == otherGame.getRevision())
+ return otherGame;
+ else
+ matchWithoutRevision = otherGame;
+ }
+ }
+
+ return matchWithoutRevision;
+ }
+
+ public static boolean hasLoadedCache()
+ {
+ return hasLoadedCache.get();
+ }
+
+ public static boolean hasScannedLibrary()
+ {
+ return hasScannedLibrary.get();
+ }
+
+ private static void startService(Context context, String action)
+ {
+ Intent intent = new Intent(context, GameFileCacheService.class);
+ intent.setAction(action);
+ context.startService(intent);
+ }
+
+ /**
+ * Asynchronously loads the game file cache from disk without checking
+ * which games are present on the file system.
+ */
+ public static void startLoad(Context context)
+ {
+ new AfterDirectoryInitializationRunner().run(context,
+ () -> startService(context, ACTION_LOAD));
+ }
+
+ /**
+ * Asynchronously scans for games in the user's configured folders,
+ * updating the game file cache with the results.
+ * If startLoad hasn't been called before this, this has no effect.
+ */
+ public static void startRescan(Context context)
+ {
+ new AfterDirectoryInitializationRunner().run(context,
+ () -> startService(context, ACTION_RESCAN));
+ }
+
+ public static GameFile addOrGet(String gamePath)
+ {
+ // The existence of this one function, which is called from one
+ // single place, forces us to use synchronization in onHandleIntent...
+ // A bit annoying, but should be good enough for now
+ synchronized (gameFileCache)
+ {
+ return gameFileCache.addOrGet(gamePath);
+ }
+ }
+
+ @Override
+ protected void onHandleIntent(Intent intent)
+ {
+ // Load the game list cache if it isn't already loaded, otherwise do nothing
+ if (ACTION_LOAD.equals(intent.getAction()) && gameFileCache == null)
+ {
+ GameFileCache temp = new GameFileCache(getCacheDir() + File.separator + "gamelist.cache");
+ synchronized (temp)
+ {
+ gameFileCache = temp;
+ gameFileCache.load();
+ updateGameFileArray();
+ hasLoadedCache.set(true);
+ sendBroadcast();
+ }
+ }
+
+ // Rescan the file system and update the game list cache with the results
+ if (ACTION_RESCAN.equals(intent.getAction()) && gameFileCache != null)
+ {
+ synchronized (gameFileCache)
+ {
+ boolean changed = gameFileCache.scanLibrary(this);
+ if (changed)
+ updateGameFileArray();
+ hasScannedLibrary.set(true);
+ sendBroadcast();
+ }
+ }
+ }
+
+ private void updateGameFileArray()
+ {
+ GameFile[] gameFilesTemp = gameFileCache.getAllGames();
+ Arrays.sort(gameFilesTemp, (lhs, rhs) -> lhs.getTitle().compareToIgnoreCase(rhs.getTitle()));
+ gameFiles.set(gameFilesTemp);
+ }
+
+ private void sendBroadcast()
+ {
+ LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(BROADCAST_ACTION));
+ }
+}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncChannelJobService.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncChannelJobService.java
index 5735c7e06d..43dabe7444 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncChannelJobService.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncChannelJobService.java
@@ -11,9 +11,11 @@ import android.media.tv.TvContract;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
-import android.support.media.tv.Channel;
-import android.support.media.tv.ChannelLogoUtils;
-import android.support.media.tv.TvContractCompat;
+
+import androidx.tvprovider.media.tv.Channel;
+import androidx.tvprovider.media.tv.ChannelLogoUtils;
+import androidx.tvprovider.media.tv.TvContractCompat;
+
import android.util.Log;
import org.dolphinemu.dolphinemu.R;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncProgramsJobService.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncProgramsJobService.java
index e083c32edf..8819746aba 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncProgramsJobService.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncProgramsJobService.java
@@ -6,9 +6,11 @@ import android.content.Context;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.PersistableBundle;
-import android.support.media.tv.Channel;
-import android.support.media.tv.PreviewProgram;
-import android.support.media.tv.TvContractCompat;
+
+import androidx.tvprovider.media.tv.Channel;
+import androidx.tvprovider.media.tv.PreviewProgram;
+import androidx.tvprovider.media.tv.TvContractCompat;
+
import android.util.Log;
import org.dolphinemu.dolphinemu.R;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/DividerItemDecoration.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/DividerItemDecoration.java
index 5cde35dd4a..0a923e4eaf 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/DividerItemDecoration.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/DividerItemDecoration.java
@@ -5,8 +5,10 @@ import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
+
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
import android.util.AttributeSet;
import android.view.View;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/CustomTitleView.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/CustomTitleView.java
index 5ad3b39b5a..aefc4c3ad3 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/CustomTitleView.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/CustomTitleView.java
@@ -2,7 +2,9 @@ package org.dolphinemu.dolphinemu.ui.main;
import android.content.Context;
import android.graphics.drawable.Drawable;
-import android.support.v17.leanback.widget.TitleViewAdapter;
+
+import androidx.leanback.widget.TitleViewAdapter;
+
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
@@ -79,4 +81,4 @@ public class CustomTitleView extends LinearLayout implements TitleViewAdapter.Pr
{
return mTitleViewAdapter;
}
-} \ No newline at end of file
+}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
index 84506567fd..826c42ec72 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
@@ -3,12 +3,16 @@ package org.dolphinemu.dolphinemu.ui.main;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.design.widget.FloatingActionButton;
-import android.support.design.widget.TabLayout;
-import android.support.v4.view.ViewPager;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+
+import androidx.annotation.Nullable;
+
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import com.google.android.material.tabs.TabLayout;
+
+import androidx.viewpager.widget.ViewPager;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java
index 54ef3cf377..047e710b7b 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java
@@ -4,7 +4,8 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
-import android.support.v4.content.LocalBroadcastManager;
+
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import org.dolphinemu.dolphinemu.BuildConfig;
import org.dolphinemu.dolphinemu.R;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
index c3acef8add..2ae421fbb2 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
@@ -3,15 +3,17 @@ package org.dolphinemu.dolphinemu.ui.main;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
-import android.support.v17.leanback.app.BrowseFragment;
-import android.support.v17.leanback.app.BrowseSupportFragment;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.content.ContextCompat;
+
+import androidx.leanback.app.BrowseFragment;
+import androidx.leanback.app.BrowseSupportFragment;
+import androidx.leanback.widget.ArrayObjectAdapter;
+import androidx.leanback.widget.HeaderItem;
+import androidx.leanback.widget.ListRow;
+import androidx.leanback.widget.ListRowPresenter;
+import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentManager;
+import androidx.core.content.ContextCompat;
+
import android.widget.Toast;
import org.dolphinemu.dolphinemu.R;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.java
index 6502241705..d735e17119 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.java
@@ -1,10 +1,12 @@
package org.dolphinemu.dolphinemu.ui.platform;
import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v7.widget.GridLayoutManager;
-import android.support.v7.widget.RecyclerView;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AfterDirectoryInitializationRunner.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AfterDirectoryInitializationRunner.java
index 0ce87b2b8a..1ff86d8656 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AfterDirectoryInitializationRunner.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AfterDirectoryInitializationRunner.java
@@ -2,7 +2,8 @@ package org.dolphinemu.dolphinemu.utils;
import android.content.Context;
import android.content.IntentFilter;
-import android.support.v4.content.LocalBroadcastManager;
+
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
public class AfterDirectoryInitializationRunner
{
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java
index cb7aec2056..783536f1cd 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java
@@ -2,11 +2,9 @@ package org.dolphinemu.dolphinemu.utils;
import android.app.AlertDialog;
import android.content.Context;
-import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.os.Build;
import android.preference.PreferenceManager;
-import android.support.v4.content.LocalBroadcastManager;
import com.android.volley.Request;
import com.android.volley.toolbox.StringRequest;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AppLinkHelper.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AppLinkHelper.java
index c94db9915f..0958eb2e33 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AppLinkHelper.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AppLinkHelper.java
@@ -1,7 +1,8 @@
package org.dolphinemu.dolphinemu.utils;
import android.net.Uri;
-import android.support.annotation.StringDef;
+
+import androidx.annotation.StringDef;
import java.util.List;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java
index 727240b478..10adda88fa 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java
@@ -11,7 +11,8 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Environment;
import android.preference.PreferenceManager;
-import android.support.v4.content.LocalBroadcastManager;
+
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import org.dolphinemu.dolphinemu.NativeLibrary;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java
index 8e94bf3153..20245deb12 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java
@@ -3,8 +3,9 @@ package org.dolphinemu.dolphinemu.utils;
import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
-import android.support.annotation.Nullable;
-import android.support.v4.app.FragmentActivity;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.FragmentActivity;
import com.nononsenseapps.filepicker.FilePickerActivity;
import com.nononsenseapps.filepicker.Utils;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java
index 7cc08ec1e3..20cfa6c130 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java
@@ -6,8 +6,10 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.os.Build;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.content.ContextCompat;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.core.content.ContextCompat;
+
import android.widget.Toast;
import org.dolphinemu.dolphinemu.R;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java
index cdddd4cd37..a7f479cde8 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java
@@ -1,11 +1,12 @@
package org.dolphinemu.dolphinemu.utils;
import android.content.Context;
-import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
-import android.support.v4.app.FragmentActivity;
+
+import androidx.fragment.app.FragmentActivity;
+
import android.text.TextUtils;
import org.dolphinemu.dolphinemu.NativeLibrary;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java
index e56d2cd8c0..d81150d300 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java
@@ -18,10 +18,12 @@ import android.media.tv.TvContract;
import android.net.Uri;
import android.os.Build;
import android.os.PersistableBundle;
-import android.support.annotation.AnyRes;
-import android.support.annotation.NonNull;
-import android.support.media.tv.Channel;
-import android.support.media.tv.TvContractCompat;
+
+import androidx.annotation.AnyRes;
+import androidx.annotation.NonNull;
+import androidx.tvprovider.media.tv.Channel;
+import androidx.tvprovider.media.tv.TvContractCompat;
+
import android.util.Log;
import org.dolphinemu.dolphinemu.model.GameFile;
@@ -35,7 +37,7 @@ import java.util.ArrayList;
import java.util.List;
import static android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION;
-import static android.support.v4.content.FileProvider.getUriForFile;
+import static androidx.core.content.FileProvider.getUriForFile;
/**
* Assists in TV related services, e.g., home screen channels
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/FileViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/FileViewHolder.java
index d5f2f84fe7..af854fa763 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/FileViewHolder.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/FileViewHolder.java
@@ -1,6 +1,7 @@
package org.dolphinemu.dolphinemu.viewholders;
-import android.support.v7.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView;
+
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/GameViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/GameViewHolder.java
index 2bd510438e..7c6fb270da 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/GameViewHolder.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/GameViewHolder.java
@@ -1,6 +1,7 @@
package org.dolphinemu.dolphinemu.viewholders;
-import android.support.v7.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView;
+
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/TvGameViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/TvGameViewHolder.java
index ba1c04c512..f239b20854 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/TvGameViewHolder.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/TvGameViewHolder.java
@@ -1,7 +1,8 @@
package org.dolphinemu.dolphinemu.viewholders;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.Presenter;
+import androidx.leanback.widget.ImageCardView;
+import androidx.leanback.widget.Presenter;
+
import android.view.View;
import android.widget.ImageView;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/TvSettingsViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/TvSettingsViewHolder.java
index ec35aae061..7a2cf07556 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/TvSettingsViewHolder.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/TvSettingsViewHolder.java
@@ -1,7 +1,8 @@
package org.dolphinemu.dolphinemu.viewholders;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.Presenter;
+import androidx.leanback.widget.ImageCardView;
+import androidx.leanback.widget.Presenter;
+
import android.view.View;
public final class TvSettingsViewHolder extends Presenter.ViewHolder