blob: a754efa9773dd9c3dcfc71b7dc98855d21c4185b (
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
100
101
102
103
104
105
106
107
108
109
110
|
package se.leap.bitmaskclient.base.views;
import android.content.Context;
import android.graphics.Typeface;
import android.os.Build;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.LayoutInflater;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.appcompat.widget.LinearLayoutCompat;
import se.leap.bitmaskclient.databinding.VActionbarTitleBinding;
public class ActionBarTitle extends LinearLayoutCompat {
private AppCompatTextView actionBarTitle;
private AppCompatTextView actionBarSubtitle;
private LinearLayoutCompat container;
public ActionBarTitle(@NonNull Context context) {
super(context);
initLayout(context);
}
public ActionBarTitle(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
initLayout(context);
}
public ActionBarTitle(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initLayout(context);
}
public void initLayout(Context context) {
VActionbarTitleBinding binding = VActionbarTitleBinding.inflate(LayoutInflater.from(context), this, true);
actionBarTitle = binding.actionBarTitle;
actionBarSubtitle = binding.actionBarSubtitle;
container = binding.actionBarTitleContainer;
}
public void setTitle(CharSequence text) {
actionBarTitle.setText(text);
}
public void setTitleCaps(boolean caps) {
actionBarTitle.setAllCaps(caps);
}
public void setSubtitle(CharSequence text) {
actionBarSubtitle.setText(text);
}
public void setTitle(@StringRes int resId) {
actionBarTitle.setText(resId);
}
public void setSubtitle(@StringRes int resId) {
actionBarSubtitle.setText(resId);
}
public void setTitleTextColor(@ColorInt int color) {
actionBarTitle.setTextColor(color);
}
public @ColorInt int getTitleTextColor() {
return actionBarTitle.getCurrentTextColor();
}
public void setSubtitleTextColor(@ColorInt int color) {
actionBarSubtitle.setTextColor(color);
}
public void showSubtitle(boolean show) {
actionBarSubtitle.setVisibility(show ? VISIBLE : GONE);
}
public void setCentered(boolean centered) {
LayoutParams titleLayoutParams = (LayoutParams) actionBarTitle.getLayoutParams();
LayoutParams subtitleLayoutParams = (LayoutParams) actionBarSubtitle.getLayoutParams();
LayoutParams containerLayoutParams = (LayoutParams) container.getLayoutParams();
if (centered) {
titleLayoutParams.gravity = Gravity.CENTER;
subtitleLayoutParams.gravity = Gravity.CENTER;
containerLayoutParams.gravity = Gravity.CENTER;
} else {
titleLayoutParams.gravity = Gravity.NO_GRAVITY;
subtitleLayoutParams.gravity = Gravity.NO_GRAVITY;
containerLayoutParams.gravity = Gravity.NO_GRAVITY;
}
actionBarTitle.setLayoutParams(titleLayoutParams);
actionBarSubtitle.setLayoutParams(subtitleLayoutParams);
container.setLayoutParams(containerLayoutParams);
}
public void setSingleBoldTitle() {
showSubtitle(false);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
actionBarTitle.setTypeface(Typeface.create(null,900,false));
} else {
actionBarTitle.setTypeface(actionBarTitle.getTypeface(), Typeface.BOLD);
}
actionBarTitle.setLetterSpacing(0.05f);
actionBarTitle.setTextSize(24f);
}
}
|