]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/activities/ImportExportActivity.java
Implement Save as Archive. https://redmine.stoutner.com/issues/188
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / activities / ImportExportActivity.java
index bea58d3fe7a7e95542867389ecf2a1fdf5bf490e..ca4703af5243f936774f8ffd68cf2ec7e57a7ab1 100644 (file)
@@ -25,6 +25,7 @@ import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.media.MediaScannerConnection;
+import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Environment;
@@ -116,7 +117,7 @@ public class ImportExportActivity extends AppCompatActivity implements StoragePe
         // Set the content view.
         setContentView(R.layout.import_export_coordinatorlayout);
 
-        // Use the `SupportActionBar` from `android.support.v7.app.ActionBar` until the minimum API is >= 21.
+        // Set the support action bar.
         Toolbar toolbar = findViewById(R.id.import_export_toolbar);
         setSupportActionBar(toolbar);
 
@@ -129,7 +130,7 @@ public class ImportExportActivity extends AppCompatActivity implements StoragePe
         // Display the home arrow on the support action bar.
         actionBar.setDisplayHomeAsUpEnabled(true);
 
-        // Find out if we are running KitKat
+        // Find out if the system is running KitKat
         boolean runningKitKat = (Build.VERSION.SDK_INT == 19);
 
         // Find out if OpenKeychain is installed.
@@ -518,7 +519,7 @@ public class ImportExportActivity extends AppCompatActivity implements StoragePe
                 // Check if the user has previously denied the storage permission.
                 if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {  // Show a dialog explaining the request first.
                     // Instantiate the storage permission alert dialog.
-                    DialogFragment storagePermissionDialogFragment = new StoragePermissionDialog();
+                    DialogFragment storagePermissionDialogFragment = StoragePermissionDialog.displayDialog(0);
 
                     // Show the storage permission alert dialog.  The permission will be requested when the dialog is closed.
                     storagePermissionDialogFragment.show(getSupportFragmentManager(), getString(R.string.storage_permission));
@@ -531,7 +532,7 @@ public class ImportExportActivity extends AppCompatActivity implements StoragePe
     }
 
     @Override
-    public void onCloseStoragePermissionDialog() {
+    public void onCloseStoragePermissionDialog(int type) {
         // Request the write external storage permission.  The import/export will be run when it finishes.
         ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);
     }
@@ -558,7 +559,10 @@ public class ImportExportActivity extends AppCompatActivity implements StoragePe
     }
 
     @Override
-    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
+        // Run the default commands.
+        super.onActivityResult(requestCode, resultCode, intent);
+
         switch (requestCode) {
             case (BROWSE_RESULT_CODE):
                 // Don't do anything if the user pressed back from the file picker.
@@ -569,11 +573,17 @@ public class ImportExportActivity extends AppCompatActivity implements StoragePe
                     // Instantiate the file name helper.
                     FileNameHelper fileNameHelper = new FileNameHelper();
 
-                    // Convert the file name URI to a file name path.
-                    String fileNamePath = fileNameHelper.convertUriToFileNamePath(data.getData());
+                    // Get the file path URI from the intent.
+                    Uri filePathUri = intent.getData();
 
-                    // Set the file name path as the text of the file name edit text.
-                    fileNameEditText.setText(fileNamePath);
+                    // Use the file path from the intent if it exists.
+                    if (filePathUri != null) {
+                        // Convert the file name URI to a file name path.
+                        String fileNamePath = fileNameHelper.convertUriToFileNamePath(filePathUri);
+
+                        // Set the file name path as the text of the file name edit text.
+                        fileNameEditText.setText(fileNamePath);
+                    }
                 }
                 break;