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>2020-11-24 12:52:21 +0300
committerStefan Niedermann <info@niedermann.it>2020-11-24 12:52:21 +0300
commita1c01e15401d047860d95217d3a874972208d88a (patch)
tree2a5c9fba311b353a72ef0f0e166bd9b75b8750aa /app/src/main/java/it/niedermann/nextcloud/deck/ui
parentb1d94a92e1fc8a2005f95a19ff64ee982060fb91 (diff)
Use @ColorInt for ColorChooser
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardViewHolder.java37
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/BoardAdapter.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardDialogFragment.java6
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardListener.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/EditLabelDialogFragment.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/BoardAdapter.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/view/ColorChooser.java38
8 files changed, 53 insertions, 42 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 8a33fc0f1..5056985fa 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
@@ -470,12 +470,12 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
}
@Override
- public void onCreateBoard(String title, String color) {
+ public void onCreateBoard(String title, @ColorInt int color) {
if (boardsLiveData == null || boardsLiveDataObserver == null) {
throw new IllegalStateException("Cannot create board when noone observe boards yet. boardsLiveData or observer is null.");
}
boardsLiveData.removeObserver(boardsLiveDataObserver);
- final Board boardToCreate = new Board(title, color.startsWith("#") ? color.substring(1) : color);
+ final Board boardToCreate = new Board(title, color);
boardToCreate.setPermissionEdit(true);
boardToCreate.setPermissionManage(true);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardViewHolder.java
index 67b2c00be..30f1e5d49 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardViewHolder.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardViewHolder.java
@@ -6,6 +6,7 @@ import android.view.MenuItem;
import android.view.View;
import androidx.appcompat.widget.PopupMenu;
+import androidx.core.content.ContextCompat;
import androidx.core.util.Consumer;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -30,14 +31,13 @@ public class ArchivedBoardViewHolder extends RecyclerView.ViewHolder {
void bind(boolean isSupportedVersion, Board board, FragmentManager fragmentManager, Consumer<Board> dearchiveBoardListener) {
final Context context = itemView.getContext();
- binding.boardIcon.setImageDrawable(ViewUtil.getTintedImageView(binding.boardIcon.getContext(), R.drawable.circle_grey600_36dp, String.format("#%06X", (0xFFFFFF & board.getColor()))));
+ binding.boardIcon.setImageDrawable(ViewUtil.getTintedImageView(binding.boardIcon.getContext(), R.drawable.circle_grey600_36dp, board.getColor()));
binding.boardMenu.setVisibility(View.GONE);
binding.boardTitle.setText(board.getTitle());
if (isSupportedVersion) {
if (board.isPermissionManage()) {
binding.boardMenu.setVisibility(View.VISIBLE);
- binding.boardMenu.setImageDrawable(ViewUtil.getTintedImageView(context, R.drawable.ic_menu, R.color.grey600));
-
+ binding.boardMenu.setImageDrawable(ViewUtil.getTintedImageView(context, R.drawable.ic_menu, ContextCompat.getColor(context, R.color.grey600)));
binding.boardMenu.setOnClickListener((v) -> {
PopupMenu popup = new PopupMenu(context, binding.boardMenu);
popup.getMenuInflater().inflate(R.menu.archived_board_menu, popup.getMenu());
@@ -47,28 +47,27 @@ public class ArchivedBoardViewHolder extends RecyclerView.ViewHolder {
}
popup.setOnMenuItemClickListener((MenuItem item) -> {
final String editBoard = context.getString(R.string.edit_board);
- switch (item.getItemId()) {
- case SHARE_BOARD_ID:
- AccessControlDialogFragment.newInstance(board.getLocalId()).show(fragmentManager, AccessControlDialogFragment.class.getSimpleName());
- return true;
- case R.id.edit_board:
- EditBoardDialogFragment.newInstance(board.getLocalId()).show(fragmentManager, editBoard);
- return true;
- case R.id.dearchive_board:
- dearchiveBoardListener.accept(board);
- return true;
- case R.id.delete_board:
- DeleteBoardDialogFragment.newInstance(board).show(fragmentManager, DeleteBoardDialogFragment.class.getSimpleName());
- return true;
- default:
- return false;
+ int itemId = item.getItemId();
+ if (itemId == SHARE_BOARD_ID) {
+ AccessControlDialogFragment.newInstance(board.getLocalId()).show(fragmentManager, AccessControlDialogFragment.class.getSimpleName());
+ return true;
+ } else if (itemId == R.id.edit_board) {
+ EditBoardDialogFragment.newInstance(board.getLocalId()).show(fragmentManager, editBoard);
+ return true;
+ } else if (itemId == R.id.dearchive_board) {
+ dearchiveBoardListener.accept(board);
+ return true;
+ } else if (itemId == R.id.delete_board) {
+ DeleteBoardDialogFragment.newInstance(board).show(fragmentManager, DeleteBoardDialogFragment.class.getSimpleName());
+ return true;
}
+ return false;
});
popup.show();
});
} else if (board.isPermissionShare()) {
binding.boardMenu.setVisibility(View.VISIBLE);
- binding.boardMenu.setImageDrawable(ViewUtil.getTintedImageView(context, R.drawable.ic_share_grey600_18dp, R.color.grey600));
+ binding.boardMenu.setImageDrawable(ViewUtil.getTintedImageView(context, R.drawable.ic_share_grey600_18dp, ContextCompat.getColor(context, R.color.grey600)));
binding.boardMenu.setOnClickListener((v) -> AccessControlDialogFragment.newInstance(board.getLocalId()).show(fragmentManager, AccessControlDialogFragment.class.getSimpleName()));
}
binding.boardMenu.setVisibility(View.VISIBLE);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/BoardAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/BoardAdapter.java
index 5975e0306..c9501ffa9 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/BoardAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/BoardAdapter.java
@@ -37,7 +37,7 @@ public class BoardAdapter extends ArrayAdapter<Board> {
TextView boardName = convertView.findViewById(R.id.boardName);
if (board != null) {
boardName.setText(board.getTitle());
- boardName.setCompoundDrawables(ViewUtil.getTintedImageView(context, R.drawable.circle_grey600_36dp, String.format("#%06X", (0xFFFFFF & board.getColor()))), null, null, null);
+ boardName.setCompoundDrawables(ViewUtil.getTintedImageView(context, R.drawable.circle_grey600_36dp, board.getColor()), null, null, null);
} else {
DeckLog.logError(new IllegalArgumentException("board at position " + position + "is null"));
}
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 e197727d5..1ee23abfa 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
@@ -56,7 +56,7 @@ public class EditBoardDialogFragment extends BrandedDialogFragment {
dialogBuilder.setPositiveButton(R.string.simple_save, (dialog, which) -> {
this.fullBoard.board.setColor(binding.colorChooser.getSelectedColor());
this.fullBoard.board.setTitle(binding.input.getText().toString());
- editBoardListener.onUpdateBoard(fullBoard);
+ this.editBoardListener.onUpdateBoard(fullBoard);
});
final MainViewModel viewModel = new ViewModelProvider(requireActivity()).get(MainViewModel.class);
new SyncManager(requireActivity()).getFullBoardById(viewModel.getCurrentAccount().getId(), args.getLong(KEY_BOARD_ID)).observe(EditBoardDialogFragment.this, (FullBoard fb) -> {
@@ -65,13 +65,13 @@ public class EditBoardDialogFragment extends BrandedDialogFragment {
String title = this.fullBoard.getBoard().getTitle();
binding.input.setText(title);
binding.input.setSelection(title.length());
- binding.colorChooser.selectColor(String.format("#%06X", (0xFFFFFF & fullBoard.getBoard().getColor())));
+ binding.colorChooser.selectColor(fullBoard.getBoard().getColor());
}
});
} else {
dialogBuilder.setTitle(R.string.add_board);
dialogBuilder.setPositiveButton(R.string.simple_add, (dialog, which) -> editBoardListener.onCreateBoard(binding.input.getText().toString(), binding.colorChooser.getSelectedColor()));
- binding.colorChooser.selectColor(String.format("#%06X", 0xFFFFFF & ContextCompat.getColor(requireContext(), R.color.board_default_color)));
+ binding.colorChooser.selectColor(ContextCompat.getColor(requireContext(), R.color.board_default_color));
}
return dialogBuilder
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardListener.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardListener.java
index ee9ba9b9d..9d8fcdbde 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardListener.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardListener.java
@@ -1,11 +1,13 @@
package it.niedermann.nextcloud.deck.ui.board;
+import androidx.annotation.ColorInt;
+
import it.niedermann.nextcloud.deck.model.full.FullBoard;
public interface EditBoardListener {
void onUpdateBoard(FullBoard fullBoard);
- default void onCreateBoard(String title, String color) {
+ default void onCreateBoard(String title, @ColorInt int color) {
// Creating board is not necessary
}
} \ No newline at end of file
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 a0fb4cadd..2dacfe6ac 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
@@ -65,7 +65,7 @@ public class EditLabelDialogFragment extends BrandedDialogFragment {
String title = this.label.getTitle();
binding.input.setText(title);
binding.input.setSelection(title.length());
- binding.colorChooser.selectColor(String.format("#%06X", (0xFFFFFF & this.label.getColor())));
+ binding.colorChooser.selectColor(this.label.getColor());
return dialogBuilder
.setView(binding.getRoot())
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/BoardAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/BoardAdapter.java
index 558a22db4..c27fa04ee 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/BoardAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/BoardAdapter.java
@@ -37,7 +37,7 @@ public class BoardAdapter extends AbstractAdapter<Board> {
final Board item = getItem(position);
if (item != null) {
binding.boardTitle.setText(item.getTitle());
- binding.avatar.setImageDrawable(ViewUtil.getTintedImageView(binding.avatar.getContext(), R.drawable.circle_grey600_36dp, String.format("#%06X", (0xFFFFFF & item.getColor()))));
+ binding.avatar.setImageDrawable(ViewUtil.getTintedImageView(binding.avatar.getContext(), R.drawable.circle_grey600_36dp, item.getColor()));
} else {
DeckLog.logError(new IllegalArgumentException("No item for position " + position));
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/ColorChooser.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/ColorChooser.java
index c82f47c9c..0dd431ff9 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/ColorChooser.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/ColorChooser.java
@@ -2,6 +2,7 @@ package it.niedermann.nextcloud.deck.ui.view;
import android.content.Context;
import android.content.res.TypedArray;
+import android.graphics.Color;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
@@ -9,11 +10,15 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
+import androidx.annotation.ColorInt;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import com.google.android.flexbox.FlexboxLayout;
import com.skydoves.colorpickerview.listeners.ColorEnvelopeListener;
+import java.util.Arrays;
+
import it.niedermann.android.util.DimensionUtil;
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.WidgetColorChooserBinding;
@@ -24,10 +29,12 @@ public class ColorChooser extends LinearLayout {
private final WidgetColorChooserBinding binding;
private final Context context;
- private final String[] colors;
+ private final int[] colors;
- private String selectedColor;
- private String previouslySelectedColor;
+ @ColorInt
+ private int selectedColor;
+ @ColorInt
+ private int previouslySelectedColor;
@Nullable
private ImageView previouslySelectedImageView;
@@ -42,14 +49,15 @@ public class ColorChooser extends LinearLayout {
params.setMargins(0, DimensionUtil.INSTANCE.dpToPx(context, R.dimen.spacer_1x), 0, 0);
params.setFlexBasisPercent(.15f);
- TypedArray a = context.obtainStyledAttributes(attrs,
- R.styleable.ColorChooser, 0, 0);
- colors = getResources().getStringArray(a.getResourceId(R.styleable.ColorChooser_colors, 0));
+ final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ColorChooser, 0, 0);
+ colors = Arrays.stream(getResources().getStringArray(a.getResourceId(R.styleable.ColorChooser_colors, 0)))
+ .mapToInt(Color::parseColor)
+ .toArray();
a.recycle();
binding = WidgetColorChooserBinding.inflate(LayoutInflater.from(context), this, true);
- for (final String color : colors) {
- ImageView image = new ImageView(getContext());
+ for (final int color : colors) {
+ final ImageView image = new ImageView(getContext());
image.setLayoutParams(params);
image.setOnClickListener((imageView) -> {
if (previouslySelectedImageView != null) { // null when first selection
@@ -59,7 +67,7 @@ public class ColorChooser extends LinearLayout {
selectedColor = color;
this.previouslySelectedColor = color;
this.previouslySelectedImageView = image;
- binding.customColorChooser.setImageDrawable(ViewUtil.getTintedImageView(this.context, R.drawable.circle_alpha_colorize_36dp, R.color.board_default_custom_color));
+ binding.customColorChooser.setImageDrawable(ViewUtil.getTintedImageView(this.context, R.drawable.circle_alpha_colorize_36dp, ContextCompat.getColor(context, R.color.board_default_custom_color)));
binding.customColorPicker.setVisibility(View.GONE);
binding.brightnessSlide.setVisibility(View.GONE);
});
@@ -82,19 +90,20 @@ public class ColorChooser extends LinearLayout {
previouslySelectedImageView.setImageDrawable(ViewUtil.getTintedImageView(this.context, R.drawable.circle_grey600_36dp, previouslySelectedColor));
previouslySelectedImageView = null;
}
- String customColor = "#" + envelope.getHexCode().substring(2);
+ @ColorInt
+ final int customColor = envelope.getColor();
selectedColor = customColor;
previouslySelectedColor = customColor;
binding.customColorChooser.setImageDrawable(ViewUtil.getTintedImageView(context, R.drawable.circle_alpha_colorize_36dp, selectedColor));
});
}
- public void selectColor(String newColor) {
+ public void selectColor(@ColorInt int newColor) {
boolean newColorIsCustomColor = true;
selectedColor = newColor;
for (int i = 0; i < colors.length; i++) {
- if (colors[i].equals(newColor)) {
- binding.customColorChooser.setImageDrawable(ViewUtil.getTintedImageView(this.context, R.drawable.circle_alpha_colorize_36dp, R.color.board_default_custom_color));
+ if (colors[i] == newColor) {
+ binding.customColorChooser.setImageDrawable(ViewUtil.getTintedImageView(this.context, R.drawable.circle_alpha_colorize_36dp, ContextCompat.getColor(context, R.color.board_default_custom_color)));
binding.colorPicker.getChildAt(i).performClick();
newColorIsCustomColor = false;
break;
@@ -105,7 +114,8 @@ public class ColorChooser extends LinearLayout {
}
}
- public String getSelectedColor() {
+ @ColorInt
+ public int getSelectedColor() {
return this.selectedColor;
}
}