| /* |
| * Copyright (C) 2012 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.deskclock.timer; |
| |
| import android.content.Context; |
| import android.util.AttributeSet; |
| import android.view.LayoutInflater; |
| import android.widget.ImageButton; |
| import android.widget.LinearLayout; |
| |
| import com.android.deskclock.CircleTimerView; |
| import com.android.deskclock.R; |
| |
| |
| public class TimerListItem extends LinearLayout { |
| |
| CountingTimerView mTimerText; |
| CircleTimerView mCircleView; |
| |
| long mTimerLength; |
| |
| public TimerListItem(Context context) { |
| this(context, null); |
| } |
| |
| public TimerListItem(Context context, AttributeSet attrs) { |
| super(context, attrs); |
| LayoutInflater layoutInflater = |
| (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); |
| layoutInflater.inflate(R.layout.timer_list_item, this); |
| } |
| |
| @Override |
| protected void onFinishInflate() { |
| super.onFinishInflate(); |
| mTimerText = (CountingTimerView)findViewById(R.id.timer_time_text); |
| mCircleView = (CircleTimerView)findViewById(R.id.timer_time); |
| mCircleView.setTimerMode(true); |
| } |
| |
| public void set(long timerLength, long timeLeft, boolean drawRed) { |
| if (mCircleView == null) { |
| mCircleView = (CircleTimerView)findViewById(R.id.timer_time); |
| mCircleView.setTimerMode(true); |
| } |
| mTimerLength = timerLength; |
| mCircleView.setIntervalTime(mTimerLength); |
| mCircleView.setPassedTime(timerLength - timeLeft, drawRed); |
| invalidate(); |
| } |
| |
| public void start() { |
| mCircleView.startIntervalAnimation(); |
| mTimerText.redTimeStr(false, true); |
| mTimerText.showTime(true); |
| mCircleView.setVisibility(VISIBLE); |
| } |
| |
| public void pause() { |
| mCircleView.pauseIntervalAnimation(); |
| mTimerText.redTimeStr(false, true); |
| } |
| |
| public void stop() { |
| mCircleView.stopIntervalAnimation(); |
| mTimerText.redTimeStr(false, true); |
| mTimerText.showTime(true); |
| mCircleView.setVisibility(VISIBLE); |
| } |
| |
| public void timesUp() { |
| mCircleView.abortIntervalAnimation(); |
| mTimerText.redTimeStr(true, true); |
| } |
| |
| public void done() { |
| mCircleView.stopIntervalAnimation(); |
| mCircleView.setVisibility(VISIBLE); |
| mCircleView.invalidate(); |
| mTimerText.redTimeStr(true, false); |
| } |
| |
| public void setLength(long timerLength) { |
| mTimerLength = timerLength; |
| mCircleView.setIntervalTime(mTimerLength); |
| mCircleView.invalidate(); |
| } |
| |
| public void setTextBlink(boolean blink) { |
| mTimerText.showTime(!blink); |
| } |
| |
| public void setCircleBlink(boolean blink) { |
| mCircleView.setVisibility(blink ? INVISIBLE : VISIBLE); |
| } |
| |
| public void setTime(long time, boolean forceUpdate) { |
| if (mTimerText == null) { |
| mTimerText = (CountingTimerView)findViewById(R.id.timer_time_text); |
| } |
| mTimerText.setTime(time, false, forceUpdate); |
| } |
| |
| // Used by animator to animate the size of a timer |
| @SuppressWarnings("unused") |
| public void setAnimatedHeight(int height) { |
| getLayoutParams().height = height; |
| requestLayout(); |
| } |
| |
| |
| |
| } |