diff options
author | Stefan Niedermann <info@niedermann.it> | 2021-06-17 18:30:59 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2021-06-17 18:31:10 +0300 |
commit | b108515abae3a9523179f4e576545335978fcbfd (patch) | |
tree | 37936d02d4f59d5b5174d21c63b650f30203723d /app/src/main/java/it/niedermann/nextcloud/deck/ui/card | |
parent | 5fa1024e4a63e2e85cd94f6d7e237d8d3a7b549b (diff) | |
parent | 34458e8c3bc02daae17872b2ab0671d20119a8ce (diff) |
Merge branch 'master' into create-card-before-editing
Signed-off-by: Stefan Niedermann <info@niedermann.it>
# Conflicts:
# app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardDialogFragment.java
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/card')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java | 12 | ||||
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java | 7 |
2 files changed, 15 insertions, 4 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java index f1f584df6..4648e34c3 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java @@ -19,6 +19,8 @@ import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import it.niedermann.android.crosstabdnd.DragAndDropAdapter; import it.niedermann.android.crosstabdnd.DraggedItemLocalState; @@ -45,6 +47,7 @@ import static it.niedermann.nextcloud.deck.util.MimeTypeUtil.TEXT_PLAIN; public class CardAdapter extends RecyclerView.Adapter<AbstractCardViewHolder> implements DragAndDropAdapter<FullCard>, CardOptionsItemSelectedListener, Branded { + private final ExecutorService executor; private final boolean compactMode; @NonNull protected final MainViewModel mainViewModel; @@ -66,6 +69,10 @@ public class CardAdapter extends RecyclerView.Adapter<AbstractCardViewHolder> im protected final int maxCoverImages; public CardAdapter(@NonNull Activity activity, @NonNull FragmentManager fragmentManager, long stackId, @NonNull MainViewModel mainViewModel, @Nullable SelectCardListener selectCardListener) { + this(activity, fragmentManager, stackId, mainViewModel, selectCardListener, Executors.newSingleThreadExecutor()); + } + + private CardAdapter(@NonNull Activity activity, @NonNull FragmentManager fragmentManager, long stackId, @NonNull MainViewModel mainViewModel, @Nullable SelectCardListener selectCardListener, @NonNull ExecutorService executor) { this.activity = activity; this.counterMaxValue = this.activity.getString(R.string.counter_max_value); this.fragmentManager = fragmentManager; @@ -79,6 +86,7 @@ public class CardAdapter extends RecyclerView.Adapter<AbstractCardViewHolder> im ? activity.getResources().getInteger(R.integer.max_cover_images) : 0; setHasStableIds(true); + this.executor = executor; } @Override @@ -204,10 +212,10 @@ public class CardAdapter extends RecyclerView.Adapter<AbstractCardViewHolder> im .putExtra(Intent.EXTRA_TEXT, CardUtil.getCardContentAsString(activity, fullCard)); activity.startActivity(Intent.createChooser(shareIntent, fullCard.getCard().getTitle())); } else if (itemId == R.id.action_card_assign) { - new Thread(() -> mainViewModel.assignUserToCard(mainViewModel.getUserByUidDirectly(fullCard.getCard().getAccountId(), account.getUserName()), fullCard.getCard())).start(); + executor.submit(() -> mainViewModel.assignUserToCard(mainViewModel.getUserByUidDirectly(fullCard.getCard().getAccountId(), account.getUserName()), fullCard.getCard())); return true; } else if (itemId == R.id.action_card_unassign) { - new Thread(() -> mainViewModel.unassignUserFromCard(mainViewModel.getUserByUidDirectly(fullCard.getCard().getAccountId(), account.getUserName()), fullCard.getCard())).start(); + executor.submit(() -> mainViewModel.unassignUserFromCard(mainViewModel.getUserByUidDirectly(fullCard.getCard().getAccountId(), account.getUserName()), fullCard.getCard())); return true; } else if (itemId == R.id.action_card_move) { DeckLog.verbose("[Move card] Launch move dialog for " + Card.class.getSimpleName() + " \"" + fullCard.getCard().getTitle() + "\" (#" + fullCard.getLocalId() + ") from " + Stack.class.getSimpleName() + " #" + +stackId); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java index 4594fcf79..4cf57ba6f 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java @@ -38,6 +38,8 @@ import java.io.IOException; import java.time.Instant; import java.util.List; import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import id.zelory.compressor.constraint.FormatConstraint; import id.zelory.compressor.constraint.QualityConstraint; @@ -95,6 +97,7 @@ public class CardAttachmentsFragment extends Fragment implements AttachmentDelet private PreviewDialogViewModel previewViewModel; private BottomSheetBehavior<LinearLayout> mBottomSheetBehaviour; private boolean compressImagesOnUpload = true; + private final ExecutorService executor = Executors.newCachedThreadPool(); private RecyclerView.ItemDecoration galleryItemDecoration; @@ -404,7 +407,7 @@ public class CardAttachmentsFragment extends Fragment implements AttachmentDelet DeckLog.verbose("--- found content URL", sourceUri.getPath()); // Separate Thread required because picked file might not yet be locally available // https://github.com/stefan-niedermann/nextcloud-deck/issues/814 - new Thread(() -> { + executor.submit(() -> { try { final File originalFile = copyContentUriToTempFile(requireContext(), sourceUri, editViewModel.getAccount().getId(), editViewModel.getFullCard().getLocalId()); requireActivity().runOnUiThread(() -> { @@ -430,7 +433,7 @@ public class CardAttachmentsFragment extends Fragment implements AttachmentDelet } catch (IOException e) { requireActivity().runOnUiThread(() -> ExceptionDialogFragment.newInstance(e, editViewModel.getAccount()).show(getChildFragmentManager(), ExceptionDialogFragment.class.getSimpleName())); } - }).start(); + }); break; } default: { |