TimerListItem.java revision 4243fb005ecf4810eb2a1adc28df73abf431f178
163211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson/*
24243fb005ecf4810eb2a1adc28df73abf431f178Isaac Katzenelson * Copyright (C) 2012 The Android Open Source Project
363211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson *
463211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson * Licensed under the Apache License, Version 2.0 (the "License");
563211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson * you may not use this file except in compliance with the License.
663211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson * You may obtain a copy of the License at
763211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson *
863211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson *      http://www.apache.org/licenses/LICENSE-2.0
963211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson *
1063211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson * Unless required by applicable law or agreed to in writing, software
1163211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson * distributed under the License is distributed on an "AS IS" BASIS,
1263211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1363211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson * See the License for the specific language governing permissions and
1463211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson * limitations under the License.
1563211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson */
1663211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
1763211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelsonpackage com.android.deskclock.timer;
1863211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
1963211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelsonimport android.content.Context;
2063211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelsonimport android.util.AttributeSet;
2163211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelsonimport android.view.LayoutInflater;
2263211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelsonimport android.widget.Button;
2363211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelsonimport android.widget.LinearLayout;
2463211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
2563211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelsonimport com.android.deskclock.CircleTimerView;
2663211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelsonimport com.android.deskclock.R;
2763211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
2863211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
2963211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelsonpublic class TimerListItem extends LinearLayout {
3063211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
314243fb005ecf4810eb2a1adc28df73abf431f178Isaac Katzenelson    CountingTimerView mTimerText;
3263211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    CircleTimerView mCircleView;
3363211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    Button mDelete, mPlusOne, mStop;
3463211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
3563211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    long mTimerLength;
3663211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
3763211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    public TimerListItem(Context context) {
3863211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        this(context, null);
3963211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    }
4063211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
4163211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    public TimerListItem(Context context, AttributeSet attrs) {
4263211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        super(context, attrs);
4363211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        LayoutInflater layoutInflater =
4463211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson                (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
4563211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        layoutInflater.inflate(R.layout.timer_list_item, this);
4663211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    }
4763211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
4863211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    @Override
4963211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    protected void onFinishInflate() {
5063211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        super.onFinishInflate();
514243fb005ecf4810eb2a1adc28df73abf431f178Isaac Katzenelson        mTimerText = (CountingTimerView)findViewById(R.id.timer_time_text);
5263211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        mCircleView = (CircleTimerView)findViewById(R.id.timer_time);
5363211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        mCircleView.setTimerMode(true);
5463211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    }
5563211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
5663211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    public void set(long timerLength, long timeLeft) {
5763211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        if (mCircleView == null) {
5863211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson            mCircleView = (CircleTimerView)findViewById(R.id.timer_time);
5963211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson            mCircleView.setTimerMode(true);
6063211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        }
6163211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        mTimerLength = timerLength;
6263211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        mCircleView.setIntervalTime(mTimerLength);
6363211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        mCircleView.setPassedTime(timerLength - timeLeft);
64860de0e94f5588369985063127512dc2270cd7deItzhak Katzenelson        invalidate();
6563211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    }
6663211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
6763211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    public void start() {
6863211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        mCircleView.startIntervalAnimation();
69860de0e94f5588369985063127512dc2270cd7deItzhak Katzenelson        mTimerText.blinkTimeStr(false);
7063211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    }
7163211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
7263211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    public void pause() {
7363211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        mCircleView.pauseIntervalAnimation();
74860de0e94f5588369985063127512dc2270cd7deItzhak Katzenelson        mTimerText.blinkTimeStr(true);
7563211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    }
7663211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
7763211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    public void stop() {
7863211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        mCircleView.stopIntervalAnimation();
79860de0e94f5588369985063127512dc2270cd7deItzhak Katzenelson        mTimerText.blinkTimeStr(false);
8063211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    }
8163211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
8263211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    public void setLength(long timerLength) {
8363211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        mTimerLength = timerLength;
8463211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        mCircleView.setIntervalTime(mTimerLength);
85860de0e94f5588369985063127512dc2270cd7deItzhak Katzenelson        mCircleView.invalidate();
8663211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    }
8763211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson
8863211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    public void setTime(long time) {
8963211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        if (mTimerText == null) {
904243fb005ecf4810eb2a1adc28df73abf431f178Isaac Katzenelson            mTimerText = (CountingTimerView)findViewById(R.id.timer_time_text);
9163211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson        }
924243fb005ecf4810eb2a1adc28df73abf431f178Isaac Katzenelson        mTimerText.setTime(time, false);
93860de0e94f5588369985063127512dc2270cd7deItzhak Katzenelson        mTimerText.invalidate();
9463211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson    }
9563211efa1565b5dc171938740ba183302d0e46f3Isaac Katzenelson}
96