]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/activities/ImportExportActivity.java
Manually handle changes in screen layout. https://redmine.stoutner.com/issues/447
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / activities / ImportExportActivity.java
index 4639c637ea83139f08253942a04013646e1b5e9d..c8ff219bb0950e564bf6ca58b20575b2f85d2f99 100644 (file)
@@ -587,25 +587,31 @@ public class ImportExportActivity extends AppCompatActivity implements StoragePe
                         // Create the file name path string.
                         String fileNamePath;
 
-                        // Construct the file name path.
-                        switch (fileNameContentPath) {
-                            // The documents home has a special content path.
-                            case "/document/home":
-                                fileNamePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/" + fileNameFinalPath;
-                                break;
-
-                            // Everything else for the primary user should be in `/document/primary`.
-                            case "/document/primary":
-                                fileNamePath = Environment.getExternalStorageDirectory() + "/" + fileNameFinalPath;
-                                break;
-
-                            // Just in case, catch everything else and place it in the external storage directory.
-                            default:
-                                fileNamePath = Environment.getExternalStorageDirectory() + "/" + fileNameFinalPath;
-                                break;
+                        // Check to see if the current file name final patch is a complete, valid path
+                        if (fileNameFinalPath.startsWith("/storage/emulated/")) {  // The existing file name final path is a complete, valid path.
+                            // Use the provided file name path as is.
+                            fileNamePath = fileNameFinalPath;
+                        } else {  // The existing file name final path is not a complete, valid path.
+                            // Construct the file name path.
+                            switch (fileNameContentPath) {
+                                // The documents home has a special content path.
+                                case "/document/home":
+                                    fileNamePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/" + fileNameFinalPath;
+                                    break;
+
+                                // Everything else for the primary user should be in `/document/primary`.
+                                case "/document/primary":
+                                    fileNamePath = Environment.getExternalStorageDirectory() + "/" + fileNameFinalPath;
+                                    break;
+
+                                // Just in case, catch everything else and place it in the external storage directory.
+                                default:
+                                    fileNamePath = Environment.getExternalStorageDirectory() + "/" + fileNameFinalPath;
+                                    break;
+                            }
                         }
 
-                        // Set the file name path as the text of the file name EditText.
+                        // Set the file name path as the text of the file name edit text.
                         fileNameEditText.setText(fileNamePath);
                     } else {  // The path is invalid.
                         Snackbar.make(fileNameEditText, rawFileNamePath + " " + getString(R.string.invalid_location), Snackbar.LENGTH_INDEFINITE).show();
@@ -965,8 +971,8 @@ public class ImportExportActivity extends AppCompatActivity implements StoragePe
                 System.exit(0);
             };
 
-            // Restart Privacy Browser after 100 milliseconds to allow enough time for the preferences to be saved.
-            restartHandler.postDelayed(restartRunnable, 100);
+            // Restart Privacy Browser after 150 milliseconds to allow enough time for the preferences to be saved.
+            restartHandler.postDelayed(restartRunnable, 150);
 
         } else if (!(encryptionSpinner.getSelectedItemPosition() == OPENPGP_ENCRYPTION)){  // The import was not successful.
             // Display a snack bar with the import error.