@Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow() .setStatusBarColor( UIUtils.getThemeColorFromAttrOrRes( BRTDrawerActivity.this, R.attr.colorPrimaryDark, R.color.material_drawer_primary_dark)); } mode.getMenuInflater().inflate(R.menu.cab, menu); return true; }
@Override public View convertView(LayoutInflater inflater, View convertView, ViewGroup parent) { Context ctx = parent.getContext(); // get the viewHolder ViewHolder viewHolder; if (convertView == null) { convertView = inflater.inflate(getLayoutRes(), parent, false); viewHolder = new ViewHolder(convertView); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } // get the correct color for the background int selectedColor = UIUtils.decideColor( ctx, getSelectedColor(), getSelectedColorRes(), R.attr.material_drawer_selected, R.color.material_drawer_selected); // get the correct color for the text int color; if (this.isEnabled()) { color = UIUtils.decideColor( ctx, getTextColor(), getTextColorRes(), R.attr.material_drawer_secondary_text, R.color.material_drawer_secondary_text); } else { color = UIUtils.decideColor( ctx, getDisabledTextColor(), getDisabledTextColorRes(), R.attr.material_drawer_hint_text, R.color.material_drawer_hint_text); } int selectedTextColor = UIUtils.decideColor( ctx, getSelectedTextColor(), getSelectedTextColorRes(), R.attr.material_drawer_selected_text, R.color.material_drawer_selected_text); // get the correct color for the icon int iconColor; if (this.isEnabled()) { iconColor = UIUtils.decideColor( ctx, getIconColor(), getIconColorRes(), R.attr.material_drawer_primary_icon, R.color.material_drawer_primary_icon); } else { iconColor = UIUtils.decideColor( ctx, getDisabledIconColor(), getDisabledIconColorRes(), R.attr.material_drawer_hint_text, R.color.material_drawer_hint_text); } int selectedIconColor = UIUtils.decideColor( ctx, getSelectedIconColor(), getSelectedColorRes(), R.attr.material_drawer_selected_text, R.color.material_drawer_selected_text); // set the background for the item UIUtils.setBackground(viewHolder.view, UIUtils.getDrawerItemBackground(selectedColor)); // set the text for the name if (this.getNameRes() != -1) { viewHolder.name.setText(this.getNameRes()); } else { viewHolder.name.setText(this.getName()); } // set the text for the badge or hide if (getBadge() != null) { viewHolder.badge.setText(getBadge()); viewHolder.badge.setVisibility(View.VISIBLE); } else { viewHolder.badge.setVisibility(View.GONE); } // set the colors for textViews viewHolder.name.setTextColor(UIUtils.getTextColorStateList(color, selectedTextColor)); if (badgeTextColor != 0) { viewHolder.badge.setTextColor(badgeTextColor); } else { viewHolder.badge.setTextColor(UIUtils.getTextColorStateList(color, selectedTextColor)); } // define the typeface for our textViews if (getTypeface() != null) { viewHolder.name.setTypeface(getTypeface()); viewHolder.badge.setTypeface(getTypeface()); } // get the drawables for our icon Drawable icon = UIUtils.decideIcon(ctx, getIcon(), getIIcon(), getIconRes(), iconColor, isIconTinted()); Drawable selectedIcon = UIUtils.decideIcon( ctx, getSelectedIcon(), getIIcon(), getSelectedIconRes(), selectedIconColor, isIconTinted()); // if we have an icon then we want to set it if (icon != null) { // if we got a different color for the selectedIcon we need a StateList if (selectedIcon != null) { viewHolder.icon.setImageDrawable(UIUtils.getIconStateList(icon, selectedIcon)); } else if (isIconTinted()) { viewHolder.icon.setImageDrawable( new PressedEffectStateListDrawable(icon, iconColor, selectedIconColor)); } else { viewHolder.icon.setImageDrawable(icon); } // make sure we display the icon viewHolder.icon.setVisibility(View.VISIBLE); } else { // hide the icon viewHolder.icon.setVisibility(View.GONE); } return convertView; }