Skip to content

Commit fec0daa

Browse files
committed
added ActionMode (ALWAYS, LAST)
1 parent 4a70031 commit fec0daa

File tree

12 files changed

+263
-289
lines changed

12 files changed

+263
-289
lines changed

app/src/main/java/com/skydoves/colorpickerviewdemo/CustomFlag.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import android.annotation.SuppressLint;
2020
import android.content.Context;
2121
import android.widget.TextView;
22-
2322
import com.skydoves.colorpickerview.AlphaTileView;
2423
import com.skydoves.colorpickerview.ColorEnvelope;
2524
import com.skydoves.colorpickerview.flag.FlagView;
@@ -34,7 +33,7 @@ public class CustomFlag extends FlagView {
3433
* onBind Views
3534
*
3635
* @param context context
37-
* @param layout custom flagView's layout
36+
* @param layout custom flagView's layout
3837
*/
3938
public CustomFlag(Context context, int layout) {
4039
super(context, layout);

app/src/main/java/com/skydoves/colorpickerviewdemo/MainActivity.java

Lines changed: 47 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
import android.os.Bundle;
2323
import android.view.View;
2424
import android.widget.TextView;
25-
25+
import androidx.appcompat.app.AppCompatActivity;
26+
import androidx.core.content.ContextCompat;
27+
import com.skydoves.colorpickerview.ActionMode;
2628
import com.skydoves.colorpickerview.AlphaTileView;
2729
import com.skydoves.colorpickerview.ColorEnvelope;
2830
import com.skydoves.colorpickerview.ColorPickerDialog;
@@ -34,9 +36,6 @@
3436
import com.skydoves.powermenu.PowerMenu;
3537
import com.skydoves.powermenu.PowerMenuItem;
3638

37-
import androidx.appcompat.app.AppCompatActivity;
38-
import androidx.core.content.ContextCompat;
39-
4039
public class MainActivity extends AppCompatActivity {
4140

4241
private ColorPickerView colorPickerView;
@@ -46,23 +45,23 @@ public class MainActivity extends AppCompatActivity {
4645

4746
private PowerMenu powerMenu;
4847
private OnMenuItemClickListener<PowerMenuItem> powerMenuItemClickListener =
49-
new OnMenuItemClickListener<PowerMenuItem>() {
50-
@Override
51-
public void onItemClick(int position, PowerMenuItem item) {
52-
switch (position) {
53-
case 0:
54-
palette();
55-
break;
56-
case 1:
57-
selector();
58-
break;
59-
case 2:
60-
dialog();
61-
break;
62-
}
63-
powerMenu.dismiss();
64-
}
65-
};
48+
new OnMenuItemClickListener<PowerMenuItem>() {
49+
@Override
50+
public void onItemClick(int position, PowerMenuItem item) {
51+
switch (position) {
52+
case 0:
53+
palette();
54+
break;
55+
case 1:
56+
selector();
57+
break;
58+
case 2:
59+
dialog();
60+
break;
61+
}
62+
powerMenu.dismiss();
63+
}
64+
};
6665

6766
@Override
6867
protected void onCreate(Bundle savedInstanceState) {
@@ -72,14 +71,15 @@ protected void onCreate(Bundle savedInstanceState) {
7271
powerMenu = PowerMenuUtils.getPowerMenu(this, this, powerMenuItemClickListener);
7372

7473
colorPickerView = findViewById(R.id.colorPickerView);
74+
colorPickerView.setActionMode(ActionMode.LAST);
7575
colorPickerView.setFlagView(new CustomFlag(this, R.layout.layout_flag));
7676
colorPickerView.setColorListener(
77-
new ColorEnvelopeListener() {
78-
@Override
79-
public void onColorSelected(ColorEnvelope envelope, boolean fromUser) {
80-
setLayoutColor(envelope);
81-
}
82-
});
77+
new ColorEnvelopeListener() {
78+
@Override
79+
public void onColorSelected(ColorEnvelope envelope, boolean fromUser) {
80+
setLayoutColor(envelope);
81+
}
82+
});
8383

8484
// attach alphaSlideBar
8585
final AlphaSlideBar alphaSlideBar = findViewById(R.id.alphaSlideBar);
@@ -108,54 +108,48 @@ public void overflowMenu(View view) {
108108
powerMenu.showAsAnchorLeftTop(view);
109109
}
110110

111-
/**
112-
* change palette drawable resource you must initialize at first in xml
113-
*/
111+
/** change palette drawable resource you must initialize at first in xml */
114112
public void palette() {
115113
if (FLAG_PALETTE)
116114
colorPickerView.setPaletteDrawable(ContextCompat.getDrawable(this, R.drawable.palette));
117115
else
118116
colorPickerView.setPaletteDrawable(
119-
ContextCompat.getDrawable(this, R.drawable.palettebar));
117+
ContextCompat.getDrawable(this, R.drawable.palettebar));
120118
FLAG_PALETTE = !FLAG_PALETTE;
121119
}
122120

123-
/**
124-
* change selector drawable resource you must initialize at first in xml
125-
*/
121+
/** change selector drawable resource you must initialize at first in xml */
126122
public void selector() {
127123
if (FLAG_SELECTOR)
128124
colorPickerView.setSelectorDrawable(ContextCompat.getDrawable(this, R.drawable.wheel));
129125
else
130126
colorPickerView.setSelectorDrawable(
131-
ContextCompat.getDrawable(this, R.drawable.wheel_dark));
127+
ContextCompat.getDrawable(this, R.drawable.wheel_dark));
132128
FLAG_SELECTOR = !FLAG_SELECTOR;
133129
}
134130

135-
/**
136-
* show ColorPickerDialog
137-
*/
131+
/** show ColorPickerDialog */
138132
public void dialog() {
139133
ColorPickerDialog.Builder builder =
140-
new ColorPickerDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_DARK);
134+
new ColorPickerDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_DARK);
141135
builder.setTitle("ColorPicker Dialog");
142136
builder.setFlagView(new CustomFlag(this, R.layout.layout_flag));
143137
builder.setPositiveButton(
144-
getString(R.string.confirm),
145-
new ColorEnvelopeListener() {
146-
@Override
147-
public void onColorSelected(ColorEnvelope envelope, boolean fromUser) {
148-
setLayoutColor(envelope);
149-
}
150-
});
138+
getString(R.string.confirm),
139+
new ColorEnvelopeListener() {
140+
@Override
141+
public void onColorSelected(ColorEnvelope envelope, boolean fromUser) {
142+
setLayoutColor(envelope);
143+
}
144+
});
151145
builder.setNegativeButton(
152-
getString(R.string.cancel),
153-
new DialogInterface.OnClickListener() {
154-
@Override
155-
public void onClick(DialogInterface dialogInterface, int i) {
156-
dialogInterface.dismiss();
157-
}
158-
});
146+
getString(R.string.cancel),
147+
new DialogInterface.OnClickListener() {
148+
@Override
149+
public void onClick(DialogInterface dialogInterface, int i) {
150+
dialogInterface.dismiss();
151+
}
152+
});
159153
builder.attachAlphaSlideBar();
160154
builder.attachBrightnessSlideBar();
161155
builder.show();

