Add fast scroll for lists

This commit is contained in:
NekoInverter 2020-11-25 16:02:05 +08:00
parent adf339deaa
commit 7114fd6c28
No known key found for this signature in database
GPG Key ID: 280D6CCCF95715F9
6 changed files with 28 additions and 1 deletions

View File

@ -80,5 +80,6 @@ dependencies {
implementation 'com.timehop.stickyheadersrecyclerview:library:0.4.3@aar'
implementation 'tech.rectifier.preferencex-android:preferencex-simplemenu:88f93154b2'
implementation 'me.zhanghai.android.appiconloader:appiconloader-glide:1.2.0'
implementation 'me.zhanghai.android.fastscroll:library:1.1.5'
compileOnly 'de.robv.android.xposed:api:82'
}

View File

@ -22,6 +22,8 @@ import org.meowcat.edxposed.manager.adapters.CompatListAdapter;
import org.meowcat.edxposed.manager.databinding.ActivityBlackListBinding;
import org.meowcat.edxposed.manager.util.LinearLayoutManagerFix;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
public class BlackListActivity extends BaseActivity implements AppAdapter.Callback {
private SearchView searchView;
private AppAdapter appAdapter;
@ -55,11 +57,15 @@ public class BlackListActivity extends BaseActivity implements AppAdapter.Callba
appAdapter.setHasStableIds(true);
binding.recyclerView.setAdapter(appAdapter);
binding.recyclerView.setLayoutManager(new LinearLayoutManagerFix(this));
FastScrollerBuilder fastScrollerBuilder = new FastScrollerBuilder(binding.recyclerView);
if (!App.getPreferences().getBoolean("md2", false)) {
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this,
DividerItemDecoration.VERTICAL);
binding.recyclerView.addItemDecoration(dividerItemDecoration);
} else {
fastScrollerBuilder.useMd2Style();
}
fastScrollerBuilder.build();
appAdapter.setCallback(this);
handler.postDelayed(runnable, 300);
binding.swipeRefreshLayout.setOnRefreshListener(appAdapter::refresh);

View File

@ -41,6 +41,8 @@ import org.meowcat.edxposed.manager.util.RepoLoader;
import java.text.DateFormat;
import java.util.Date;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
public class DownloadActivity extends BaseActivity implements RepoLoader.RepoListener, ModuleUtil.ModuleListener, SharedPreferences.OnSharedPreferenceChangeListener {
private DownloadsAdapter adapter;
private String filterText;
@ -104,11 +106,15 @@ public class DownloadActivity extends BaseActivity implements RepoLoader.RepoLis
headersDecor.invalidateHeaders();
}
});
FastScrollerBuilder fastScrollerBuilder = new FastScrollerBuilder(binding.recyclerView);
if (!App.getPreferences().getBoolean("md2", false)) {
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this,
DividerItemDecoration.VERTICAL);
binding.recyclerView.addItemDecoration(dividerItemDecoration);
} else {
fastScrollerBuilder.useMd2Style();
}
fastScrollerBuilder.build();
}

View File

@ -18,6 +18,8 @@ import org.meowcat.edxposed.manager.adapters.ScopeAdapter;
import org.meowcat.edxposed.manager.databinding.ActivityScopeListBinding;
import org.meowcat.edxposed.manager.util.LinearLayoutManagerFix;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
public class ModuleScopeActivity extends BaseActivity implements AppAdapter.Callback {
private SearchView searchView;
private ScopeAdapter appAdapter;
@ -51,11 +53,15 @@ public class ModuleScopeActivity extends BaseActivity implements AppAdapter.Call
appAdapter.setHasStableIds(true);
binding.recyclerView.setAdapter(appAdapter);
binding.recyclerView.setLayoutManager(new LinearLayoutManagerFix(this));
FastScrollerBuilder fastScrollerBuilder = new FastScrollerBuilder(binding.recyclerView);
if (!App.getPreferences().getBoolean("md2", false)) {
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this,
DividerItemDecoration.VERTICAL);
binding.recyclerView.addItemDecoration(dividerItemDecoration);
} else {
fastScrollerBuilder.useMd2Style();
}
fastScrollerBuilder.build();
appAdapter.setCallback(this);
handler.postDelayed(runnable, 300);
binding.swipeRefreshLayout.setOnRefreshListener(() -> appAdapter.refresh());

View File

@ -58,6 +58,8 @@ import java.util.Map;
import java.util.Objects;
import java.util.Set;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS;
public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleListener {
@ -199,11 +201,15 @@ public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleLi
moduleUtil.addListener(this);
binding.recyclerView.setAdapter(adapter);
binding.recyclerView.setLayoutManager(new LinearLayoutManagerFix(this));
FastScrollerBuilder fastScrollerBuilder = new FastScrollerBuilder(binding.recyclerView);
if (!App.getPreferences().getBoolean("md2", false)) {
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this,
DividerItemDecoration.VERTICAL);
binding.recyclerView.addItemDecoration(dividerItemDecoration);
} else {
fastScrollerBuilder.useMd2Style();
}
fastScrollerBuilder.build();
binding.swipeRefreshLayout.setOnRefreshListener(reloadModules::run);
reloadModules.run();
mSearchListener = new SearchView.OnQueryTextListener() {

View File

@ -9,7 +9,9 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
public class RecyclerViewBugFixed extends RecyclerView {
import me.zhanghai.android.fastscroll.FixItemDecorationRecyclerView;
public class RecyclerViewBugFixed extends FixItemDecorationRecyclerView {
public RecyclerViewBugFixed(@NonNull Context context) {