|
6 | 6 | using AFollestad.MaterialDialogs.Util; |
7 | 7 | using Android.App; |
8 | 8 | using Android.Graphics; |
| 9 | +using Android.Graphics.Drawables; |
9 | 10 | using Android.OS; |
10 | 11 | using Android.Support.V4.Content; |
11 | 12 | using Android.Support.V7.App; |
|
22 | 23 | namespace MaterialDialogs.Sample |
23 | 24 | { |
24 | 25 | [Activity(Label = "@string/app_name", MainLauncher = true)] |
25 | | - public class MainActivity : AppCompatActivity //, |
| 26 | + public class MainActivity : AppCompatActivity, |
26 | 27 | //FolderChooserDialog.IFolderCallback, |
27 | 28 | //FileChooserDialog.IFileCallback, |
28 | | - //ColorChooserDialog.IColorCallback |
| 29 | + ColorChooserDialog.IColorCallback |
29 | 30 | { |
30 | 31 | const int StoragePermissionRC = 69; |
31 | 32 |
|
@@ -530,6 +531,120 @@ public void ShowCustomDatePicker(object sender, EventArgs e) |
530 | 531 | } |
531 | 532 |
|
532 | 533 | #endregion |
| 534 | + |
| 535 | + #region Color Choosers |
| 536 | + |
| 537 | + [OnClick(Resource.Id.colorChooser_primary)] |
| 538 | + public void ShowColorChooserPrimary(object sender, EventArgs e) |
| 539 | + { |
| 540 | + new ColorChooserDialog.Builder(this, Resource.String.color_palette) |
| 541 | + .TitleSub(Resource.String.colors) |
| 542 | + .Preselect(primaryPreselect) |
| 543 | + .Show(); |
| 544 | + } |
| 545 | + |
| 546 | + [OnClick(Resource.Id.colorChooser_accent)] |
| 547 | + public void ShowColorChooserAccent(object sender, EventArgs e) |
| 548 | + { |
| 549 | + new ColorChooserDialog.Builder(this, Resource.String.color_palette) |
| 550 | + .TitleSub(Resource.String.colors) |
| 551 | + .AccentMode(true) |
| 552 | + .Preselect(accentPreselect) |
| 553 | + .Show(); |
| 554 | + } |
| 555 | + |
| 556 | + [OnClick(Resource.Id.colorChooser_customColors)] |
| 557 | + public void ShowColorChooserCustomColors(object sender, EventArgs e) |
| 558 | + { |
| 559 | + int[][] subColors = new int[][] |
| 560 | + { |
| 561 | + new int[] |
| 562 | + { |
| 563 | + Color.ParseColor("#EF5350").ToArgb(), |
| 564 | + Color.ParseColor("#F44336").ToArgb(), |
| 565 | + Color.ParseColor("#E53935").ToArgb() |
| 566 | + }, |
| 567 | + new int[] |
| 568 | + { |
| 569 | + Color.ParseColor("#EC407A").ToArgb(), |
| 570 | + Color.ParseColor("#E91E63").ToArgb(), |
| 571 | + Color.ParseColor("#D81B60").ToArgb() |
| 572 | + }, |
| 573 | + new int[] |
| 574 | + { |
| 575 | + Color.ParseColor("#AB47BC").ToArgb(), |
| 576 | + Color.ParseColor("#9C27B0").ToArgb(), |
| 577 | + Color.ParseColor("#8E24AA").ToArgb() |
| 578 | + }, |
| 579 | + new int[] |
| 580 | + { |
| 581 | + Color.ParseColor("#7E57C2").ToArgb(), |
| 582 | + Color.ParseColor("#673AB7").ToArgb(), |
| 583 | + Color.ParseColor("#5E35B1").ToArgb() |
| 584 | + }, |
| 585 | + new int[] |
| 586 | + { |
| 587 | + Color.ParseColor("#5C6BC0").ToArgb(), |
| 588 | + Color.ParseColor("#3F51B5").ToArgb(), |
| 589 | + Color.ParseColor("#3949AB").ToArgb() |
| 590 | + }, |
| 591 | + new int[] |
| 592 | + { |
| 593 | + Color.ParseColor("#42A5F5").ToArgb(), |
| 594 | + Color.ParseColor("#2196F3").ToArgb(), |
| 595 | + Color.ParseColor("#1E88E5").ToArgb() |
| 596 | + } |
| 597 | + }; |
| 598 | + |
| 599 | + new ColorChooserDialog.Builder(this, Resource.String.color_palette) |
| 600 | + .TitleSub(Resource.String.colors) |
| 601 | + .Preselect(primaryPreselect) |
| 602 | + .CustomColors(Resource.Array.custom_colors, subColors) |
| 603 | + .Show(); |
| 604 | + } |
| 605 | + |
| 606 | + [OnClick(Resource.Id.colorChooser_customColorsNoSub)] |
| 607 | + public void ShowColorChooserCustomColorsNoSub(object sender, EventArgs e) |
| 608 | + { |
| 609 | + new ColorChooserDialog.Builder(this, Resource.String.color_palette) |
| 610 | + .TitleSub(Resource.String.colors) |
| 611 | + .Preselect(primaryPreselect) |
| 612 | + .CustomColors(Resource.Array.custom_colors, null) |
| 613 | + .Show(); |
| 614 | + } |
| 615 | + |
| 616 | + #region ColorChooserDialog.IColorCallback implementation |
| 617 | + |
| 618 | + public void OnColorSelection(ColorChooserDialog dialog, int color) |
| 619 | + { |
| 620 | + if (dialog.IsAccentMode) |
| 621 | + { |
| 622 | + accentPreselect = color; |
| 623 | + ThemeSingleton.Get().PositiveColor = DialogUtils.GetActionTextStateList(this, color); |
| 624 | + ThemeSingleton.Get().NeutralColor = DialogUtils.GetActionTextStateList(this, color); |
| 625 | + ThemeSingleton.Get().NegativeColor = DialogUtils.GetActionTextStateList(this, color); |
| 626 | + ThemeSingleton.Get().WidgetColor = color; |
| 627 | + } |
| 628 | + else |
| 629 | + { |
| 630 | + primaryPreselect = color; |
| 631 | + SupportActionBar?.SetBackgroundDrawable(new ColorDrawable(new Color(color))); |
| 632 | + if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop) |
| 633 | + { |
| 634 | + Window.SetStatusBarColor(new Color(CircleView.ShiftColorDown(color))); |
| 635 | + Window.SetNavigationBarColor(new Color(color)); |
| 636 | + } |
| 637 | + } |
| 638 | + } |
| 639 | + |
| 640 | + public void OnColorChooserDismissed(ColorChooserDialog dialog) |
| 641 | + { |
| 642 | + ShowToast("Color chooser dismissed!"); |
| 643 | + } |
| 644 | + |
| 645 | + #endregion |
| 646 | + |
| 647 | + #endregion |
533 | 648 | } |
534 | 649 | } |
535 | 650 |
|
0 commit comments