summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/base/views/ActionBarTitle.java
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2022-12-15 15:11:22 +0100
committercyBerta <cyberta@riseup.net>2022-12-15 23:59:53 +0100
commite090b6dd60daca11603b36a197dfe5b05ecc3cb9 (patch)
tree2779e7f0e59cb659fa71eb6c3aee8d04aefa6949 /app/src/main/java/se/leap/bitmaskclient/base/views/ActionBarTitle.java
parentbccc782a143692a1db01f4725cd94784aa99ca72 (diff)
center and capitalize actionbar title, in Bitmask, center but not capitalize title in riseupvpn, allow to configure both properties on compile time in build.gradle
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/base/views/ActionBarTitle.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/views/ActionBarTitle.java96
1 files changed, 96 insertions, 0 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/views/ActionBarTitle.java b/app/src/main/java/se/leap/bitmaskclient/base/views/ActionBarTitle.java
new file mode 100644
index 00000000..a151305e
--- /dev/null
+++ b/app/src/main/java/se/leap/bitmaskclient/base/views/ActionBarTitle.java
@@ -0,0 +1,96 @@
+package se.leap.bitmaskclient.base.views;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.widget.RelativeLayout;
+
+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 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);
+
+
+ }
+}