CustomTitleAlertDialogBuilder.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package epson.print.widgets;
  2. import android.app.AlertDialog;
  3. import android.content.Context;
  4. import android.graphics.drawable.Drawable;
  5. import android.support.annotation.NonNull;
  6. import android.view.LayoutInflater;
  7. import android.view.ViewGroup;
  8. import android.widget.ImageView;
  9. import android.widget.TextView;
  10. import epson.print.R;
  11. public class CustomTitleAlertDialogBuilder extends AlertDialog.Builder {
  12. private static final int TITLES_COLOR = 2131034138;
  13. private static final int TITLES_LINES = 5;
  14. ViewGroup titleView = null;
  15. public CustomTitleAlertDialogBuilder(Context context) {
  16. super(context);
  17. setUpCustomTitle();
  18. }
  19. public CustomTitleAlertDialogBuilder(Context context, int i) {
  20. super(context, i);
  21. setUpCustomTitle();
  22. }
  23. @NonNull
  24. public AlertDialog.Builder setTitle(CharSequence charSequence) {
  25. AlertDialog.Builder title = super.setTitle(charSequence);
  26. setCustomTitle(charSequence);
  27. return title;
  28. }
  29. @NonNull
  30. public AlertDialog.Builder setTitle(int i) {
  31. AlertDialog.Builder title = super.setTitle(i);
  32. setCustomTitle(getContext().getText(i));
  33. return title;
  34. }
  35. @NonNull
  36. public AlertDialog.Builder setIcon(Drawable drawable) {
  37. AlertDialog.Builder icon = super.setIcon(drawable);
  38. setCustomTitleIcon(drawable);
  39. return icon;
  40. }
  41. @NonNull
  42. public AlertDialog.Builder setIcon(int i) {
  43. AlertDialog.Builder icon = super.setIcon(i);
  44. setCustomTitleIcon(getContext().getResources().getDrawable(i));
  45. return icon;
  46. }
  47. private void setUpCustomTitle() {
  48. this.titleView = (ViewGroup) ((LayoutInflater) getContext().getSystemService("layout_inflater")).inflate(R.layout.alert_dialog_title, (ViewGroup) null);
  49. ViewGroup viewGroup = this.titleView;
  50. if (viewGroup != null) {
  51. setCustomTitle(viewGroup);
  52. TextView textView = (TextView) this.titleView.findViewById(R.id.alertTitle);
  53. if (textView != null) {
  54. textView.setMaxLines(5);
  55. textView.setTextColor(getContext().getResources().getColor(R.color.all_black));
  56. }
  57. }
  58. }
  59. public void setCustomTitle(CharSequence charSequence) {
  60. TextView textView;
  61. ViewGroup viewGroup = this.titleView;
  62. if (viewGroup != null && (textView = (TextView) viewGroup.findViewById(R.id.alertTitle)) != null) {
  63. textView.setText(charSequence);
  64. }
  65. }
  66. public void setCustomTitleIcon(Drawable drawable) {
  67. ImageView imageView;
  68. ViewGroup viewGroup = this.titleView;
  69. if (viewGroup != null && (imageView = (ImageView) viewGroup.findViewById(R.id.icon)) != null) {
  70. imageView.setImageDrawable(drawable);
  71. }
  72. }
  73. }