From 58b720b004485172f82762063b1754fe9d063ae6 Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Sun, 13 Sep 2020 17:20:29 +0530 Subject: [PATCH] Use ContextCompat.getSystemService() and the Context.getSystemService() extension function. --- app/build.gradle | 5 +++++ app/src/main/java/org/schabi/newpipe/App.java | 5 ++--- .../schabi/newpipe/CheckForNewAppVersionTask.java | 8 ++++---- .../fragments/list/search/SearchFragment.java | 15 ++++++++------- .../local/subscription/dialog/FeedGroupDialog.kt | 4 ++-- .../org/schabi/newpipe/player/MainPlayer.java | 4 +++- .../schabi/newpipe/player/VideoPlayerImpl.java | 4 ++-- .../newpipe/player/helper/AudioReactor.java | 3 ++- .../schabi/newpipe/player/helper/LockManager.java | 10 ++++------ .../newpipe/player/helper/PlayerHelper.java | 9 +++++---- .../java/org/schabi/newpipe/util/DeviceUtils.java | 10 ++++------ .../java/org/schabi/newpipe/util/ListHelper.java | 4 +++- .../java/org/schabi/newpipe/util/ShareUtils.java | 4 +++- .../giga/service/DownloadManagerService.java | 8 ++++++-- .../shandian/giga/ui/adapter/MissionAdapter.java | 3 ++- .../main/java/us/shandian/giga/util/Utility.java | 2 +- checkstyle-suppressions.xml | 6 +++++- 17 files changed, 61 insertions(+), 43 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e49d4cc8d..1f98c5030 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -69,6 +69,10 @@ android { encoding 'utf-8' } + kotlinOptions { + jvmTarget = JavaVersion.VERSION_1_8 + } + // Required and used only by groupie androidExtensions { experimental = true @@ -184,6 +188,7 @@ dependencies { implementation "androidx.recyclerview:recyclerview:1.1.0" implementation "androidx.cardview:cardview:1.0.0" implementation "androidx.constraintlayout:constraintlayout:1.1.3" + implementation 'androidx.core:core-ktx:1.3.1' implementation "androidx.lifecycle:lifecycle-livedata:${androidxLifecycleVersion}" implementation "androidx.lifecycle:lifecycle-viewmodel:${androidxLifecycleVersion}" diff --git a/app/src/main/java/org/schabi/newpipe/App.java b/app/src/main/java/org/schabi/newpipe/App.java index 962679cd0..dd578d911 100644 --- a/app/src/main/java/org/schabi/newpipe/App.java +++ b/app/src/main/java/org/schabi/newpipe/App.java @@ -234,8 +234,7 @@ public class App extends Application { final NotificationChannel mChannel = new NotificationChannel(id, name, importance); mChannel.setDescription(description); - final NotificationManager mNotificationManager = - (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + final NotificationManager mNotificationManager = getSystemService(NotificationManager.class); mNotificationManager.createNotificationChannel(mChannel); setUpUpdateNotificationChannel(importance); @@ -260,7 +259,7 @@ public class App extends Application { appUpdateChannel.setDescription(appUpdateDescription); final NotificationManager appUpdateNotificationManager - = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + = getSystemService(NotificationManager.class); appUpdateNotificationManager.createNotificationChannel(appUpdateChannel); } diff --git a/app/src/main/java/org/schabi/newpipe/CheckForNewAppVersionTask.java b/app/src/main/java/org/schabi/newpipe/CheckForNewAppVersionTask.java index d91230765..10a6a73d7 100644 --- a/app/src/main/java/org/schabi/newpipe/CheckForNewAppVersionTask.java +++ b/app/src/main/java/org/schabi/newpipe/CheckForNewAppVersionTask.java @@ -2,7 +2,6 @@ package org.schabi.newpipe; import android.app.Application; import android.app.PendingIntent; -import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageInfo; @@ -11,11 +10,12 @@ import android.content.pm.Signature; import android.net.ConnectivityManager; import android.net.Uri; import android.os.AsyncTask; -import androidx.preference.PreferenceManager; import android.util.Log; import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationManagerCompat; +import androidx.core.content.ContextCompat; +import androidx.preference.PreferenceManager; import com.grack.nanojson.JsonObject; import com.grack.nanojson.JsonParser; @@ -213,8 +213,8 @@ public class CheckForNewAppVersionTask extends AsyncTask { } private boolean isConnected() { - final ConnectivityManager cm = - (ConnectivityManager) APP.getSystemService(Context.CONNECTIVITY_SERVICE); + final ConnectivityManager cm = ContextCompat.getSystemService(APP, + ConnectivityManager.class); return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected(); } diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java index 64eaf3a3d..c402565fd 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java @@ -5,8 +5,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; -import androidx.core.text.HtmlCompat; -import androidx.preference.PreferenceManager; import android.text.Editable; import android.text.Html; import android.text.TextUtils; @@ -30,6 +28,9 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.TooltipCompat; +import androidx.core.content.ContextCompat; +import androidx.core.text.HtmlCompat; +import androidx.preference.PreferenceManager; import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.RecyclerView; @@ -49,9 +50,9 @@ import org.schabi.newpipe.fragments.list.BaseListFragment; import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.UserAction; -import org.schabi.newpipe.util.DeviceUtils; import org.schabi.newpipe.util.AnimationUtils; import org.schabi.newpipe.util.Constants; +import org.schabi.newpipe.util.DeviceUtils; import org.schabi.newpipe.util.ExceptionUtils; import org.schabi.newpipe.util.ExtractorHelper; import org.schabi.newpipe.util.NavigationHelper; @@ -639,8 +640,8 @@ public class SearchFragment extends BaseListFragment()!! } private fun showKeyboardSearch() { diff --git a/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java b/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java index c7fbb444b..e8554e5ac 100644 --- a/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java @@ -30,6 +30,8 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; +import androidx.core.content.ContextCompat; + import org.schabi.newpipe.R; import org.schabi.newpipe.util.ThemeHelper; @@ -91,7 +93,7 @@ public final class MainPlayer extends Service { Log.d(TAG, "onCreate() called"); } assureCorrectAppLanguage(this); - windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); + windowManager = ContextCompat.getSystemService(this, WindowManager.class); ThemeHelper.setTheme(this); createView(); diff --git a/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java b/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java index 997069215..97007f0f6 100644 --- a/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java +++ b/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java @@ -58,6 +58,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.content.res.AppCompatResources; +import androidx.core.content.ContextCompat; import androidx.core.view.DisplayCutoutCompat; import androidx.core.view.ViewCompat; import androidx.preference.PreferenceManager; @@ -105,7 +106,6 @@ import org.schabi.newpipe.util.ShareUtils; import java.util.List; -import static android.content.Context.WINDOW_SERVICE; import static org.schabi.newpipe.player.MainPlayer.ACTION_CLOSE; import static org.schabi.newpipe.player.MainPlayer.ACTION_FAST_FORWARD; import static org.schabi.newpipe.player.MainPlayer.ACTION_FAST_REWIND; @@ -269,7 +269,7 @@ public class VideoPlayerImpl extends VideoPlayer super("MainPlayer" + TAG, service); this.service = service; this.shouldUpdateOnProgress = true; - this.windowManager = (WindowManager) service.getSystemService(WINDOW_SERVICE); + this.windowManager = ContextCompat.getSystemService(service, WindowManager.class); this.defaultPreferences = PreferenceManager.getDefaultSharedPreferences(service); this.resolver = new AudioPlaybackResolver(context, dataSource); } diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/AudioReactor.java b/app/src/main/java/org/schabi/newpipe/player/helper/AudioReactor.java index f434b0621..a931c46bd 100644 --- a/app/src/main/java/org/schabi/newpipe/player/helper/AudioReactor.java +++ b/app/src/main/java/org/schabi/newpipe/player/helper/AudioReactor.java @@ -12,6 +12,7 @@ import android.os.Build; import android.util.Log; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.analytics.AnalyticsListener; @@ -39,7 +40,7 @@ public class AudioReactor implements AudioManager.OnAudioFocusChangeListener, An @NonNull final SimpleExoPlayer player) { this.player = player; this.context = context; - this.audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); + this.audioManager = ContextCompat.getSystemService(context, AudioManager.class); player.addAnalyticsListener(this); if (SHOULD_BUILD_FOCUS_REQUEST) { diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/LockManager.java b/app/src/main/java/org/schabi/newpipe/player/helper/LockManager.java index 6d0cf8e85..270156fe9 100644 --- a/app/src/main/java/org/schabi/newpipe/player/helper/LockManager.java +++ b/app/src/main/java/org/schabi/newpipe/player/helper/LockManager.java @@ -5,8 +5,7 @@ import android.net.wifi.WifiManager; import android.os.PowerManager; import android.util.Log; -import static android.content.Context.POWER_SERVICE; -import static android.content.Context.WIFI_SERVICE; +import androidx.core.content.ContextCompat; public class LockManager { private final String TAG = "LockManager@" + hashCode(); @@ -18,10 +17,9 @@ public class LockManager { private WifiManager.WifiLock wifiLock; public LockManager(final Context context) { - powerManager = ((PowerManager) context.getApplicationContext() - .getSystemService(POWER_SERVICE)); - wifiManager = ((WifiManager) context.getApplicationContext() - .getSystemService(WIFI_SERVICE)); + powerManager = ContextCompat.getSystemService(context.getApplicationContext(), + PowerManager.class); + wifiManager = ContextCompat.getSystemService(context, WifiManager.class); } public void acquireWifiAndCpu() { diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java index f9a8dfa8f..1d1d056a8 100644 --- a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java +++ b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java @@ -8,6 +8,7 @@ import android.view.accessibility.CaptioningManager; import androidx.annotation.IntDef; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; import androidx.preference.PreferenceManager; import com.google.android.exoplayer2.SeekParameters; @@ -312,8 +313,8 @@ public final class PlayerHelper { @NonNull public static CaptionStyleCompat getCaptionStyle(@NonNull final Context context) { - final CaptioningManager captioningManager = (CaptioningManager) - context.getSystemService(Context.CAPTIONING_SERVICE); + final CaptioningManager captioningManager = ContextCompat.getSystemService(context, + CaptioningManager.class); if (captioningManager == null || !captioningManager.isEnabled()) { return CaptionStyleCompat.DEFAULT; } @@ -336,8 +337,8 @@ public final class PlayerHelper { * @return caption scaling */ public static float getCaptionScale(@NonNull final Context context) { - final CaptioningManager captioningManager - = (CaptioningManager) context.getSystemService(Context.CAPTIONING_SERVICE); + final CaptioningManager captioningManager = ContextCompat.getSystemService(context, + CaptioningManager.class); if (captioningManager == null || !captioningManager.isEnabled()) { return 1.0f; } diff --git a/app/src/main/java/org/schabi/newpipe/util/DeviceUtils.java b/app/src/main/java/org/schabi/newpipe/util/DeviceUtils.java index d852c2296..1afedcaef 100644 --- a/app/src/main/java/org/schabi/newpipe/util/DeviceUtils.java +++ b/app/src/main/java/org/schabi/newpipe/util/DeviceUtils.java @@ -9,10 +9,9 @@ import android.os.Build; import android.view.KeyEvent; import androidx.annotation.NonNull; -import org.schabi.newpipe.App; +import androidx.core.content.ContextCompat; -import static android.content.Context.BATTERY_SERVICE; -import static android.content.Context.UI_MODE_SERVICE; +import org.schabi.newpipe.App; public final class DeviceUtils { @@ -30,15 +29,14 @@ public final class DeviceUtils { final PackageManager pm = App.getApp().getPackageManager(); // from doc: https://developer.android.com/training/tv/start/hardware.html#runtime-check - boolean isTv = ((UiModeManager) context.getSystemService(UI_MODE_SERVICE)) + boolean isTv = ContextCompat.getSystemService(context, UiModeManager.class) .getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION || pm.hasSystemFeature(AMAZON_FEATURE_FIRE_TV) || pm.hasSystemFeature(PackageManager.FEATURE_TELEVISION); // from https://stackoverflow.com/a/58932366 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - final boolean isBatteryAbsent - = ((BatteryManager) context.getSystemService(BATTERY_SERVICE)) + final boolean isBatteryAbsent = context.getSystemService(BatteryManager.class) .getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY) == 0; isTv = isTv || (isBatteryAbsent && !pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN) diff --git a/app/src/main/java/org/schabi/newpipe/util/ListHelper.java b/app/src/main/java/org/schabi/newpipe/util/ListHelper.java index 7a428a05d..e26c00fb2 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ListHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/ListHelper.java @@ -3,6 +3,8 @@ package org.schabi.newpipe.util; import android.content.Context; import android.content.SharedPreferences; import android.net.ConnectivityManager; + +import androidx.core.content.ContextCompat; import androidx.preference.PreferenceManager; import androidx.annotation.Nullable; @@ -543,7 +545,7 @@ public final class ListHelper { */ public static boolean isMeteredNetwork(final Context context) { final ConnectivityManager manager - = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + = ContextCompat.getSystemService(context, ConnectivityManager.class); if (manager == null || manager.getActiveNetworkInfo() == null) { return false; } diff --git a/app/src/main/java/org/schabi/newpipe/util/ShareUtils.java b/app/src/main/java/org/schabi/newpipe/util/ShareUtils.java index 1283f67f5..b631f19da 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ShareUtils.java +++ b/app/src/main/java/org/schabi/newpipe/util/ShareUtils.java @@ -9,6 +9,8 @@ import android.content.pm.ResolveInfo; import android.net.Uri; import android.widget.Toast; +import androidx.core.content.ContextCompat; + import org.schabi.newpipe.R; public final class ShareUtils { @@ -95,7 +97,7 @@ public final class ShareUtils { */ public static void copyToClipboard(final Context context, final String text) { final ClipboardManager clipboardManager = - (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); + ContextCompat.getSystemService(context, ClipboardManager.class); if (clipboardManager == null) { Toast.makeText(context, diff --git a/app/src/main/java/us/shandian/giga/service/DownloadManagerService.java b/app/src/main/java/us/shandian/giga/service/DownloadManagerService.java index 828f1adaf..0392e7235 100755 --- a/app/src/main/java/us/shandian/giga/service/DownloadManagerService.java +++ b/app/src/main/java/us/shandian/giga/service/DownloadManagerService.java @@ -24,6 +24,8 @@ import android.os.Handler.Callback; import android.os.IBinder; import android.os.Message; import android.os.Parcelable; + +import androidx.core.content.ContextCompat; import androidx.preference.PreferenceManager; import android.util.Log; import android.util.SparseArray; @@ -157,8 +159,10 @@ public class DownloadManagerService extends Service { mNotification = builder.build(); - mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - mConnectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + mNotificationManager = ContextCompat.getSystemService(this, + NotificationManager.class); + mConnectivityManager = ContextCompat.getSystemService(this, + ConnectivityManager.class); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { mNetworkStateListenerL = new ConnectivityManager.NetworkCallback() { diff --git a/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java b/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java index c9518e477..ca590a892 100644 --- a/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java +++ b/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java @@ -29,6 +29,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; import androidx.appcompat.app.AlertDialog; +import androidx.core.content.ContextCompat; import androidx.core.content.FileProvider; import androidx.core.view.ViewCompat; import androidx.recyclerview.widget.DiffUtil; @@ -120,7 +121,7 @@ public class MissionAdapter extends Adapter implements Handler.Callb mContext = context; mDownloadManager = downloadManager; - mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + mInflater = ContextCompat.getSystemService(mContext, LayoutInflater.class); mLayout = R.layout.mission_item; mHandler = new Handler(context.getMainLooper()); diff --git a/app/src/main/java/us/shandian/giga/util/Utility.java b/app/src/main/java/us/shandian/giga/util/Utility.java index 551e80a3e..79924435f 100644 --- a/app/src/main/java/us/shandian/giga/util/Utility.java +++ b/app/src/main/java/us/shandian/giga/util/Utility.java @@ -201,7 +201,7 @@ public class Utility { } public static void copyToClipboard(Context context, String str) { - ClipboardManager cm = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); + ClipboardManager cm = ContextCompat.getSystemService(context, ClipboardManager.class); if (cm == null) { Toast.makeText(context, R.string.permission_denied, Toast.LENGTH_LONG).show(); diff --git a/checkstyle-suppressions.xml b/checkstyle-suppressions.xml index 9728c6b8c..f83c5e598 100644 --- a/checkstyle-suppressions.xml +++ b/checkstyle-suppressions.xml @@ -13,7 +13,11 @@ + lines="282,314"/> + +