blob: c5eb96d6a405dc555fe3524fbac5203b179cbe62 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
package com.mapswithme.maps.widget;
import android.content.Context;
import android.os.Build;
import android.support.annotation.ColorRes;
import android.support.annotation.DrawableRes;
import android.support.v7.widget.AppCompatRadioButton;
import android.util.AttributeSet;
import com.mapswithme.maps.R;
import com.mapswithme.util.ThemeUtils;
public class RoutingToolbarButton extends AppCompatRadioButton
{
private boolean mInProgress;
@DrawableRes
private int mIcon;
public RoutingToolbarButton(Context context, AttributeSet attrs, int defStyleAttr)
{
super(context, attrs, defStyleAttr);
initView();
}
public RoutingToolbarButton(Context context, AttributeSet attrs)
{
super(context, attrs);
initView();
}
public RoutingToolbarButton(Context context)
{
super(context);
initView();
}
private void initView()
{
setBackgroundResource(ThemeUtils.isNightTheme() ? R.drawable.routing_toolbar_button_night
: R.drawable.routing_toolbar_button);
setButtonTintList(ThemeUtils.isNightTheme() ? R.color.routing_toolbar_icon_tint_night
: R.color.routing_toolbar_icon_tint);
}
public void progress()
{
if (mInProgress)
return;
setButtonDrawable(mIcon);
mInProgress = true;
setActivated(false);
setSelected(true);
}
public void error()
{
mInProgress = false;
setSelected(false);
setButtonDrawable(R.drawable.ic_routing_error);
setActivated(true);
}
public void activate()
{
if (!mInProgress)
{
setButtonDrawable(mIcon);
setSelected(false);
setActivated(true);
}
}
public void complete()
{
mInProgress = false;
activate();
}
public void deactivate()
{
setActivated(false);
mInProgress = false;
}
public void setButtonTintList(@ColorRes int color)
{
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
setSupportButtonTintList(getResources().getColorStateList(color));
else
setButtonTintList(getResources().getColorStateList(color));
}
public void setIcon(@DrawableRes int icon)
{
mIcon = icon;
setButtonDrawable(icon);
}
}
|