Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2021-04-05 10:30:45 +0300
committerStefan Niedermann <info@niedermann.it>2021-04-05 10:30:45 +0300
commitf4ffca4e970ac1310f8a7ccb7b781bf801dfce57 (patch)
treeb063ee6d6754f8ad5ccb31b123208c1cc558611f
parent9a29aed76007758fdee4a1b25daf20dd0512139f (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.java25
-rw-r--r--fastlane/metadata/android/en-US/changelogs/1016001.txt1
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