Finalize 2.0 version

This commit is contained in:
topjohnwu
2016-08-25 18:08:07 +08:00
parent 3e97d29bcf
commit dc06a132bc
11 changed files with 232 additions and 248 deletions

View File

@@ -17,10 +17,9 @@ import android.view.ViewGroup;
import android.widget.ProgressBar;
import com.topjohnwu.magisk.module.Module;
import com.topjohnwu.magisk.utils.Shell;
import com.topjohnwu.magisk.utils.Utils;
import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -33,28 +32,22 @@ public class ModulesFragment extends Fragment {
private static final String MAGISK_PATH = "/magisk";
private static final String MAGISK_CACHE_PATH = "/cache/magisk";
// protected static List<Module> listModules = new ArrayList<>();
// protected static List<Module> listModulesCache = new ArrayList<>();
private static List<Module> listModules = new ArrayList<>();
private static List<Module> listModulesCache = new ArrayList<>();
public static loadModules loadMod;
@BindView(R.id.progressBar) ProgressBar progressBar;
@BindView(R.id.pager) ViewPager viewPager;
@BindView(R.id.tab_layout) TabLayout tabLayout;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// listModules.clear();
// listModulesCache.clear();
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.modules_fragment, container, false);
ButterKnife.bind(this, view);
new CheckFolders().execute();
new updateUI().execute();
setHasOptionsMenu(true);
return view;
@@ -70,10 +63,9 @@ public class ModulesFragment extends Fragment {
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.force_reload:
listModules.clear();
listModulesCache.clear();
new CheckFolders().execute();
loadMod = new loadModules();
loadMod.execute();
new updateUI().execute();
break;
}
@@ -84,7 +76,7 @@ public class ModulesFragment extends Fragment {
@Override
protected List<Module> listModules() {
return Utils.listModules;
return listModules;
}
}
@@ -93,18 +85,46 @@ public class ModulesFragment extends Fragment {
@Override
protected List<Module> listModules() {
return Utils.listModulesCache;
return listModulesCache;
}
}
private class CheckFolders extends AsyncTask<Void, Integer, Void> {
public static class loadModules extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
// Ensure initialize is done
listModules.clear();
listModulesCache.clear();
listModules.clear();
listModulesCache.clear();
List<String> magisk = Utils.getModList(MAGISK_PATH);
List<String> magiskCache = Utils.getModList(MAGISK_CACHE_PATH);
if (!magisk.isEmpty()) {
for (String mod : magisk) {
listModules.add(new Module(mod));
}
}
if (!magiskCache.isEmpty()) {
for (String mod : magiskCache) {
listModulesCache.add(new Module(mod));
}
}
return null;
}
}
private class updateUI extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
// Ensure loadMod is done
try {
Utils.initialize.get();
loadMod.get();
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}