app/src/main/java/com/skydoves/colorpickerviewdemo/PowerMenuUtils.java

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,34 +18,31 @@
1818

1919
import android.content.Context;
2020
import android.graphics.Color;
21-
21+
import androidx.lifecycle.LifecycleOwner;
2222
import com.skydoves.powermenu.MenuAnimation;
2323
import com.skydoves.powermenu.OnMenuItemClickListener;
2424
import com.skydoves.powermenu.PowerMenu;
2525
import com.skydoves.powermenu.PowerMenuItem;
2626

27-
import androidx.lifecycle.LifecycleOwner;
28-
2927
@SuppressWarnings("WeakerAccess")
3028
public class PowerMenuUtils {
31-
3229
public static PowerMenu getPowerMenu(
33-
Context context,
34-
LifecycleOwner lifecycleOwner,
35-
OnMenuItemClickListener<PowerMenuItem> onMenuItemClickListener) {
30+
Context context,
31+
LifecycleOwner lifecycleOwner,
32+
OnMenuItemClickListener<PowerMenuItem> onMenuItemClickListener) {
3633
return new PowerMenu.Builder(context)
37-
.addItem(new PowerMenuItem("Palette", false))
38-
.addItem(new PowerMenuItem("Selector", false))
39-
.addItem(new PowerMenuItem("Dialog", false))
40-
.setLifecycleOwner(lifecycleOwner)
41-
.setAnimation(MenuAnimation.SHOWUP_TOP_LEFT)
42-
.setMenuRadius(10f)
43-
.setMenuShadow(10f)
44-
.setTextColor(context.getResources().getColor(R.color.md_grey_800))
45-
.setSelectedEffect(false)
46-
.setShowBackground(false)
47-
.setMenuColor(Color.WHITE)
48-
.setOnMenuItemClickListener(onMenuItemClickListener)
49-
.build();
34+
.addItem(new PowerMenuItem("Palette", false))
35+
.addItem(new PowerMenuItem("Selector", false))
36+
.addItem(new PowerMenuItem("Dialog", false))
37+
.setLifecycleOwner(lifecycleOwner)
38+
.setAnimation(MenuAnimation.SHOWUP_TOP_LEFT)
39+
.setMenuRadius(10f)
40+
.setMenuShadow(10f)
41+
.setTextColor(context.getResources().getColor(R.color.md_grey_800))
42+
.setSelectedEffect(false)
43+
.setShowBackground(false)
44+
.setMenuColor(Color.WHITE)
45+
.setOnMenuItemClickListener(onMenuItemClickListener)
46+
.build();
5047
}
5148
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* Copyright (C) 2017 skydoves
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package com.skydoves.colorpickerview;
18+
19+
public enum ActionMode {
20+
ALWAYS,
21+
LAST
22+
}

colorpickerview/src/main/java/com/skydoves/colorpickerview/AlphaTileView.java

Lines changed: 32 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,8 @@
2727
import android.util.AttributeSet;
2828
import android.view.View;
2929
import android.view.ViewTreeObserver;
30-
31-
import com.skydoves.colorpickerview.sliders.AlphaTileDrawable;
32-
3330
import androidx.annotation.Nullable;
31+
import com.skydoves.colorpickerview.sliders.AlphaTileDrawable;
3432

3533
@SuppressWarnings({"WeakerAccess", "unused"})
3634
public class AlphaTileView extends View {
@@ -62,7 +60,7 @@ public AlphaTileView(Context context, @Nullable AttributeSet attrs, int defStyle
6260

6361
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
6462
public AlphaTileView(
65-
Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
63+
Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
6664
super(context, attrs, defStyleAttr, defStyleRes);
6765
onCreate();
6866
getAttrs(attrs);
@@ -79,47 +77,47 @@ private void getAttrs(AttributeSet attrs) {
7977
try {
8078
if (a.hasValue(R.styleable.AlphaTileView_tileSize))
8179
builder.setTileSize(
82-
a.getInt(R.styleable.AlphaTileView_tileSize, builder.getTileSize()));
80+
a.getInt(R.styleable.AlphaTileView_tileSize, builder.getTileSize()));
8381
if (a.hasValue(R.styleable.AlphaTileView_tileOddColor))
8482
builder.setTileOddColor(
85-
a.getInt(
86-
R.styleable.AlphaTileView_tileOddColor, builder.getTileOddColor()));
83+
a.getInt(
84+
R.styleable.AlphaTileView_tileOddColor, builder.getTileOddColor()));
8785
if (a.hasValue(R.styleable.AlphaTileView_tileEvenColor))
8886
builder.setTileEvenColor(
89-
a.getInt(
90-
R.styleable.AlphaTileView_tileEvenColor,
91-
builder.getTileEvenColor()));
87+
a.getInt(
88+
R.styleable.AlphaTileView_tileEvenColor,
89+
builder.getTileEvenColor()));
9290
} finally {
9391
a.recycle();
9492
}
9593
}
9694

9795
private void draw() {
9896
getViewTreeObserver()
99-
.addOnGlobalLayoutListener(
100-
new ViewTreeObserver.OnGlobalLayoutListener() {
101-
@Override
102-
public void onGlobalLayout() {
103-
if (Build.VERSION.SDK_INT < 16) {
104-
getViewTreeObserver().removeGlobalOnLayoutListener(this);
105-
} else {
106-
getViewTreeObserver().removeOnGlobalLayoutListener(this);
107-
}
108-
drawable = builder.build();
109-
backgroundBitmap =
110-
Bitmap.createBitmap(
111-
getMeasuredWidth(),
112-
getMeasuredHeight(),
113-
Bitmap.Config.ARGB_8888);
114-
Canvas backgroundCanvas = new Canvas(backgroundBitmap);
115-
drawable.setBounds(
116-
0,
117-
0,
118-
backgroundCanvas.getWidth(),
119-
backgroundCanvas.getHeight());
120-
drawable.draw(backgroundCanvas);
121-
}
122-
});
97+
.addOnGlobalLayoutListener(
98+
new ViewTreeObserver.OnGlobalLayoutListener() {
99+
@Override
100+
public void onGlobalLayout() {
101+
if (Build.VERSION.SDK_INT < 16) {
102+
getViewTreeObserver().removeGlobalOnLayoutListener(this);
103+
} else {
104+
getViewTreeObserver().removeOnGlobalLayoutListener(this);
105+
}
106+
drawable = builder.build();
107+
backgroundBitmap =
108+
Bitmap.createBitmap(
109+
getMeasuredWidth(),
110+
getMeasuredHeight(),
111+
Bitmap.Config.ARGB_8888);
112+
Canvas backgroundCanvas = new Canvas(backgroundBitmap);
113+
drawable.setBounds(
114+
0,
115+
0,
116+
backgroundCanvas.getWidth(),
117+
backgroundCanvas.getHeight());
118+
drawable.draw(backgroundCanvas);
119+
}
120+
});
123121
}
124122

125123
@Override

0 commit comments

Comments
 (0)