Set targetSdk 36

pull/594/head
jhengazuki 7 months ago
parent 6e35870b94
commit 88865e84d4
  1. 3
      app/build.gradle
  2. 7
      app/src/leanback/java/com/fongmi/android/tv/receiver/BootReceiver.java
  3. 7
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  4. 1
      app/src/main/AndroidManifest.xml
  5. 31
      app/src/main/java/com/fongmi/android/tv/impl/ChainTask.java
  6. 10
      app/src/main/java/com/fongmi/android/tv/service/PlaybackService.java
  7. 4
      app/src/main/java/com/fongmi/android/tv/utils/Notify.java
  8. 10
      app/src/main/res/drawable/ic_notify_next.xml
  9. 10
      app/src/main/res/drawable/ic_notify_pause.xml
  10. 10
      app/src/main/res/drawable/ic_notify_play.xml
  11. 10
      app/src/main/res/drawable/ic_notify_prev.xml
  12. 2
      app/src/mobile/AndroidManifest.xml
  13. 7
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  14. 2
      app/src/mobile/res/values/styles.xml
  15. 2
      catvod/build.gradle
  16. 2
      chaquo/build.gradle
  17. 2
      forcetech/build.gradle
  18. 2
      hook/build.gradle
  19. 2
      jianpian/build.gradle
  20. 2
      quickjs/build.gradle
  21. 2
      thunder/build.gradle
  22. 2
      tvbus/build.gradle
  23. 2
      zlive/build.gradle

