Use cache for image

pull/605/head
jhengazuki 5 months ago
parent 8a8fc5ddcc
commit e32275fe0e
  1. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/base/BaseActivity.java
  3. 2
      app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java
  4. 4
      app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java
  5. 3
      app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java
  6. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  7. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java
  8. 15
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.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();

@ -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;
}

@ -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);

@ -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<Site> getSites() {

@ -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<Drawable> builder = Glide.with(view).load(getUrl(url)).listener(getListener(text, url, view, vod));
RequestBuilder<Drawable> 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) {

@ -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();

@ -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;
}

@ -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

Loading…
Cancel
Save