diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/WallConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/WallConfig.java index 2f9fc7b02..bfc633663 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/WallConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/WallConfig.java @@ -4,19 +4,21 @@ import android.graphics.Bitmap; import android.text.TextUtils; import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.fongmi.android.tv.App; import com.fongmi.android.tv.R; import com.fongmi.android.tv.Setting; import com.fongmi.android.tv.bean.Config; import com.fongmi.android.tv.event.RefreshEvent; import com.fongmi.android.tv.impl.Callback; +import com.fongmi.android.tv.utils.Download; import com.fongmi.android.tv.utils.FileUtil; import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.ResUtil; import com.fongmi.android.tv.utils.UrlUtil; -import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Path; +import java.io.File; import java.io.FileOutputStream; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -76,12 +78,9 @@ public class WallConfig { private void loadConfig(Callback callback) { try { - byte[] data = OkHttp.bytes(UrlUtil.convert(getUrl())); - if (data.length == 0) throw new RuntimeException(); - Path.write(FileUtil.getWall(0), data); - createSnapshot(data); - config.update(); + download(); refresh(0); + config.update(); App.post(callback::success); } catch (Throwable e) { if (TextUtils.isEmpty(config.getUrl())) App.post(() -> callback.error("")); @@ -90,8 +89,12 @@ public class WallConfig { } } - private void createSnapshot(byte[] data) throws Exception { - Bitmap bitmap = Glide.with(App.get()).asBitmap().load(data).override(ResUtil.getScreenWidth(), ResUtil.getScreenHeight()).submit().get(); + private void download() throws Exception { + File file = FileUtil.getWall(0); + if (getUrl().startsWith("file")) Path.copy(Path.local(getUrl()), file); + else Download.create(UrlUtil.convert(getUrl()), file).start(); + if (file.length() == 0) throw new RuntimeException(); + Bitmap bitmap = Glide.with(App.get()).asBitmap().load(file).override(ResUtil.getScreenWidth(), ResUtil.getScreenHeight()).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE).submit().get(); try (FileOutputStream fos = new FileOutputStream(FileUtil.getWallCache())) { bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos); }