summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/base/MainActivity.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/MainActivity.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/MainActivity.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/MainActivity.java96
1 files changed, 32 insertions, 64 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/MainActivity.java b/app/src/main/java/se/leap/bitmaskclient/base/MainActivity.java
index f56f2223..9225755e 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/MainActivity.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/MainActivity.java
@@ -17,6 +17,7 @@
package se.leap.bitmaskclient.base;
+import static androidx.appcompat.app.ActionBar.DISPLAY_SHOW_CUSTOM;
import static se.leap.bitmaskclient.R.string.downloading_vpn_certificate_failed;
import static se.leap.bitmaskclient.R.string.vpn_certificate_user_message;
import static se.leap.bitmaskclient.base.models.Constants.ASK_TO_CANCEL_VPN;
@@ -34,7 +35,6 @@ import static se.leap.bitmaskclient.base.models.Constants.REQUEST_CODE_LOG_IN;
import static se.leap.bitmaskclient.base.models.Constants.REQUEST_CODE_SWITCH_PROVIDER;
import static se.leap.bitmaskclient.base.models.Constants.SHARED_PREFERENCES;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.storeProviderInPreferences;
-import static se.leap.bitmaskclient.base.utils.ViewHelper.isBrightColor;
import static se.leap.bitmaskclient.eip.EIP.EIPErrors.ERROR_INVALID_VPN_CERTIFICATE;
import static se.leap.bitmaskclient.eip.EIP.EIPErrors.ERROR_VPN_PREPARE;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERRORID;
@@ -46,17 +46,14 @@ import static se.leap.bitmaskclient.providersetup.ProviderAPI.TOR_TIMEOUT;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.UPDATE_INVALID_VPN_CERTIFICATE;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.USER_MESSAGE;
+import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.graphics.drawable.ColorDrawable;
-import android.os.Build;
import android.os.Bundle;
import android.util.Log;
-import android.view.Window;
-import android.view.WindowManager;
+import android.view.Gravity;
-import androidx.annotation.ColorRes;
-import androidx.annotation.StringRes;
+import androidx.annotation.ColorInt;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
@@ -70,6 +67,7 @@ import org.json.JSONObject;
import java.util.Observable;
import java.util.Observer;
+import se.leap.bitmaskclient.BuildConfig;
import se.leap.bitmaskclient.R;
import se.leap.bitmaskclient.base.fragments.EipFragment;
import se.leap.bitmaskclient.base.fragments.ExcludeAppsFragment;
@@ -81,7 +79,7 @@ import se.leap.bitmaskclient.base.fragments.SettingsFragment;
import se.leap.bitmaskclient.base.models.Provider;
import se.leap.bitmaskclient.base.models.ProviderObservable;
import se.leap.bitmaskclient.base.utils.PreferenceHelper;
-import se.leap.bitmaskclient.base.utils.ViewHelper;
+import se.leap.bitmaskclient.base.views.ActionBarTitle;
import se.leap.bitmaskclient.eip.EIP;
import se.leap.bitmaskclient.eip.EipCommand;
import se.leap.bitmaskclient.eip.EipSetupListener;
@@ -103,8 +101,6 @@ public class MainActivity extends AppCompatActivity implements EipSetupListener,
public final static String ACTION_SHOW_DIALOG_FRAGMENT = "action_show_dialog_fragment";
public final static String ACTION_SHOW_MOTD_FRAGMENT = "action_show_motd_fragment";
- private @ColorRes int actionBarTextColor = R.color.colorActionBarTitleFont;
-
/**
* Fragment managing the behaviors, interactions and presentation of the navigation drawer.
*/
@@ -113,8 +109,7 @@ public class MainActivity extends AppCompatActivity implements EipSetupListener,
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.a_main);
- setSupportActionBar(findViewById(R.id.toolbar));
-
+ setupActionBar();
navigationDrawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
@@ -143,7 +138,6 @@ public class MainActivity extends AppCompatActivity implements EipSetupListener,
newFragment.setArguments(bundle);
}
fragmentManagerEnhanced.replace(R.id.main_container, newFragment, MainActivity.TAG);
- hideActionBarSubTitle();
} else {
super.onBackPressed();
}
@@ -171,7 +165,6 @@ public class MainActivity extends AppCompatActivity implements EipSetupListener,
}
bundle.putParcelable(PROVIDER_KEY, provider);
fragment.setArguments(bundle);
- hideActionBarSubTitle();
showActionBar();
break;
case ACTION_SHOW_MOTD_FRAGMENT:
@@ -181,12 +174,10 @@ public class MainActivity extends AppCompatActivity implements EipSetupListener,
motdBundle.putString(EXTRA_MOTD_MSG, intent.getStringExtra(EXTRA_MOTD_MSG));
}
fragment.setArguments(motdBundle);
- hideActionBarSubTitle();
hideActionBar();
break;
case ACTION_SHOW_LOG_FRAGMENT:
fragment = new LogFragment();
- setActionBarTitle(R.string.log_fragment_title);
showActionBar();
break;
case ACTION_SHOW_DIALOG_FRAGMENT:
@@ -209,6 +200,31 @@ public class MainActivity extends AppCompatActivity implements EipSetupListener,
}
}
+ private void setupActionBar() {
+ setSupportActionBar(findViewById(R.id.toolbar));
+ final ActionBar actionBar = getSupportActionBar();
+ Context context = actionBar.getThemedContext();
+ actionBar.setDisplayOptions(DISPLAY_SHOW_CUSTOM);
+
+ ActionBarTitle actionBarTitle = new ActionBarTitle(context);
+ actionBarTitle.setTitleCaps(BuildConfig.actionbar_capitalize_title);
+ actionBarTitle.setTitle(getString(R.string.app_name));
+
+ @ColorInt int titleColor = ContextCompat.getColor(context, R.color.colorActionBarTitleFont);
+ actionBarTitle.setTitleTextColor(titleColor);
+
+ actionBarTitle.setCentered(BuildConfig.actionbar_center_title);
+ if (BuildConfig.actionbar_center_title) {
+ ActionBar.LayoutParams params = new ActionBar.LayoutParams(
+ ActionBar.LayoutParams.WRAP_CONTENT,
+ ActionBar.LayoutParams.MATCH_PARENT,
+ Gravity.CENTER);
+ actionBar.setCustomView(actionBarTitle, params);
+ } else {
+ actionBar.setCustomView(actionBarTitle);
+ }
+ }
+
private void hideActionBar() {
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
@@ -223,53 +239,6 @@ public class MainActivity extends AppCompatActivity implements EipSetupListener,
}
}
- private void hideActionBarSubTitle() {
- ActionBar actionBar = getSupportActionBar();
- if (actionBar != null) {
- actionBar.setSubtitle(null);
- }
- }
- private void setActionBarTitle(@StringRes int stringId) {
- ActionBar actionBar = getSupportActionBar();
- if (actionBar != null) {
- actionBar.setSubtitle(stringId);
- }
- }
-
- public @ColorRes int getActionBarTitleColor() {
- return actionBarTextColor;
- }
-
- public void setDefaultActivityBarColor() {
- setActivityBarColor(R.color.colorPrimary, R.color.colorPrimaryDark, R.color.colorActionBarTitleFont);
- }
-
- public void setActivityBarColor(@ColorRes int primaryColor, @ColorRes int secondaryColor, @ColorRes int textColor) {
- ActionBar bar = getSupportActionBar();
- if (bar == null) {
- return;
- }
- int color = ContextCompat.getColor(this, secondaryColor);
- bar.setBackgroundDrawable(new ColorDrawable(color));
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- Window window = this.getWindow();
- window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
- window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
- window.setStatusBarColor(ContextCompat.getColor(this, primaryColor));
- }
-
- if (bar.getTitle() == null) {
- return;
- }
-
- if (textColor == 0) {
- actionBarTextColor = isBrightColor(color) ? R.color.actionbar_connectivity_state_text_color_dark : R.color.actionbar_connectivity_state_text_color_light;
- } else {
- actionBarTextColor = textColor;
- }
-
- ViewHelper.setActionBarTextColor(bar, actionBarTextColor);
- }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
@@ -313,7 +282,6 @@ public class MainActivity extends AppCompatActivity implements EipSetupListener,
fragment.setArguments(arguments);
new FragmentManagerEnhanced(getSupportFragmentManager())
.replace(R.id.main_container, fragment, MainActivity.TAG);
- hideActionBarSubTitle();
}
@Override