diff --git a/app/build.gradle b/app/build.gradle index 082f4b6c7..7d404a1e2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -83,7 +83,6 @@ dependencies { implementation 'com.google.zxing:core:3.3.0' implementation 'com.guolindev.permissionx:permissionx:1.7.1' implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.10' - implementation 'me.jessyan:autosize:1.2.1' implementation 'net.java.dev.jna:jna:5.12.1' implementation 'org.apache.commons:commons-compress:1.20' implementation 'org.chromium.net:cronet-embedded:101.4951.41' @@ -91,6 +90,7 @@ dependencies { implementation 'org.nanohttpd:nanohttpd:2.3.1' implementation('org.simpleframework:simple-xml:2.7.1') { exclude group: 'stax', module: 'stax-api' exclude group: 'xpp3', module: 'xpp3' } leanbackImplementation 'androidx.leanback:leanback:1.2.0-alpha02' + leanbackImplementation 'me.jessyan:autosize:1.2.1' annotationProcessor 'androidx.room:room-compiler:2.5.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.14.2' } \ No newline at end of file diff --git a/app/src/leanback/java/com/fongmi/android/tv/Product.java b/app/src/leanback/java/com/fongmi/android/tv/Product.java index 61c790bfd..83156e5a5 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/Product.java +++ b/app/src/leanback/java/com/fongmi/android/tv/Product.java @@ -9,6 +9,15 @@ import me.jessyan.autosize.AutoSizeCompat; public class Product { + public static Resources hackResources(Resources resources) { + try { + AutoSizeCompat.autoConvertDensityOfGlobal(resources); + return resources; + } catch (Exception ignored) { + return resources; + } + } + public static int getColumn() { return Math.abs(Prefers.getSize() - 7); } @@ -16,8 +25,4 @@ public class Product { public static void bootLive() { LiveActivity.start(App.activity()); } - - public static int getSizeInDp(boolean land) { - return land ? AutoSizeConfig.getInstance().getDesignWidthInDp() : AutoSizeConfig.getInstance().getDesignHeightInDp(); - } } diff --git a/app/src/main/java/com/fongmi/android/tv/ui/activity/BaseActivity.java b/app/src/main/java/com/fongmi/android/tv/ui/activity/BaseActivity.java index 10a519982..eaf5b9bc5 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/activity/BaseActivity.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/activity/BaseActivity.java @@ -1,12 +1,10 @@ package com.fongmi.android.tv.ui.activity; import android.app.Activity; -import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.Bundle; -import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.viewbinding.ViewBinding; @@ -24,18 +22,12 @@ import org.greenrobot.eventbus.ThreadMode; import java.io.File; -import me.jessyan.autosize.AutoSizeCompat; -import me.jessyan.autosize.internal.CustomAdapt; - -public abstract class BaseActivity extends AppCompatActivity implements CustomAdapt { +public abstract class BaseActivity extends AppCompatActivity { protected abstract ViewBinding getBinding(); - private boolean land; - @Override protected void onCreate(Bundle savedInstanceState) { - land = ResUtil.isLand(this); super.onCreate(savedInstanceState); setContentView(getBinding().getRoot()); EventBus.getDefault().register(this); @@ -64,13 +56,9 @@ public abstract class BaseActivity extends AppCompatActivity implements CustomAd } } - private Resources hackResources(Resources resources) { - try { - AutoSizeCompat.autoConvertDensityOfCustomAdapt(resources, this); - return resources; - } catch (Exception ignored) { - return resources; - } + @Override + public Resources getResources() { + return Product.hackResources(super.getResources()); } @Subscribe(threadMode = ThreadMode.MAIN) @@ -80,30 +68,9 @@ public abstract class BaseActivity extends AppCompatActivity implements CustomAd setWall(); } - @Override - public Resources getResources() { - return hackResources(super.getResources()); - } - @Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); } - - @Override - public void onConfigurationChanged(@NonNull Configuration newConfig) { - super.onConfigurationChanged(newConfig); - land = ResUtil.isLand(this); - } - - @Override - public boolean isBaseOnWidth() { - return true; - } - - @Override - public float getSizeInDp() { - return Product.getSizeInDp(land); - } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/Product.java b/app/src/mobile/java/com/fongmi/android/tv/Product.java index abb446c2b..5757b597b 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/Product.java +++ b/app/src/mobile/java/com/fongmi/android/tv/Product.java @@ -1,21 +1,20 @@ package com.fongmi.android.tv; import android.app.Activity; +import android.content.res.Resources; import com.fongmi.android.tv.utils.ResUtil; -import me.jessyan.autosize.AutoSizeConfig; - public class Product { + public static Resources hackResources(Resources resources) { + return resources; + } + public static int getColumn(Activity activity) { return ResUtil.isPort(activity) ? 3 : 6; } public static void bootLive() { } - - public static int getSizeInDp(boolean land) { - return land ? AutoSizeConfig.getInstance().getDesignHeightInDp() : AutoSizeConfig.getInstance().getDesignWidthInDp(); - } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 507c14569..990e5ddf6 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -81,8 +81,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private boolean mUseParse; private boolean mLock; private boolean mStop; + private boolean mLand; private int mCurrent; - private int mRotate; private Runnable mR1; private Runnable mR2; @@ -536,7 +536,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis } private void enterFullscreen() { - mRotate = getRequestedOrientation(); + setLand(ResUtil.isLand(this)); mBinding.control.full.setImageResource(R.drawable.ic_full_off); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE); getIjk().getSubtitleView().setTextSize(TypedValue.COMPLEX_UNIT_SP, 16); @@ -546,9 +546,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis } private void exitFullscreen() { - setRequestedOrientation(mRotate); mBinding.control.full.setImageResource(R.drawable.ic_full_on); + setRequestedOrientation(isLand() ? ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT); getIjk().getSubtitleView().setTextSize(TypedValue.COMPLEX_UNIT_SP, 14); + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_USER); mBinding.episode.scrollToPosition(mEpisodeAdapter.getPosition()); mBinding.video.setLayoutParams(mFrameParams); setFullscreen(false); @@ -818,6 +819,14 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis this.mStop = stop; } + public boolean isLand() { + return mLand; + } + + public void setLand(boolean land) { + this.mLand = land; + } + private void notifyItemChanged(RecyclerView.Adapter adapter) { adapter.notifyItemRangeChanged(0, adapter.getItemCount()); }