diff options
author | Niedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com> | 2021-04-11 11:54:55 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-11 11:54:55 +0300 |
commit | b4f6f9d19cba6c8b3106a58edf4e373d7c849310 (patch) | |
tree | b735345f4aa1faf026e585d34e88ea802e6b868f /app/src/main/java | |
parent | 386da9eabe3c8e6cea544b535374496171c5f753 (diff) |
Use Material TextInputLayout (#926)
* Use Material TextInputLayout
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* Use Material TextInputLayout - Put icons into EditText
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* Use Material TextInputLayout - Move edit / preview description button inside of description field
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* Use Material TextInputLayout - Move edit / preview description button out of the description field
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* Use Material TextInputLayout - Move edit / preview description button inside of description field
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* Use Material TextInputLayout - Move edit / preview description button inside of description field
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* Use Material TextInputLayout - increase description padding
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* Use Material TextInputLayout - Remove unnecessary LinearLayout
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* Do no longer brand dialog buttons
because the material inputs are already colorful enough
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* Fix EditBoardDialogFragment branding
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* Use Material TextInputLayout - Fix unbranded TextInputLayout style
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* Use Material TextInputLayout - Fix accessibility warnings
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* Use Material TextInputLayout - Update screenshots
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main/java')
21 files changed, 78 insertions, 122 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java index ee3be1cb9..80ae13790 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java @@ -27,6 +27,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.UiThread; import androidx.appcompat.app.ActionBarDrawerToggle; +import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; @@ -84,7 +85,6 @@ import it.niedermann.nextcloud.deck.ui.board.ArchiveBoardListener; import it.niedermann.nextcloud.deck.ui.board.DeleteBoardListener; import it.niedermann.nextcloud.deck.ui.board.EditBoardDialogFragment; import it.niedermann.nextcloud.deck.ui.board.EditBoardListener; -import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder; import it.niedermann.nextcloud.deck.ui.branding.BrandedSnackbar; import it.niedermann.nextcloud.deck.ui.card.CardAdapter; import it.niedermann.nextcloud.deck.ui.card.EditActivity; @@ -717,7 +717,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen final Stack stack = stackAdapter.getItem(binding.viewPager.getCurrentItem()); final long stackLocalId = stack.getLocalId(); observeOnce(mainViewModel.countCardsInStack(mainViewModel.getCurrentAccount().getId(), stackLocalId), MainActivity.this, (numberOfCards) -> { - new BrandedAlertDialogBuilder(this) + new AlertDialog.Builder(this) .setTitle(R.string.archive_cards) .setMessage(getString(FilterInformation.hasActiveFilter(filterViewModel.getFilterInformation().getValue()) ? R.string.do_you_want_to_archive_all_cards_of_the_filtered_list @@ -865,7 +865,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen }); } else { DeckLog.warn("Cannot import account because server version is too low (" + response.getDeckVersion() + "). Minimum server version is currently", Version.minimumSupported()); - runOnUiThread(() -> new BrandedAlertDialogBuilder(MainActivity.this) + runOnUiThread(() -> new AlertDialog.Builder(MainActivity.this) .setTitle(R.string.update_deck) .setMessage(getString(R.string.deck_outdated_please_update, response.getDeckVersion().getOriginalVersion())) .setNegativeButton(R.string.simple_discard, null) @@ -879,7 +879,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen } } else { DeckLog.warn("Cannot import account because server version is currently in maintenance mode."); - runOnUiThread(() -> new BrandedAlertDialogBuilder(MainActivity.this) + runOnUiThread(() -> new AlertDialog.Builder(MainActivity.this) .setTitle(R.string.maintenance_mode) .setMessage(getString(R.string.maintenance_mode_explanation, createdAccount.getUrl())) .setPositiveButton(R.string.simple_close, null) @@ -894,7 +894,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen mainViewModel.deleteAccount(createdAccount.getId()); if (throwable instanceof OfflineException) { DeckLog.warn("Cannot import account because device is currently offline."); - runOnUiThread(() -> new BrandedAlertDialogBuilder(MainActivity.this) + runOnUiThread(() -> new AlertDialog.Builder(MainActivity.this) .setTitle(R.string.you_are_currently_offline) .setMessage(R.string.you_have_to_be_connected_to_the_internet_in_order_to_add_an_account) .setPositiveButton(R.string.simple_close, null) @@ -1078,7 +1078,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen public void onClone(Board board) { final String[] animals = {getString(R.string.clone_cards)}; final boolean[] checkedItems = {false}; - new BrandedAlertDialogBuilder(this) + new AlertDialog.Builder(this) .setTitle(R.string.clone_board) .setMultiChoiceItems(animals, checkedItems, (dialog, which, isChecked) -> checkedItems[0] = isChecked) .setPositiveButton(R.string.simple_clone, (dialog, which) -> { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardDialogFragment.java index ee9519489..075439b15 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardDialogFragment.java @@ -10,7 +10,7 @@ import androidx.fragment.app.DialogFragment; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.model.Board; -import it.niedermann.nextcloud.deck.ui.branding.BrandedDeleteAlertDialogBuilder; +import it.niedermann.nextcloud.deck.ui.branding.DeleteAlertDialogBuilder; public class DeleteBoardDialogFragment extends DialogFragment { @@ -38,7 +38,7 @@ public class DeleteBoardDialogFragment extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { - AlertDialog.Builder builder = new BrandedDeleteAlertDialogBuilder(requireContext()) + AlertDialog.Builder builder = new DeleteAlertDialogBuilder(requireContext()) .setTitle(getString(R.string.delete_something, board.getTitle())) .setMessage(R.string.delete_board_message) .setPositiveButton(R.string.simple_delete, (dialog, which) -> deleteBoardListener.onBoardDeleted(board)) diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardDialogFragment.java index 9da836c4c..d084e65b9 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardDialogFragment.java @@ -15,12 +15,10 @@ import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogTextColorInputBinding; import it.niedermann.nextcloud.deck.model.full.FullBoard; import it.niedermann.nextcloud.deck.ui.MainViewModel; -import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder; -import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditText; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditTextInputLayout; -public class EditBoardDialogFragment extends BrandedDialogFragment { +public class EditBoardDialogFragment extends DialogFragment { private DialogTextColorInputBinding binding; @@ -48,7 +46,7 @@ public class EditBoardDialogFragment extends BrandedDialogFragment { final Bundle args = getArguments(); - AlertDialog.Builder dialogBuilder = new BrandedAlertDialogBuilder(requireContext()); + final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext()); if (args != null && args.containsKey(KEY_BOARD_ID)) { dialogBuilder.setTitle(R.string.edit_board); @@ -64,6 +62,7 @@ public class EditBoardDialogFragment extends BrandedDialogFragment { String title = this.fullBoard.getBoard().getTitle(); binding.input.setText(title); binding.input.setSelection(title.length()); + applyBrandToEditTextInputLayout(fb.getBoard().getColor(), binding.inputWrapper); binding.colorChooser.selectColor(fullBoard.getBoard().getColor()); } }); @@ -94,9 +93,4 @@ public class EditBoardDialogFragment extends BrandedDialogFragment { public static DialogFragment newInstance() { return newInstance(null); } - - @Override - public void applyBrand(int mainColor) { - applyBrandToEditText(mainColor, binding.input); - } }
\ No newline at end of file diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlDialogFragment.java index 44bbcfe19..f3232c95e 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlDialogFragment.java @@ -25,7 +25,6 @@ import it.niedermann.nextcloud.deck.model.User; import it.niedermann.nextcloud.deck.model.full.FullBoard; import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; import it.niedermann.nextcloud.deck.ui.MainViewModel; -import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder; import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; import it.niedermann.nextcloud.deck.ui.branding.BrandedSnackbar; import it.niedermann.nextcloud.deck.ui.card.UserAutoCompleteAdapter; @@ -67,7 +66,7 @@ public class AccessControlDialogFragment extends BrandedDialogFragment implement super.onCreate(savedInstanceState); viewModel = new ViewModelProvider(requireActivity()).get(MainViewModel.class); - final AlertDialog.Builder dialogBuilder = new BrandedAlertDialogBuilder(requireContext()); + final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext()); binding = DialogBoardShareBinding.inflate(requireActivity().getLayoutInflater()); adapter = new AccessControlAdapter(viewModel.getCurrentAccount(), this, requireContext()); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/EditLabelDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/EditLabelDialogFragment.java index 2dacfe6ac..6c83ea8cb 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/EditLabelDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/EditLabelDialogFragment.java @@ -11,7 +11,6 @@ import androidx.fragment.app.DialogFragment; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogTextColorInputBinding; import it.niedermann.nextcloud.deck.model.Label; -import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder; import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditText; @@ -54,7 +53,7 @@ public class EditLabelDialogFragment extends BrandedDialogFragment { super.onCreate(savedInstanceState); binding = DialogTextColorInputBinding.inflate(requireActivity().getLayoutInflater()); - AlertDialog.Builder dialogBuilder = new BrandedAlertDialogBuilder(requireContext()); + final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext()); dialogBuilder.setTitle(getString(R.string.edit_tag, label.getTitle())); dialogBuilder.setPositiveButton(R.string.simple_save, (dialog, which) -> { 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 79870514a..6d367b8c2 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 @@ -23,12 +23,11 @@ import it.niedermann.nextcloud.deck.databinding.DialogBoardManageLabelsBinding; import it.niedermann.nextcloud.deck.model.Label; import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; import it.niedermann.nextcloud.deck.ui.MainViewModel; -import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder; -import it.niedermann.nextcloud.deck.ui.branding.BrandedDeleteAlertDialogBuilder; import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; +import it.niedermann.nextcloud.deck.ui.branding.DeleteAlertDialogBuilder; import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditText; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditTextInputLayout; import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToFAB; public class ManageLabelsDialogFragment extends BrandedDialogFragment implements ManageLabelListener, EditLabelListener { @@ -64,7 +63,7 @@ public class ManageLabelsDialogFragment extends BrandedDialogFragment implements super.onCreate(savedInstanceState); viewModel = new ViewModelProvider(requireActivity()).get(MainViewModel.class); - final AlertDialog.Builder dialogBuilder = new BrandedAlertDialogBuilder(requireContext()); + final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext()); binding = DialogBoardManageLabelsBinding.inflate(requireActivity().getLayoutInflater()); colors = getResources().getStringArray(R.array.board_default_colors); adapter = new ManageLabelsAdapter(this, requireContext()); @@ -116,7 +115,7 @@ public class ManageLabelsDialogFragment extends BrandedDialogFragment implements @Override public void applyBrand(int mainColor) { applyBrandToFAB(mainColor, binding.fab); - applyBrandToEditText(mainColor, binding.addLabelTitle); + applyBrandToEditTextInputLayout(mainColor, binding.addLabelTitleWrapper); } public static DialogFragment newInstance(long boardLocalId) { @@ -133,7 +132,7 @@ public class ManageLabelsDialogFragment extends BrandedDialogFragment implements public void requestDelete(@NonNull Label label) { observeOnce(viewModel.countCardsWithLabel(label.getLocalId()), this, (count) -> { if (count > 0) { - new BrandedDeleteAlertDialogBuilder(requireContext()) + new DeleteAlertDialogBuilder(requireContext()) .setTitle(getString(R.string.delete_something, label.getTitle())) .setMessage(getResources().getQuantityString(R.plurals.do_you_want_to_delete_the_label, count, count)) .setPositiveButton(R.string.simple_delete, (dialog, which) -> deleteLabel(label)) diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedAlertDialogBuilder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedAlertDialogBuilder.java deleted file mode 100644 index 880e21073..000000000 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedAlertDialogBuilder.java +++ /dev/null @@ -1,48 +0,0 @@ -package it.niedermann.nextcloud.deck.ui.branding; - -import android.content.Context; -import android.content.DialogInterface; -import android.widget.Button; - -import androidx.annotation.CallSuper; -import androidx.annotation.ColorInt; -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; - -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor; - -public class BrandedAlertDialogBuilder extends AlertDialog.Builder implements Branded { - - protected AlertDialog dialog; - - public BrandedAlertDialogBuilder(Context context) { - super(context); - } - - @NonNull - @Override - public AlertDialog create() { - this.dialog = super.create(); - - @NonNull Context context = getContext(); - @ColorInt final int mainColor = readBrandMainColor(context); - applyBrand(mainColor); - dialog.setOnShowListener(dialog -> applyBrand(mainColor)); - return dialog; - } - - @CallSuper - @Override - public void applyBrand(int mainColor) { - final Button[] buttons = new Button[3]; - buttons[0] = dialog.getButton(DialogInterface.BUTTON_POSITIVE); - buttons[1] = dialog.getButton(DialogInterface.BUTTON_NEGATIVE); - buttons[2] = dialog.getButton(DialogInterface.BUTTON_NEUTRAL); - for (Button button : buttons) { - if (button != null) { - button.setTextColor(getSecondaryForegroundColorDependingOnTheme(button.getContext(), mainColor)); - } - } - } -} diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java index 768ba13e0..b20e437f8 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java @@ -16,6 +16,7 @@ import androidx.preference.PreferenceManager; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.tabs.TabLayout; +import com.google.android.material.textfield.TextInputLayout; import it.niedermann.android.util.ColorUtil; import it.niedermann.nextcloud.deck.DeckLog; @@ -99,6 +100,11 @@ public abstract class BrandingUtil { )); } + public static void applyBrandToEditTextInputLayout(@ColorInt int color, @NonNull TextInputLayout til) { + til.setBoxStrokeColor(contrastRatioIsSufficientBigAreas(color, ContextCompat.getColor(til.getContext(), R.color.primary)) ? color : ContextCompat.getColor(til.getContext(), R.color.accent)); + til.setHintTextColor(ColorStateList.valueOf(contrastRatioIsSufficient(color, ContextCompat.getColor(til.getContext(), R.color.primary)) ? color : ContextCompat.getColor(til.getContext(), R.color.accent))); + } + public static void tintMenuIcon(@NonNull MenuItem menuItem, @ColorInt int color) { Drawable drawable = menuItem.getIcon(); if (drawable != null) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDeleteAlertDialogBuilder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/DeleteAlertDialogBuilder.java index d88fdd6cc..377c34363 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDeleteAlertDialogBuilder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/DeleteAlertDialogBuilder.java @@ -4,21 +4,30 @@ import android.content.Context; import android.content.DialogInterface; import android.widget.Button; -import androidx.annotation.CallSuper; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; import it.niedermann.nextcloud.deck.R; -public class BrandedDeleteAlertDialogBuilder extends BrandedAlertDialogBuilder { +public class DeleteAlertDialogBuilder extends AlertDialog.Builder { - public BrandedDeleteAlertDialogBuilder(Context context) { + protected AlertDialog dialog; + + public DeleteAlertDialogBuilder(Context context) { super(context); } - @CallSuper + @NonNull @Override - public void applyBrand(int mainColor) { - super.applyBrand(mainColor); + public AlertDialog create() { + this.dialog = super.create(); + applyBrand(); + dialog.setOnShowListener(dialog -> applyBrand()); + return dialog; + } + + public void applyBrand() { final Button positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE); if (positiveButton != null) { positiveButton.setTextColor(ContextCompat.getColor(getContext(), R.color.danger)); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java index 4ecd914fe..9646bae56 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java @@ -15,6 +15,7 @@ import android.view.WindowManager; import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import androidx.core.content.ContextCompat; import androidx.core.graphics.drawable.DrawableCompat; @@ -30,7 +31,6 @@ import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.Card; import it.niedermann.nextcloud.deck.model.full.FullCard; import it.niedermann.nextcloud.deck.model.ocs.Version; -import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder; import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler; import it.niedermann.nextcloud.deck.util.CardUtil; @@ -138,7 +138,7 @@ public class EditActivity extends AppCompatActivity { } else { observeOnce(viewModel.getFullCardWithProjectsByLocalId(account.getId(), cardId), EditActivity.this, (fullCard) -> { if (fullCard == null) { - new BrandedAlertDialogBuilder(this) + new AlertDialog.Builder(this) .setTitle(R.string.card_not_found) .setMessage(R.string.card_not_found_message) .setPositiveButton(R.string.simple_close, (a, b) -> super.finish()) @@ -225,7 +225,7 @@ public class EditActivity extends AppCompatActivity { viewModel.getFullCard().getCard().setTitle(viewModel.getFullCard().getCard().getTitle().trim()); binding.title.setText(viewModel.getFullCard().getCard().getTitle()); if (viewModel.getFullCard().getCard().getTitle().isEmpty()) { - new BrandedAlertDialogBuilder(this) + new AlertDialog.Builder(this) .setTitle(R.string.title_is_mandatory) .setMessage(R.string.provide_at_least_a_title_or_description) .setPositiveButton(android.R.string.ok, null) @@ -303,7 +303,7 @@ public class EditActivity extends AppCompatActivity { @Override public void finish() { if (!viewModel.hasChanges() && viewModel.canEdit()) { - new BrandedAlertDialogBuilder(this) + new AlertDialog.Builder(this) .setTitle(R.string.simple_save) .setMessage(R.string.do_you_want_to_save_your_changes) .setPositiveButton(R.string.simple_save, (dialog, whichButton) -> saveAndFinish()) diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/assignee/CardAssigneeDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/assignee/CardAssigneeDialog.java index db24f8112..c86807cb2 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/assignee/CardAssigneeDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/assignee/CardAssigneeDialog.java @@ -21,7 +21,7 @@ import java.io.Serializable; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogPreviewBinding; import it.niedermann.nextcloud.deck.model.User; -import it.niedermann.nextcloud.deck.ui.branding.BrandedDeleteAlertDialogBuilder; +import it.niedermann.nextcloud.deck.ui.branding.DeleteAlertDialogBuilder; import it.niedermann.nextcloud.deck.ui.card.EditCardViewModel; import it.niedermann.nextcloud.deck.ui.card.attachments.previewdialog.PreviewDialog; @@ -69,7 +69,7 @@ public class CardAssigneeDialog extends DialogFragment { binding = DialogPreviewBinding.inflate(LayoutInflater.from(requireContext())); viewModel = new ViewModelProvider(requireActivity()).get(EditCardViewModel.class); - AlertDialog.Builder dialogBuilder = new BrandedDeleteAlertDialogBuilder(requireContext()); + AlertDialog.Builder dialogBuilder = new DeleteAlertDialogBuilder(requireContext()); if (viewModel.canEdit() && cardAssigneeListener != null) { dialogBuilder.setPositiveButton(R.string.simple_unassign, (d, w) -> cardAssigneeListener.onUnassignUser(user)); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/DeleteAttachmentDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/DeleteAttachmentDialogFragment.java index 02cec5771..270c0a138 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/DeleteAttachmentDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/DeleteAttachmentDialogFragment.java @@ -10,7 +10,7 @@ import androidx.fragment.app.DialogFragment; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.model.Attachment; -import it.niedermann.nextcloud.deck.ui.branding.BrandedDeleteAlertDialogBuilder; +import it.niedermann.nextcloud.deck.ui.branding.DeleteAlertDialogBuilder; public class DeleteAttachmentDialogFragment extends DialogFragment { @@ -40,7 +40,7 @@ public class DeleteAttachmentDialogFragment extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { - AlertDialog.Builder builder = new BrandedDeleteAlertDialogBuilder(requireContext()) + AlertDialog.Builder builder = new DeleteAlertDialogBuilder(requireContext()) .setTitle(getString(R.string.delete_something, attachment.getFilename())) .setMessage(R.string.attachment_delete_message) .setPositiveButton(R.string.simple_delete, (dialog, whichButton) -> deleteAttachmentListener.onAttachmentDeleted(attachment)) diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java index e2f2f3e28..1f425f728 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java @@ -9,6 +9,7 @@ import android.text.TextUtils; import android.view.LayoutInflater; import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import androidx.lifecycle.LiveData; import androidx.lifecycle.ViewModelProvider; @@ -18,7 +19,6 @@ import com.bumptech.glide.RequestBuilder; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogPreviewBinding; -import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder; import static android.view.View.GONE; import static android.view.View.VISIBLE; @@ -65,7 +65,7 @@ public class PreviewDialog extends DialogFragment { } }); - return new BrandedAlertDialogBuilder(requireContext()) + return new AlertDialog.Builder(requireContext()) .setPositiveButton(R.string.simple_attach, (d, w) -> { viewModel.setResult(true); dismiss(); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java index 692f8eb8f..a61d7c1ba 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java @@ -10,16 +10,16 @@ import android.view.WindowManager; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import java.util.Objects; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogAddCommentBinding; -import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder; import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditText; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditTextInputLayout; public class CardCommentsEditDialogFragment extends BrandedDialogFragment { private static final String BUNDLE_KEY_COMMENT_ID = "commentId"; @@ -50,7 +50,7 @@ public class CardCommentsEditDialogFragment extends BrandedDialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { binding = DialogAddCommentBinding.inflate(requireActivity().getLayoutInflater()); - return new BrandedAlertDialogBuilder(requireActivity()) + return new AlertDialog.Builder(requireActivity()) .setView(binding.getRoot()) .setTitle(R.string.simple_comment) .setNeutralButton(android.R.string.cancel, null) @@ -80,7 +80,7 @@ public class CardCommentsEditDialogFragment extends BrandedDialogFragment { @Override public void applyBrand(int mainColor) { - applyBrandToEditText(mainColor, binding.input); + applyBrandToEditTextInputLayout(mainColor, binding.inputWrapper); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java index a091b852d..33a19fe2d 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java @@ -33,6 +33,7 @@ import it.niedermann.nextcloud.deck.util.ViewUtil; import static android.view.View.GONE; import static android.view.View.VISIBLE; import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditText; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditTextInputLayout; import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToFAB; public class CardCommentsFragment extends Fragment implements CommentEditedListener, CommentDeletedListener, CommentSelectAsReplyListener { @@ -160,6 +161,7 @@ public class CardCommentsFragment extends Fragment implements CommentEditedListe private void applyBrand(int mainColor) { applyBrandToEditText(mainColor, binding.message); applyBrandToFAB(mainColor, binding.fab); + applyBrandToEditTextInputLayout(mainColor, binding.messageWrapper); } @Override diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java index 06fe1cd40..173b2d8fb 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java @@ -59,8 +59,9 @@ import it.niedermann.nextcloud.deck.ui.card.assignee.CardAssigneeListener; import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import static android.view.View.GONE; +import static android.view.View.INVISIBLE; import static android.view.View.VISIBLE; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditText; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditTextInputLayout; public class CardDetailsFragment extends Fragment implements OnDateSetListener, OnTimeSetListener, CardAssigneeListener { @@ -132,10 +133,11 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, private void applyBrand(@ColorInt int boardColor) { // TODO apply correct branding on the BrandedDatePicker - applyBrandToEditText(boardColor, binding.labels); - applyBrandToEditText(boardColor, binding.dueDateDate); - applyBrandToEditText(boardColor, binding.dueDateTime); - applyBrandToEditText(boardColor, binding.people); + applyBrandToEditTextInputLayout(boardColor, binding.labelsWrapper); + applyBrandToEditTextInputLayout(boardColor, binding.dueDateDateWrapper); + applyBrandToEditTextInputLayout(boardColor, binding.dueDateTimeWrapper); + applyBrandToEditTextInputLayout(boardColor, binding.peopleWrapper); + applyBrandToEditTextInputLayout(boardColor, binding.descriptionEditorWrapper); binding.descriptionEditor.setSearchColor(boardColor); binding.descriptionViewer.setSearchColor(boardColor); } @@ -143,19 +145,16 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, private void setupDescription() { if (viewModel.canEdit()) { binding.descriptionViewer.setMovementMethod(LinkMovementMethod.getInstance()); - binding.descriptionBar.setOnClickListener((v) -> binding.descriptionEditor.requestFocus()); binding.descriptionToggle.setOnClickListener((v) -> { editorActive = !editorActive; if (editorActive) { binding.descriptionEditor.setMarkdownString(viewModel.getFullCard().getCard().getDescription()); - binding.descriptionBar.setOnClickListener((view) -> binding.descriptionEditor.requestFocus()); - binding.descriptionEditor.setVisibility(VISIBLE); + binding.descriptionEditorWrapper.setVisibility(VISIBLE); binding.descriptionViewer.setVisibility(GONE); binding.descriptionToggle.setImageResource(R.drawable.ic_baseline_eye_24); } else { binding.descriptionViewer.setMarkdownString(viewModel.getFullCard().getCard().getDescription()); - binding.descriptionBar.setOnClickListener(null); - binding.descriptionEditor.setVisibility(GONE); + binding.descriptionEditorWrapper.setVisibility(GONE); binding.descriptionViewer.setVisibility(VISIBLE); binding.descriptionToggle.setImageResource(R.drawable.ic_edit_grey600_24dp); } @@ -168,13 +167,13 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, } else { ExceptionDialogFragment.newInstance(new IllegalStateException(FullCard.class.getSimpleName() + " was empty when trying to setup description"), viewModel.getAccount()).show(getChildFragmentManager(), ExceptionDialogFragment.class.getSimpleName()); } - binding.descriptionToggle.setVisibility(TextUtils.isEmpty(description) ? GONE : VISIBLE); + binding.descriptionToggle.setVisibility(TextUtils.isEmpty(description) ? INVISIBLE : VISIBLE); }; binding.descriptionEditor.getMarkdownString().observe(getViewLifecycleOwner(), descriptionObserver); binding.descriptionViewer.getMarkdownString().observe(getViewLifecycleOwner(), descriptionObserver); } else { binding.descriptionEditor.setEnabled(false); - binding.descriptionEditor.setVisibility(VISIBLE); + binding.descriptionEditorWrapper.setVisibility(VISIBLE); binding.descriptionViewer.setEnabled(false); binding.descriptionViewer.setVisibility(GONE); binding.descriptionViewer.setMarkdownString(viewModel.getFullCard().getCard().getDescription()); @@ -282,7 +281,7 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, } binding.labelsGroup.setVisibility(VISIBLE); } else { - binding.labelsGroup.setVisibility(View.INVISIBLE); + binding.labelsGroup.setVisibility(INVISIBLE); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java index 7434b6518..a6c1df4fe 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java @@ -18,7 +18,6 @@ import java.util.Objects; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogProjectResourcesBinding; import it.niedermann.nextcloud.deck.model.ocs.projects.OcsProjectResource; -import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder; import it.niedermann.nextcloud.deck.ui.card.EditCardViewModel; public class CardProjectResourcesDialog extends DialogFragment { @@ -50,7 +49,7 @@ public class CardProjectResourcesDialog extends DialogFragment { binding = DialogProjectResourcesBinding.inflate(LayoutInflater.from(requireContext())); viewModel = new ViewModelProvider(requireActivity()).get(EditCardViewModel.class); - AlertDialog.Builder dialogBuilder = new BrandedAlertDialogBuilder(requireContext()); + final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext()); return dialogBuilder .setTitle(projectName) diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java index bc730363e..6bdd7a588 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java @@ -23,7 +23,6 @@ import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogFilterBinding; import it.niedermann.nextcloud.deck.model.enums.EDueType; import it.niedermann.nextcloud.deck.model.internal.FilterInformation; -import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder; import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; @@ -51,7 +50,7 @@ public class FilterDialogFragment extends BrandedDialogFragment { filterViewModel = new ViewModelProvider(requireActivity()).get(FilterViewModel.class); - final AlertDialog.Builder dialogBuilder = new BrandedAlertDialogBuilder(requireContext()); + final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext()); binding = DialogFilterBinding.inflate(requireActivity().getLayoutInflater()); binding.viewPager.setAdapter(new TabsPagerAdapter(this)); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java index 332c3f194..fec92f7d4 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java @@ -11,6 +11,7 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; import androidx.lifecycle.ViewModelProvider; import com.nextcloud.android.sso.exceptions.NextcloudHttpRequestFailedException; @@ -31,7 +32,6 @@ import it.niedermann.nextcloud.deck.model.Board; import it.niedermann.nextcloud.deck.model.full.FullCard; import it.niedermann.nextcloud.deck.model.ocs.comment.DeckComment; import it.niedermann.nextcloud.deck.ui.MainActivity; -import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder; import it.niedermann.nextcloud.deck.ui.card.SelectCardListener; import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import it.niedermann.nextcloud.deck.util.MimeTypeUtil; @@ -67,7 +67,7 @@ public class ShareTargetActivity extends MainActivity implements SelectCardListe mStreamsToUpload.addAll(listOfParcelables); } } else { - new BrandedAlertDialogBuilder(this) + new AlertDialog.Builder(this) .setTitle(R.string.error) .setMessage(R.string.operation_not_yet_supported) .setPositiveButton(R.string.simple_close, (a, b) -> finish()) @@ -151,7 +151,7 @@ public class ShareTargetActivity extends MainActivity implements SelectCardListe private void appendTextAndFinish(@NonNull FullCard fullCard, @NonNull String receivedText) { final String[] animals = {getString(R.string.append_text_to_description), getString(R.string.add_text_as_comment)}; - new BrandedAlertDialogBuilder(this) + new AlertDialog.Builder(this) .setOnCancelListener(dialog -> cardSelected = false) .setItems(animals, (dialog, which) -> { switch (which) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackDialogFragment.java index 066fb82d8..f32be185a 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackDialogFragment.java @@ -9,7 +9,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import it.niedermann.nextcloud.deck.R; -import it.niedermann.nextcloud.deck.ui.branding.BrandedDeleteAlertDialogBuilder; +import it.niedermann.nextcloud.deck.ui.branding.DeleteAlertDialogBuilder; public class DeleteStackDialogFragment extends DialogFragment { @@ -42,7 +42,7 @@ public class DeleteStackDialogFragment extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { - AlertDialog.Builder builder = new BrandedDeleteAlertDialogBuilder(requireContext()) + AlertDialog.Builder builder = new DeleteAlertDialogBuilder(requireContext()) .setTitle(R.string.delete_list) .setMessage(getResources().getQuantityString(R.plurals.do_you_want_to_delete_the_current_list, numberCards, numberCards)) .setPositiveButton(R.string.simple_delete, (dialog, whichButton) -> deleteStackListener.onStackDeleted(stackId)) diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java index 6bedd0a0f..391c40c09 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java @@ -17,11 +17,10 @@ import java.util.Objects; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogStackCreateBinding; -import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder; import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; import static it.niedermann.nextcloud.deck.DeckApplication.NO_STACK_ID; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditText; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditTextInputLayout; public class EditStackDialogFragment extends BrandedDialogFragment { private static final String KEY_STACK_ID = "stack_id"; @@ -46,7 +45,7 @@ public class EditStackDialogFragment extends BrandedDialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { binding = DialogStackCreateBinding.inflate(requireActivity().getLayoutInflater()); - AlertDialog.Builder builder = new BrandedAlertDialogBuilder(requireActivity()) + final AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity()) .setView(binding.getRoot()) .setNeutralButton(android.R.string.cancel, null); if (getArguments() == null) { @@ -91,6 +90,6 @@ public class EditStackDialogFragment extends BrandedDialogFragment { @Override public void applyBrand(int mainColor) { - applyBrandToEditText(mainColor, binding.input); + applyBrandToEditTextInputLayout(mainColor, binding.inputWrapper); } } |