From 4db644ffaf5b1e35661e47c4a1a07c9d8111ed9e Mon Sep 17 00:00:00 2001 From: dyjcow Date: Tue, 22 Nov 2022 20:40:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(*):=E4=B8=BB=E9=A1=B5=E8=BD=BD=E5=85=A5?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/home/activity/HomeActivity.java | 26 +++++++++++++++++-- .../module/home/presenter/HomePresenter.java | 3 ++- .../potatos/module/home/view/IHomeView.java | 2 ++ 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/qxy/potatos/module/home/activity/HomeActivity.java b/app/src/main/java/com/qxy/potatos/module/home/activity/HomeActivity.java index 7e7264b..5522f7d 100644 --- a/app/src/main/java/com/qxy/potatos/module/home/activity/HomeActivity.java +++ b/app/src/main/java/com/qxy/potatos/module/home/activity/HomeActivity.java @@ -15,6 +15,7 @@ import androidx.annotation.Nullable; import androidx.appcompat.widget.Toolbar; import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import androidx.work.ListenableWorker; import androidx.work.OneTimeWorkRequest; import androidx.work.WorkManager; @@ -51,7 +52,7 @@ import com.qxy.potatos.util.ActivityUtil; import com.qxy.potatos.util.DisplayUtil; - +import com.qxy.potatos.util.EmptyViewUtil; import com.qxy.potatos.util.LogUtil; import com.qxy.potatos.util.ToastUtil; import com.scwang.smart.refresh.footer.ClassicsFooter; @@ -294,7 +295,6 @@ public void showPersonalInfo(UserInfo userInfo) { public void showPersonalVideo(List videos, boolean isHasMore, long cursor) { this.isHasMore = isHasMore; this.cursor = cursor; - // TODO: 2022/11/21 改为不得重复创建 if (adapter == null){ adapter = new HomeAdapter(R.layout.reycylerview_item_home, list); adapter.addChildClickViewIds(R.id.home_item_imageView); @@ -378,6 +378,28 @@ public void startWork(long duration, @NonNull TimeUnit timeUnit, String tag, WorkManager.getInstance(this).enqueue(request); } + @Override public void setErrorView() { + RecyclerView recyclerView = getBinding().recyclerViewHome; + if (recyclerView.getLayoutManager() == null){ + recyclerView.setLayoutManager(new GridLayoutManager(this, 3)); + } + View emptyView = EmptyViewUtil.getErrorView(recyclerView); + if (mmkv.decodeBool(GlobalConstant.IS_LOGIN, false)){ + emptyView.setOnClickListener(v -> { + presenter.getPersonInfo(); + presenter.getPersonalVideoList(0); + }); + } + + if (adapter == null){ + adapter = new HomeAdapter(R.layout.reycylerview_item_home, null); + recyclerView.setAdapter(adapter); + }else { + adapter.setList(null); + } + adapter.setEmptyView(emptyView); + } + /** * 订阅的事件,当请求重新刷新clientToken的时候执行 * diff --git a/app/src/main/java/com/qxy/potatos/module/home/presenter/HomePresenter.java b/app/src/main/java/com/qxy/potatos/module/home/presenter/HomePresenter.java index 19bdd11..92f86ee 100644 --- a/app/src/main/java/com/qxy/potatos/module/home/presenter/HomePresenter.java +++ b/app/src/main/java/com/qxy/potatos/module/home/presenter/HomePresenter.java @@ -42,6 +42,7 @@ public void getPersonInfo() { isLogin = mmkv.decodeBool(GlobalConstant.IS_LOGIN, false); if (!isLogin) { RxToast.error("请先登录"); + baseView.setErrorView(); return; } HashMap map = new HashMap<>(); @@ -77,7 +78,7 @@ public void getPersonalVideoList(long cursor) { addDisposable(apiServer.GetMyVideos(access_token, openId, map), new BaseObserver>(baseView, false) { @Override public void onError(String msg) { - + baseView.setErrorView(); Toast.makeText((Context) baseView, msg, Toast.LENGTH_SHORT).show(); } diff --git a/app/src/main/java/com/qxy/potatos/module/home/view/IHomeView.java b/app/src/main/java/com/qxy/potatos/module/home/view/IHomeView.java index 6f05f1c..099b6b3 100644 --- a/app/src/main/java/com/qxy/potatos/module/home/view/IHomeView.java +++ b/app/src/main/java/com/qxy/potatos/module/home/view/IHomeView.java @@ -22,4 +22,6 @@ public interface IHomeView extends BaseView { void startWork(long duration, @NonNull TimeUnit timeUnit, String tag, @NonNull Class workerClass); + + void setErrorView(); }