Add fast scroll for lists
This commit is contained in:
parent
adf339deaa
commit
7114fd6c28
|
|
@ -80,5 +80,6 @@ dependencies {
|
||||||
implementation 'com.timehop.stickyheadersrecyclerview:library:0.4.3@aar'
|
implementation 'com.timehop.stickyheadersrecyclerview:library:0.4.3@aar'
|
||||||
implementation 'tech.rectifier.preferencex-android:preferencex-simplemenu:88f93154b2'
|
implementation 'tech.rectifier.preferencex-android:preferencex-simplemenu:88f93154b2'
|
||||||
implementation 'me.zhanghai.android.appiconloader:appiconloader-glide:1.2.0'
|
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'
|
compileOnly 'de.robv.android.xposed:api:82'
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,8 @@ import org.meowcat.edxposed.manager.adapters.CompatListAdapter;
|
||||||
import org.meowcat.edxposed.manager.databinding.ActivityBlackListBinding;
|
import org.meowcat.edxposed.manager.databinding.ActivityBlackListBinding;
|
||||||
import org.meowcat.edxposed.manager.util.LinearLayoutManagerFix;
|
import org.meowcat.edxposed.manager.util.LinearLayoutManagerFix;
|
||||||
|
|
||||||
|
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
|
||||||
|
|
||||||
public class BlackListActivity extends BaseActivity implements AppAdapter.Callback {
|
public class BlackListActivity extends BaseActivity implements AppAdapter.Callback {
|
||||||
private SearchView searchView;
|
private SearchView searchView;
|
||||||
private AppAdapter appAdapter;
|
private AppAdapter appAdapter;
|
||||||
|
|
@ -55,11 +57,15 @@ public class BlackListActivity extends BaseActivity implements AppAdapter.Callba
|
||||||
appAdapter.setHasStableIds(true);
|
appAdapter.setHasStableIds(true);
|
||||||
binding.recyclerView.setAdapter(appAdapter);
|
binding.recyclerView.setAdapter(appAdapter);
|
||||||
binding.recyclerView.setLayoutManager(new LinearLayoutManagerFix(this));
|
binding.recyclerView.setLayoutManager(new LinearLayoutManagerFix(this));
|
||||||
|
FastScrollerBuilder fastScrollerBuilder = new FastScrollerBuilder(binding.recyclerView);
|
||||||
if (!App.getPreferences().getBoolean("md2", false)) {
|
if (!App.getPreferences().getBoolean("md2", false)) {
|
||||||
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this,
|
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this,
|
||||||
DividerItemDecoration.VERTICAL);
|
DividerItemDecoration.VERTICAL);
|
||||||
binding.recyclerView.addItemDecoration(dividerItemDecoration);
|
binding.recyclerView.addItemDecoration(dividerItemDecoration);
|
||||||
|
} else {
|
||||||
|
fastScrollerBuilder.useMd2Style();
|
||||||
}
|
}
|
||||||
|
fastScrollerBuilder.build();
|
||||||
appAdapter.setCallback(this);
|
appAdapter.setCallback(this);
|
||||||
handler.postDelayed(runnable, 300);
|
handler.postDelayed(runnable, 300);
|
||||||
binding.swipeRefreshLayout.setOnRefreshListener(appAdapter::refresh);
|
binding.swipeRefreshLayout.setOnRefreshListener(appAdapter::refresh);
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,8 @@ import org.meowcat.edxposed.manager.util.RepoLoader;
|
||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
|
||||||
|
|
||||||
public class DownloadActivity extends BaseActivity implements RepoLoader.RepoListener, ModuleUtil.ModuleListener, SharedPreferences.OnSharedPreferenceChangeListener {
|
public class DownloadActivity extends BaseActivity implements RepoLoader.RepoListener, ModuleUtil.ModuleListener, SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
private DownloadsAdapter adapter;
|
private DownloadsAdapter adapter;
|
||||||
private String filterText;
|
private String filterText;
|
||||||
|
|
@ -104,11 +106,15 @@ public class DownloadActivity extends BaseActivity implements RepoLoader.RepoLis
|
||||||
headersDecor.invalidateHeaders();
|
headersDecor.invalidateHeaders();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
FastScrollerBuilder fastScrollerBuilder = new FastScrollerBuilder(binding.recyclerView);
|
||||||
if (!App.getPreferences().getBoolean("md2", false)) {
|
if (!App.getPreferences().getBoolean("md2", false)) {
|
||||||
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this,
|
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this,
|
||||||
DividerItemDecoration.VERTICAL);
|
DividerItemDecoration.VERTICAL);
|
||||||
binding.recyclerView.addItemDecoration(dividerItemDecoration);
|
binding.recyclerView.addItemDecoration(dividerItemDecoration);
|
||||||
|
} else {
|
||||||
|
fastScrollerBuilder.useMd2Style();
|
||||||
}
|
}
|
||||||
|
fastScrollerBuilder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ import org.meowcat.edxposed.manager.adapters.ScopeAdapter;
|
||||||
import org.meowcat.edxposed.manager.databinding.ActivityScopeListBinding;
|
import org.meowcat.edxposed.manager.databinding.ActivityScopeListBinding;
|
||||||
import org.meowcat.edxposed.manager.util.LinearLayoutManagerFix;
|
import org.meowcat.edxposed.manager.util.LinearLayoutManagerFix;
|
||||||
|
|
||||||
|
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
|
||||||
|
|
||||||
public class ModuleScopeActivity extends BaseActivity implements AppAdapter.Callback {
|
public class ModuleScopeActivity extends BaseActivity implements AppAdapter.Callback {
|
||||||
private SearchView searchView;
|
private SearchView searchView;
|
||||||
private ScopeAdapter appAdapter;
|
private ScopeAdapter appAdapter;
|
||||||
|
|
@ -51,11 +53,15 @@ public class ModuleScopeActivity extends BaseActivity implements AppAdapter.Call
|
||||||
appAdapter.setHasStableIds(true);
|
appAdapter.setHasStableIds(true);
|
||||||
binding.recyclerView.setAdapter(appAdapter);
|
binding.recyclerView.setAdapter(appAdapter);
|
||||||
binding.recyclerView.setLayoutManager(new LinearLayoutManagerFix(this));
|
binding.recyclerView.setLayoutManager(new LinearLayoutManagerFix(this));
|
||||||
|
FastScrollerBuilder fastScrollerBuilder = new FastScrollerBuilder(binding.recyclerView);
|
||||||
if (!App.getPreferences().getBoolean("md2", false)) {
|
if (!App.getPreferences().getBoolean("md2", false)) {
|
||||||
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this,
|
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this,
|
||||||
DividerItemDecoration.VERTICAL);
|
DividerItemDecoration.VERTICAL);
|
||||||
binding.recyclerView.addItemDecoration(dividerItemDecoration);
|
binding.recyclerView.addItemDecoration(dividerItemDecoration);
|
||||||
|
} else {
|
||||||
|
fastScrollerBuilder.useMd2Style();
|
||||||
}
|
}
|
||||||
|
fastScrollerBuilder.build();
|
||||||
appAdapter.setCallback(this);
|
appAdapter.setCallback(this);
|
||||||
handler.postDelayed(runnable, 300);
|
handler.postDelayed(runnable, 300);
|
||||||
binding.swipeRefreshLayout.setOnRefreshListener(() -> appAdapter.refresh());
|
binding.swipeRefreshLayout.setOnRefreshListener(() -> appAdapter.refresh());
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,8 @@ import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
|
||||||
|
|
||||||
import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS;
|
import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS;
|
||||||
|
|
||||||
public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleListener {
|
public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleListener {
|
||||||
|
|
@ -199,11 +201,15 @@ public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleLi
|
||||||
moduleUtil.addListener(this);
|
moduleUtil.addListener(this);
|
||||||
binding.recyclerView.setAdapter(adapter);
|
binding.recyclerView.setAdapter(adapter);
|
||||||
binding.recyclerView.setLayoutManager(new LinearLayoutManagerFix(this));
|
binding.recyclerView.setLayoutManager(new LinearLayoutManagerFix(this));
|
||||||
|
FastScrollerBuilder fastScrollerBuilder = new FastScrollerBuilder(binding.recyclerView);
|
||||||
if (!App.getPreferences().getBoolean("md2", false)) {
|
if (!App.getPreferences().getBoolean("md2", false)) {
|
||||||
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this,
|
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this,
|
||||||
DividerItemDecoration.VERTICAL);
|
DividerItemDecoration.VERTICAL);
|
||||||
binding.recyclerView.addItemDecoration(dividerItemDecoration);
|
binding.recyclerView.addItemDecoration(dividerItemDecoration);
|
||||||
|
} else {
|
||||||
|
fastScrollerBuilder.useMd2Style();
|
||||||
}
|
}
|
||||||
|
fastScrollerBuilder.build();
|
||||||
binding.swipeRefreshLayout.setOnRefreshListener(reloadModules::run);
|
binding.swipeRefreshLayout.setOnRefreshListener(reloadModules::run);
|
||||||
reloadModules.run();
|
reloadModules.run();
|
||||||
mSearchListener = new SearchView.OnQueryTextListener() {
|
mSearchListener = new SearchView.OnQueryTextListener() {
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,9 @@ import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
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) {
|
public RecyclerViewBugFixed(@NonNull Context context) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue