Create BaseModule (for future merging with repo)
This commit is contained in:
parent
f0d3a4e4b7
commit
c9f6e2e257
103
app/src/main/java/com/topjohnwu/magisk/module/BaseModule.java
Normal file
103
app/src/main/java/com/topjohnwu/magisk/module/BaseModule.java
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
package com.topjohnwu.magisk.module;
|
||||||
|
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public abstract class BaseModule {
|
||||||
|
|
||||||
|
protected String mId, mName, mVersion, mDescription, mSupportUrl, mDonateUrl, mAuthor;
|
||||||
|
protected boolean mIsCacheModule = false;
|
||||||
|
|
||||||
|
protected int mVersionCode = 0;
|
||||||
|
|
||||||
|
public BaseModule(List<String> props) {
|
||||||
|
this(props.toArray(new String[props.size()]));
|
||||||
|
}
|
||||||
|
|
||||||
|
public BaseModule(String[] props) {
|
||||||
|
for (String line : props) {
|
||||||
|
String[] prop = line.split("=", 2);
|
||||||
|
if (prop.length != 2) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
String key = prop[0].trim();
|
||||||
|
if (key.charAt(0) == '#') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (key) {
|
||||||
|
case "id":
|
||||||
|
this.mId = prop[1];
|
||||||
|
break;
|
||||||
|
case "name":
|
||||||
|
this.mName = prop[1];
|
||||||
|
break;
|
||||||
|
case "version":
|
||||||
|
this.mVersion = prop[1];
|
||||||
|
break;
|
||||||
|
case "versionCode":
|
||||||
|
this.mVersionCode = Integer.parseInt(prop[1]);
|
||||||
|
break;
|
||||||
|
case "author":
|
||||||
|
this.mAuthor = prop[1];
|
||||||
|
break;
|
||||||
|
case "description":
|
||||||
|
this.mDescription = prop[1];
|
||||||
|
break;
|
||||||
|
case "support":
|
||||||
|
this.mSupportUrl = prop[1];
|
||||||
|
break;
|
||||||
|
case "donate":
|
||||||
|
this.mDonateUrl = prop[1];
|
||||||
|
break;
|
||||||
|
case "cacheModule":
|
||||||
|
this.mIsCacheModule = Boolean.parseBoolean(prop[1]);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
Log.d("Magisk", "Module: Manifest string not recognized: " + prop[0]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return mName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVersion() {
|
||||||
|
return mVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAuthor() {
|
||||||
|
return mAuthor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId() {return mId; }
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return mDescription;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCache() {
|
||||||
|
return mIsCacheModule;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCache() {
|
||||||
|
mIsCacheModule = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getVersionCode() {
|
||||||
|
return mVersionCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getmDonateUrl() {
|
||||||
|
return mDonateUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getmSupportUrl() {
|
||||||
|
return mSupportUrl;
|
||||||
|
}
|
||||||
|
}
|
@ -5,75 +5,39 @@ import android.content.SharedPreferences;
|
|||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.topjohnwu.magisk.R;
|
||||||
import com.topjohnwu.magisk.utils.Utils;
|
import com.topjohnwu.magisk.utils.Utils;
|
||||||
|
|
||||||
public class Module {
|
public class Module extends BaseModule {
|
||||||
|
|
||||||
private String mRemoveFile;
|
private String mRemoveFile;
|
||||||
private String mDisableFile;
|
private String mDisableFile;
|
||||||
|
|
||||||
private String mName = null;
|
private String mZipUrl, mLogUrl;
|
||||||
private String mVersion = "(No version provided)";
|
private boolean mEnable, mRemove, mUpdateAvailable = false, mIsInstalled;
|
||||||
private String mDescription = "(No description provided)";
|
|
||||||
private String mSupportUrl, mDonateUrl, mZipUrl, mAuthor, mLogUrl;
|
|
||||||
private boolean mEnable = false, mRemove = false, mUpdateAvailable = false, mIsInstalled,
|
|
||||||
mIsCacheModule = false;
|
|
||||||
|
|
||||||
|
|
||||||
private String mId;
|
|
||||||
private int mVersionCode;
|
|
||||||
|
|
||||||
public Module(String path, Context context) {
|
public Module(String path, Context context) {
|
||||||
|
|
||||||
|
super(Utils.readFile(path + "/module.prop"));
|
||||||
|
|
||||||
mRemoveFile = path + "/remove";
|
mRemoveFile = path + "/remove";
|
||||||
mDisableFile = path + "/disable";
|
mDisableFile = path + "/disable";
|
||||||
for (String line : Utils.readFile(path + "/module.prop")) {
|
|
||||||
String[] props = line.split("=", 2);
|
if (mId == null) {
|
||||||
if (props.length != 2) {
|
int sep = path.lastIndexOf('/');
|
||||||
continue;
|
mId = path.substring(sep + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
String key = props[0].trim();
|
if (mName == null)
|
||||||
if (key.charAt(0) == '#') {
|
mName = mId;
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (props[0]) {
|
if (mDescription == null)
|
||||||
case "id":
|
mDescription = context.getString(R.string.no_info_provided);
|
||||||
this.mId = props[1];
|
|
||||||
break;
|
|
||||||
case "name":
|
|
||||||
this.mName = props[1];
|
|
||||||
break;
|
|
||||||
case "version":
|
|
||||||
this.mVersion = props[1];
|
|
||||||
break;
|
|
||||||
case "versionCode":
|
|
||||||
this.mVersionCode = Integer.parseInt(props[1]);
|
|
||||||
break;
|
|
||||||
case "author":
|
|
||||||
this.mAuthor = props[1];
|
|
||||||
break;
|
|
||||||
case "description":
|
|
||||||
this.mDescription = props[1];
|
|
||||||
break;
|
|
||||||
case "support":
|
|
||||||
this.mSupportUrl = props[1];
|
|
||||||
break;
|
|
||||||
case "donate":
|
|
||||||
this.mDonateUrl = props[1];
|
|
||||||
break;
|
|
||||||
case "cacheModule":
|
|
||||||
this.mIsCacheModule = Boolean.parseBoolean(props[1]);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
Log.d("Magisk", "Module: Manifest string not recognized: " + props[0]);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (mVersion == null)
|
||||||
|
mVersion = context.getString(R.string.no_info_provided);
|
||||||
|
|
||||||
}
|
Log.d("Magisk","Module: Loaded module with ID of " + mId );
|
||||||
Log.d("Magisk","Module: Loaded module with ID of " + this.mId + " or " + mId);
|
|
||||||
|
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
|
|
||||||
@ -140,52 +104,13 @@ public class Module {
|
|||||||
editor.apply();
|
editor.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mName == null) {
|
|
||||||
int sep = path.lastIndexOf('/');
|
|
||||||
mName = path.substring(sep + 1);
|
|
||||||
mId = mName;
|
|
||||||
}
|
|
||||||
|
|
||||||
mEnable = !Utils.fileExist(mDisableFile);
|
mEnable = !Utils.fileExist(mDisableFile);
|
||||||
mRemove = Utils.fileExist(mRemoveFile);
|
mRemove = Utils.fileExist(mRemoveFile);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// public Module(Repo repo) {
|
|
||||||
//
|
|
||||||
// mName = repo.getName();
|
|
||||||
// mVersion = repo.getmVersion();
|
|
||||||
// mDescription = repo.getDescription();
|
|
||||||
// mId = repo.getId();
|
|
||||||
// mVersionCode = repo.getmVersionCode();
|
|
||||||
// mUrl = repo.getmZipUrl();
|
|
||||||
// mEnable = true;
|
|
||||||
// mRemove = false;
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return mName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getVersion() {
|
|
||||||
return mVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAuthor() {
|
|
||||||
return mAuthor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getId() {return mId; }
|
|
||||||
|
|
||||||
public String getmLogUrl() {return mLogUrl; }
|
public String getmLogUrl() {return mLogUrl; }
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return mDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void createDisableFile() {
|
public void createDisableFile() {
|
||||||
mEnable = !Utils.createFile(mDisableFile);
|
mEnable = !Utils.createFile(mDisableFile);
|
||||||
}
|
}
|
||||||
@ -210,24 +135,8 @@ public class Module {
|
|||||||
return mRemove;
|
return mRemove;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isCache() {
|
|
||||||
return mIsCacheModule;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCache() {
|
|
||||||
mIsCacheModule = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getmDonateUrl() {
|
|
||||||
return mDonateUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getmZipUrl() { return mZipUrl; }
|
public String getmZipUrl() { return mZipUrl; }
|
||||||
|
|
||||||
public String getmSupportUrl() {
|
|
||||||
return mSupportUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isUpdateAvailable() { return mUpdateAvailable; }
|
public boolean isUpdateAvailable() { return mUpdateAvailable; }
|
||||||
|
|
||||||
}
|
}
|
@ -40,6 +40,7 @@
|
|||||||
<string name="selinux_samsung_info">Samsung need custom kernel for switching SELinux status!</string>
|
<string name="selinux_samsung_info">Samsung need custom kernel for switching SELinux status!</string>
|
||||||
|
|
||||||
<!--Module Fragment-->
|
<!--Module Fragment-->
|
||||||
|
<string name="no_info_provided">(No info provided)</string>
|
||||||
<string name="cache_modules">Cache modules</string>
|
<string name="cache_modules">Cache modules</string>
|
||||||
<string name="no_modules_found">No modules found</string>
|
<string name="no_modules_found">No modules found</string>
|
||||||
<string name="module_update_available">An update is available!</string>
|
<string name="module_update_available">An update is available!</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user