4 * Authors: Nathaniel McCallum <npmccallum@redhat.com>
6 * Copyright (C) 2013 Nathaniel McCallum, Red Hat
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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.
21 package org.fedorahosted.freeotp;
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;
29 public class UrgencyProgressBar extends ProgressBar {
30 public UrgencyProgressBar(Context context, AttributeSet attrs, int defStyle) {
31 super(context, attrs, defStyle);
34 public UrgencyProgressBar(Context context, AttributeSet attrs) {
35 super(context, attrs);
38 public UrgencyProgressBar(Context context) {
43 public synchronized void setProgress(int progress) {
44 super.setProgress(progress);
46 int percent = progress * 100 / getMax();
47 if (percent > 33 || progress == 0)
48 getProgressDrawable().clearColorFilter();
50 int green = 0xe0 * percent / 33;
51 getProgressDrawable().setColorFilter(Color.RED | (green << 8), Mode.SRC_IN);