]> Pileus Git - ~andy/freeotp/blob - src/org/fedorahosted/freeotp/UrgencyProgressBar.java
Tablet UI rewrite
[~andy/freeotp] / src / org / fedorahosted / freeotp / UrgencyProgressBar.java
1 /*
2  * FreeOTP
3  *
4  * Authors: Nathaniel McCallum <npmccallum@redhat.com>
5  *
6  * Copyright (C) 2013  Nathaniel McCallum, Red Hat
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *     http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20
21 package org.fedorahosted.freeotp;
22
23 import android.content.Context;
24 import android.graphics.Color;
25 import android.graphics.PorterDuff.Mode;
26 import android.util.AttributeSet;
27 import android.widget.ProgressBar;
28
29 public class UrgencyProgressBar extends ProgressBar {
30         public UrgencyProgressBar(Context context, AttributeSet attrs, int defStyle) {
31                 super(context, attrs, defStyle);
32         }
33
34         public UrgencyProgressBar(Context context, AttributeSet attrs) {
35                 super(context, attrs);
36         }
37
38         public UrgencyProgressBar(Context context) {
39                 super(context);
40         }
41
42         @Override
43         public synchronized void setProgress(int progress) {
44                 super.setProgress(progress);
45
46                 int percent = progress * 100 / getMax();
47                 if (percent > 33 || progress == 0)
48                         getProgressDrawable().clearColorFilter();
49                 else {
50                         int green = 0xe0 * percent / 33;
51                         getProgressDrawable().setColorFilter(Color.RED | (green << 8), Mode.SRC_IN);
52                 }
53         }
54
55
56 }