From 4fb5bea9f0b5942b96dd316e066fac311549ba25 Mon Sep 17 00:00:00 2001 From: tehcneko <7764726+tehcneko@users.noreply.github.com> Date: Fri, 12 Feb 2021 22:29:55 +0800 Subject: [PATCH] [app] Add loading indicator to repo --- .../manager/ui/activity/AppListActivity.java | 3 +- .../manager/ui/activity/RepoActivity.java | 21 ++++++++++-- app/src/main/res/drawable/ic_refresh.xml | 4 +-- app/src/main/res/layout/activity_list.xml | 10 ++++++ app/src/main/res/menu/menu_repo.xml | 34 +++++++++++++++++++ app/src/main/res/values/strings.xml | 1 + 6 files changed, 67 insertions(+), 6 deletions(-) create mode 100644 app/src/main/res/menu/menu_repo.xml diff --git a/app/src/main/java/io/github/lsposed/manager/ui/activity/AppListActivity.java b/app/src/main/java/io/github/lsposed/manager/ui/activity/AppListActivity.java index d5848fe5..6f6709f8 100644 --- a/app/src/main/java/io/github/lsposed/manager/ui/activity/AppListActivity.java +++ b/app/src/main/java/io/github/lsposed/manager/ui/activity/AppListActivity.java @@ -7,6 +7,7 @@ import android.os.Handler; import android.os.Looper; import android.view.Menu; import android.view.MenuItem; +import android.view.View; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; @@ -146,7 +147,7 @@ public class AppListActivity extends BaseActivity { } public void onDataReady() { - handler.post(() -> binding.progress.hide()); + handler.post(() -> binding.progress.setIndeterminate(false)); String queryStr = searchView != null ? searchView.getQuery().toString() : ""; runOnUiThread(() -> scopeAdapter.getFilter().filter(queryStr)); } diff --git a/app/src/main/java/io/github/lsposed/manager/ui/activity/RepoActivity.java b/app/src/main/java/io/github/lsposed/manager/ui/activity/RepoActivity.java index 73901dc5..e1b84d51 100644 --- a/app/src/main/java/io/github/lsposed/manager/ui/activity/RepoActivity.java +++ b/app/src/main/java/io/github/lsposed/manager/ui/activity/RepoActivity.java @@ -26,6 +26,7 @@ import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.Menu; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Filter; @@ -75,6 +76,7 @@ public class RepoActivity extends BaseActivity implements RepoLoader.Listener { binding.recyclerView.setAdapter(adapter); binding.recyclerView.setHasFixedSize(true); binding.recyclerView.setLayoutManager(new LinearLayoutManagerFix(this)); + binding.progress.setVisibilityAfterHide(View.GONE); RecyclerViewKt.addFastScroller(binding.recyclerView, binding.recyclerView); RecyclerViewKt.fixEdgeEffect(binding.recyclerView, false, true); repoLoader.addListener(this); @@ -107,12 +109,25 @@ public class RepoActivity extends BaseActivity implements RepoLoader.Listener { @Override public void repoLoaded() { - runOnUiThread(() -> adapter.setData(repoLoader.getOnlineModules())); + runOnUiThread(() -> { + binding.progress.hide(); + adapter.setData(repoLoader.getOnlineModules()); + }); + } + + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + int itemId = item.getItemId(); + if (itemId == R.id.menu_refresh) { + binding.progress.show(); + repoLoader.loadRemoteData(); + } + return super.onOptionsItemSelected(item); } @Override public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.menu_modules, menu); + getMenuInflater().inflate(R.menu.menu_repo, menu); searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); searchView.setOnQueryTextListener(searchListener); return super.onCreateOptionsMenu(menu); @@ -168,7 +183,7 @@ public class RepoActivity extends BaseActivity implements RepoLoader.Listener { public void initData() { Collection modules = repoLoader.getOnlineModules(); if (!repoLoader.isRepoLoaded()) { - //binding.swipeRefreshLayout.setRefreshing(true); + binding.progress.show(); repoLoader.loadRemoteData(); } else { adapter.setData(modules); diff --git a/app/src/main/res/drawable/ic_refresh.xml b/app/src/main/res/drawable/ic_refresh.xml index 0d768f68..566500b8 100644 --- a/app/src/main/res/drawable/ic_refresh.xml +++ b/app/src/main/res/drawable/ic_refresh.xml @@ -1,9 +1,9 @@ + android:viewportHeight="24" + android:tint="?attr/colorControlNormal"> diff --git a/app/src/main/res/layout/activity_list.xml b/app/src/main/res/layout/activity_list.xml index be1a89d2..7d4ac2c4 100644 --- a/app/src/main/res/layout/activity_list.xml +++ b/app/src/main/res/layout/activity_list.xml @@ -44,6 +44,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 812aeebe..76e1c4f7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -156,6 +156,7 @@ Collaborators Assets Open in browser + Refresh Network DNS over HTTPS Workaround DNS poisoning in some nations