package com.doomonafireball.betterpickers.timepicker;
import com.doomonafireball.betterpickers.R;
import com.doomonafireball.betterpickers.ZeroTopPaddingTextView;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
public class TimerView extends LinearLayout {
private ZeroTopPaddingTextView mHoursOnes, mMinutesOnes;
private ZeroTopPaddingTextView mHoursTens, mMinutesTens;
private ZeroTopPaddingTextView mHoursSeperator;
private ColorStateList mTextColor;
public TimerView(Context context) {
this(context, null);
}
public TimerView(Context context, AttributeSet attrs) {
super(context, attrs);
// Init defaults
mTextColor = getResources().getColorStateList(R.color.dialog_text_color_holo_dark);
}
public void setTheme(int themeResId) {
if (themeResId != -1) {
TypedArray a = getContext().obtainStyledAttributes(themeResId, R.styleable.BetterPickersDialogFragment);
mTextColor = a.getColorStateList(R.styleable.BetterPickersDialogFragment_bpTextColor);
}
restyleViews();
}
private void restyleViews() {
if (mHoursOnes != null) {
mHoursOnes.setTextColor(mTextColor);
}
if (mMinutesOnes != null) {
mMinutesOnes.setTextColor(mTextColor);
}
if (mHoursTens != null) {
mHoursTens.setTextColor(mTextColor);
}
if (mMinutesTens != null) {
mMinutesTens.setTextColor(mTextColor);
}
if (mHoursSeperator != null) {
mHoursSeperator.setTextColor(mTextColor);
}
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
mHoursTens = (ZeroTopPaddingTextView) findViewById(R.id.hours_tens);
mMinutesTens = (ZeroTopPaddingTextView) findViewById(R.id.minutes_tens);
mHoursOnes = (ZeroTopPaddingTextView) findViewById(R.id.hours_ones);
mMinutesOnes = (ZeroTopPaddingTextView) findViewById(R.id.minutes_ones);
mHoursSeperator = (ZeroTopPaddingTextView) findViewById(R.id.hours_seperator);
}
public void setTime(int hoursTensDigit, int hoursOnesDigit, int minutesTensDigit,
int minutesOnesDigit) {
if (mHoursTens != null) {
// Hide digit
if (hoursTensDigit == -2) {
mHoursTens.setVisibility(View.INVISIBLE);
} else if (hoursTensDigit == -1) {
mHoursTens.setText("-");
mHoursTens.setEnabled(false);
mHoursTens.updatePadding();
mHoursTens.setVisibility(View.VISIBLE);
} else {
mHoursTens.setText(String.format("%d", hoursTensDigit));
mHoursTens.setEnabled(true);
mHoursTens.updatePadding();
mHoursTens.setVisibility(View.VISIBLE);
}
}
if (mHoursOnes != null) {
if (hoursOnesDigit == -1) {
mHoursOnes.setText("-");
mHoursOnes.setEnabled(false);
mHoursOnes.updatePadding();
} else {
mHoursOnes.setText(String.format("%d", hoursOnesDigit));
mHoursOnes.setEnabled(true);
mHoursOnes.updatePadding();
}
}
if (mMinutesTens != null) {
if (minutesTensDigit == -1) {
mMinutesTens.setText("-");
mMinutesTens.setEnabled(false);
} else {
mMinutesTens.setEnabled(true);
mMinutesTens.setText(String.format("%d", minutesTensDigit));
}
}
if (mMinutesOnes != null) {
if (minutesOnesDigit == -1) {
mMinutesOnes.setText("-");
mMinutesOnes.setEnabled(false);
} else {
mMinutesOnes.setText(String.format("%d", minutesOnesDigit));
mMinutesOnes.setEnabled(true);
}
}
}
}