diff options
author | stefan-niedermann <info@niedermann.it> | 2020-02-01 20:39:35 +0300 |
---|---|---|
committer | stefan-niedermann <info@niedermann.it> | 2020-02-01 20:39:35 +0300 |
commit | 8ab6bdc033f88b62c6beb1092ace1d5fc1db3ab0 (patch) | |
tree | 08045ae698ecda541db5097d64a9406b2a3322bc | |
parent | 77771b920f5b37e093015c51d4a8a7df42525fac (diff) |
#211 Attachments
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAttachmentsFragment.java | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAttachmentsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAttachmentsFragment.java index 28f77add0..f3288c27c 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAttachmentsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAttachmentsFragment.java @@ -1,8 +1,10 @@ package it.niedermann.nextcloud.deck.ui.card; +import android.Manifest; import android.app.Activity; import android.content.Intent; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; @@ -12,6 +14,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.coordinatorlayout.widget.CoordinatorLayout; +import androidx.core.app.ActivityCompat; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.RecyclerView; @@ -39,6 +42,7 @@ public class CardAttachmentsFragment extends Fragment implements AttachmentAdapt private static final String TAG = CardAttachmentsFragment.class.getCanonicalName(); private static final int REQUEST_CODE_ADD_ATTACHMENT = 1; + private static final int REQUEST_PERMISSION = 2; private SyncManager syncManager; @@ -85,11 +89,12 @@ public class CardAttachmentsFragment extends Fragment implements AttachmentAdapt if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT && canEdit) { fab.setOnClickListener(v -> { -// Snackbar.make(coordinatorLayout, "Adding attachments is not yet implemented", Snackbar.LENGTH_LONG).show(); - Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); - intent.addCategory(Intent.CATEGORY_OPENABLE); - intent.setType("*/*"); - startActivityForResult(intent, REQUEST_CODE_ADD_ATTACHMENT); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, + REQUEST_PERMISSION); + } else { + startFilePickerIntent(); + } }); fab.show(); attachmentsList.addOnScrollListener(new RecyclerView.OnScrollListener() { @@ -111,9 +116,20 @@ public class CardAttachmentsFragment extends Fragment implements AttachmentAdapt return view; } + private void startFilePickerIntent() { +// Snackbar.make(coordinatorLayout, "Adding attachments is not yet implemented", Snackbar.LENGTH_LONG).show(); + Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); + intent.addCategory(Intent.CATEGORY_OPENABLE); + intent.setType("*/*"); + startActivityForResult(intent, REQUEST_CODE_ADD_ATTACHMENT); + } + @Override public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); + if (requestCode == REQUEST_PERMISSION && resultCode == Activity.RESULT_OK) { + startFilePickerIntent(); + } if (requestCode == REQUEST_CODE_ADD_ATTACHMENT && resultCode == Activity.RESULT_OK) { Uri uri = null; if (data != null) { |