Skip to content

Commit aeea76f

Browse files
authored
Merge pull request #14 from Dhaval2404/feature/v2.0
v2.0 Released
2 parents 48819b6 + f346a33 commit aeea76f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+628
-287
lines changed

README.md

Lines changed: 177 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
[![API](https://img.shields.io/badge/API-21%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=21)
66
![Language](https://img.shields.io/badge/language-Kotlin-orange.svg)
77
[![PRWelcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/Dhaval2404/ColorPicker)
8-
[![Twitter](https://img.shields.io/twitter/url/https/github.com/Dhaval2404/ImagePicker.svg?style=social)](https://twitter.com/intent/tweet?text=Checkout%20the%20ColorPicker%20library%20for%20android.%20https%3A%2F%2Fgithub.com%2FDhaval2404%2FColorPicker%20)
8+
[![Twitter](https://img.shields.io/twitter/url/https/github.com/dhaval2404/colorpicker.svg?style=social)](https://twitter.com/intent/tweet?text=Checkout%20the%20ColorPicker%20library%20for%20android.%20https%3A%2F%2Fgithub.com%2FDhaval2404%2FColorPicker%20)
99

1010
<div align="center">
1111
<sub>Built with ❤︎ by
@@ -38,48 +38,76 @@ Yet another Color Picker Library for Android. It is highly customizable and easy
3838
1. Gradle dependency:
3939

4040
```groovy
41-
implementation 'com.github.dhaval2404:colorpicker:1.2.1'
41+
implementation 'com.github.dhaval2404:colorpicker:2.0'
4242
```
4343

4444
2. The **ColorPicker** configuration is created using the builder pattern.
4545

4646
```kotlin
47+
// Kotlin Code
4748
ColorPickerDialog
48-
.Builder(activity) // Pass Activity Instance
49+
.Builder(this) // Pass Activity Instance
50+
.setTitle("Pick Theme") // Default "Choose Color"
4951
.setColorShape(ColorShape.SQAURE) // Default ColorShape.CIRCLE
50-
.setDefaultColor(mColor) // Pass Default Color
52+
.setDefaultColor(mDefaultColor) // Pass Default Color
5153
.setColorListener { color, colorHex ->
5254
// Handle Color Selection
5355
}
5456
.show()
5557
```
5658

59+
```java
60+
// Java Code
61+
new ColorPickerDialog
62+
.Builder(this)
63+
.setTitle("Pick Theme")
64+
.setColorShape(ColorShape.SQAURE)
65+
.setDefaultColor(mDefaultColor)
66+
.setColorListener(new ColorListener() {
67+
@Override
68+
public void onColorSelected(int color, @NotNull String colorHex) {
69+
// Handle Color Selection
70+
}
71+
})
72+
.show();
73+
````
74+
75+
5776
3. The **MaterialColorPicker** configuration is created using the builder pattern.
5877

5978
```kotlin
79+
// Kotlin Code
6080
MaterialColorPickerDialog
61-
.Builder(activity) // Pass Activity Instance
81+
.Builder(this) // Pass Activity Instance
82+
.setTitle("Pick Theme") // Default "Choose Color"
6283
.setColorShape(ColorShape.SQAURE) // Default ColorShape.CIRCLE
6384
.setColorSwatch(ColorSwatch._300) // Default ColorSwatch._500
64-
.setDefaultColor(mMaterialColorSquare) // Pass Default Color
85+
.setDefaultColor(mDefaultColor) // Pass Default Color
6586
.setColorListener { color, colorHex ->
6687
// Handle Color Selection
6788
}
6889
.show()
6990
```
7091

92+
```java
93+
// Java Code
94+
new MaterialColorPickerDialog
95+
.Builder(this)
96+
.setTitle("Pick Theme")
97+
.setColorShape(ColorShape.SQAURE)
98+
.setColorSwatch(ColorSwatch._300)
99+
.setDefaultColor(mDefaultColor)
100+
.setColorListener(new ColorListener() {
101+
@Override
102+
public void onColorSelected(int color, @NotNull String colorHex) {
103+
// Handle Color Selection
104+
}
105+
})
106+
.show();
107+
```
108+
71109
# 🎨Customization
72110

73-
* You can change title of the Dialog
74-
```kotlin
75-
MaterialColorPickerDialog
76-
.Builder(activity) // Pass Activity Instance
77-
.setTitle("Pick Theme") // Change Dialog Title
78-
.setColorListener { color, colorHex ->
79-
// Handle Color Selection
80-
}
81-
.show()
82-
```
83111
* You can change the color or Positive and Negative Button Text Color. Add Following parameters in your **colors.xml** file.
84112

85113
```xml
@@ -93,34 +121,52 @@ Yet another Color Picker Library for Android. It is highly customizable and easy
93121

94122
* You can provide predefine colors for the MaterialColorPicker
95123

96-
```kotlin
97-
MaterialColorPickerDialog
98-
.Builder(activity) // Pass Activity Instance
99-
.setColors( // Pass Predefined Hex Color
100-
arrayListOf(
101-
"#f6e58d", "#ffbe76", "#ff7979", "#badc58", "#dff9fb",
102-
"#7ed6df", "#e056fd", "#686de0", "#30336b", "#95afc0"
103-
)
104-
)
105-
.setColorListener { color, colorHex ->
106-
// Handle Color Selection
107-
}
108-
.show()
109-
```
124+
```java
125+
// Kotlin Code
126+
MaterialColorPickerDialog
127+
.Builder(activity!!)
128+
129+
// Option 1: Pass Hex Color Codes
130+
//.setColors(arrayListOf("#f6e58d", "#ffbe76", "#ff7979", "#badc58", "#dff9fb", "#7ed6df", "#e056fd", "#686de0", "#30336b", "#95afc0"))
131+
132+
// Option 2: Pass Hex Color Codes from string.xml
133+
//.setColors(resources.getStringArray(R.array.themeColorHex))
110134

111-
or
135+
// Option 3: Pass color array from colors.xml
136+
.setColorRes(resources.getIntArray(R.array.themeColors))
112137

113-
```kotlin
114-
MaterialColorPickerDialog
115-
.Builder(activity) // Pass Activity Instance
116-
.setColorRes(resources.getIntArray(R.array.themeColors).toList()) // Pass Predefined Hex Color
117-
.setColorListener { color, colorHex ->
118-
// Handle Color Selection
119-
}
120-
.show()
138+
.setColorListener { color, colorHex ->
139+
// Handle Color Selection
140+
}
141+
.show()
142+
```
143+
144+
```java
145+
// Java Code
146+
String[] colorArray = new String[]{"#f6e58d", "#ffbe76", "#ff7979",
147+
"#badc58", "#dff9fb", "#7ed6df", "#e056fd", "#686de0", "#30336b", "#95afc0"};
148+
149+
new MaterialColorPickerDialog
150+
.Builder(requireActivity())
151+
152+
// Option 1: Pass Hex Color Codes
153+
//.setColors(colorArray)
154+
155+
// Option 2: Pass Hex Color Codes from string.xml
156+
//.setColors(getResources().getStringArray(R.array.themeColorHex))
157+
158+
// Option 3: Pass color array from colors.xml
159+
.setColorRes(getResources().getIntArray(R.array.themeColors))
160+
161+
.setColorListener(object : ColorListener {
162+
override fun onColorSelected(color: Int, colorHex: String) {
163+
// Handle Color Selection
164+
}
165+
})
166+
.show();
121167
```
122168

123-
Where **R.array.themeColors** is defined as below
169+
Where **R.array.themeColors** and **R.array.themeColorHex** are defined as below
124170

125171
```xml
126172
<array name="themeColors">
@@ -130,7 +176,88 @@ Yet another Color Picker Library for Android. It is highly customizable and easy
130176
<item>@color/grey_500</item>
131177
<item>@color/orange_500</item>
132178
</array>
179+
180+
<string-array name="themeColorHex">
181+
<item>#f6e58d</item>
182+
<item>#ffbe76</item>
183+
<item>#ff7979</item>
184+
<item>#badc58</item>
185+
<item>#dff9fb</item>
186+
<item>#7ed6df</item>
187+
<item>#e056fd</item>
188+
<item>#686de0</item>
189+
<item>#30336b</item>
190+
<item>#95afc0</item>
191+
</string-array>
133192
```
193+
* You can set the Dismiss listener
194+
195+
**ColorPicker**
196+
197+
```kotlin
198+
// Kotlin Code
199+
ColorPickerDialog
200+
.Builder(requireActivity())
201+
.setDismissListener {
202+
// Handle Dismiss Event
203+
}
204+
.show()
205+
```
206+
207+
```java
208+
// Java Code
209+
new ColorPickerDialog
210+
.Builder(this)
211+
.setDismissListener(new DismissListener() {
212+
@Override
213+
public void onDismiss() {
214+
// Handle Dismiss Event
215+
}
216+
})
217+
.show();
218+
````
219+
220+
**MaterialColorPicker**
221+
222+
```kotlin
223+
// Kotlin Code
224+
MaterialColorPickerDialog
225+
.Builder(this)
226+
.setDismissListener {
227+
// Handle Dismiss Event
228+
}
229+
.show()
230+
```
231+
232+
```java
233+
// Java Code
234+
new MaterialColorPickerDialog
235+
.Builder(this)
236+
.setDismissListener(new DismissListener() {
237+
@Override
238+
public void onDismiss() {
239+
// Handle Dismiss Event
240+
}
241+
})
242+
.show();
243+
```
244+
* You can set the Tick color for each card. This will come handy when color list include black or white colors. By default tick color will be either black or white based on the color darkness. If more dark colors the tick color will be white else black.
245+
246+
```kotlin
247+
// Kotlin Code
248+
MaterialColorPickerDialog
249+
.Builder(this)
250+
.setTickColorPerCard(true) // Default will be false
251+
.show()
252+
```
253+
254+
```java
255+
// Java Code
256+
new MaterialColorPickerDialog
257+
.Builder(this)
258+
.setTickColorPerCard(true) // Default will be false
259+
.show();
260+
```
134261

135262
# 💥Compatibility
136263

@@ -139,13 +266,19 @@ Yet another Color Picker Library for Android. It is highly customizable and easy
139266

140267
# ✔️Changelog
141268

269+
### Version: 2.0
270+
271+
* Added Java compatibility [#8](https://github.com/Dhaval2404/ColorPicker/issues/8)
272+
* Added option to set tick color per color card [#12](https://github.com/Dhaval2404/ColorPicker/issues/12)
273+
* Added dialog dismiss listener [#13](https://github.com/Dhaval2404/ColorPicker/issues/13)
274+
142275
### Version: 1.2
143276

144277
* Added Dark mode support & German translation [#4](https://github.com/Dhaval2404/ColorPicker/pull/4)
145278

146279
### Version: 1.1
147280

148-
* Added option to change positive and negative button text color [#2](https://github.com/Dhaval2404/ImagePicker/issues/2)
281+
* Added option to change positive and negative button text color [#2](https://github.com/Dhaval2404/ColorPicker/issues/2)
149282

150283
### Version: 1.0
151284

@@ -154,6 +287,9 @@ Yet another Color Picker Library for Android. It is highly customizable and easy
154287
## 📃 Libraries Used
155288
* ColorPicker [https://github.com/duanhong169/ColorPicker](https://github.com/duanhong169/ColorPicker)
156289

290+
## 🌟 Credits
291+
* App icon made by [Nikita Golubev](https://www.flaticon.com/authors/nikita-golubev "Nikita Golubev") from [Flaticon](https://www.flaticon.com/free-icon/color-circle_1831908?term=color&page=1&position=1&related_item_id=1831908)
292+
157293
### Let us know!
158294

159295
We'll be really happy if you sent us links to your projects where you use our component. Just send an email to **[email protected]** And do let us know if you have any questions or suggestion regarding the library.

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ android {
1212
applicationId "com.github.dhaval2404.colorpicker.sample"
1313
minSdkVersion 21
1414
targetSdkVersion 29
15-
versionCode 4
16-
versionName "1.2.1"
15+
versionCode 5
16+
versionName "2.0"
1717
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1818
vectorDrawables.useSupportLibrary = true
1919
}
28.1 KB
Loading

app/src/main/kotlin/com/github/dhaval2404/colorpicker/sample/ColorPickerFragment.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.github.dhaval2404.colorpicker.sample
33
import android.content.res.ColorStateList
44
import android.graphics.Color
55
import android.os.Bundle
6+
import android.util.Log
67
import android.view.LayoutInflater
78
import android.view.View
89
import android.view.ViewGroup
@@ -37,18 +38,21 @@ class ColorPickerFragment : Fragment() {
3738
override fun onActivityCreated(savedInstanceState: Bundle?) {
3839
super.onActivityCreated(savedInstanceState)
3940

40-
val primaryColor = ContextCompat.getColor(context!!, R.color.colorPrimary)
41-
mColor = SharedPref(context!!).getRecentColor(primaryColor)
41+
val primaryColor = ContextCompat.getColor(requireContext(), R.color.colorPrimary)
42+
mColor = SharedPref(requireContext()).getRecentColor(primaryColor)
4243
colorPickerBtn.setOnClickListener { _ ->
4344
ColorPickerDialog
44-
.Builder(activity!!) // Pass Activity Instance
45+
.Builder(requireActivity()) // Pass Activity Instance
4546
.setColorShape(ColorShape.SQAURE) // Or ColorShape.CIRCLE
4647
.setDefaultColor(mColor) // Pass Default Color
4748
.setColorListener { color, _ ->
4849
mColor = color
4950
colorPickerView.setColor(color)
5051
setButtonBackground(colorPickerBtn, color)
5152
}
53+
.setDismissListener {
54+
Log.d("ColorPickerDialog", "Handle dismiss event")
55+
}
5256
.show()
5357
}
5458
}

0 commit comments

Comments
 (0)