From dcda82b0bbce66e8aadfe7762fcedd8afa383246 Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 21 Aug 2024 14:12:33 +0800 Subject: [PATCH] Clean code --- .../com/fongmi/android/tv/utils/ResUtil.java | 32 +++++-------------- .../android/tv/service/PlaybackService.java | 6 +++- 2 files changed, 13 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java index 5aabf8608..a1a510904 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java @@ -1,6 +1,5 @@ package com.fongmi.android.tv.utils; -import android.app.Activity; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; @@ -8,15 +7,10 @@ import android.content.res.TypedArray; import android.graphics.Paint; import android.graphics.Point; import android.graphics.drawable.Drawable; -import android.os.Build; import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.Display; -import android.view.KeyCharacterMap; -import android.view.KeyEvent; import android.view.MotionEvent; -import android.view.ViewConfiguration; -import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; @@ -34,23 +28,13 @@ public class ResUtil { return App.get().getResources().getDisplayMetrics(); } - public static WindowManager getWindowManager(Context context) { - return (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); - } - public static boolean hasNavigationBar(Context context) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { - Display display = getWindowManager(context).getDefaultDisplay(); - Point size = new Point(); - Point realSize = new Point(); - display.getSize(size); - display.getRealSize(realSize); - return realSize.x != size.x || realSize.y != size.y; - } else { - boolean menu = ViewConfiguration.get(context).hasPermanentMenuKey(); - boolean back = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK); - return !(menu || back); - } + Display display = getDisplay(context); + Point size = new Point(); + Point realSize = new Point(); + display.getSize(size); + display.getRealSize(realSize); + return realSize.x != size.x || realSize.y != size.y; } public static int getNavigationBarHeight(Context context) { @@ -132,8 +116,8 @@ public class ResUtil { return AnimationUtils.loadAnimation(App.get(), resId); } - public static Display getDisplay(Activity activity) { - return Build.VERSION.SDK_INT >= Build.VERSION_CODES.R ? activity.getDisplay() : activity.getWindowManager().getDefaultDisplay(); + public static Display getDisplay(Context context) { + return ContextCompat.getDisplayOrDefault(context); } public static int getTextWidth(String content, int size) { diff --git a/app/src/mobile/java/com/fongmi/android/tv/service/PlaybackService.java b/app/src/mobile/java/com/fongmi/android/tv/service/PlaybackService.java index fe5f62c4d..c416e6de2 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/service/PlaybackService.java +++ b/app/src/mobile/java/com/fongmi/android/tv/service/PlaybackService.java @@ -3,8 +3,10 @@ package com.fongmi.android.tv.service; import android.app.Notification; import android.app.Service; import android.content.Intent; +import android.content.pm.ServiceInfo; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.IBinder; import android.support.v4.media.MediaMetadataCompat; @@ -14,6 +16,7 @@ import androidx.annotation.Nullable; import androidx.annotation.StringRes; import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationManagerCompat; +import androidx.core.app.ServiceCompat; import androidx.core.content.ContextCompat; import androidx.media.app.NotificationCompat.MediaStyle; import androidx.media.session.MediaButtonReceiver; @@ -156,7 +159,8 @@ public class PlaybackService extends Service { @Override public int onStartCommand(Intent intent, int flags, int startId) { if (nonNull()) MediaButtonReceiver.handleIntent(player.getSession(), intent); - startForeground(Notify.ID, buildNotification()); + int type = Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q ? ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK : 0; + ServiceCompat.startForeground(this, Notify.ID, buildNotification(), type); return START_NOT_STICKY; }