import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.media.MediaScannerConnection;
+import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
@Override
public void onSaveLogcat(DialogFragment dialogFragment) {
+ // Get a handle for the dialog fragment.
+ Dialog dialog = dialogFragment.getDialog();
+
+ // Remove the lint warning below that the dialog fragment might be null.
+ assert dialog != null;
+
// Get a handle for the file name edit text.
- EditText fileNameEditText = dialogFragment.getDialog().findViewById(R.id.file_name_edittext);
+ EditText fileNameEditText = dialog.findViewById(R.id.file_name_edittext);
// Get the file path string.
filePathString = fileNameEditText.getText().toString();
// 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 logcat will be saved when it finishes.
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);
}
// The activity result is called after browsing for a file in the save alert dialog.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ // Run the default commands.
+ super.onActivityResult(requestCode, resultCode, data);
+
// Don't do anything if the user pressed back from the file picker.
if (resultCode == Activity.RESULT_OK) {
// Get a handle for the save dialog fragment.
// Get a handle for the save dialog.
Dialog saveDialog = saveDialogFragment.getDialog();
+ // Remove the lint warning below that the save dialog might be null.
+ assert saveDialog != null;
+
// Get a handle for the file name edit text.
EditText fileNameEditText = saveDialog.findViewById(R.id.file_name_edittext);
// 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 name URI from the intent.
+ Uri fileNameUri= data.getData();
+
+ // Process the file name URI if it is not null.
+ if (fileNameUri != null) {
+ // Convert the file name URI to a file name path.
+ String fileNamePath = fileNameHelper.convertUriToFileNamePath(fileNameUri);
- // Set the file name path as the text of the file name edit text.
- fileNameEditText.setText(fileNamePath);
+ // Set the file name path as the text of the file name edit text.
+ fileNameEditText.setText(fileNamePath);
+ }
}
}
}