mirror of
https://github.com/moparisthebest/k-9
synced 2024-11-24 10:22:15 -05:00
Get rid of the STORAGE_VERSION enum in StorageVersioning
This commit is contained in:
parent
26258d7666
commit
18cefedf32
@ -12,7 +12,7 @@ import com.fsck.k9.preferences.StorageVersioning;
|
|||||||
public class ExportHelper {
|
public class ExportHelper {
|
||||||
public static void exportSettings(final Activity activity, final HashSet<String> accountUuids, final ExportListener listener) {
|
public static void exportSettings(final Activity activity, final HashSet<String> accountUuids, final ExportListener listener) {
|
||||||
// Once there are more versions, build a UI to select which one to use. For now, use the encrypted/encoded version:
|
// Once there are more versions, build a UI to select which one to use. For now, use the encrypted/encoded version:
|
||||||
String version = StorageVersioning.STORAGE_VERSION.VERSION1.getVersionString();
|
String version = StorageVersioning.ENCRYPTED_XML_FILE;
|
||||||
AsyncUIProcessor.getInstance(activity.getApplication()).exportSettings(activity, version, accountUuids, new ExportListener() {
|
AsyncUIProcessor.getInstance(activity.getApplication()).exportSettings(activity, version, accountUuids, new ExportListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -5,74 +5,46 @@ import java.util.Map;
|
|||||||
|
|
||||||
|
|
||||||
public class StorageVersioning {
|
public class StorageVersioning {
|
||||||
public enum STORAGE_VERSION {
|
|
||||||
VERSION1(StorageImporterVersion1.class, StorageExporterVersion1.class, true, STORAGE_VERSION_1);
|
|
||||||
|
|
||||||
private Class <? extends IStorageImporter > importerClass;
|
|
||||||
private Class <? extends IStorageExporter > exporterClass;
|
|
||||||
private boolean needsKey;
|
|
||||||
private String versionString;
|
|
||||||
|
|
||||||
|
|
||||||
private STORAGE_VERSION(Class <? extends IStorageImporter > imclass, Class <? extends IStorageExporter > exclass, boolean nk, String vs) {
|
|
||||||
importerClass = imclass;
|
|
||||||
exporterClass = exclass;
|
|
||||||
needsKey = nk;
|
|
||||||
versionString = vs;
|
|
||||||
|
|
||||||
}
|
|
||||||
public Class <? extends IStorageImporter > getImporterClass() {
|
|
||||||
return importerClass;
|
|
||||||
}
|
|
||||||
public IStorageImporter createImporter() throws InstantiationException, IllegalAccessException {
|
|
||||||
IStorageImporter storageImporter = importerClass.newInstance();
|
|
||||||
return storageImporter;
|
|
||||||
}
|
|
||||||
public Class <? extends IStorageExporter > getExporterClass() {
|
|
||||||
return exporterClass;
|
|
||||||
}
|
|
||||||
public IStorageExporter createExporter() throws InstantiationException, IllegalAccessException {
|
|
||||||
IStorageExporter storageExporter = exporterClass.newInstance();
|
|
||||||
return storageExporter;
|
|
||||||
}
|
|
||||||
public boolean needsKey() {
|
|
||||||
return needsKey;
|
|
||||||
}
|
|
||||||
public String getVersionString() {
|
|
||||||
return versionString;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Never, ever re-use these numbers!
|
// Never, ever re-use these numbers!
|
||||||
private static final String STORAGE_VERSION_1 = "1";
|
public static final String ENCRYPTED_XML_FILE = "1";
|
||||||
|
|
||||||
public static Map<String, STORAGE_VERSION> versionMap = new HashMap<String, STORAGE_VERSION>();
|
public static Map<String, StorageVersioning> versionMap = new HashMap<String, StorageVersioning>();
|
||||||
static {
|
static {
|
||||||
versionMap.put(STORAGE_VERSION.VERSION1.getVersionString(), STORAGE_VERSION.VERSION1);
|
versionMap.put(ENCRYPTED_XML_FILE, new StorageVersioning(StorageImporterVersion1.class, StorageExporterVersion1.class, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IStorageImporter createImporter(String version) throws InstantiationException, IllegalAccessException {
|
public static IStorageImporter createImporter(String version) throws InstantiationException, IllegalAccessException {
|
||||||
STORAGE_VERSION storageVersion = versionMap.get(version);
|
StorageVersioning storageVersion = versionMap.get(version);
|
||||||
if (storageVersion == null) {
|
if (storageVersion == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return storageVersion.createImporter();
|
return storageVersion.importerClass.newInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IStorageExporter createExporter(String version) throws InstantiationException, IllegalAccessException {
|
public static IStorageExporter createExporter(String version) throws InstantiationException, IllegalAccessException {
|
||||||
STORAGE_VERSION storageVersion = versionMap.get(version);
|
StorageVersioning storageVersion = versionMap.get(version);
|
||||||
if (storageVersion == null) {
|
if (storageVersion == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return storageVersion.createExporter();
|
return storageVersion.exporterClass.newInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean needsKey(String version) {
|
public static Boolean needsKey(String version) {
|
||||||
STORAGE_VERSION storageVersion = versionMap.get(version);
|
StorageVersioning storageVersion = versionMap.get(version);
|
||||||
if (storageVersion == null) {
|
if (storageVersion == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return storageVersion.needsKey();
|
return storageVersion.needsKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private final Class <? extends IStorageImporter > importerClass;
|
||||||
|
private final Class <? extends IStorageExporter > exporterClass;
|
||||||
|
private final boolean needsKey;
|
||||||
|
|
||||||
|
private StorageVersioning(Class <? extends IStorageImporter > imclass, Class <? extends IStorageExporter > exclass, boolean nk) {
|
||||||
|
importerClass = imclass;
|
||||||
|
exporterClass = exclass;
|
||||||
|
needsKey = nk;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user