|
@@ -1,6 +1,7 @@
|
|
|
package com.kongzue.dialogx.util;
|
|
|
|
|
|
import android.content.Context;
|
|
|
+import android.content.res.ColorStateList;
|
|
|
import android.view.LayoutInflater;
|
|
|
import android.view.View;
|
|
|
import android.view.ViewGroup;
|
|
@@ -9,6 +10,7 @@ import android.widget.ImageView;
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
import com.kongzue.dialogx.R;
|
|
|
+import com.kongzue.dialogx.dialogs.PopMenu;
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
@@ -23,8 +25,10 @@ public class PopMenuArrayAdapter extends BaseAdapter {
|
|
|
|
|
|
public List<CharSequence> menuList;
|
|
|
public Context context;
|
|
|
+ private PopMenu popMenu;
|
|
|
|
|
|
- public PopMenuArrayAdapter(Context context, List<CharSequence> menuList) {
|
|
|
+ public PopMenuArrayAdapter(PopMenu popMenu, Context context, List<CharSequence> menuList) {
|
|
|
+ this.popMenu = popMenu;
|
|
|
this.menuList = menuList;
|
|
|
this.context = context;
|
|
|
}
|
|
@@ -51,19 +55,40 @@ public class PopMenuArrayAdapter extends BaseAdapter {
|
|
|
viewHolder = new ViewHolder();
|
|
|
LayoutInflater mInflater = LayoutInflater.from(context);
|
|
|
int resourceId = R.layout.item_dialogx_material_context_menu_normal_text;
|
|
|
-
|
|
|
+
|
|
|
convertView = mInflater.inflate(resourceId, null);
|
|
|
-
|
|
|
+
|
|
|
viewHolder.imgDialogxMenuIcon = convertView.findViewById(R.id.img_dialogx_menu_icon);
|
|
|
viewHolder.txtDialogxMenuText = convertView.findViewById(R.id.txt_dialogx_menu_text);
|
|
|
viewHolder.imgDialogxMenuSelection = convertView.findViewById(R.id.img_dialogx_menu_selection);
|
|
|
-
|
|
|
+
|
|
|
convertView.setTag(viewHolder);
|
|
|
} else {
|
|
|
viewHolder = (ViewHolder) convertView.getTag();
|
|
|
}
|
|
|
viewHolder.imgDialogxMenuIcon.setVisibility(View.GONE);
|
|
|
viewHolder.txtDialogxMenuText.setText(menuList.get(position));
|
|
|
+
|
|
|
+ int textColor = popMenu.isLightTheme() ? R.color.black90 : R.color.white90;
|
|
|
+ viewHolder.txtDialogxMenuText.setTextColor(context.getResources().getColor(textColor));
|
|
|
+
|
|
|
+ if (popMenu.getOnIconChangeCallBack() != null) {
|
|
|
+ int resId = popMenu.getOnIconChangeCallBack().getIcon(popMenu, position, menuList.get(position).toString());
|
|
|
+ boolean autoTintIconInLightOrDarkMode = popMenu.getOnIconChangeCallBack().isAutoTintIconInLightOrDarkMode();
|
|
|
+
|
|
|
+ if (resId != 0) {
|
|
|
+ viewHolder.imgDialogxMenuIcon.setVisibility(View.VISIBLE);
|
|
|
+ viewHolder.imgDialogxMenuIcon.setImageResource(resId);
|
|
|
+
|
|
|
+ if (autoTintIconInLightOrDarkMode) {
|
|
|
+ viewHolder.imgDialogxMenuIcon.setImageTintList(ColorStateList.valueOf(context.getResources().getColor(textColor)));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ viewHolder.imgDialogxMenuIcon.setVisibility(View.GONE);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ viewHolder.imgDialogxMenuIcon.setVisibility(View.GONE);
|
|
|
+ }
|
|
|
return convertView;
|
|
|
}
|
|
|
|