pull/586/head
FongMi 2 years ago
parent 2860a12751
commit dcda82b0bb
  1. 32
      app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java
  2. 6
      app/src/mobile/java/com/fongmi/android/tv/service/PlaybackService.java

@ -1,6 +1,5 @@
package com.fongmi.android.tv.utils; package com.fongmi.android.tv.utils;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.content.res.Resources; import android.content.res.Resources;
@ -8,15 +7,10 @@ import android.content.res.TypedArray;
import android.graphics.Paint; import android.graphics.Paint;
import android.graphics.Point; import android.graphics.Point;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Build;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.Display; import android.view.Display;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.ViewConfiguration;
import android.view.WindowManager;
import android.view.animation.Animation; import android.view.animation.Animation;
import android.view.animation.AnimationUtils; import android.view.animation.AnimationUtils;
@ -34,23 +28,13 @@ public class ResUtil {
return App.get().getResources().getDisplayMetrics(); return App.get().getResources().getDisplayMetrics();
} }
public static WindowManager getWindowManager(Context context) {
return (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
}
public static boolean hasNavigationBar(Context context) { public static boolean hasNavigationBar(Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { Display display = getDisplay(context);
Display display = getWindowManager(context).getDefaultDisplay(); Point size = new Point();
Point size = new Point(); Point realSize = new Point();
Point realSize = new Point(); display.getSize(size);
display.getSize(size); display.getRealSize(realSize);
display.getRealSize(realSize); return realSize.x != size.x || realSize.y != size.y;
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);
}
} }
public static int getNavigationBarHeight(Context context) { public static int getNavigationBarHeight(Context context) {
@ -132,8 +116,8 @@ public class ResUtil {
return AnimationUtils.loadAnimation(App.get(), resId); return AnimationUtils.loadAnimation(App.get(), resId);
} }
public static Display getDisplay(Activity activity) { public static Display getDisplay(Context context) {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.R ? activity.getDisplay() : activity.getWindowManager().getDefaultDisplay(); return ContextCompat.getDisplayOrDefault(context);
} }
public static int getTextWidth(String content, int size) { public static int getTextWidth(String content, int size) {

@ -3,8 +3,10 @@ package com.fongmi.android.tv.service;
import android.app.Notification; import android.app.Notification;
import android.app.Service; import android.app.Service;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ServiceInfo;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.IBinder; import android.os.IBinder;
import android.support.v4.media.MediaMetadataCompat; import android.support.v4.media.MediaMetadataCompat;
@ -14,6 +16,7 @@ import androidx.annotation.Nullable;
import androidx.annotation.StringRes; import androidx.annotation.StringRes;
import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat; import androidx.core.app.NotificationManagerCompat;
import androidx.core.app.ServiceCompat;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.media.app.NotificationCompat.MediaStyle; import androidx.media.app.NotificationCompat.MediaStyle;
import androidx.media.session.MediaButtonReceiver; import androidx.media.session.MediaButtonReceiver;
@ -156,7 +159,8 @@ public class PlaybackService extends Service {
@Override @Override
public int onStartCommand(Intent intent, int flags, int startId) { public int onStartCommand(Intent intent, int flags, int startId) {
if (nonNull()) MediaButtonReceiver.handleIntent(player.getSession(), intent); 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; return START_NOT_STICKY;
} }

Loading…
Cancel
Save