Don't remove apps from scope list if it's filtered

This commit is contained in:
tehcneko 2021-01-29 20:09:10 +08:00
parent d2ea64d10a
commit 4069effea8
4 changed files with 9 additions and 18 deletions

View File

@ -47,7 +47,7 @@ public class AppAdapter extends RecyclerView.Adapter<AppAdapter.ViewHolder> impl
protected AppListActivity activity; protected AppListActivity activity;
protected List<PackageInfo> fullList, showList; protected List<PackageInfo> fullList, showList;
private final DateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); private final DateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
public List<String> checkedList; private List<String> checkedList;
private final PackageManager pm; private final PackageManager pm;
private final ApplicationFilter filter; private final ApplicationFilter filter;
private final SharedPreferences preferences; private final SharedPreferences preferences;

View File

@ -1,12 +1,9 @@
package io.github.lsposed.manager.adapters; package io.github.lsposed.manager.adapters;
import android.content.pm.PackageInfo;
import android.util.Log;
import android.widget.CompoundButton; import android.widget.CompoundButton;
import com.google.android.material.snackbar.Snackbar; import com.google.android.material.snackbar.Snackbar;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import io.github.lsposed.manager.R; import io.github.lsposed.manager.R;
@ -28,7 +25,6 @@ public class ScopeAdapter extends AppAdapter {
masterSwitch.setOnCheckedChangedListener(new MasterSwitch.OnCheckedChangeListener() { masterSwitch.setOnCheckedChangedListener(new MasterSwitch.OnCheckedChangeListener() {
@Override @Override
public void onCheckedChanged(boolean checked) { public void onCheckedChanged(boolean checked) {
Log.e("Test", checked + "");
enabled = checked; enabled = checked;
ModuleUtil.getInstance().setModuleEnabled(modulePackageName, enabled); ModuleUtil.getInstance().setModuleEnabled(modulePackageName, enabled);
notifyDataSetChanged(); notifyDataSetChanged();
@ -39,13 +35,7 @@ public class ScopeAdapter extends AppAdapter {
@Override @Override
public List<String> generateCheckedList() { public List<String> generateCheckedList() {
AppHelper.makeSurePath(); AppHelper.makeSurePath();
List<String> scopeList = AppHelper.getScopeList(modulePackageName); checkedList = AppHelper.getScopeList(modulePackageName);
List<String> list = new ArrayList<>();
for (PackageInfo info : fullList) {
list.add(info.packageName);
}
scopeList.retainAll(list);
checkedList = scopeList;
enabled = ModuleUtil.getInstance().isModuleEnabled(modulePackageName); enabled = ModuleUtil.getInstance().isModuleEnabled(modulePackageName);
activity.runOnUiThread(() -> masterSwitch.setChecked(enabled)); activity.runOnUiThread(() -> masterSwitch.setChecked(enabled));
return checkedList; return checkedList;

View File

@ -21,6 +21,7 @@ import com.google.android.material.snackbar.Snackbar;
import io.github.lsposed.manager.R; import io.github.lsposed.manager.R;
import io.github.lsposed.manager.adapters.AppAdapter; import io.github.lsposed.manager.adapters.AppAdapter;
import io.github.lsposed.manager.adapters.AppHelper;
import io.github.lsposed.manager.adapters.ScopeAdapter; import io.github.lsposed.manager.adapters.ScopeAdapter;
import io.github.lsposed.manager.adapters.WhiteListAdapter; import io.github.lsposed.manager.adapters.WhiteListAdapter;
import io.github.lsposed.manager.databinding.ActivityAppListBinding; import io.github.lsposed.manager.databinding.ActivityAppListBinding;
@ -120,7 +121,7 @@ public class AppListActivity extends BaseActivity {
@Override @Override
public void onBackPressed() { public void onBackPressed() {
if (searchView.isIconified()) { if (searchView.isIconified()) {
if (binding.masterSwitch.isChecked() && appAdapter.checkedList.isEmpty()) { if (binding.masterSwitch.isChecked() && AppHelper.getScopeList(modulePackageName).isEmpty()) {
new MaterialAlertDialogBuilder(this) new MaterialAlertDialogBuilder(this)
.setMessage(R.string.no_scope_selected) .setMessage(R.string.no_scope_selected)
.setPositiveButton(android.R.string.cancel, null) .setPositiveButton(android.R.string.cancel, null)