From 58b720b004485172f82762063b1754fe9d063ae6 Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Sun, 13 Sep 2020 17:20:29 +0530 Subject: [PATCH 1/3] 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 e49d4cc8d74..1f98c503007 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 962679cd0b8..dd578d91146 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 void initNotificationChannel() { 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 @@ private void setUpUpdateNotificationChannel(final int importance) { 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 d9123076560..10a6a73d70c 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 @@ 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.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 @@ private void compareAppVersionAndShowNotification(final String versionName, } 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 64eaf3a3d00..c402565fd00 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.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.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.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 @@ private void showKeyboardSearch() { } if (searchEditText.requestFocus()) { - final InputMethodManager imm = (InputMethodManager) activity.getSystemService( - Context.INPUT_METHOD_SERVICE); + final InputMethodManager imm = ContextCompat.getSystemService(activity, + InputMethodManager.class); imm.showSoftInput(searchEditText, InputMethodManager.SHOW_FORCED); } } @@ -653,8 +654,8 @@ private void hideKeyboardSearch() { return; } - final InputMethodManager imm = (InputMethodManager) activity - .getSystemService(Context.INPUT_METHOD_SERVICE); + final InputMethodManager imm = ContextCompat.getSystemService(activity, + InputMethodManager.class); imm.hideSoftInputFromWindow(searchEditText.getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN); diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt index 5e9b6b6a49d..486f774837f 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt @@ -1,7 +1,6 @@ package org.schabi.newpipe.local.subscription.dialog import android.app.Dialog -import android.content.Context import android.os.Bundle import android.os.Parcelable import android.text.Editable @@ -12,6 +11,7 @@ import android.view.View import android.view.ViewGroup import android.view.inputmethod.InputMethodManager import android.widget.Toast +import androidx.core.content.getSystemService import androidx.fragment.app.DialogFragment import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider @@ -459,7 +459,7 @@ class FeedGroupDialog : DialogFragment(), BackPressable { } private val inputMethodManager by lazy { - requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager + requireActivity().getSystemService()!! } 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 c7fbb444b40..e8554e5aca6 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.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 void onCreate() { 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 997069215ae..97007f0f6ef 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.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 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 void handleIntent(final Intent intent) { 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 f434b062120..a931c46bd87 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.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 AudioReactor(@NonNull final Context context, @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 6d0cf8e85fd..270156fe977 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.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 f9a8dfa8f40..1d1d056a8f7 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 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 static int getTossFlingVelocity(@NonNull final Context context) { @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 static CaptionStyleCompat getCaptionStyle(@NonNull final Context context) * @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 d852c2296fe..1afedcaef31 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.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 static boolean isTv(final Context context) { 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 7a428a05d1f..e26c00fb2d2 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 @@ 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 @@ private static String getResolutionLimit(final Context context) { */ 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 1283f67f519..b631f19da53 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.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 static void shareUrl(final Context context, final String subject, final S */ 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 828f1adaf91..0392e723538 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.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 void onCreate() { 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 c9518e477fc..ca590a89262 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.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 MissionAdapter(Context context, @NonNull DownloadManager downloadManager, 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 551e80a3e65..79924435ff2 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 static int getIconForFileType(FileType type) { } 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 9728c6b8c59..f83c5e598a2 100644 --- a/checkstyle-suppressions.xml +++ b/checkstyle-suppressions.xml @@ -13,7 +13,11 @@ + lines="282,314"/> + + Date: Sun, 13 Sep 2020 17:23:16 +0530 Subject: [PATCH 2/3] Use ContextCompat.startForegroundService(). --- .../schabi/newpipe/util/NavigationHelper.java | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java index ccc102a1928..45fe11ef4b4 100644 --- a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java @@ -14,6 +14,7 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; @@ -174,7 +175,7 @@ public static void playOnPopupPlayer(final Context context, final PlayQueue queu Toast.makeText(context, R.string.popup_playing_toast, Toast.LENGTH_SHORT).show(); final Intent intent = getPlayerIntent(context, MainPlayer.class, queue, resumePlayback); intent.putExtra(VideoPlayer.PLAYER_TYPE, VideoPlayer.PLAYER_TYPE_POPUP); - startService(context, intent); + ContextCompat.startForegroundService(context, intent); } public static void playOnBackgroundPlayer(final Context context, @@ -184,7 +185,7 @@ public static void playOnBackgroundPlayer(final Context context, .show(); final Intent intent = getPlayerIntent(context, MainPlayer.class, queue, resumePlayback); intent.putExtra(VideoPlayer.PLAYER_TYPE, VideoPlayer.PLAYER_TYPE_AUDIO); - startService(context, intent); + ContextCompat.startForegroundService(context, intent); } public static void enqueueOnVideoPlayer(final Context context, final PlayQueue queue, @@ -201,7 +202,7 @@ public static void enqueueOnVideoPlayer(final Context context, final PlayQueue q context, MainPlayer.class, queue, selectOnAppend, resumePlayback); intent.putExtra(VideoPlayer.PLAYER_TYPE, VideoPlayer.PLAYER_TYPE_VIDEO); - startService(context, intent); + ContextCompat.startForegroundService(context, intent); } public static void enqueueOnPopupPlayer(final Context context, final PlayQueue queue, @@ -221,7 +222,7 @@ public static void enqueueOnPopupPlayer(final Context context, final PlayQueue q final Intent intent = getPlayerEnqueueIntent( context, MainPlayer.class, queue, selectOnAppend, resumePlayback); intent.putExtra(VideoPlayer.PLAYER_TYPE, VideoPlayer.PLAYER_TYPE_POPUP); - startService(context, intent); + ContextCompat.startForegroundService(context, intent); } public static void enqueueOnBackgroundPlayer(final Context context, final PlayQueue queue, @@ -237,15 +238,7 @@ public static void enqueueOnBackgroundPlayer(final Context context, final Intent intent = getPlayerEnqueueIntent( context, MainPlayer.class, queue, selectOnAppend, resumePlayback); intent.putExtra(VideoPlayer.PLAYER_TYPE, VideoPlayer.PLAYER_TYPE_AUDIO); - startService(context, intent); - } - - public static void startService(@NonNull final Context context, @NonNull final Intent intent) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - context.startForegroundService(intent); - } else { - context.startService(intent); - } + ContextCompat.startForegroundService(context, intent); } /*////////////////////////////////////////////////////////////////////////// From f55381d689f3702ae084f3813cc286a65fd79aeb Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Wed, 16 Sep 2020 19:03:15 +0530 Subject: [PATCH 3/3] Combine initNotificationChannel() and setUpUpdateNotificationChannel() into a single method. --- app/src/main/java/org/schabi/newpipe/App.java | 49 ++++++------------- checkstyle-suppressions.xml | 4 -- 2 files changed, 16 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/App.java b/app/src/main/java/org/schabi/newpipe/App.java index dd578d91146..4b2a858c741 100644 --- a/app/src/main/java/org/schabi/newpipe/App.java +++ b/app/src/main/java/org/schabi/newpipe/App.java @@ -1,6 +1,5 @@ package org.schabi.newpipe; -import android.annotation.TargetApi; import android.app.Application; import android.app.NotificationChannel; import android.app.NotificationManager; @@ -33,6 +32,7 @@ import java.io.IOException; import java.io.InterruptedIOException; import java.net.SocketException; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -90,7 +90,7 @@ public void onCreate() { Localization.init(getApplicationContext()); StateSaver.init(this); - initNotificationChannel(); + initNotificationChannels(); ServiceHelper.initServices(this); @@ -219,48 +219,31 @@ protected void initACRA() { } } - public void initNotificationChannel() { + private void initNotificationChannels() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { return; } - final String id = getString(R.string.notification_channel_id); - final CharSequence name = getString(R.string.notification_channel_name); - final String description = getString(R.string.notification_channel_description); + String id = getString(R.string.notification_channel_id); + String name = getString(R.string.notification_channel_name); + String description = getString(R.string.notification_channel_description); // Keep this below DEFAULT to avoid making noise on every notification update final int importance = NotificationManager.IMPORTANCE_LOW; - final NotificationChannel mChannel = new NotificationChannel(id, name, importance); - mChannel.setDescription(description); + final NotificationChannel mainChannel = new NotificationChannel(id, name, importance); + mainChannel.setDescription(description); - final NotificationManager mNotificationManager = getSystemService(NotificationManager.class); - mNotificationManager.createNotificationChannel(mChannel); + id = getString(R.string.app_update_notification_channel_id); + name = getString(R.string.app_update_notification_channel_name); + description = getString(R.string.app_update_notification_channel_description); - setUpUpdateNotificationChannel(importance); - } + final NotificationChannel appUpdateChannel = new NotificationChannel(id, name, importance); + appUpdateChannel.setDescription(description); - /** - * Set up notification channel for app update. - * - * @param importance - */ - @TargetApi(Build.VERSION_CODES.O) - private void setUpUpdateNotificationChannel(final int importance) { - final String appUpdateId - = getString(R.string.app_update_notification_channel_id); - final CharSequence appUpdateName - = getString(R.string.app_update_notification_channel_name); - final String appUpdateDescription - = getString(R.string.app_update_notification_channel_description); - - final NotificationChannel appUpdateChannel - = new NotificationChannel(appUpdateId, appUpdateName, importance); - appUpdateChannel.setDescription(appUpdateDescription); - - final NotificationManager appUpdateNotificationManager - = getSystemService(NotificationManager.class); - appUpdateNotificationManager.createNotificationChannel(appUpdateChannel); + final NotificationManager notificationManager = getSystemService(NotificationManager.class); + notificationManager.createNotificationChannels(Arrays.asList(mainChannel, + appUpdateChannel)); } protected boolean isDisposedRxExceptionsReported() { diff --git a/checkstyle-suppressions.xml b/checkstyle-suppressions.xml index f83c5e598a2..70a2afe73dd 100644 --- a/checkstyle-suppressions.xml +++ b/checkstyle-suppressions.xml @@ -15,10 +15,6 @@ files="ListHelper.java" lines="282,314"/> - -