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:
authordesperateCoder <echotodevnull@gmail.com>2020-02-10 17:30:39 +0300
committerdesperateCoder <echotodevnull@gmail.com>2020-02-10 17:30:39 +0300
commitbf0409c080060c7ccb27da6d736e32f9bf591828 (patch)
treec2370b54a96db6d97ead8a910808234362fb228a
parent386895a06039e0cb9ca233ce8896415df862d38a (diff)
merge PR #247
-rw-r--r--app/build.gradle6
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/colorchooser/ColorChooser.java47
-rw-r--r--app/src/main/res/drawable/circle_alpha_colorize_36dp.xml18
-rw-r--r--app/src/main/res/drawable/ic_colorize_24dp.xml11
-rw-r--r--app/src/main/res/layout/widget_color_chooser.xml22
-rw-r--r--app/src/main/res/values/colors.xml4
6 files changed, 106 insertions, 2 deletions
diff --git a/app/build.gradle b/app/build.gradle
index a37e27a8c..1d0c05fdd 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -4,7 +4,7 @@ android {
compileSdkVersion 29
defaultConfig {
applicationId "it.niedermann.nextcloud.deck"
- minSdkVersion 14
+ minSdkVersion 15
targetSdkVersion 29
versionCode 19
versionName "0.0.19"
@@ -15,6 +15,7 @@ android {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
}
}
+ multiDexEnabled true
}
buildTypes {
release {
@@ -69,6 +70,9 @@ dependencies {
// Tab-Layout-Helper
implementation 'com.h6ah4i.android.tablayouthelper:tablayouthelper:1.0.0'
+ // Custom Color Picker
+ implementation 'com.github.skydoves:colorpickerpreference:2.0.0'
+
// -------------------------
// --- Backend-Libraries ---
// -------------------------
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/colorchooser/ColorChooser.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/colorchooser/ColorChooser.java
index bd966681d..b83b70ed9 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/colorchooser/ColorChooser.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/colorchooser/ColorChooser.java
@@ -4,12 +4,17 @@ import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.LayoutInflater;
+import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import androidx.annotation.Nullable;
import com.google.android.flexbox.FlexboxLayout;
+import com.skydoves.colorpickerview.ColorEnvelope;
+import com.skydoves.colorpickerview.ColorPickerView;
+import com.skydoves.colorpickerview.listeners.ColorEnvelopeListener;
+import com.skydoves.colorpickerview.sliders.BrightnessSlideBar;
import butterknife.BindView;
import butterknife.ButterKnife;
@@ -28,6 +33,10 @@ public class ColorChooser extends LinearLayout {
private String previouslySelectedColor;
private ImageView previouslySelectedImageView;
+ private Boolean hasCustomColor = false;
+ private ColorPickerView customColorPicker;
+ private BrightnessSlideBar brightnessSlideBar;
+ private ImageView customColorChooser;
public ColorChooser(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
@@ -43,6 +52,22 @@ public class ColorChooser extends LinearLayout {
inflater.inflate(R.layout.widget_color_chooser, this, true);
ButterKnife.bind(this);
initDefaultColors();
+
+ customColorPicker = (ColorPickerView) findViewById(R.id.customColorPicker);
+ brightnessSlideBar = findViewById(R.id.brightnessSlide);
+
+ customColorPicker.attachBrightnessSlider(brightnessSlideBar);
+
+ customColorPicker.setColorListener(new ColorEnvelopeListener() {
+ @Override
+ public void onColorSelected(ColorEnvelope envelope, boolean fromUser) {
+ String customColor = "#" + envelope.getHexCode().substring(2);
+ selectedColor = customColor;
+ previouslySelectedColor = customColor;
+ //previouslySelectedColor = customColor;
+ customColorChooser.setImageDrawable(ViewUtil.getTintedImageView(context, R.drawable.circle_alpha_colorize_36dp, selectedColor));
+ }
+ });
}
private void initDefaultColors() {
@@ -62,14 +87,36 @@ public class ColorChooser extends LinearLayout {
}
}
+ private void initCustomColorChooser() {
+ // initializes a final image icon for the custom color chooser and, if already set,
+ // will set the icon color to the custom color
+ customColorChooser = new ImageView(getContext());
+ if (!hasCustomColor) {
+ customColorChooser.setImageDrawable(ViewUtil.getTintedImageView(this.context, R.drawable.circle_alpha_colorize_36dp, R.color.board_default_custom_color));
+ } else {
+ customColorChooser.setImageDrawable(ViewUtil.getTintedImageView(this.context, R.drawable.circle_alpha_colorize_36dp, this.selectedColor));
+ }
+ colorPicker.addView(customColorChooser);
+ customColorChooser.setOnClickListener((View imageView) -> {
+ // when clicked sets the custom color wheel to be visible
+ customColorPicker.setVisibility(View.VISIBLE);
+ brightnessSlideBar.setVisibility(View.VISIBLE);
+ });
+ }
+
public void selectColor(String newColor) {
selectedColor = newColor;
for (int i = 0; i < colors.length; i++) {
if (colors[i].equals(newColor)) {
+ initCustomColorChooser(); // adds custom color picker, with default color
colorPicker.getChildAt(i).performClick();
return;
}
}
+ // if the board color is not found to be a default color, then a custom color is assumed and
+ // the custom color chooser is setup for this
+ hasCustomColor = true;
+ initCustomColorChooser(); // adds custom color picker, with custom color
}
public String getSelectedColor() {
diff --git a/app/src/main/res/drawable/circle_alpha_colorize_36dp.xml b/app/src/main/res/drawable/circle_alpha_colorize_36dp.xml
new file mode 100644
index 000000000..2acba500c
--- /dev/null
+++ b/app/src/main/res/drawable/circle_alpha_colorize_36dp.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item>
+ <shape
+ android:shape="oval">
+ <solid android:color="#55ffffff" />
+ <size
+ android:width="36dp"
+ android:height="36dp"/>
+ </shape>
+ </item>
+ <item
+ android:drawable="@drawable/ic_colorize_24dp"
+ android:top="4dp"
+ android:bottom="4dp"
+ android:right="4dp"
+ android:left="4dp" />
+</layer-list> \ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_colorize_24dp.xml b/app/src/main/res/drawable/ic_colorize_24dp.xml
new file mode 100644
index 000000000..15f20c075
--- /dev/null
+++ b/app/src/main/res/drawable/ic_colorize_24dp.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:tint="#FFFFFF"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:width="24dp"
+ android:height="24dp">
+ <path
+ android:pathData="M20.71 5.63l-2.34 -2.34c-0.39 -0.39 -1.02 -0.39 -1.41 0l-3.12 3.12 -1.93 -1.91 -1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92 -8.92 1.42 1.42 1.41 -1.41 -1.92 -1.92 3.12 -3.12c0.4 -0.4 0.4 -1.03 0.01 -1.42zM6.92 19L5 17.08l8.06 -8.06 1.92 1.92L6.92 19z"
+ android:fillColor="#FF000000" />
+</vector> \ No newline at end of file
diff --git a/app/src/main/res/layout/widget_color_chooser.xml b/app/src/main/res/layout/widget_color_chooser.xml
index 26b28d737..86edea8ec 100644
--- a/app/src/main/res/layout/widget_color_chooser.xml
+++ b/app/src/main/res/layout/widget_color_chooser.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
@@ -12,4 +13,25 @@
app:alignItems="stretch"
app:flexWrap="wrap"
app:justifyContent="space_between" />
+
+ <com.skydoves.colorpickerview.ColorPickerView
+ android:id="@+id/customColorPicker"
+ android:layout_width="200dp"
+ android:layout_height="200dp"
+ android:layout_gravity="center"
+ android:layout_marginTop="10dp"
+ android:visibility="gone"
+ app:palette="@drawable/palette"
+ app:selector="@drawable/wheel" />
+
+ <com.skydoves.colorpickerview.sliders.BrightnessSlideBar
+ android:id="@+id/brightnessSlide"
+ android:layout_width="200dp"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginTop="10dp"
+ android:visibility="gone"
+ app:borderColor_BrightnessSlider="@android:color/darker_gray"
+ app:borderSize_BrightnessSlider="5"
+ app:selector_BrightnessSlider="@drawable/wheel" />
</LinearLayout> \ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 4d9a31b0e..b24e3d8cd 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -17,7 +17,9 @@
<color name="due_overdue">#d40000</color>
<color name="overdue_text_color">#FFFFFF</color>
+ <!-- board color picker colors -->
<color name="board_default_color">#31CC7C</color>
+ <color name="board_default_custom_color">#616161</color>
<string-array name="board_default_colors">
<item>#31CC7C</item>
<item>#317CCC</item>
@@ -26,6 +28,6 @@
<item>#7C31CC</item>
<item>#CC317C</item>
<item>#3A3B3D</item>
- <item>#CACBCD</item>
+ <!-- <item>#CACBCD</item> -->
</string-array>
</resources>