diff --git a/app/src/main/java/ca/pkay/rcloneexplorer/Fragments/RemotesFragment.java b/app/src/main/java/ca/pkay/rcloneexplorer/Fragments/RemotesFragment.java
index f48043df..4b47623a 100644
--- a/app/src/main/java/ca/pkay/rcloneexplorer/Fragments/RemotesFragment.java
+++ b/app/src/main/java/ca/pkay/rcloneexplorer/Fragments/RemotesFragment.java
@@ -5,6 +5,7 @@
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
@@ -112,8 +113,15 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c
view.findViewById(R.id.empty_state_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- if (getActivity() != null) {
- ((MainActivity) getActivity()).importConfigFile();
+ Uri externalConfig;
+ if(null != (externalConfig = rclone.searchExternalConfig())){
+ if (getActivity() != null) {
+ ((MainActivity) getActivity()).askUseExternalConfig(externalConfig);
+ }
+ } else {
+ if (getActivity() != null) {
+ ((MainActivity) getActivity()).importConfigFile();
+ }
}
}
});
diff --git a/app/src/main/java/ca/pkay/rcloneexplorer/MainActivity.java b/app/src/main/java/ca/pkay/rcloneexplorer/MainActivity.java
index a04bec60..ed78fe3b 100644
--- a/app/src/main/java/ca/pkay/rcloneexplorer/MainActivity.java
+++ b/app/src/main/java/ca/pkay/rcloneexplorer/MainActivity.java
@@ -380,7 +380,12 @@ private void warnUserAboutOverwritingConfiguration() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.cancel();
- importConfigFile();
+ Uri configUri;
+ if(null != (configUri = rclone.searchExternalConfig())){
+ askUseExternalConfig(configUri);
+ } else {
+ importConfigFile();
+ }
}
});
builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@@ -392,6 +397,32 @@ public void onClick(DialogInterface dialogInterface, int i) {
builder.show();
}
+ public void askUseExternalConfig(final Uri uri) {
+ AlertDialog.Builder builder;
+ if (isDarkTheme) {
+ builder = new AlertDialog.Builder(this, R.style.DarkDialogTheme);
+ } else {
+ builder = new AlertDialog.Builder(this);
+ }
+ builder.setTitle(R.string.config_use_external_question);
+ builder.setMessage(context.getString(R.string.config_import_external_explain, uri.toString()));
+ builder.setPositiveButton(R.string.continue_statement, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ dialogInterface.cancel();
+ new CopyConfigFile().execute(uri);
+ }
+ });
+ builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ dialogInterface.cancel();
+ importConfigFile();
+ }
+ });
+ builder.show();
+ }
+
private void askForConfigPassword() {
findViewById(R.id.locked_config).setVisibility(View.VISIBLE);
new InputDialog()
diff --git a/app/src/main/java/ca/pkay/rcloneexplorer/Rclone.java b/app/src/main/java/ca/pkay/rcloneexplorer/Rclone.java
index 7d43f806..9e32ac70 100644
--- a/app/src/main/java/ca/pkay/rcloneexplorer/Rclone.java
+++ b/app/src/main/java/ca/pkay/rcloneexplorer/Rclone.java
@@ -808,6 +808,18 @@ public boolean isConfigFileCreated() {
return file.exists();
}
+ // on all devices, look under ./Android/ca.pkay.rcloneexplorer/files/rclone.config
+ public Uri searchExternalConfig(){
+ File[] extDir = context.getExternalFilesDirs(null);
+ for(File dir : extDir){
+ File file = new File(dir + "/rclone.conf");
+ if(file.exists()){
+ return Uri.fromFile(file);
+ }
+ }
+ return null;
+ }
+
public void copyConfigFile(Uri uri) throws IOException {
String appsFileDir = context.getFilesDir().getPath();
InputStream inputStream = context.getContentResolver().openInputStream(uri);
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b2661bbe..1a5be606 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -365,4 +365,6 @@
Authentication
Optional
Serve a remote
+ Import found configuration?
+ Automatically import from %1$s