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;
// 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);
// 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.
// 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));
}
@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);
}
}
@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.
// 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;