[app] Fix backup and restore
This commit is contained in:
parent
6d306573f9
commit
cbcdf9f96f
|
|
@ -281,7 +281,6 @@ public class ModulesActivity extends ListActivity implements ModuleUtil.ModuleLi
|
||||||
showList = fullList;
|
showList = fullList;
|
||||||
String queryStr = searchView != null ? searchView.getQuery().toString() : "";
|
String queryStr = searchView != null ? searchView.getQuery().toString() : "";
|
||||||
runOnUiThread(() -> getFilter().filter(queryStr));
|
runOnUiThread(() -> getFilter().filter(queryStr));
|
||||||
moduleUtil.updateModulesList();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,14 +28,17 @@ import org.json.JSONObject;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.zip.GZIPInputStream;
|
import java.util.zip.GZIPInputStream;
|
||||||
import java.util.zip.GZIPOutputStream;
|
import java.util.zip.GZIPOutputStream;
|
||||||
|
|
||||||
|
import io.github.lsposed.manager.ConfigManager;
|
||||||
|
import io.github.lsposed.manager.adapters.ScopeAdapter;
|
||||||
|
|
||||||
public class BackupUtils {
|
public class BackupUtils {
|
||||||
private static final int VERSION = 1;
|
private static final int VERSION = 2;
|
||||||
|
|
||||||
public static boolean backup(Context context, Uri uri) {
|
public static boolean backup(Context context, Uri uri) {
|
||||||
return backup(context, uri, null);
|
return backup(context, uri, null);
|
||||||
|
|
@ -54,11 +57,14 @@ public class BackupUtils {
|
||||||
JSONObject moduleObject = new JSONObject();
|
JSONObject moduleObject = new JSONObject();
|
||||||
moduleObject.put("enable", ModuleUtil.getInstance().isModuleEnabled(module.packageName));
|
moduleObject.put("enable", ModuleUtil.getInstance().isModuleEnabled(module.packageName));
|
||||||
moduleObject.put("package", module.packageName);
|
moduleObject.put("package", module.packageName);
|
||||||
//List<String> scope = AppHelper.getScopeList(module.packageName);
|
List<ScopeAdapter.ApplicationWithEquals> scope = ConfigManager.getModuleScope(module.packageName);
|
||||||
JSONArray scopeArray = new JSONArray();
|
JSONArray scopeArray = new JSONArray();
|
||||||
//for (String s : scope) {
|
for (ScopeAdapter.ApplicationWithEquals s : scope) {
|
||||||
// scopeArray.put(s);
|
JSONObject app = new JSONObject();
|
||||||
//}
|
app.put("package", s.packageName);
|
||||||
|
app.put("userId", s.userId);
|
||||||
|
scopeArray.put(app);
|
||||||
|
}
|
||||||
moduleObject.put("scope", scopeArray);
|
moduleObject.put("scope", scopeArray);
|
||||||
modulesArray.put(moduleObject);
|
modulesArray.put(moduleObject);
|
||||||
}
|
}
|
||||||
|
|
@ -92,7 +98,8 @@ public class BackupUtils {
|
||||||
gzipInputStream.close();
|
gzipInputStream.close();
|
||||||
inputStream.close();
|
inputStream.close();
|
||||||
JSONObject rootObject = new JSONObject(string.toString());
|
JSONObject rootObject = new JSONObject(string.toString());
|
||||||
if (rootObject.getInt("version") == VERSION) {
|
int version = rootObject.getInt("version");
|
||||||
|
if (version == VERSION || version == 1) {
|
||||||
JSONArray modules = rootObject.getJSONArray("modules");
|
JSONArray modules = rootObject.getJSONArray("modules");
|
||||||
for (int i = 0; i < modules.length(); i++) {
|
for (int i = 0; i < modules.length(); i++) {
|
||||||
JSONObject moduleObject = modules.getJSONObject(i);
|
JSONObject moduleObject = modules.getJSONObject(i);
|
||||||
|
|
@ -104,13 +111,20 @@ public class BackupUtils {
|
||||||
if (module != null) {
|
if (module != null) {
|
||||||
ModuleUtil.getInstance().setModuleEnabled(name, moduleObject.getBoolean("enable"));
|
ModuleUtil.getInstance().setModuleEnabled(name, moduleObject.getBoolean("enable"));
|
||||||
JSONArray scopeArray = moduleObject.getJSONArray("scope");
|
JSONArray scopeArray = moduleObject.getJSONArray("scope");
|
||||||
List<String> scope = new ArrayList<>();
|
HashSet<ScopeAdapter.ApplicationWithEquals> scope = new HashSet<>();
|
||||||
for (int j = 0; j < scopeArray.length(); j++) {
|
for (int j = 0; j < scopeArray.length(); j++) {
|
||||||
scope.add(scopeArray.getString(j));
|
if (version == VERSION) {
|
||||||
}
|
JSONObject app = scopeArray.getJSONObject(j);
|
||||||
//AppHelper.saveScopeList(name, scope);
|
scope.add(new ScopeAdapter.ApplicationWithEquals(app.getString("package"), app.getInt("userId")));
|
||||||
|
} else {
|
||||||
|
scope.add(new ScopeAdapter.ApplicationWithEquals(scopeArray.getString(j), 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ConfigManager.setModuleScope(name, scope);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
|
||||||
|
|
@ -177,23 +177,6 @@ public final class ModuleUtil {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized void updateModulesList() {
|
|
||||||
/*try {
|
|
||||||
Log.i(App.TAG, "ModuleUtil -> updating modules.list");
|
|
||||||
PrintWriter modulesList = new PrintWriter(Constants.getModulesListFile());
|
|
||||||
PrintWriter enabledModulesList = new PrintWriter(Constants.getEnabledModulesListFile());
|
|
||||||
List<InstalledModule> enabledModules = getEnabledModules();
|
|
||||||
for (InstalledModule module : enabledModules) {
|
|
||||||
modulesList.println(module.app.sourceDir);
|
|
||||||
enabledModulesList.println(module.app.packageName);
|
|
||||||
}
|
|
||||||
modulesList.close();
|
|
||||||
enabledModulesList.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
Log.e(App.TAG, "ModuleUtil -> cannot write " + Constants.getModulesListFile(), e);
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addListener(ModuleListener listener) {
|
public void addListener(ModuleListener listener) {
|
||||||
if (!listeners.contains(listener))
|
if (!listeners.contains(listener))
|
||||||
listeners.add(listener);
|
listeners.add(listener);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue