diff options
| author | lubenard <lubenard@student.42.fr> | 2020-06-11 00:22:06 +0000 |
|---|---|---|
| committer | lubenard <lubenard@student.42.fr> | 2020-06-11 00:22:06 +0000 |
| commit | 3aa4e298354ef6933adf92be9e3807c006b595e1 (patch) | |
| tree | f9e0b6f0e4f713e427b9a58b30a63c0035155d98 /ime/app | |
| parent | 3f7759cc8558fa29f4ffc3f463c8c7dfcef01d4c (diff) | |
| download | AnySoftKeyboard-3aa4e298354ef6933adf92be9e3807c006b595e1.tar.gz AnySoftKeyboard-3aa4e298354ef6933adf92be9e3807c006b595e1.tar.bz2 | |
Added basic version of path choosing in backup/restore settings
Diffstat (limited to 'ime/app')
3 files changed, 40 insertions, 2 deletions
diff --git a/ime/app/src/main/java/com/anysoftkeyboard/prefs/GlobalPrefsBackup.java b/ime/app/src/main/java/com/anysoftkeyboard/prefs/GlobalPrefsBackup.java index fde93b79f..ff88ce9c3 100644 --- a/ime/app/src/main/java/com/anysoftkeyboard/prefs/GlobalPrefsBackup.java +++ b/ime/app/src/main/java/com/anysoftkeyboard/prefs/GlobalPrefsBackup.java @@ -1,6 +1,7 @@ package com.anysoftkeyboard.prefs; import android.content.Context; +import android.os.Environment; import android.support.annotation.NonNull; import android.support.annotation.StringRes; import android.support.annotation.VisibleForTesting; @@ -48,6 +49,12 @@ public class GlobalPrefsBackup { R.string.abbreviation_dict_prefs_provider)); } + public static File returnCustomBackupPath(String basepath) { + final File externalFolder = Environment.getExternalStorageDirectory(); + return (new File( + new File(externalFolder, basepath), GlobalPrefsBackup.GLOBAL_BACKUP_FILENAME)); + } + private static Boolean backupProvider(PrefsProvider provider, PrefsRoot prefsRoot) { final PrefsRoot providerRoot = provider.getPrefsRoot(); prefsRoot diff --git a/ime/app/src/main/java/com/anysoftkeyboard/ui/settings/MainFragment.java b/ime/app/src/main/java/com/anysoftkeyboard/ui/settings/MainFragment.java index 265d4d9a5..f82f7d3a9 100644 --- a/ime/app/src/main/java/com/anysoftkeyboard/ui/settings/MainFragment.java +++ b/ime/app/src/main/java/com/anysoftkeyboard/ui/settings/MainFragment.java @@ -1,8 +1,10 @@ package com.anysoftkeyboard.ui.settings; import android.Manifest; +import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Color; @@ -47,6 +49,7 @@ import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposables; import io.reactivex.functions.Function; +import java.io.File; import java.lang.ref.WeakReference; import java.util.List; import net.evendanan.chauffeur.lib.FragmentChauffeurActivity; @@ -63,6 +66,7 @@ public class MainFragment extends Fragment { static final int DIALOG_SAVE_FAILED = 11; static final int DIALOG_LOAD_SUCCESS = 20; static final int DIALOG_LOAD_FAILED = 21; + private File pathFileBackup; private final boolean mTestingBuild; private AnimationDrawable mNotConfiguredAnimation = null; @@ -138,6 +142,8 @@ public class MainFragment extends Fragment { public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.main_fragment_menu, menu); super.onCreateOptionsMenu(menu, inflater); + + pathFileBackup = GlobalPrefsBackup.getBackupFile(); } @Override @@ -350,6 +356,7 @@ public class MainFragment extends Fragment { private void onBackupRestoreDialogRequired(AlertDialog.Builder builder, int optionId) { final int actionString; + final int choosePathString; final Function< Pair<List<GlobalPrefsBackup.ProviderDetails>, Boolean[]>, ObservableSource<GlobalPrefsBackup.ProviderDetails>> @@ -361,12 +368,14 @@ public class MainFragment extends Fragment { action = GlobalPrefsBackup::backup; actionString = R.string.word_editor_action_backup_words; builder.setTitle(R.string.pick_prefs_providers_to_backup); + choosePathString = R.string.word_editor_action_choose_path; successDialog = DIALOG_SAVE_SUCCESS; failedDialog = DIALOG_SAVE_FAILED; break; case R.id.restore_prefs: action = GlobalPrefsBackup::restore; actionString = R.string.word_editor_action_restore_words; + choosePathString = R.string.word_editor_action_choose_path; builder.setTitle(R.string.pick_prefs_providers_to_restore); successDialog = DIALOG_LOAD_SUCCESS; failedDialog = DIALOG_LOAD_FAILED; @@ -426,11 +435,32 @@ public class MainFragment extends Fragment { () -> mDialogController.showDialog( successDialog, - GlobalPrefsBackup.getBackupFile() - .getAbsolutePath()))); + pathFileBackup.getAbsolutePath()))); + }); + builder.setNeutralButton( + choosePathString, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + Intent dataToFileChooser = new Intent(Intent.ACTION_PICK); + dataToFileChooser.setType("text/xml/*"); + startActivityForResult(dataToFileChooser, 1); + } }); } + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + + if (requestCode == 1 + && resultCode == Activity.RESULT_OK + && data != null + && data.getDataString() != null) { + pathFileBackup = GlobalPrefsBackup.returnCustomBackupPath(data.getDataString()); + } + } + private static class StoragePermissionRequest extends PermissionsRequest.PermissionsRequestBase { diff --git a/ime/app/src/main/res/values/strings.xml b/ime/app/src/main/res/values/strings.xml index 4729e46f7..eb60a4c40 100644 --- a/ime/app/src/main/res/values/strings.xml +++ b/ime/app/src/main/res/values/strings.xml @@ -893,6 +893,7 @@ <string name="prefs_providers_backed_up_to">You data was successfully backed-up to %s</string> <string name="prefs_providers_failed_restore_due_to">Failed to restore your data due to %s</string> <string name="prefs_providers_restored_to">You data was successfully restored from %s</string> + <string name="word_editor_action_choose_path">Choose custom path</string> <string name="allow_layouts_to_provide_generic_rows">Keyboards can provide generic rows</string> <string name="allow_layouts_to_provide_generic_rows_off_summary">Always use selected generic rows.</string> |
