mirror of
https://github.com/KokaKiwi/BarInsta
synced 2024-11-22 06:37:30 +00:00
Handle ActivityNotFoundException for OPEN_DOCUMENT_TREE. Fixes austinhuang0131/barinsta#1467
This commit is contained in:
parent
383485abec
commit
606fb986a2
@ -1,5 +1,7 @@
|
|||||||
package awais.instagrabber.activities;
|
package awais.instagrabber.activities;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
|
import android.content.ActivityNotFoundException;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
@ -66,9 +68,17 @@ public class DirectorySelectActivity extends BaseLanguageActivity {
|
|||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && initialUri != null) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && initialUri != null) {
|
||||||
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, initialUri);
|
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, initialUri);
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
startActivityForResult(intent, SELECT_DIR_REQUEST_CODE);
|
startActivityForResult(intent, SELECT_DIR_REQUEST_CODE);
|
||||||
|
} catch (ActivityNotFoundException e) {
|
||||||
|
Log.e(TAG, "openDirectoryChooser: ", e);
|
||||||
|
showErrorDialog(getString(R.string.no_directory_picker_activity));
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e(TAG, "openDirectoryChooser: ", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("StringFormatInvalid")
|
||||||
@Override
|
@Override
|
||||||
protected void onActivityResult(final int requestCode, final int resultCode, @Nullable final Intent data) {
|
protected void onActivityResult(final int requestCode, final int resultCode, @Nullable final Intent data) {
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package awais.instagrabber.fragments.settings;
|
package awais.instagrabber.fragments.settings;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
|
import android.content.ActivityNotFoundException;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
@ -79,9 +81,17 @@ public class DownloadsPreferencesFragment extends BasePreferencesFragment {
|
|||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && initialUri != null) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && initialUri != null) {
|
||||||
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, initialUri);
|
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, initialUri);
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
startActivityForResult(intent, SELECT_DIR_REQUEST_CODE);
|
startActivityForResult(intent, SELECT_DIR_REQUEST_CODE);
|
||||||
|
} catch (ActivityNotFoundException e) {
|
||||||
|
Log.e(TAG, "openDirectoryChooser: ", e);
|
||||||
|
showErrorDialog(getString(R.string.no_directory_picker_activity));
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e(TAG, "openDirectoryChooser: ", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("StringFormatInvalid")
|
||||||
@Override
|
@Override
|
||||||
public void onActivityResult(final int requestCode, final int resultCode, @Nullable final Intent data) {
|
public void onActivityResult(final int requestCode, final int resultCode, @Nullable final Intent data) {
|
||||||
if (requestCode != SELECT_DIR_REQUEST_CODE) return;
|
if (requestCode != SELECT_DIR_REQUEST_CODE) return;
|
||||||
@ -105,17 +115,9 @@ public class DownloadsPreferencesFragment extends BasePreferencesFragment {
|
|||||||
try (final StringWriter sw = new StringWriter();
|
try (final StringWriter sw = new StringWriter();
|
||||||
final PrintWriter pw = new PrintWriter(sw)) {
|
final PrintWriter pw = new PrintWriter(sw)) {
|
||||||
e.printStackTrace(pw);
|
e.printStackTrace(pw);
|
||||||
final ConfirmDialogFragment dialogFragment = ConfirmDialogFragment.newInstance(
|
showErrorDialog("com.android.externalstorage.documents".equals(data.getData().getAuthority())
|
||||||
123,
|
|
||||||
R.string.error,
|
|
||||||
"com.android.externalstorage.documents".equals(data.getData().getAuthority())
|
|
||||||
? "Please report this error to the developers:\n\n" + sw.toString()
|
? "Please report this error to the developers:\n\n" + sw.toString()
|
||||||
: getString(R.string.dir_select_no_download_folder, data.getData().getAuthority()),
|
: getString(R.string.dir_select_no_download_folder, data.getData().getAuthority()));
|
||||||
R.string.ok,
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
);
|
|
||||||
dialogFragment.show(getChildFragmentManager(), ConfirmDialogFragment.class.getSimpleName());
|
|
||||||
} catch (IOException ioException) {
|
} catch (IOException ioException) {
|
||||||
Log.e(TAG, "onActivityResult: ", ioException);
|
Log.e(TAG, "onActivityResult: ", ioException);
|
||||||
}
|
}
|
||||||
@ -123,6 +125,18 @@ public class DownloadsPreferencesFragment extends BasePreferencesFragment {
|
|||||||
}, 500);
|
}, 500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void showErrorDialog(final String message) {
|
||||||
|
final ConfirmDialogFragment dialogFragment = ConfirmDialogFragment.newInstance(
|
||||||
|
123,
|
||||||
|
R.string.error,
|
||||||
|
message,
|
||||||
|
R.string.ok,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
);
|
||||||
|
dialogFragment.show(getChildFragmentManager(), ConfirmDialogFragment.class.getSimpleName());
|
||||||
|
}
|
||||||
|
|
||||||
private Preference getPrependUsernameToFilenamePreference(@NonNull final Context context) {
|
private Preference getPrependUsernameToFilenamePreference(@NonNull final Context context) {
|
||||||
final SwitchPreferenceCompat preference = new SwitchPreferenceCompat(context);
|
final SwitchPreferenceCompat preference = new SwitchPreferenceCompat(context);
|
||||||
preference.setKey(PreferenceKeys.DOWNLOAD_PREPEND_USER_NAME);
|
preference.setKey(PreferenceKeys.DOWNLOAD_PREPEND_USER_NAME);
|
||||||
|
@ -517,4 +517,5 @@
|
|||||||
<string name="slide_to_cancel">Slide to Cancel</string>
|
<string name="slide_to_cancel">Slide to Cancel</string>
|
||||||
<string name="disable_screen_transitions">Disable screen transitions</string>
|
<string name="disable_screen_transitions">Disable screen transitions</string>
|
||||||
<string name="invalid_format">Invalid format</string>
|
<string name="invalid_format">Invalid format</string>
|
||||||
|
<string name="no_directory_picker_activity">No activity found to select directory</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
Reference in New Issue
Block a user