Search in sources :

Example 1 with Module

use of com.topjohnwu.magisk.container.Module in project MagiskManager by topjohnwu.

the class ModulesAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
    Context context = holder.itemView.getContext();
    final Module module = mList.get(position);
    String version = module.getVersion();
    String author = module.getAuthor();
    String description = module.getDescription();
    String noInfo = context.getString(R.string.no_info_provided);
    holder.title.setText(module.getName());
    holder.versionName.setText(TextUtils.isEmpty(version) ? noInfo : version);
    holder.author.setText(TextUtils.isEmpty(author) ? noInfo : context.getString(R.string.author, author));
    holder.description.setText(TextUtils.isEmpty(description) ? noInfo : description);
    holder.checkBox.setOnCheckedChangeListener(null);
    holder.checkBox.setChecked(module.isEnabled());
    holder.checkBox.setOnCheckedChangeListener((v, isChecked) -> {
        int snack;
        if (isChecked) {
            module.removeDisableFile();
            snack = R.string.disable_file_removed;
        } else {
            module.createDisableFile();
            snack = R.string.disable_file_created;
        }
        SnackbarMaker.make(holder.itemView, snack, Snackbar.LENGTH_SHORT).show();
    });
    holder.delete.setOnClickListener(v -> {
        boolean removed = module.willBeRemoved();
        int snack;
        if (removed) {
            module.deleteRemoveFile();
            snack = R.string.remove_file_deleted;
        } else {
            module.createRemoveFile();
            snack = R.string.remove_file_created;
        }
        SnackbarMaker.make(holder.itemView, snack, Snackbar.LENGTH_SHORT).show();
        updateDeleteButton(holder, module);
    });
    if (module.isUpdated()) {
        holder.notice.setVisibility(View.VISIBLE);
        holder.notice.setText(R.string.update_file_created);
        holder.delete.setEnabled(false);
    } else {
        updateDeleteButton(holder, module);
    }
}
Also used : Context(android.content.Context) Module(com.topjohnwu.magisk.container.Module)

Example 2 with Module

use of com.topjohnwu.magisk.container.Module in project MagiskManager by topjohnwu.

the class LoadModules method doInBackground.

@Override
protected Void doInBackground(Void... voids) {
    MagiskManager mm = MagiskManager.get();
    mm.moduleMap = new ValueSortedMap<>();
    for (String path : getModList()) {
        Module module = new Module(path);
        mm.moduleMap.put(module.getId(), module);
    }
    return null;
}
Also used : MagiskManager(com.topjohnwu.magisk.MagiskManager) Module(com.topjohnwu.magisk.container.Module)

Example 3 with Module

use of com.topjohnwu.magisk.container.Module in project MagiskManager by topjohnwu.

the class ReposAdapter method filter.

public void filter(String s) {
    List<Repo> updates = new ArrayList<>();
    List<Repo> installed = new ArrayList<>();
    List<Repo> others = new ArrayList<>();
    repoPairs.clear();
    while (repoCursor.moveToNext()) {
        Repo repo = new Repo(repoCursor);
        if (repo.getName().toLowerCase().contains(s.toLowerCase()) || repo.getAuthor().toLowerCase().contains(s.toLowerCase()) || repo.getDescription().toLowerCase().contains(s.toLowerCase())) {
            // Passed the repoFilter
            Module module = moduleMap.get(repo.getId());
            if (module != null) {
                if (repo.getVersionCode() > module.getVersionCode()) {
                    // Updates
                    updates.add(repo);
                } else {
                    installed.add(repo);
                }
            } else {
                others.add(repo);
            }
        }
    }
    repoCursor.moveToFirst();
    if (!updates.isEmpty())
        repoPairs.add(new Pair<>(UPDATES, updates));
    if (!installed.isEmpty())
        repoPairs.add(new Pair<>(INSTALLED, installed));
    if (!others.isEmpty())
        repoPairs.add(new Pair<>(OTHERS, others));
    notifyDataSetChanged();
}
Also used : Repo(com.topjohnwu.magisk.container.Repo) ArrayList(java.util.ArrayList) Module(com.topjohnwu.magisk.container.Module) Pair(android.util.Pair)

Aggregations

Module (com.topjohnwu.magisk.container.Module)3 Context (android.content.Context)1 Pair (android.util.Pair)1 MagiskManager (com.topjohnwu.magisk.MagiskManager)1 Repo (com.topjohnwu.magisk.container.Repo)1 ArrayList (java.util.ArrayList)1