@ -12,8 +12,7 @@ android {
defaultConfig {
applicationId "com.fongmi.android.tv"
minSdk 24
//noinspection ExpiredTargetSdkVersion
targetSdk 28
targetSdk 36
versionCode 417
versionName "4.1.7"
javaCompileOptions {

@ -5,9 +5,6 @@ import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
import android.os.Build;
import androidx.annotation.NonNull;
@ -22,9 +19,7 @@ public class BootReceiver extends BroadcastReceiver {
}
private void registerCallback() {
ConnectivityManager manager = (ConnectivityManager) App.get().getSystemService(Context.CONNECTIVITY_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) manager.registerDefaultNetworkCallback(new Callback());
else manager.registerNetworkCallback(new NetworkRequest.Builder().addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET).build(), new Callback());
((ConnectivityManager) App.get().getSystemService(Context.CONNECTIVITY_SERVICE)).registerDefaultNetworkCallback(new Callback());
}
static class Callback extends ConnectivityManager.NetworkCallback {

@ -40,6 +40,7 @@ import com.fongmi.android.tv.event.CastEvent;
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.event.ServerEvent;
import com.fongmi.android.tv.impl.Callback;
import com.fongmi.android.tv.impl.ChainTask;
import com.fongmi.android.tv.model.SiteViewModel;
import com.fongmi.android.tv.player.Source;
import com.fongmi.android.tv.server.Server;
@ -61,6 +62,7 @@ import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.UrlUtil;
import com.github.catvod.net.OkHttp;
import com.google.common.collect.Lists;
import com.permissionx.guolindev.PermissionX;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@ -100,6 +102,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
Updater.create().release().start(this);
mResult = Result.empty();
Server.get().start();
requestPermission();
setRecyclerView();
setViewModel();
setAdapter();
@ -131,6 +134,10 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
}
}
private void requestPermission() {
PermissionX.init(this).permissions(PermissionX.permission.POST_NOTIFICATIONS).request((allGranted, grantedList, deniedList) -> PermissionX.init(this).permissions(PermissionX.permission.POST_NOTIFICATIONS).requestManageExternalStoragePermissionNow(new ChainTask()));
}
private void setRecyclerView() {
CustomSelector selector = new CustomSelector();
selector.addPresenter(Integer.class, new HeaderPresenter());

@ -8,6 +8,7 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

@ -0,0 +1,31 @@
package com.fongmi.android.tv.impl;
import com.permissionx.guolindev.request.ExplainScope;
import com.permissionx.guolindev.request.ForwardScope;
import java.util.List;
public class ChainTask implements com.permissionx.guolindev.request.ChainTask {
@Override
public ExplainScope getExplainScope() {
return null;
}
@Override
public ForwardScope getForwardScope() {
return null;
}
@Override
public void request() {
}
@Override
public void requestAgain(List<String> permissions) {
}
@Override
public void finish() {
}
}

@ -67,8 +67,8 @@ public class PlaybackService extends Service {
}
private NotificationCompat.Action getPlayPauseAction() {
if (nonNull() && player.isPlaying()) return buildNotificationAction(R.drawable.ic_notify_pause, androidx.media3.ui.R.string.exo_controls_pause_description, ActionEvent.PAUSE);
return buildNotificationAction(R.drawable.ic_notify_play, androidx.media3.ui.R.string.exo_controls_play_description, ActionEvent.PLAY);
if (nonNull() && player.isPlaying()) return buildNotificationAction(androidx.media3.ui.R.drawable.exo_icon_pause, androidx.media3.ui.R.string.exo_controls_pause_description, ActionEvent.PAUSE);
return buildNotificationAction(androidx.media3.ui.R.drawable.exo_icon_play, androidx.media3.ui.R.string.exo_controls_play_description, ActionEvent.PLAY);
}
private MediaMetadataCompat getMetadata() {
@ -97,9 +97,9 @@ public class PlaybackService extends Service {
}
private void addAction(NotificationCompat.Builder builder) {
builder.addAction(buildNotificationAction(R.drawable.ic_notify_prev, androidx.media3.ui.R.string.exo_controls_previous_description, ActionEvent.PREV));
builder.addAction(buildNotificationAction(androidx.media3.ui.R.drawable.exo_icon_previous, androidx.media3.ui.R.string.exo_controls_previous_description, ActionEvent.PREV));
builder.addAction(getPlayPauseAction());
builder.addAction(buildNotificationAction(R.drawable.ic_notify_next, androidx.media3.ui.R.string.exo_controls_next_description, ActionEvent.NEXT));
builder.addAction(buildNotificationAction(androidx.media3.ui.R.drawable.exo_icon_next, androidx.media3.ui.R.string.exo_controls_next_description, ActionEvent.NEXT));
}
private Notification buildNotification() {
@ -113,7 +113,7 @@ public class PlaybackService extends Service {
builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC);
builder.setDeleteIntent(ActionReceiver.getPendingIntent(this, ActionEvent.STOP));
if (nonNull()) builder.setContentIntent(player.getSession().getController().getSessionActivity());
if (nonNull()) builder.setStyle(new MediaStyle().setMediaSession(player.getSession().getSessionToken()));
if (nonNull()) builder.setStyle(new MediaStyle().setMediaSession(player.getSession().getSessionToken()).setShowActionsInCompactView(0, 1, 2));
addAction(builder);
setArtwork(builder);
return builder.build();

@ -9,9 +9,9 @@ import android.view.LayoutInflater;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.core.app.ActivityCompat;
import androidx.core.app.NotificationChannelCompat;
import androidx.core.app.NotificationManagerCompat;
import androidx.core.content.ContextCompat;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.databinding.ViewProgressBinding;
@ -43,7 +43,7 @@ public class Notify {
}
public static void show(Notification notification) {
if (ActivityCompat.checkSelfPermission(App.get(), Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) return;
if (ContextCompat.checkSelfPermission(App.get(), Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) return;
NotificationManagerCompat.from(App.get()).notify(ID, notification);
}

@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M660,720L660,240L740,240L740,720L660,720ZM220,720L220,240L580,480L220,720ZM300,480L300,480L300,480L300,480ZM300,570L436,480L300,390L300,570Z" />
</vector>

@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M560,760L560,200L720,200L720,760L560,760ZM240,760L240,200L400,200L400,760L240,760Z" />
</vector>

@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M320,760L320,200L760,480L320,760Z" />
</vector>

@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M220,720L220,240L300,240L300,720L220,720ZM740,720L380,480L740,240L740,720ZM660,480L660,480L660,480L660,480ZM660,570L660,390L524,480L660,570Z" />
</vector>

@ -113,7 +113,7 @@
android:resizeableActivity="true"
android:screenOrientation="fullUser"
android:supportsPictureInPicture="true"
android:theme="@style/AppTheme.Detail" />
android:theme="@style/AppTheme.Video" />
<receiver
android:name=".receiver.ShortcutReceiver"

@ -27,6 +27,7 @@ import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.event.ServerEvent;
import com.fongmi.android.tv.event.StateEvent;
import com.fongmi.android.tv.impl.Callback;
import com.fongmi.android.tv.impl.ChainTask;
import com.fongmi.android.tv.player.Source;
import com.fongmi.android.tv.receiver.ShortcutReceiver;
import com.fongmi.android.tv.server.Server;
@ -40,6 +41,7 @@ import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.UrlUtil;
import com.github.catvod.net.OkHttp;
import com.google.android.material.navigation.NavigationBarView;
import com.permissionx.guolindev.PermissionX;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@ -67,6 +69,7 @@ public class HomeActivity extends BaseActivity implements NavigationBarView.OnIt
Updater.create().release().start(this);
initFragment(savedInstanceState);
Server.get().start();
requestPermission();
initConfig();
}
@ -101,6 +104,10 @@ public class HomeActivity extends BaseActivity implements NavigationBarView.OnIt
if (savedInstanceState == null) mManager.change(0);
}
private void requestPermission() {
PermissionX.init(this).permissions(PermissionX.permission.POST_NOTIFICATIONS).request((allGranted, grantedList, deniedList) -> PermissionX.init(this).permissions(PermissionX.permission.POST_NOTIFICATIONS).requestManageExternalStoragePermissionNow(new ChainTask()));
}
private void initConfig() {
WallConfig.get().init();
LiveConfig.get().init().load();

@ -8,7 +8,7 @@
<item name="android:windowBackground">@color/black</item>
</style>
<style name="AppTheme.Detail" parent="AppTheme">
<style name="AppTheme.Video" parent="AppTheme">
<item name="android:statusBarColor">@color/black</item>
<item name="android:windowTranslucentStatus">false</item>
</style>

@ -11,7 +11,7 @@ android {
defaultConfig {
minSdk 24
targetSdk 28
targetSdk 36
}
compileOptions {

@ -12,7 +12,7 @@ android {
defaultConfig {
minSdk 24
targetSdk 28
targetSdk 36
python {
version "3.8"
pip {

@ -9,7 +9,7 @@ android {
defaultConfig {
minSdk 24
targetSdk 28
targetSdk 36
ndk { abiFilters "armeabi-v7a" }
}
}

@ -9,6 +9,6 @@ android {
defaultConfig {
minSdk 24
targetSdk 28
targetSdk 36
}
}

@ -9,7 +9,7 @@ android {
defaultConfig {
minSdk 24
targetSdk 28
targetSdk 36
}
}

@ -11,7 +11,7 @@ android {
defaultConfig {
minSdk 24
targetSdk 28
targetSdk 36
}
compileOptions {

@ -9,7 +9,7 @@ android {
defaultConfig {
minSdk 24
targetSdk 28
targetSdk 36
}
}

@ -9,7 +9,7 @@ android {
defaultConfig {
minSdk 24
targetSdk 28
targetSdk 36
ndk { abiFilters "armeabi-v7a" }
}
}

@ -9,7 +9,7 @@ android {
defaultConfig {
minSdk 24
targetSdk 28
targetSdk 36
ndk { abiFilters "armeabi-v7a" }
}
}

Loading…
Cancel
Save