13
13
import android .os .Bundle ;
14
14
import android .os .Handler ;
15
15
import android .provider .MediaStore ;
16
+ import android .support .annotation .ColorInt ;
16
17
import android .support .annotation .NonNull ;
17
18
import android .support .design .widget .FloatingActionButton ;
18
19
import android .support .design .widget .Snackbar ;
22
23
import android .text .StaticLayout ;
23
24
import android .text .TextPaint ;
24
25
import android .util .Base64 ;
26
+ import android .util .Log ;
25
27
import android .view .Menu ;
26
28
import android .view .MenuItem ;
27
29
import android .view .View ;
37
39
import android .widget .Spinner ;
38
40
import android .widget .ToggleButton ;
39
41
42
+ import com .jaredrummler .android .colorpicker .ColorPickerDialog ;
43
+ import com .jaredrummler .android .colorpicker .ColorPickerDialogListener ;
44
+
40
45
import java .io .File ;
41
46
import java .io .IOException ;
42
47
import java .lang .reflect .Method ;
61
66
import io .github .gsantner .memetastic .util .AppSettings ;
62
67
import io .github .gsantner .memetastic .util .ContextUtils ;
63
68
import io .github .gsantner .memetastic .util .PermissionChecker ;
64
- import uz .shift .colorpicker .LineColorPicker ;
65
69
66
70
/**
67
71
* Activity for creating memes
68
72
*/
69
- public class MemeCreateActivity extends AppCompatActivity {
73
+ public class MemeCreateActivity extends AppCompatActivity implements ColorPickerDialogListener {
70
74
//########################
71
75
//## Static
72
76
//########################
73
77
public final static int RESULT_MEME_EDITING_FINISHED = 150 ;
74
78
public final static String EXTRA_IMAGE_PATH = "MemeCreateActivity_EXTRA_IMAGE_PATH" ;
75
79
public final static String EXTRA_MEMETASTIC_DATA = "MemeCreateActivity_EXTRA_MEMETASTIC_DATA" ;
80
+ private static final String TAG = MemeCreateActivity .class .getSimpleName ();
76
81
77
82
//########################
78
83
//## UI Binding
@@ -92,6 +97,15 @@ public class MemeCreateActivity extends AppCompatActivity {
92
97
@ BindView (R .id .memecreate__activity__edit_caption_top )
93
98
EditText _textEditTopCaption ;
94
99
100
+ @ BindView (R .id .memecreate__moar_controls__color_picker_for_text )
101
+ io .github .gsantner .memetastic .ui .SquareImageView _textBackgroundColor ;
102
+
103
+ @ BindView (R .id .memecreate__moar_controls__color_picker_for_border )
104
+ io .github .gsantner .memetastic .ui .SquareImageView _textBorderColor ;
105
+
106
+ @ BindView (R .id .memecreate__moar_controls__color_picker_for_padding )
107
+ io .github .gsantner .memetastic .ui .SquareImageView _paddingColor ;
108
+
95
109
//#####################
96
110
//## Members
97
111
//#####################
@@ -415,29 +429,25 @@ public void onFloatingButtonClicked(View view) {
415
429
}
416
430
417
431
private void initMoarControlsContainer () {
418
- final LineColorPicker colorPickerShade = ButterKnife .findById (this , R .id .memecreate__moar_controls__color_picker_for_border );
419
- final LineColorPicker colorPickerText = ButterKnife .findById (this , R .id .memecreate__moar_controls__color_picker_for_text );
432
+ final LinearLayout colorPickerTextBackground = ButterKnife .findById (this , R .id .text_background_color_picker );
433
+ final LinearLayout colorPickerTextBorder = ButterKnife .findById (this , R .id .text_border_color_picker );
434
+ final LinearLayout colorPickerPadding = ButterKnife .findById (this , R .id .padding_color_picker );
420
435
final Spinner dropdownFont = ButterKnife .findById (this , R .id .memecreate__moar_controls__dropdown_font );
421
436
final SeekBar seekFontSize = ButterKnife .findById (this , R .id .memecreate__moar_controls__seek_font_size );
422
437
final ToggleButton toggleAllCaps = ButterKnife .findById (this , R .id .memecreate__moar_controls__toggle_all_caps );
423
438
final Button rotateButton = ButterKnife .findById (this , R .id .memecreate__moar_controls__rotate_plus_90deg );
424
- final LineColorPicker colorPickerPadding = ButterKnife .findById (this , R .id .memecreate__moar_controls__color_picker_for_padding );
425
439
final SeekBar seekPaddingSize = ButterKnife .findById (this , R .id .memecreate__moar_controls__seek_padding_size );
426
440
427
- colorPickerText .setColors (MemeLibConfig .MEME_COLORS .ALL );
428
- colorPickerShade .setColors (MemeLibConfig .MEME_COLORS .ALL );
429
- colorPickerPadding .setColors (MemeLibConfig .MEME_COLORS .ALL );
430
-
431
441
FontAdapter adapter = new FontAdapter (this ,
432
442
android .R .layout .simple_list_item_1 , MemeData .getFonts (),
433
443
true , getString (R .string .creator__font ));
434
444
dropdownFont .setAdapter (adapter );
435
445
436
446
437
447
// Apply existing settings
438
- colorPickerText . setSelectedColor (_memeEditorElements .getCaptionTop ().getTextColor ());
439
- colorPickerShade . setSelectedColor (_memeEditorElements .getCaptionTop ().getBorderColor ());
440
- colorPickerPadding . setSelectedColor (_memeEditorElements .getImageMain ().getPaddingColor ());
448
+ _textBackgroundColor . setColorFilter (_memeEditorElements .getCaptionTop ().getTextColor ());
449
+ _textBorderColor . setColorFilter (_memeEditorElements .getCaptionTop ().getBorderColor ());
450
+ _paddingColor . setColorFilter (_memeEditorElements .getImageMain ().getPaddingColor ());
441
451
adapter .setSelectedFont (dropdownFont , _memeEditorElements .getCaptionTop ().getFont ());
442
452
toggleAllCaps .setChecked (_memeEditorElements .getCaptionTop ().isAllCaps ());
443
453
seekFontSize .setProgress (_memeEditorElements .getCaptionTop ().getFontSize () - MemeLibConfig .FONT_SIZES .MIN );
@@ -449,24 +459,22 @@ private void initMoarControlsContainer() {
449
459
//
450
460
View .OnClickListener colorListener = new View .OnClickListener () {
451
461
public void onClick (View v ) {
452
- LineColorPicker picker = (LineColorPicker ) v ;
453
- if (picker == colorPickerShade ) {
454
- _memeEditorElements .getCaptionTop ().setBorderColor (picker .getColor ());
455
- _memeEditorElements .getCaptionBottom ().setBorderColor (picker .getColor ());
456
- } else if (picker == colorPickerText ) {
457
- _memeEditorElements .getCaptionTop ().setTextColor (picker .getColor ());
458
- _memeEditorElements .getCaptionBottom ().setTextColor (picker .getColor ());
462
+ LinearLayout picker = (LinearLayout ) v ;
463
+ if (picker == colorPickerTextBorder ) {
464
+ ColorPickerDialog .newBuilder ().setDialogId (R .id .memecreate__moar_controls__color_picker_for_border ).setColor (_memeEditorElements .getCaptionTop ().getBorderColor ()).show (MemeCreateActivity .this );
465
+ } else if (picker == colorPickerTextBackground ) {
466
+ ColorPickerDialog .newBuilder ().setDialogId (R .id .memecreate__moar_controls__color_picker_for_text ).setColor (_memeEditorElements .getCaptionTop ().getTextColor ()).show (MemeCreateActivity .this );
459
467
} else if (picker == colorPickerPadding ) {
460
- _memeEditorElements .getImageMain ().setPaddingColor (picker .getColor ());
461
- _memeEditorElements .getImageMain ().setPaddingColor (picker .getColor ());
468
+ ColorPickerDialog .newBuilder ().setDialogId (R .id .memecreate__moar_controls__color_picker_for_padding ).setColor (_memeEditorElements .getImageMain ().getPaddingColor ()).show (MemeCreateActivity .this );
462
469
}
463
470
onMemeEditorObjectChanged ();
464
471
}
465
472
};
466
473
467
- colorPickerShade .setOnClickListener (colorListener );
468
- colorPickerText .setOnClickListener (colorListener );
474
+ colorPickerTextBorder .setOnClickListener (colorListener );
475
+ colorPickerTextBackground .setOnClickListener (colorListener );
469
476
colorPickerPadding .setOnClickListener (colorListener );
477
+
470
478
dropdownFont .setOnItemSelectedListener (new AdapterView .OnItemSelectedListener () {
471
479
public void onNothingSelected (AdapterView <?> parent ) {
472
480
}
@@ -513,6 +521,37 @@ public void onClick(View v) {
513
521
});
514
522
}
515
523
524
+
525
+ @ Override
526
+ public void onColorSelected (int id , @ ColorInt int i1 ) {
527
+ switch (id ) {
528
+ case R .id .memecreate__moar_controls__color_picker_for_border : // border color
529
+ _memeEditorElements .getCaptionTop ().setBorderColor (i1 );
530
+ _memeEditorElements .getCaptionBottom ().setBorderColor (i1 );
531
+ _textBorderColor .setColorFilter (i1 );
532
+ break ;
533
+ case R .id .memecreate__moar_controls__color_picker_for_text : // text background color
534
+ _memeEditorElements .getCaptionTop ().setTextColor (i1 );
535
+ _memeEditorElements .getCaptionBottom ().setTextColor (i1 );
536
+ _textBackgroundColor .setColorFilter (i1 );
537
+ break ;
538
+ case R .id .memecreate__moar_controls__color_picker_for_padding : // padding color
539
+ _memeEditorElements .getImageMain ().setPaddingColor (i1 );
540
+ _memeEditorElements .getImageMain ().setPaddingColor (i1 );
541
+ _paddingColor .setColorFilter (i1 );
542
+ break ;
543
+ default :
544
+ Log .i (TAG , "Wrong selection" );
545
+ break ;
546
+ }
547
+ onMemeEditorObjectChanged ();
548
+
549
+ }
550
+
551
+ @ Override
552
+ public void onDialogDismissed (int id ) {
553
+ }
554
+
516
555
public Bitmap makeMemeImageFromElements (Context c , MemeEditorElements memeEditorElements ) {
517
556
// prepare canvas
518
557
Bitmap bitmap = memeEditorElements .getImageMain ().getDisplayImage ();
@@ -621,4 +660,5 @@ public void onMemeEditorObjectChanged() {
621
660
void onBottomContainerClicked () {
622
661
toggleMoarControls (true , false );
623
662
}
663
+
624
664
}
0 commit comments