diff options
author | Stefan Niedermann <info@niedermann.it> | 2021-04-05 10:30:45 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2021-04-05 10:30:45 +0300 |
commit | f4ffca4e970ac1310f8a7ccb7b781bf801dfce57 (patch) | |
tree | b063ee6d6754f8ad5ccb31b123208c1cc558611f | |
parent | 9a29aed76007758fdee4a1b25daf20dd0512139f (diff) |
Fix #917 Crash when adding labels
Signed-off-by: Stefan Niedermann <info@niedermann.it>
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java | 25 | ||||
-rw-r--r-- | fastlane/metadata/android/en-US/changelogs/1016001.txt | 1 |
2 files changed, 19 insertions, 7 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java index 51ba42dd6..79870514a 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java @@ -6,7 +6,10 @@ import android.database.sqlite.SQLiteConstraintException; import android.os.Bundle; import android.widget.Toast; +import androidx.annotation.AnyThread; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.UiThread; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import androidx.lifecycle.ViewModelProvider; @@ -83,20 +86,20 @@ public class ManageLabelsDialogFragment extends BrandedDialogFragment implements viewModel.createLabel(viewModel.getCurrentAccount().getId(), label, boardId, new ResponseCallback<Label>() { @Override public void onResponse(Label response) { - Toast.makeText(requireContext(), getString(R.string.tag_successfully_added, label.getTitle()), Toast.LENGTH_LONG).show(); requireActivity().runOnUiThread(() -> { binding.fab.setEnabled(true); binding.addLabelTitle.setText(null); }); + toastFromThread(getString(R.string.tag_successfully_added, label.getTitle())); } @Override public void onError(Throwable throwable) { requireActivity().runOnUiThread(() -> binding.fab.setEnabled(true)); if (throwable instanceof SQLiteConstraintException) { - Toast.makeText(requireContext(), getString(R.string.tag_already_exists, label.getTitle()), Toast.LENGTH_LONG).show(); + toastFromThread(getString(R.string.tag_already_exists, label.getTitle())); } else { - Toast.makeText(requireContext(), throwable.getLocalizedMessage(), Toast.LENGTH_LONG).show(); + toastFromThread(throwable.getLocalizedMessage()); ResponseCallback.super.onError(throwable); } } @@ -153,7 +156,7 @@ public class ManageLabelsDialogFragment extends BrandedDialogFragment implements public void onError(Throwable throwable) { if (!SyncManager.ignoreExceptionOnVoidError(throwable)) { ResponseCallback.super.onError(throwable); - Toast.makeText(requireContext(), throwable.getLocalizedMessage(), Toast.LENGTH_LONG).show(); + toastFromThread(throwable.getLocalizedMessage()); } } }); @@ -169,18 +172,26 @@ public class ManageLabelsDialogFragment extends BrandedDialogFragment implements viewModel.updateLabel(label, new ResponseCallback<Label>() { @Override public void onResponse(Label label) { - DeckLog.verbose("Successfully update label", label.getTitle()); + DeckLog.info("Successfully update label", label.getTitle()); } @Override public void onError(Throwable error) { if (error instanceof SQLiteConstraintException) { - Toast.makeText(requireContext(), getString(R.string.tag_already_exists, label.getTitle()), Toast.LENGTH_LONG).show(); + toastFromThread(getString(R.string.tag_already_exists, label.getTitle())); } else { ResponseCallback.super.onError(error); - Toast.makeText(requireContext(), error.getLocalizedMessage(), Toast.LENGTH_LONG).show(); + toastFromThread(error.getLocalizedMessage()); } } }); } + + /** + * Ensures that the {@param message} gets toasted on the {@link UiThread} to avoid <a href="https://github.com/stefan-niedermann/nextcloud-deck/issues/917">crashes</a>. + */ + @AnyThread + private void toastFromThread(@Nullable String message) { + requireActivity().runOnUiThread(() -> Toast.makeText(requireContext(), message, Toast.LENGTH_LONG).show()); + } }
\ No newline at end of file diff --git a/fastlane/metadata/android/en-US/changelogs/1016001.txt b/fastlane/metadata/android/en-US/changelogs/1016001.txt index 3a6a2aa8e..7f156ccb5 100644 --- a/fastlane/metadata/android/en-US/changelogs/1016001.txt +++ b/fastlane/metadata/android/en-US/changelogs/1016001.txt @@ -1,6 +1,7 @@ 1.16.1 - ✅ Number of tasks in a checklist is not shown unless there is a comment on the card too (#910) +- 🐞 Crash when adding labels (#917) 1.16.0 |