diff --git a/app/build.gradle b/app/build.gradle index c0e6003fb..1e3afa89b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.fongmi.android.tv" minSdk 21 targetSdk 29 - versionCode 65 - versionName "1.6.5" + versionCode 66 + versionName "1.6.6" ndk { abiFilters "armeabi-v7a" } } diff --git a/app/src/leanback/java/com/fongmi/android/tv/Product.java b/app/src/leanback/java/com/fongmi/android/tv/Product.java new file mode 100644 index 000000000..3d75d9815 --- /dev/null +++ b/app/src/leanback/java/com/fongmi/android/tv/Product.java @@ -0,0 +1,17 @@ +package com.fongmi.android.tv; + +import android.content.res.Resources; + +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; + } + } +} diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 885bd70ad..821dc7c0f 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -97,6 +97,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private boolean mAutoMode; private History mHistory; private Players mPlayers; + private String mSiteKey; private int mCurrent; private Runnable mR1; private Runnable mR2; @@ -197,6 +198,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis mPlayers = new Players().init(); mR1 = this::hideControl; mR2 = this::setTraffic; + mSiteKey = getKey(); setRecyclerView(); setVideoView(); setViewModel(); @@ -256,7 +258,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis mBinding.part.setAdapter(new ItemBridgeAdapter(mPartAdapter = new ArrayObjectAdapter(mPartPresenter = new PartPresenter(item -> initSearch(item, false))))); mBinding.search.setHorizontalSpacing(ResUtil.dp2px(8)); mBinding.search.setRowHeight(ViewGroup.LayoutParams.WRAP_CONTENT); - mBinding.search.setAdapter(new ItemBridgeAdapter(mSearchAdapter = new ArrayObjectAdapter(new SearchPresenter(this::getDetail)))); + mBinding.search.setAdapter(new ItemBridgeAdapter(mSearchAdapter = new ArrayObjectAdapter(new SearchPresenter(this::setSearch)))); mBinding.control.parse.setHorizontalSpacing(ResUtil.dp2px(8)); mBinding.control.parse.setRowHeight(ViewGroup.LayoutParams.WRAP_CONTENT); mBinding.control.parse.setAdapter(new ItemBridgeAdapter(mParseAdapter = new ArrayObjectAdapter(new ParsePresenter(this::setParseActivated)))); @@ -835,14 +837,14 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis } private void checkFlag() { - int position = mBinding.flag.getSelectedPosition(); + int position = isGone(mBinding.flag) ? -1 : mBinding.flag.getSelectedPosition(); if (position == mFlagAdapter.size() - 1) checkSearch(); else nextFlag(position); } private void checkSearch() { - if (isAutoMode() && mSearchAdapter.size() > 0) nextSite(); - else initSearch(getName(), true); + if (mSearchAdapter.size() == 0) initSearch(getName(), true); + else if (isAutoMode()) nextSite(); } private void initSearch(String keyword, boolean auto) { @@ -882,6 +884,11 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis if (isInitAuto()) nextSite(); } + private void setSearch(Vod item) { + setAutoMode(false); + getDetail(item); + } + private boolean mismatch(Vod item) { String keyword = mBinding.part.getTag().toString(); if (isAutoMode()) return !item.getVodName().equals(keyword); @@ -903,6 +910,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private void nextSite() { if (mSearchAdapter.size() == 0) return; Vod vod = (Vod) mSearchAdapter.get(0); + if (vod.getSiteKey().equals(mSiteKey)) return; Notify.show(getString(R.string.play_switch_site, vod.getSiteName())); mSearchAdapter.removeItems(0, 1); setInitAuto(false); diff --git a/app/src/leanback/res/layout/activity_detail.xml b/app/src/leanback/res/layout/activity_detail.xml index 874540560..a25028496 100644 --- a/app/src/leanback/res/layout/activity_detail.xml +++ b/app/src/leanback/res/layout/activity_detail.xml @@ -21,7 +21,7 @@ true - - - - 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 ad73bd9be..f33f1ac0a 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 @@ -2,6 +2,7 @@ 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; @@ -9,6 +10,7 @@ import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.viewbinding.ViewBinding; +import com.fongmi.android.tv.Product; import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.WallConfig; import com.fongmi.android.tv.event.RefreshEvent; @@ -65,6 +67,11 @@ public abstract class BaseActivity extends AppCompatActivity { setWall(); } + @Override + public Resources getResources() { + return Product.hackResources(super.getResources()); + } + @Override public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Notify.java b/app/src/main/java/com/fongmi/android/tv/utils/Notify.java index 7cbd7ced4..a03b098a6 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Notify.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Notify.java @@ -33,9 +33,8 @@ public class Notify { } public static void progress(Context context) { - ViewProgressBinding binding = ViewProgressBinding.inflate(LayoutInflater.from(context)); - get().mDialog = new MaterialAlertDialogBuilder(context).setView(binding.getRoot()).create(); - get().mDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); + dismiss(); + get().create(context); get().mDialog.show(); } @@ -43,6 +42,12 @@ public class Notify { if (get().mDialog != null && get().mDialog.isShowing()) get().mDialog.dismiss(); } + private void create(Context context) { + ViewProgressBinding binding = ViewProgressBinding.inflate(LayoutInflater.from(context)); + mDialog = new MaterialAlertDialogBuilder(context).setView(binding.getRoot()).create(); + mDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); + } + private void makeText(String message) { if (mToast != null) mToast.cancel(); if (TextUtils.isEmpty(message)) return; diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml new file mode 100644 index 000000000..7069776a4 --- /dev/null +++ b/app/src/main/res/values/styles.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + diff --git a/app/src/mobile/java/com/fongmi/android/tv/Product.java b/app/src/mobile/java/com/fongmi/android/tv/Product.java new file mode 100644 index 000000000..316acd3c8 --- /dev/null +++ b/app/src/mobile/java/com/fongmi/android/tv/Product.java @@ -0,0 +1,10 @@ +package com.fongmi.android.tv; + +import android.content.res.Resources; + +public class Product { + + public static Resources hackResources(Resources resources) { + return resources; + } +} diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java index 789e28bb2..18940bb3b 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java @@ -41,6 +41,7 @@ public class SiteFragment extends BaseFragment implements VodAdapter.OnClickList @Override protected void initView() { + mBinding.progressLayout.showProgress(); setRecyclerView(); } diff --git a/app/src/mobile/res/layout/activity_detail.xml b/app/src/mobile/res/layout/activity_detail.xml index 3bf703a44..c4fc192d1 100644 --- a/app/src/mobile/res/layout/activity_detail.xml +++ b/app/src/mobile/res/layout/activity_detail.xml @@ -15,7 +15,7 @@ @style/BottomSheetDialog - - - -