From 032f56ad67b449e90517f1920be4a533fcbb6d89 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 24 Jun 2021 17:13:21 -0300 Subject: [PATCH] Try to force file chooser to show internal/external storage by default --- .../android/removabledrive/ReceiveFragment.java | 13 ++++++++++++- .../briar/android/removabledrive/SendFragment.java | 13 ++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ReceiveFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ReceiveFragment.java index 8f058571c..a82818649 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ReceiveFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ReceiveFragment.java @@ -1,6 +1,7 @@ package org.briarproject.briar.android.removabledrive; import android.content.Context; +import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; @@ -27,6 +28,7 @@ import androidx.lifecycle.ViewModelProvider; import static android.view.View.VISIBLE; import static android.widget.Toast.LENGTH_LONG; import static org.briarproject.briar.android.AppModule.getAndroidComponent; +import static org.briarproject.briar.android.util.UiUtils.putShowAdvancedExtra; @MethodsNotNullByDefault @ParametersNotNullByDefault @@ -34,13 +36,22 @@ public class ReceiveFragment extends Fragment { final static String TAG = ReceiveFragment.class.getName(); + private static class GetFile extends GetContent { + @Override + public Intent createIntent(Context context, String input) { + Intent i = super.createIntent(context, input); + putShowAdvancedExtra(i); + return i; + } + } + // TODO we can pass an extra named DocumentsContract.EXTRA_INITIAL_URI // to have the file-picker start on the usb-stick -- if get hold of URI // of the same. USB manager API? // Overall, passing this extra requires extending the ready-made // contracts and overriding createIntent. private final ActivityResultLauncher launcher = - registerForActivityResult(new GetContent(), this::onDocumentChosen); + registerForActivityResult(new GetFile(), this::onDocumentChosen); @Inject ViewModelProvider.Factory viewModelFactory; diff --git a/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/SendFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/SendFragment.java index b7659a73b..9dc82a5eb 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/SendFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/SendFragment.java @@ -1,6 +1,7 @@ package org.briarproject.briar.android.removabledrive; import android.content.Context; +import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; @@ -29,6 +30,7 @@ import static android.os.Build.VERSION.SDK_INT; import static android.view.View.VISIBLE; import static android.widget.Toast.LENGTH_LONG; import static org.briarproject.briar.android.AppModule.getAndroidComponent; +import static org.briarproject.briar.android.util.UiUtils.putShowAdvancedExtra; @MethodsNotNullByDefault @ParametersNotNullByDefault @@ -36,8 +38,17 @@ public class SendFragment extends Fragment { final static String TAG = SendFragment.class.getName(); + private static class CreateDocumentAdvanced extends CreateDocument { + @Override + public Intent createIntent(Context context, String input) { + Intent i = super.createIntent(context, input); + putShowAdvancedExtra(i); + return i; + } + } + private final ActivityResultLauncher launcher = - registerForActivityResult(new CreateDocument(), + registerForActivityResult(new CreateDocumentAdvanced(), this::onDocumentCreated); @Inject