diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java index 866e73aac..9301534cc 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java @@ -108,7 +108,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen protected void initView() { mClock = Clock.create(mBinding.clock); mBinding.progressLayout.showProgress(); - PermissionUtil.requestNotify(this); Updater.create().start(this); Server.get().start(); setRecyclerView(); @@ -186,6 +185,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen @Override public void success() { + PermissionUtil.requestNotify(getActivity()); mBinding.progressLayout.showContent(); checkAction(getIntent()); getHistory(); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/base/BaseActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/base/BaseActivity.java index eb21d6b93..d13295d98 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/base/BaseActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/base/BaseActivity.java @@ -2,7 +2,6 @@ package com.fongmi.android.tv.ui.base; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; -import android.app.Activity; import android.content.res.Configuration; import android.content.res.Resources; import android.os.Build; @@ -15,6 +14,7 @@ import android.window.OnBackInvokedDispatcher; import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.FragmentActivity; import androidx.leanback.widget.ArrayObjectAdapter; import androidx.recyclerview.widget.RecyclerView; import androidx.viewbinding.ViewBinding; @@ -52,7 +52,7 @@ public abstract class BaseActivity extends AppCompatActivity { ((ViewGroup) findViewById(android.R.id.content)).addView(new CustomWallView(this, null), 0, new ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT)); } - protected Activity getActivity() { + protected FragmentActivity getActivity() { return this; } diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java index b100af55c..52ce59e4e 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java @@ -310,7 +310,7 @@ public class LiveConfig { private void setHome(Live live, boolean check) { home = live; home.setActivated(true); - config.home(home.getName()).save(); + config.home(home.getName()).update(); for (Live item : getLives()) item.setActivated(home); if (App.activity() != null && App.activity() instanceof LiveActivity) return; if (check) if (home.isBoot() || Setting.isBootLive()) App.post(this::bootLive); diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java index 5f948a3f2..0132190b0 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java @@ -168,9 +168,9 @@ public class VodConfig { if (loadLive && !Json.isEmpty(object, "lives")) initLive(object); String notice = Json.safeString(object, "notice"); config.logo(Json.safeString(object, "logo")); - App.post(() -> callback.success(notice)); config.json(object.toString()).update(); if (silent || future.isCancelled()) return; + App.post(() -> callback.success(notice)); App.post(callback::success); } catch (Throwable e) { e.printStackTrace(); @@ -226,7 +226,7 @@ public class VodConfig { private void initLive(JsonObject object) { Config temp = Config.find(config, 1).save(); boolean sync = LiveConfig.get().needSync(config.getUrl()); - if (sync) LiveConfig.get().clear().config(temp.update()).parse(object); + if (sync) LiveConfig.get().clear().config(temp).parse(object); } public List getSites() { diff --git a/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java index bceda35d4..eb960a6f0 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java @@ -16,6 +16,7 @@ import androidx.annotation.Nullable; import com.bumptech.glide.Glide; import com.bumptech.glide.RequestBuilder; import com.bumptech.glide.load.DataSource; +import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.engine.GlideException; import com.bumptech.glide.load.model.GlideUrl; import com.bumptech.glide.load.model.LazyHeaders; @@ -71,7 +72,7 @@ public class ImgUtil { if (!vod) view.setVisibility(TextUtils.isEmpty(url) ? View.GONE : View.VISIBLE); if (TextUtils.isEmpty(url) || failed.contains(url)) view.setImageDrawable(getTextDrawable(text, vod)); else try { - RequestBuilder builder = Glide.with(view).load(getUrl(url)).listener(getListener(text, url, view, vod)); + RequestBuilder builder = Glide.with(view).load(getUrl(url)).diskCacheStrategy(DiskCacheStrategy.RESOURCE).listener(getListener(text, url, view, vod)); if (vod) builder.centerCrop().into(view); else builder.fitCenter().into(view); } catch (Throwable e) { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HomeActivity.java index 029fb0bc8..93ed2cb9b 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HomeActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HomeActivity.java @@ -73,7 +73,6 @@ public class HomeActivity extends BaseActivity implements NavigationBarView.OnIt @Override protected void initView(Bundle savedInstanceState) { orientation = getResources().getConfiguration().orientation; - PermissionUtil.requestNotify(this); initFragment(savedInstanceState); Updater.create().start(this); Server.get().start(); @@ -126,6 +125,7 @@ public class HomeActivity extends BaseActivity implements NavigationBarView.OnIt @Override public void success() { + PermissionUtil.requestNotify(getActivity()); checkAction(getIntent()); RefreshEvent.config(); RefreshEvent.video(); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java index 2e2907174..32ebf3414 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java @@ -2,7 +2,6 @@ package com.fongmi.android.tv.ui.base; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; -import android.app.Activity; import android.graphics.Color; import android.os.Build; import android.os.Bundle; @@ -16,6 +15,7 @@ import androidx.activity.EdgeToEdge; import androidx.activity.OnBackPressedCallback; import androidx.activity.SystemBarStyle; import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.FragmentActivity; import androidx.viewbinding.ViewBinding; import com.fongmi.android.tv.ui.custom.CustomWallView; @@ -49,7 +49,7 @@ public abstract class BaseActivity extends AppCompatActivity { ((ViewGroup) findViewById(android.R.id.content)).addView(new CustomWallView(this, null), 0, new ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT)); } - protected Activity getActivity() { + protected FragmentActivity getActivity() { return this; } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java index 2518b8d5d..fe0087897 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java @@ -198,6 +198,16 @@ public class VodFragment extends BaseFragment implements ConfigCallback, SiteCal mBinding.progress.getRoot().setVisibility(View.GONE); } + private void hideContent() { + mBinding.type.setVisibility(View.INVISIBLE); + mBinding.pager.setVisibility(View.INVISIBLE); + } + + private void showContent() { + mBinding.type.setVisibility(View.VISIBLE); + mBinding.pager.setVisibility(View.VISIBLE); + } + private void homeContent() { showProgress(); setFabVisible(0); @@ -248,13 +258,14 @@ public class VodFragment extends BaseFragment implements ConfigCallback, SiteCal @Override public void setConfig(Config config) { - Notify.progress(requireActivity()); + hideContent(); + showProgress(); VodConfig.load(config, new Callback() { @Override public void success() { RefreshEvent.config(); RefreshEvent.video(); - Notify.dismiss(); + showContent(); } @Override