From 15696ad81396a5870f3883608517c592f8d5cef1 Mon Sep 17 00:00:00 2001 From: Armand Douce Date: Wed, 25 Nov 2020 17:58:53 +0100 Subject: [PATCH] Navigation Bar color consistency fixed, for gesture bar as well as 3/2 buttons bar --- .../activities/AndroidThemeSwitcher.kt | 35 ++++++++++++++----- .../activities/settings/SettingsActivity.java | 5 +++ 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/AndroidThemeSwitcher.kt b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/AndroidThemeSwitcher.kt index c0d5bd786..94d1ca26d 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/AndroidThemeSwitcher.kt +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/AndroidThemeSwitcher.kt @@ -19,15 +19,16 @@ package org.isoron.uhabits.activities -import android.app.* -import android.content.res.Configuration.* -import android.os.Build.VERSION.* -import androidx.core.content.* -import org.isoron.androidbase.activities.* -import org.isoron.uhabits.* -import org.isoron.uhabits.core.preferences.* -import org.isoron.uhabits.core.ui.* -import javax.inject.* +import android.app.Activity +import android.content.Context +import android.content.res.Configuration.UI_MODE_NIGHT_MASK +import android.content.res.Configuration.UI_MODE_NIGHT_YES +import android.os.Build.VERSION.SDK_INT +import androidx.core.content.ContextCompat +import org.isoron.androidbase.activities.ActivityScope +import org.isoron.uhabits.R +import org.isoron.uhabits.core.preferences.Preferences +import org.isoron.uhabits.core.ui.ThemeSwitcher @ActivityScope class AndroidThemeSwitcher @@ -54,6 +55,14 @@ constructor( override fun applyLightTheme() { activity.setTheme(R.style.AppBaseTheme) + + if(isEdgeToEdgeEnabled(activity.baseContext) == 2) { + activity.window.navigationBarColor = + ContextCompat.getColor(activity, R.color.grey_200) + } else { + activity.window.navigationBarColor = + ContextCompat.getColor(activity, R.color.transparent) + } } override fun applyPureBlackTheme() { @@ -68,4 +77,12 @@ constructor( else -> R.style.DialogWithTitle } } + + fun isEdgeToEdgeEnabled(context: Context): Int { + val resources = context.resources + val resourceId = resources.getIdentifier("config_navBarInteractionMode", "integer", "android") + return if (resourceId > 0) { + resources.getInteger(resourceId) + } else 0 + } } diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/settings/SettingsActivity.java b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/settings/SettingsActivity.java index 7d75e6231..8658d11f5 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/settings/SettingsActivity.java +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/settings/SettingsActivity.java @@ -19,6 +19,8 @@ package org.isoron.uhabits.activities.settings; + +import android.graphics.Color; import android.os.*; import org.isoron.androidbase.activities.*; @@ -44,6 +46,8 @@ public class SettingsActivity extends BaseActivity setContentView(R.layout.settings_activity); setupActionBarColor(); + + getWindow().setNavigationBarColor((Color.TRANSPARENT)); } private void setupActionBarColor() @@ -56,4 +60,5 @@ public class SettingsActivity extends BaseActivity BaseScreen.setupActionBarColor(this, color); } + }