diff options
author | Stefan Niedermann <info@niedermann.it> | 2021-08-03 12:27:44 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2021-08-03 12:27:44 +0300 |
commit | a9f814216069af7d960c22c036bfa1d92f69f2f3 (patch) | |
tree | f7c54b82a57c81e974b4996c8dc41c11ace4bf70 /app | |
parent | 79a442550f86709cab9694a46ac54b548407ee25 (diff) |
Disable save / edit buttons while pending
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/NewCardDialog.java | 22 | ||||
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateViewModel.java | 8 |
2 files changed, 17 insertions, 13 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/NewCardDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/NewCardDialog.java index 84a3b1d0f..5332dc0e0 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/NewCardDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/NewCardDialog.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.branding; +import static androidx.lifecycle.Transformations.distinctUntilChanged; + import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; @@ -30,8 +32,6 @@ import it.niedermann.nextcloud.deck.ui.card.EditActivity; import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import it.niedermann.nextcloud.deck.ui.preparecreate.PrepareCreateViewModel; -import static androidx.lifecycle.Transformations.distinctUntilChanged; - public class NewCardDialog extends DialogFragment implements DialogInterface.OnClickListener { private PrepareCreateViewModel viewModel; @@ -53,7 +53,7 @@ public class NewCardDialog extends DialogFragment implements DialogInterface.OnC @Override public void onAttach(@NonNull Context context) { super.onAttach(context); - final Bundle args = getArguments(); + final var args = getArguments(); if (args == null) { throw new IllegalArgumentException("Provide " + ARG_ACCOUNT + ", " + ARG_BOARD_LOCAL_ID + " and " + ARG_STACK_LOCAL_ID); } @@ -69,7 +69,7 @@ public class NewCardDialog extends DialogFragment implements DialogInterface.OnC public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { binding = DialogNewCardBinding.inflate(requireActivity().getLayoutInflater()); - final AlertDialog dialog = new AlertDialog.Builder(requireActivity()) + final var dialog = new AlertDialog.Builder(requireActivity()) .setTitle(R.string.add_card) .setView(binding.getRoot()) .setPositiveButton(R.string.edit, null) @@ -113,9 +113,13 @@ public class NewCardDialog extends DialogFragment implements DialogInterface.OnC if (isPending) { binding.inputWrapper.setVisibility(View.INVISIBLE); binding.progressCircular.setVisibility(View.VISIBLE); + dialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(false); + dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setEnabled(false); } else { binding.inputWrapper.setVisibility(View.VISIBLE); binding.progressCircular.setVisibility(View.GONE); + dialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(true); + dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setEnabled(true); } }); @@ -155,10 +159,10 @@ public class NewCardDialog extends DialogFragment implements DialogInterface.OnC } if (Boolean.FALSE.equals(isPending.getValue())) { isPending.setValue(true); - final Editable currentUserInput = binding.input.getText(); + final var currentUserInput = binding.input.getText(); if (inputIsValid(currentUserInput)) { - final FullCard fullCard = viewModel.createFullCard(account.getServerDeckVersionAsObject(), currentUserInput.toString()); - viewModel.saveCard(account.getId(), boardLocalId, stackLocalId, fullCard, new IResponseCallback<FullCard>() { + final var fullCard = viewModel.createFullCard(account.getServerDeckVersionAsObject(), currentUserInput.toString()); + viewModel.saveCard(account.getId(), boardLocalId, stackLocalId, fullCard, new IResponseCallback<>() { @Override public void onResponse(FullCard createdCard) { requireActivity().runOnUiThread(() -> { @@ -193,8 +197,8 @@ public class NewCardDialog extends DialogFragment implements DialogInterface.OnC } public static DialogFragment newInstance(@NonNull Account account, long boardLocalId, long stackLocalId, @ColorInt int brand) { - final DialogFragment fragment = new NewCardDialog(); - final Bundle args = new Bundle(); + final var fragment = new NewCardDialog(); + final var args = new Bundle(); args.putSerializable(ARG_ACCOUNT, account); args.putLong(ARG_BOARD_LOCAL_ID, boardLocalId); args.putLong(ARG_STACK_LOCAL_ID, stackLocalId); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateViewModel.java index 1ce61f380..aef37bbcd 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateViewModel.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateViewModel.java @@ -63,8 +63,8 @@ public class PrepareCreateViewModel extends AndroidViewModel { public FullCard createFullCard(@NonNull Version version, @NonNull String title, @NonNull String description) { if (!TextUtils.isEmpty(title) && !TextUtils.isEmpty(description)) { - final FullCard fullCard = new FullCard(); - final Card card = new Card(); + final var fullCard = new FullCard(); + final var card = new Card(); final int maxLength = version.getCardTitleMaxLength(); if (title.length() > maxLength) { card.setTitle(title.substring(0, maxLength)); @@ -88,8 +88,8 @@ public class PrepareCreateViewModel extends AndroidViewModel { if (TextUtils.isEmpty(content)) { throw new IllegalArgumentException("Content must not be empty."); } - final FullCard fullCard = new FullCard(); - final Card card = new Card(); + final var fullCard = new FullCard(); + final var card = new Card(); final int maxLength = version.getCardTitleMaxLength(); if (content.length() > maxLength) { card.setTitle(content.substring(0, maxLength).trim()); |