/* © 2010 Stephan Reichholf <stephan at reichholf dot net>
*
* Licensed under the Create-Commons Attribution-Noncommercial-Share Alike 3.0 Unported
* http://creativecommons.org/licenses/by-nc-sa/3.0/
*/
package net.reichholf.dreamdroid.adapter.recyclerview;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import net.reichholf.dreamdroid.DreamDroid;
import net.reichholf.dreamdroid.R;
import net.reichholf.dreamdroid.helpers.ExtendedHashMap;
import net.reichholf.dreamdroid.helpers.enigma2.Timer;
import java.util.ArrayList;
/**
* @author sre
*
*/
public class TimerAdapter extends BaseAdapter<TimerAdapter.TimerViewHolder> {
private CharSequence[] mState;
private CharSequence[] mAction;
private int[] mStateColor;
/**
* @param context
* @param data
*/
public TimerAdapter(Context context, ArrayList<ExtendedHashMap> data) {
super(data);
mState = context.getResources().getTextArray(R.array.timer_state);
mAction = context.getResources().getTextArray(R.array.timer_action);
mStateColor = context.getResources().getIntArray(R.array.timer_state_color);
}
@Override
public TimerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View itemView = inflater.inflate(R.layout.timer_list_item, parent, false);
return new TimerViewHolder(itemView);
}
@Override
public void onBindViewHolder(TimerViewHolder holder, int position) {
ExtendedHashMap timer = mData.get(position);
if (timer != null) {
holder.name.setText(timer.getString(Timer.KEY_NAME));
holder.service.setText(timer.getString(Timer.KEY_SERVICE_NAME));
holder.begin.setText(timer.getString(Timer.KEY_BEGIN_READEABLE));
holder.end.setText(timer.getString(Timer.KEY_END_READABLE));
int actionId = 0;
try {
actionId = Integer.parseInt(timer.getString(Timer.KEY_JUST_PLAY));
} catch (Exception e) {
Log.e(DreamDroid.LOG_TAG, "[TimerListAdapter] Error getting timer action: " + e.getMessage());
}
holder.action.setText(mAction[actionId]);
int stateId = Integer.parseInt(timer.getString(Timer.KEY_STATE));
int disabled = Integer.parseInt(timer.getString(Timer.KEY_DISABLED));
// The state for disabled timers is 3
// If any timer is disabled we add 1 to the state get the disabled
// color/text
stateId += disabled;
holder.state.setText(mState[stateId]);
holder.stateIndicator.setBackgroundColor(mStateColor[stateId]);
}
}
public class TimerViewHolder extends RecyclerView.ViewHolder {
public TextView name;
public TextView service;
public TextView begin;
public TextView end;
public TextView action;
public TextView state;
public TextView stateIndicator;
public TimerViewHolder(View itemView){
super(itemView);
name = (TextView) itemView.findViewById(R.id.timer_name);
service = (TextView) itemView.findViewById(R.id.service_name);
begin = (TextView) itemView.findViewById(R.id.timer_start);
end = (TextView) itemView.findViewById(R.id.timer_end);
action = (TextView) itemView.findViewById(R.id.timer_action);
state = (TextView) itemView.findViewById(R.id.timer_state);
stateIndicator = (TextView) itemView.findViewById(R.id.timer_state_indicator);
}
}
}