From f64da0aaec4221a726edcee33f00a5792e3fca5d Mon Sep 17 00:00:00 2001 From: lihongwei Date: Fri, 9 May 2025 16:07:11 +0800 Subject: [PATCH] =?UTF-8?q?V1.0.0=EF=BC=883=EF=BC=89=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=BD=91=E7=BB=9C=E9=87=8D=E6=96=B0=E8=BF=9E=E6=8E=A5=E6=8C=89?= =?UTF-8?q?=E9=92=AE=EF=BC=8C=E7=89=88=E6=9C=AC=E4=BB=A3=E7=A0=81=E5=8A=A0?= =?UTF-8?q?=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 2 +- .../ui/activity/DynamicActivity.java | 27 ++++++++++++++-- app/src/main/res/layout/activity_dynamic.xml | 31 +++++++++++++++++++ 3 files changed, 57 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 23114bb..2ceb6cc 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,7 +14,7 @@ android { applicationId = "com.live.dynamicwallpaper" minSdk = 23 targetSdk = 34 - versionCode = 2 + versionCode = 3 versionName = "1.0.0" setProperty( "archivesBaseName", diff --git a/app/src/main/java/com/live/dynamicwallpaper/ui/activity/DynamicActivity.java b/app/src/main/java/com/live/dynamicwallpaper/ui/activity/DynamicActivity.java index 4c6957a..e3d724a 100644 --- a/app/src/main/java/com/live/dynamicwallpaper/ui/activity/DynamicActivity.java +++ b/app/src/main/java/com/live/dynamicwallpaper/ui/activity/DynamicActivity.java @@ -65,6 +65,12 @@ public class DynamicActivity extends AppCompatActivity { viewModel = new ViewModelProvider(this).get(DynamicViewModel.class); String format = contentData.getWallpaperType() == 2 ? "ViewShiftLive" : "ViewLive"; + downloadVideo(resourceId, imagePath, format); + + observeFavoriteState(); + } + + private void downloadVideo(int resourceId, String imagePath, String format) { if (contentData.getWallpaperPath().isEmpty()) { mediaFetcher.fetchVideoFile(this, resourceId, imagePath, format, new OnDownloadCallback() { @Override @@ -74,13 +80,14 @@ public class DynamicActivity extends AppCompatActivity { viewModel.update(contentData); prepareVideoPlayback(); hideLoading(); + hideRetry(); } @Override public void onFailure(Exception e) { if (ui == null) return; hideLoading(); - Toast.makeText(DynamicActivity.this, "Download error", Toast.LENGTH_SHORT).show(); + showRetry(); Log.e("LivePreview", "Media fetch failed", e); } @@ -95,9 +102,25 @@ public class DynamicActivity extends AppCompatActivity { } else { prepareVideoPlayback(); hideLoading(); + hideRetry(); } + } - observeFavoriteState(); + private void showRetry() { + if (ui == null) return; + ui.errorContainer.setVisibility(View.VISIBLE); + ui.retryButton.setOnClickListener(v -> { + ui.errorContainer.setVisibility(View.GONE); + showLoading(); + downloadVideo(contentData.getFlowId(), contentData.getImage(), + contentData.getWallpaperType() == 2 ? "ViewShiftLive" : "ViewLive"); + }); + } + + private void hideRetry() { + if (ui != null) { + ui.errorContainer.setVisibility(View.GONE); + } } private void bindListeners() { diff --git a/app/src/main/res/layout/activity_dynamic.xml b/app/src/main/res/layout/activity_dynamic.xml index 0147291..d45deac 100644 --- a/app/src/main/res/layout/activity_dynamic.xml +++ b/app/src/main/res/layout/activity_dynamic.xml @@ -123,4 +123,35 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + +