package com.dsht.kerneltweaker;
import com.dsht.settings.SettingsFragment;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class CustomArrayAdapter extends BaseAdapter {
Context mContext;
int layoutResourceId;
String[] titles;
String[] descs;
String[] colors;
int[] icons;
SharedPreferences mPrefs;
public CustomArrayAdapter(Context mContext, int layoutResourceId, String[] titles, String[] descs, String[] colors, int[] icons) {
this.layoutResourceId = layoutResourceId;
this.mContext = mContext;
this.titles = titles;
this.descs = descs;
this.colors = colors;
this.icons = icons;
mPrefs = PreferenceManager.getDefaultSharedPreferences(mContext);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return titles.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getViewTypeCount() {
return 2; //return 2, you have two types that the getView() method will return, normal(0) and for the last row(1)
}
@Override
public int getItemViewType(int position) {
return (titles[position].contains("--")) ? 1 : 0; //if we are at the last position then return 1, for any other position return 0
}
@Override
public boolean isEnabled(int position) {
if(getItemViewType(position) == 1) {
return false;
}
return true;
}
@Override
public View getView(int position, View v, ViewGroup parent) {
// TODO Auto-generated method stub
int type = getItemViewType(position);
if(v == null) {
LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
if(type == 0) {
v = inflater.inflate(layoutResourceId, parent, false);
}else if(type == 1) {
v = inflater.inflate(R.layout.menu_header, parent, false);
}
}
if(type == 0) {
TextView text1 = (TextView) v.findViewById(android.R.id.text1);
ImageView image = (ImageView) v.findViewById(R.id.image);
image.setImageDrawable(mContext.getResources().getDrawable(icons[position]));
image.setColorFilter(Color.parseColor("#FFFFFF"));
if(mPrefs.getBoolean(SettingsFragment.KEY_ENABLE_GLOBAL, false)) {
int color = mPrefs.getInt(SettingsFragment.KEY_GLOBAL_COLOR, Color.parseColor("#FFFFFF"));
text1.setTextColor(color);
image.setColorFilter(color);
}else if(mPrefs.getBoolean(SettingsFragment.KEY_ENABLE_PERSONAL, false)) {
int color = Color.parseColor("#ff0099cc");
switch(position) {
case 1:
color = mPrefs.getInt(SettingsFragment.KEY_STAT, Color.parseColor("#FFFFFF"));
break;
case 2:
color = mPrefs.getInt(SettingsFragment.KEY_INFO, Color.parseColor("#FFFFFF"));
break;
case 4:
color = mPrefs.getInt(SettingsFragment.KEY_CPU, Color.parseColor("#FFFFFF"));
break;
case 5:
color = mPrefs.getInt(SettingsFragment.KEY_GPU, Color.parseColor("#FFFFFF"));
break;
case 6:
color = mPrefs.getInt(SettingsFragment.KEY_UV, Color.parseColor("#FFFFFF"));
break;
case 8:
color = mPrefs.getInt(SettingsFragment.KEY_KERNEL, Color.parseColor("#FFFFFF"));
break;
case 9:
color = mPrefs.getInt(SettingsFragment.KEY_LMK, Color.parseColor("#FFFFFF"));
break;
case 10:
color = mPrefs.getInt(SettingsFragment.KEY_VM, Color.parseColor("#FFFFFF"));
break;
case 12:
color = mPrefs.getInt(SettingsFragment.KEY_REVIEW, Color.parseColor("#FFFFFF"));
break;
case 14:
color = mPrefs.getInt(SettingsFragment.KEY_FILE, Color.parseColor("#FFFFFF"));
break;
case 15:
color = mPrefs.getInt(SettingsFragment.KEY_BAK, Color.parseColor("#FFFFFF"));
break;
case 16:
color = mPrefs.getInt(SettingsFragment.KEY_RECOVERY, Color.parseColor("#FFFFFF"));
break;
case 18:
color = mPrefs.getInt(SettingsFragment.KEY_PROP, Color.parseColor("#FFFFFF"));
break;
case 19:
color = mPrefs.getInt(SettingsFragment.KEY_INIT, Color.parseColor("#FFFFFF"));
break;
case 20:
color = mPrefs.getInt(SettingsFragment.KEY_BLUR, Color.parseColor("#FFFFFF"));
break;
}
text1.setTextColor(color);
image.setColorFilter(color);
}else {
int color = Color.parseColor("#ff0099cc");
text1.setTextColor(color);
image.setColorFilter(color);
}
text1.setText(titles[position]);
}
else if(type == 1) {
TextView header = (TextView) v.findViewById(R.id.menu_header);
header.setText(titles[position].replaceAll("--", ""));
header.setClickable(false);
boolean light = mPrefs.getBoolean(SettingsFragment.KEY_THEME, false);
if(light){
header.setTextColor(Color.BLACK);
}else {
header.setTextColor(Color.WHITE);
}
}
return v;
}
}