diff --git a/app/src/main/java/com/topjohnwu/magisk/ModulesAdapter.java b/app/src/main/java/com/topjohnwu/magisk/ModulesAdapter.java index 28d66304c..36085bf09 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ModulesAdapter.java +++ b/app/src/main/java/com/topjohnwu/magisk/ModulesAdapter.java @@ -136,7 +136,6 @@ public class ModulesAdapter extends RecyclerView.Adapter { if (view.getId() == holder.changeLog.getId()) { - new WebWindow("Changelog", module.getmLogUrl(), context); } if (view.getId() == holder.authorLink.getId()) { diff --git a/app/src/main/java/com/topjohnwu/magisk/ModulesFragment.java b/app/src/main/java/com/topjohnwu/magisk/ModulesFragment.java index 730d7a220..4c7cee645 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ModulesFragment.java +++ b/app/src/main/java/com/topjohnwu/magisk/ModulesFragment.java @@ -74,32 +74,30 @@ public class ModulesFragment extends Fragment { protected void onPostExecute(Void v) { super.onPostExecute(v); - if (listModules().size() == 0) { + if (listModules.size() == 0) { emptyTv.setVisibility(View.VISIBLE); recyclerView.setVisibility(View.GONE); } else { recyclerView.setVisibility(View.VISIBLE); } - recyclerView.setAdapter(new ModulesAdapter(listModules(), (chk, position) -> { + recyclerView.setAdapter(new ModulesAdapter(listModules, (chk, position) -> { // On Checkbox change listener CheckBox chbox = (CheckBox) chk; if (!chbox.isChecked()) { - listModules().get(position).createDisableFile(); + listModules.get(position).createDisableFile(); Snackbar.make(chk, R.string.disable_file_created, Snackbar.LENGTH_SHORT).show(); } else { - listModules().get(position).removeDisableFile(); + listModules.get(position).removeDisableFile(); Snackbar.make(chk, R.string.disable_file_removed, Snackbar.LENGTH_SHORT).show(); } }, (deleteBtn, position) -> { // On delete button click listener - - listModules().get(position).createRemoveFile(); + listModules.get(position).createRemoveFile(); Snackbar.make(deleteBtn, R.string.remove_file_created, Snackbar.LENGTH_SHORT).show(); }, (undeleteBtn, position) -> { // On undelete button click listener - - listModules().get(position).deleteRemoveFile(); + listModules.get(position).deleteRemoveFile(); Snackbar.make(undeleteBtn, R.string.remove_file_deleted, Snackbar.LENGTH_SHORT).show(); })); @@ -109,10 +107,4 @@ public class ModulesFragment extends Fragment { } } - -// protected abstract List listModules(); - protected List listModules() { - return listModules; - } - } diff --git a/app/src/main/java/com/topjohnwu/magisk/ReposFragment.java b/app/src/main/java/com/topjohnwu/magisk/ReposFragment.java index a807f289a..0342c2dc4 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ReposFragment.java +++ b/app/src/main/java/com/topjohnwu/magisk/ReposFragment.java @@ -112,8 +112,7 @@ public class ReposFragment extends Fragment { }; Log.d("Magisk","ReposFragment, LoadRepo called"); mListRepos.clear(); - RepoHelper mr = new RepoHelper(); - List magiskRepos = mr.listRepos(getActivity(), doReload, taskDelegate); + List magiskRepos = RepoHelper.listRepos(getActivity(), doReload, taskDelegate); for (Repo repo : magiskRepos) { Log.d("Magisk", "ReposFragment: Adding repo from string " + repo.getId()); diff --git a/app/src/main/java/com/topjohnwu/magisk/module/Repo.java b/app/src/main/java/com/topjohnwu/magisk/module/Repo.java index 23c74dcdf..16461758e 100644 --- a/app/src/main/java/com/topjohnwu/magisk/module/Repo.java +++ b/app/src/main/java/com/topjohnwu/magisk/module/Repo.java @@ -64,9 +64,8 @@ public class Repo { public void fetch() { - WebRequest webreq = new WebRequest(); // Construct initial url for contents - String repoString = webreq.makeWebServiceCall(mBaseUrl + "/contents?access_token=" + Utils.procFile(appContext.getString(R.string.some_string),appContext), WebRequest.GET); + String repoString = WebRequest.makeWebServiceCall(mBaseUrl + "/contents?access_token=" + Utils.procFile(appContext.getString(R.string.some_string), appContext), WebRequest.GET); try { JSONArray repoArray = new JSONArray(repoString); for (int f = 0; f < repoArray.length(); f++) { @@ -89,8 +88,7 @@ public class Repo { e.printStackTrace(); } - WebRequest propReq = new WebRequest(); - String manifestString = propReq.makeWebServiceCall(mManifestUrl,WebRequest.GET,true); + String manifestString = WebRequest.makeWebServiceCall(mManifestUrl, WebRequest.GET, true); if (ParseProps(manifestString)) { PutProps(manifestString); diff --git a/app/src/main/java/com/topjohnwu/magisk/module/RepoHelper.java b/app/src/main/java/com/topjohnwu/magisk/module/RepoHelper.java index 664604045..304e179d3 100644 --- a/app/src/main/java/com/topjohnwu/magisk/module/RepoHelper.java +++ b/app/src/main/java/com/topjohnwu/magisk/module/RepoHelper.java @@ -29,35 +29,32 @@ import java.util.Map; public class RepoHelper { private static List repos = new ArrayList<>(); private static String TAG = "Magisk"; - private Context activityContext; - private Date updatedDate; - private SharedPreferences prefs; - private boolean apiFail; public RepoHelper() { } - public List listRepos(Context context, boolean refresh, TaskDelegate delegate) { - prefs = PreferenceManager.getDefaultSharedPreferences(context); - activityContext = context; + public static List listRepos(Context context, boolean refresh, TaskDelegate delegate) { + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); if (!prefs.contains("hasCachedRepos") | refresh) { Log.d(TAG, "RepoHelper: Building from web"); - new BuildFromWeb(delegate).execute(); + new BuildFromWeb(delegate, context).execute(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US); String date = format.format(Calendar.getInstance().getTime()); prefs.edit().putString("last_update", date).apply(); } else { Log.d(TAG, "RepoHelper: Building from cache"); - BuildFromCache(); + BuildFromCache(context); } Collections.sort(repos, new CustomComparator()); return repos; } - private void BuildFromCache() { + private static void BuildFromCache(Context activityContext) { repos.clear(); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activityContext); Map map = prefs.getAll(); for (Map.Entry entry : map.entrySet()) { if (entry.getKey().contains("repo_")) { @@ -67,12 +64,16 @@ public class RepoHelper { } } - class BuildFromWeb extends AsyncTask { + static class BuildFromWeb extends AsyncTask { private TaskDelegate delegate; + private SharedPreferences prefs; + private Context activityContext; - public BuildFromWeb(TaskDelegate delegate) { + public BuildFromWeb(TaskDelegate delegate, Context activityContext) { this.delegate = delegate; + this.activityContext = activityContext; + prefs = PreferenceManager.getDefaultSharedPreferences(activityContext); } @Override @@ -90,15 +91,13 @@ public class RepoHelper { } @Override - protected Void doInBackground(String... params) { + protected Boolean doInBackground(String... params) { publishProgress(); - // Creating service handler class instance - WebRequest webreq = new WebRequest(); // Making a request to url and getting response String token = activityContext.getString(R.string.some_string); String url1 = activityContext.getString(R.string.url_main); - String jsonStr = webreq.makeWebServiceCall(url1 + Utils.procFile(token, activityContext), WebRequest.GET); + String jsonStr = WebRequest.makeWebServiceCall(url1 + Utils.procFile(token, activityContext), WebRequest.GET); if (jsonStr != null && !jsonStr.isEmpty()) { try { @@ -115,6 +114,7 @@ public class RepoHelper { boolean doUpdate = true; boolean hasCachedDate = false; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US); + Date updatedDate; Map map = prefs.getAll(); for (Map.Entry entry : map.entrySet()) { if (entry.getValue().toString().contains(url)) { @@ -147,6 +147,7 @@ public class RepoHelper { } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); + return true; } if (!name.contains("Repo.github.io")) { if (doUpdate) { @@ -164,21 +165,19 @@ public class RepoHelper { } catch (JSONException e) { e.printStackTrace(); } - apiFail = false; + return false; } else { - apiFail = true; + return true; } - return null; - } - protected void onPostExecute(Void v) { + protected void onPostExecute(Boolean apiFail) { if (apiFail) { Toast.makeText(activityContext, "GitHub API Limit reached, please try refreshing again in an hour.", Toast.LENGTH_LONG).show(); } else { Log.d("Magisk", "RepoHelper: postExecute fired"); delegate.taskCompletionResult("Complete"); - BuildFromCache(); + BuildFromCache(activityContext); } @@ -189,7 +188,7 @@ public class RepoHelper { void taskCompletionResult(String result); } - public class CustomComparator implements Comparator { + public static class CustomComparator implements Comparator { @Override public int compare(Repo o1, Repo o2) { return o1.getName().compareTo(o2.getName()); diff --git a/app/src/main/java/com/topjohnwu/magisk/utils/Utils.java b/app/src/main/java/com/topjohnwu/magisk/utils/Utils.java index b14c15d3d..77a03711d 100644 --- a/app/src/main/java/com/topjohnwu/magisk/utils/Utils.java +++ b/app/src/main/java/com/topjohnwu/magisk/utils/Utils.java @@ -481,8 +481,7 @@ public class Utils { @Override protected Void doInBackground(Void... voids) { ReposFragment.mListRepos.clear(); - RepoHelper mr = new RepoHelper(); - List magiskRepos = mr.listRepos(mContext, doReload, mTaskDelegate); + List magiskRepos = RepoHelper.listRepos(mContext, doReload, mTaskDelegate); for (Repo repo : magiskRepos) { Log.d("Magisk", "Utils: Adding repo from string " + repo.getId()); diff --git a/app/src/main/java/com/topjohnwu/magisk/utils/WebRequest.java b/app/src/main/java/com/topjohnwu/magisk/utils/WebRequest.java index d01649e97..1e6d2a535 100644 --- a/app/src/main/java/com/topjohnwu/magisk/utils/WebRequest.java +++ b/app/src/main/java/com/topjohnwu/magisk/utils/WebRequest.java @@ -20,7 +20,6 @@ public class WebRequest { static String response = null; public final static int GET = 1; public final static int POST = 2; - private boolean addNewLine; //Constructor with no parameter public WebRequest() { @@ -33,18 +32,16 @@ public class WebRequest { * @url - url to make request * @requestmethod - http request method */ - public String makeWebServiceCall(String url, int requestmethod) { - addNewLine=false; + public static String makeWebServiceCall(String url, int requestmethod) { Log.d("Magisk","WebRequest: Service call received for URL " + url); - return this.makeWebServiceCall(url, requestmethod, null); + return makeWebServiceCall(url, requestmethod, null, false); } - public String makeWebServiceCall(String url, int requestmethod, boolean addNewLines) { - addNewLine = addNewLines; + public static String makeWebServiceCall(String url, int requestmethod, boolean addNewLines) { Log.d("Magisk","WebRequest: Service call(bool) received for URL " + url); - return this.makeWebServiceCall(url, requestmethod, null); + return makeWebServiceCall(url, requestmethod, null, addNewLines); } @@ -55,8 +52,8 @@ public class WebRequest { * @requestmethod - http request method * @params - http request params */ - public String makeWebServiceCall(String urladdress, int requestmethod, - HashMap params) { + public static String makeWebServiceCall(String urladdress, int requestmethod, + HashMap params, boolean addNewLines) { URL url; String response = ""; try { @@ -104,7 +101,7 @@ public class WebRequest { String line; BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); while ((line = br.readLine()) != null) { - if (addNewLine) { + if (addNewLines) { response += line + "\n"; } else { response += line; diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cb4aca8e1..a9fb49f67 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -94,6 +94,7 @@ phh\'s superuser SuperSU It seems that you have incompatible root installed\nDo you want to install Magisk compatible root now? + MagiskRox666 GTYybRBTYf5his9kQ16ZNO7qgkBJ/5MyVe4CGceAOIoXgSnnk8FTd4F1dE9p5Eus Downloads