use of net.osmand.plus.settings.backend.backup.SettingsHelper.ImportListener in project Osmand by osmandapp.
the class FileImportDuplicatesFragment method onCreate.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
settingsHelper = app.getFileSettingsHelper();
ImportFileTask importTask = settingsHelper.getImportTask();
if (importTask != null) {
if (settingsItems == null) {
settingsItems = importTask.getSelectedItems();
}
if (duplicatesList == null) {
duplicatesList = importTask.getDuplicates();
}
if (file == null) {
file = importTask.getFile();
}
Fragment target = getTargetFragment();
if (target instanceof ImportSettingsFragment) {
ImportListener importListener = ((ImportSettingsFragment) target).getImportListener();
importTask.setImportListener(importListener);
}
}
}
use of net.osmand.plus.settings.backend.backup.SettingsHelper.ImportListener in project Osmand by osmandapp.
the class FileImportDuplicatesFragment method importItems.
@Override
protected void importItems(boolean shouldReplace) {
super.importItems(shouldReplace);
if (settingsItems != null && file != null) {
Fragment target = getTargetFragment();
if (target instanceof ImportSettingsFragment) {
ImportListener importListener = ((ImportSettingsFragment) target).getImportListener();
settingsHelper.importSettings(file, settingsItems, "", 1, importListener);
}
}
}
use of net.osmand.plus.settings.backend.backup.SettingsHelper.ImportListener in project Osmand by osmandapp.
the class SettingsImportTask method handlePluginImport.
private void handlePluginImport(final PluginSettingsItem pluginItem, final File file) {
FragmentActivity activity = activityRef.get();
final ProgressDialog progress;
if (AndroidUtils.isActivityNotDestroyed(activity)) {
progress = new ProgressDialog(activity);
progress.setTitle(app.getString(R.string.loading_smth, ""));
progress.setMessage(app.getString(R.string.importing_from, pluginItem.getPublicName(app)));
progress.setIndeterminate(true);
progress.setCancelable(false);
progress.show();
} else {
progress = null;
}
final ImportListener importListener = new ImportListener() {
@Override
public void onImportItemStarted(@NonNull String type, @NonNull String fileName, int work) {
}
@Override
public void onImportItemProgress(@NonNull String type, @NonNull String fileName, int value) {
}
@Override
public void onImportItemFinished(@NonNull String type, @NonNull String fileName) {
}
@Override
public void onImportFinished(boolean succeed, boolean needRestart, @NonNull List<SettingsItem> items) {
FragmentActivity activity = activityRef.get();
if (progress != null && AndroidUtils.isActivityNotDestroyed(activity)) {
progress.dismiss();
}
AudioVideoNotesPlugin pluginAudioVideo = OsmandPlugin.getPlugin(AudioVideoNotesPlugin.class);
if (pluginAudioVideo != null) {
pluginAudioVideo.indexingFiles(true, true);
}
CustomOsmandPlugin plugin = pluginItem.getPlugin();
plugin.loadResources();
if (!Algorithms.isEmpty(plugin.getDownloadMaps())) {
app.getDownloadThread().runReloadIndexFilesSilent();
}
if (!Algorithms.isEmpty(plugin.getRendererNames())) {
app.getRendererRegistry().updateExternalRenderers();
}
if (!Algorithms.isEmpty(plugin.getRouterNames())) {
loadRoutingFiles(app, null);
}
if (!silentImport && activity != null) {
plugin.onInstall(app, activity);
}
String pluginId = pluginItem.getPluginId();
File pluginDir = app.getAppPath(IndexConstants.PLUGINS_DIR + pluginId);
if (!pluginDir.exists()) {
pluginDir.mkdirs();
}
app.getFileSettingsHelper().exportSettings(pluginDir, "items", null, items, false);
}
};
List<SettingsItem> pluginItems = new ArrayList<>(pluginItem.getPluginDependentItems());
pluginItems.add(0, pluginItem);
app.getFileSettingsHelper().checkDuplicates(file, pluginItems, pluginItems, new CheckDuplicatesListener() {
@Override
public void onDuplicatesChecked(@NonNull List<Object> duplicates, List<SettingsItem> items) {
for (SettingsItem item : items) {
item.setShouldReplace(true);
}
app.getFileSettingsHelper().importSettings(file, items, "", 1, importListener);
}
});
}
use of net.osmand.plus.settings.backend.backup.SettingsHelper.ImportListener in project Osmand by osmandapp.
the class RestoreDuplicatesFragment method importItems.
@Override
protected void importItems(boolean shouldReplace) {
super.importItems(shouldReplace);
if (settingsItems != null) {
Fragment target = getTargetFragment();
if (target instanceof ImportSettingsFragment) {
try {
ImportListener importListener = ((ImportSettingsFragment) target).getImportListener();
settingsHelper.importSettings(RESTORE_ITEMS_KEY, settingsItems, false, importListener);
} catch (IllegalStateException e) {
LOG.error(e.getMessage(), e);
}
}
}
}
use of net.osmand.plus.settings.backend.backup.SettingsHelper.ImportListener in project Osmand by osmandapp.
the class ImportBackupTask method onPostExecute.
@Override
protected void onPostExecute(@Nullable List<SettingsItem> items) {
if (items != null && importType != ImportType.CHECK_DUPLICATES) {
this.items = items;
} else {
selectedItems = items;
}
switch(importType) {
case COLLECT:
case COLLECT_AND_READ:
collectListener.onBackupCollectFinished(items != null, false, this.items, remoteFiles);
helper.importAsyncTasks.remove(key);
break;
case CHECK_DUPLICATES:
if (duplicatesListener != null) {
duplicatesListener.onDuplicatesChecked(duplicates, selectedItems);
}
helper.importAsyncTasks.remove(key);
break;
case IMPORT:
case IMPORT_FORCE_READ:
if (items != null && items.size() > 0) {
boolean forceReadData = importType == ImportType.IMPORT_FORCE_READ;
ImportItemsListener itemsListener = (succeed, needRestart) -> {
helper.importAsyncTasks.remove(key);
helper.finishImport(importListener, succeed, items, needRestart);
};
new ImportBackupItemsTask(app, importer, items, itemsListener, forceReadData).executeOnExecutor(app.getBackupHelper().getExecutor());
}
break;
}
}
Aggregations