diff --git a/app/build.gradle b/app/build.gradle index 6229faf8f..2e624d8ca 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,6 +38,7 @@ dependencies { implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation 'androidx.room:room-runtime:2.4.2' + implementation 'com.github.androidprogresslayout:library:2.0.2@aar' implementation 'com.github.bumptech.glide:glide:4.13.2' implementation 'com.google.android.material:material:1.6.1' implementation 'com.google.android.exoplayer:exoplayer:2.18.0' diff --git a/app/src/main/java/com/fongmi/bear/ui/activity/HomeActivity.java b/app/src/main/java/com/fongmi/bear/ui/activity/HomeActivity.java index 8aa753ae2..dd1de8fb2 100644 --- a/app/src/main/java/com/fongmi/bear/ui/activity/HomeActivity.java +++ b/app/src/main/java/com/fongmi/bear/ui/activity/HomeActivity.java @@ -61,10 +61,14 @@ public class HomeActivity extends BaseActivity { private void setViewModel() { mSiteViewModel = new ViewModelProvider(this).get(SiteViewModel.class); - mSiteViewModel.mResult.observe(this, result -> mVodAdapter.addAll(result.getList())); + mSiteViewModel.mResult.observe(this, result -> { + mVodAdapter.addAll(result.getList()); + mBinding.updateLayout.showContent(); + }); } private void homeContent() { + mBinding.updateLayout.showProgress(); mSiteViewModel.homeContent(ApiConfig.get().getHome().getKey()); } diff --git a/app/src/main/java/com/fongmi/bear/utils/Utils.java b/app/src/main/java/com/fongmi/bear/utils/Utils.java index 1e047082a..03ef3a51f 100644 --- a/app/src/main/java/com/fongmi/bear/utils/Utils.java +++ b/app/src/main/java/com/fongmi/bear/utils/Utils.java @@ -13,6 +13,7 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.load.resource.bitmap.CenterCrop; import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.fongmi.bear.App; +import com.fongmi.bear.R; import com.google.android.exoplayer2.util.Util; public class Utils { @@ -62,7 +63,7 @@ public class Utils { } public static void loadImage(String url, ImageView view) { - Glide.with(App.get()).load(url).transform(new CenterCrop(), new RoundedCorners(ResUtil.dp2px(8))).into(view); + Glide.with(App.get()).load(url).placeholder(R.drawable.ic_img_loading).error(R.drawable.ic_img_error).transform(new CenterCrop(), new RoundedCorners(ResUtil.dp2px(8))).into(view); } public static boolean hasPIP() { diff --git a/app/src/main/res/drawable-hdpi/ic_img_error.png b/app/src/main/res/drawable-hdpi/ic_img_error.png new file mode 100644 index 000000000..dcd7f8b61 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_img_error.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_img_loading.png b/app/src/main/res/drawable-hdpi/ic_img_loading.png new file mode 100644 index 000000000..e20e1ec18 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_img_loading.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_img_error.png b/app/src/main/res/drawable-mdpi/ic_img_error.png new file mode 100644 index 000000000..6fd325f0e Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_img_error.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_img_loading.png b/app/src/main/res/drawable-mdpi/ic_img_loading.png new file mode 100644 index 000000000..e5cbfa38d Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_img_loading.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_img_error.png b/app/src/main/res/drawable-xhdpi/ic_img_error.png new file mode 100644 index 000000000..b317b1a79 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_img_error.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_img_loading.png b/app/src/main/res/drawable-xhdpi/ic_img_loading.png new file mode 100644 index 000000000..7e3d947d1 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_img_loading.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_img_error.png b/app/src/main/res/drawable-xxhdpi/ic_img_error.png new file mode 100644 index 000000000..cb954a44d Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_img_error.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_img_loading.png b/app/src/main/res/drawable-xxhdpi/ic_img_loading.png new file mode 100644 index 000000000..079f67365 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_img_loading.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_img_error.png b/app/src/main/res/drawable-xxxhdpi/ic_img_error.png new file mode 100644 index 000000000..3cf8315d3 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_img_error.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_img_loading.png b/app/src/main/res/drawable-xxxhdpi/ic_img_loading.png new file mode 100644 index 000000000..04af817a7 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_img_loading.png differ diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml index 5a47e895c..3b9fe4ed5 100644 --- a/app/src/main/res/layout/activity_home.xml +++ b/app/src/main/res/layout/activity_home.xml @@ -1,7 +1,8 @@ + android:layout_height="match_parent" + android:fillViewport="true"> - + android:layout_height="match_parent" + android:layout_marginTop="16dp"> + + + \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index c4de59805..78efc1335 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,6 +2,7 @@ pluginManagement { repositories { gradlePluginPortal() mavenCentral() + jcenter() google() } } @@ -9,6 +10,7 @@ dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { mavenCentral() + jcenter() google() } }