From 35c45fd34ff9866a8063d19dc2f22b88cca9f846 Mon Sep 17 00:00:00 2001 From: Danil Nikolaev Date: Sun, 21 Feb 2021 00:31:02 +0300 Subject: [PATCH] Theme switching --- .idea/.gitignore | 3 + .idea/.name | 1 + .idea/codeStyles/Project.xml | 139 ++++++++++++++++++ .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/compiler.xml | 6 + .idea/discord.xml | 6 + .idea/gradle.xml | 21 +++ .idea/jarRepositories.xml | 25 ++++ .idea/misc.xml | 9 ++ .idea/vcs.xml | 6 + app/src/main/AndroidManifest.xml | 20 +-- .../com/meloda/fast/activity/MainActivity.kt | 6 +- .../meloda/fast/activity/MessagesActivity.kt | 4 +- .../meloda/fast/activity/SettingsActivity.kt | 15 +- .../java/com/meloda/fast/base/BaseActivity.kt | 21 +++ .../java/com/meloda/fast/common/AppGlobal.kt | 11 +- .../com/meloda/fast/dialog/AccountDialog.kt | 5 +- .../com/meloda/fast/fragment/LoginFragment.kt | 16 +- ...ragmentSettings.kt => SettingsFragment.kt} | 25 +--- .../java/com/meloda/fast/util/AndroidUtils.kt | 10 ++ .../java/com/meloda/fast/util/ColorUtils.kt | 16 ++ .../main/java/com/meloda/fast/util/Utils.kt | 9 -- .../java/com/meloda/fast/widget/Toolbar.kt | 7 + .../main/res/drawable-v21/ic_arrow_back.xml | 12 +- .../res/drawable-v21/ic_online_mobile.xml | 4 +- .../drawable-v21/ic_online_mobile_dark.xml | 18 +++ app/src/main/res/layout/activity_main.xml | 10 +- app/src/main/res/layout/fragment_login.xml | 1 + app/src/main/res/layout/item_conversation.xml | 7 +- app/src/main/res/layout/toolbar.xml | 1 - app/src/main/res/values-night/themes.xml | 49 +++--- app/src/main/res/values/arrays.xml | 6 +- app/src/main/res/values/styles.xml | 14 ++ app/src/main/res/values/themes.xml | 94 ++++++------ 34 files changed, 447 insertions(+), 155 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/.name create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/compiler.xml create mode 100644 .idea/discord.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml rename app/src/main/java/com/meloda/fast/fragment/{FragmentSettings.kt => SettingsFragment.kt} (90%) create mode 100644 app/src/main/res/drawable-v21/ic_online_mobile_dark.xml create mode 100644 app/src/main/res/values/styles.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..26d33521 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 00000000..565a2383 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +Fast \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 00000000..3c7772a0 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 00000000..79ee123c --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 00000000..61a9130c --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 00000000..cd711a0e --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 00000000..18de3ac5 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 00000000..a5f05cd8 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..d5d35ec4 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9aa9552a..8246dcff 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,14 +5,14 @@ - + @@ -21,29 +21,29 @@ - + - + - + diff --git a/app/src/main/java/com/meloda/fast/activity/MainActivity.kt b/app/src/main/java/com/meloda/fast/activity/MainActivity.kt index b2f2387d..e745ea32 100644 --- a/app/src/main/java/com/meloda/fast/activity/MainActivity.kt +++ b/app/src/main/java/com/meloda/fast/activity/MainActivity.kt @@ -24,7 +24,7 @@ import com.meloda.fast.extensions.ContextExtensions.drawable import com.meloda.fast.extensions.DrawableExtensions.tint import com.meloda.fast.fragment.FragmentConversations import com.meloda.fast.fragment.FragmentFriends -import com.meloda.fast.fragment.FragmentSettings +import com.meloda.fast.fragment.SettingsFragment import com.meloda.fast.fragment.LoginFragment import com.meloda.fast.listener.OnResponseListener import com.meloda.fast.service.LongPollService @@ -39,7 +39,7 @@ class MainActivity : BaseActivity(), private lateinit var fragmentConversations: FragmentConversations private lateinit var fragmentFriends: FragmentFriends - private lateinit var fragmentSettings: FragmentSettings + private lateinit var settingsFragment: SettingsFragment private var selectedId = 0 @@ -91,7 +91,7 @@ class MainActivity : BaseActivity(), private fun prepareFragments() { fragmentConversations = FragmentConversations() fragmentFriends = FragmentFriends(UserConfig.userId) - fragmentSettings = FragmentSettings() + settingsFragment = SettingsFragment() val containerId = R.id.fragmentContainer diff --git a/app/src/main/java/com/meloda/fast/activity/MessagesActivity.kt b/app/src/main/java/com/meloda/fast/activity/MessagesActivity.kt index cb92fd00..5bcdcad6 100644 --- a/app/src/main/java/com/meloda/fast/activity/MessagesActivity.kt +++ b/app/src/main/java/com/meloda/fast/activity/MessagesActivity.kt @@ -27,7 +27,7 @@ import com.meloda.fast.dialog.ProfileDialog import com.meloda.fast.extensions.ContextExtensions.color import com.meloda.fast.extensions.DrawableExtensions.tint import com.meloda.fast.extensions.ImageViewExtensions.loadImage -import com.meloda.fast.fragment.FragmentSettings +import com.meloda.fast.fragment.SettingsFragment import com.meloda.fast.util.KeyboardUtils import com.meloda.fast.util.TextUtils import com.meloda.fast.util.ViewUtils @@ -169,7 +169,7 @@ class MessagesActivity : BaseActivity(), MessagesView { super.onScrolled(recyclerView, dx, dy) if (dy < 0 && AppGlobal.inputMethodManager.isAcceptingText && AppGlobal.preferences.getBoolean( - FragmentSettings.KEY_HIDE_KEYBOARD_ON_SCROLL_UP, + SettingsFragment.KEY_HIDE_KEYBOARD_ON_SCROLL_UP, true ) ) { diff --git a/app/src/main/java/com/meloda/fast/activity/SettingsActivity.kt b/app/src/main/java/com/meloda/fast/activity/SettingsActivity.kt index 526740bb..bfa6314b 100644 --- a/app/src/main/java/com/meloda/fast/activity/SettingsActivity.kt +++ b/app/src/main/java/com/meloda/fast/activity/SettingsActivity.kt @@ -4,10 +4,9 @@ import android.os.Bundle import com.meloda.fast.R import com.meloda.fast.base.BaseActivity import com.meloda.fast.common.FragmentSwitcher -import com.meloda.fast.extensions.ContextExtensions.color import com.meloda.fast.extensions.ContextExtensions.drawable -import com.meloda.fast.extensions.DrawableExtensions.tint -import com.meloda.fast.fragment.FragmentSettings +import com.meloda.fast.fragment.SettingsFragment +import com.meloda.fast.util.ColorUtils import com.meloda.fast.widget.Toolbar class SettingsActivity : BaseActivity() { @@ -21,12 +20,14 @@ class SettingsActivity : BaseActivity() { setSupportActionBar(toolbar) - toolbar.navigationIcon = drawable(R.drawable.ic_arrow_back).tint(color(R.color.accent)) - toolbar.setNavigationClickListener { onBackPressed() } + toolbar.navigationIcon = drawable(R.drawable.ic_arrow_back) + toolbar.tintNavigationIcon(ColorUtils.getColorAccent(this)) + supportFragmentManager.beginTransaction() - .replace(R.id.fragmentContainer, FragmentSettings()).commitNow() + .replace(R.id.fragmentContainer, SettingsFragment()) + .commit() } private fun initViews() { @@ -36,7 +37,7 @@ class SettingsActivity : BaseActivity() { override fun onBackPressed() { val currentFragment = FragmentSwitcher.getCurrentFragment(supportFragmentManager) ?: return - if (currentFragment.javaClass == FragmentSettings::class.java && (currentFragment as FragmentSettings).onBackPressed()) { + if (currentFragment.javaClass == SettingsFragment::class.java && (currentFragment as SettingsFragment).onBackPressed()) { super.onBackPressed() } } diff --git a/app/src/main/java/com/meloda/fast/base/BaseActivity.kt b/app/src/main/java/com/meloda/fast/base/BaseActivity.kt index d00c1641..201a16b5 100644 --- a/app/src/main/java/com/meloda/fast/base/BaseActivity.kt +++ b/app/src/main/java/com/meloda/fast/base/BaseActivity.kt @@ -1,10 +1,31 @@ package com.meloda.fast.base +import android.os.Build +import android.os.Bundle import android.view.View import androidx.appcompat.app.AppCompatActivity +import com.meloda.fast.R +import com.meloda.fast.extensions.ContextExtensions.color +import com.meloda.fast.util.AndroidUtils +import com.meloda.fast.util.ColorUtils abstract class BaseActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.M) { + val navigationBarColor = + if (AndroidUtils.isDarkTheme()) { + color(R.color.dark_primaryDark) + } else { + ColorUtils.darkenColor(color(R.color.primaryDark)) + } + + window.navigationBarColor = navigationBarColor + } + } + fun getRootView(): View { return findViewById(android.R.id.content) } diff --git a/app/src/main/java/com/meloda/fast/common/AppGlobal.kt b/app/src/main/java/com/meloda/fast/common/AppGlobal.kt index c072aa50..429bc344 100644 --- a/app/src/main/java/com/meloda/fast/common/AppGlobal.kt +++ b/app/src/main/java/com/meloda/fast/common/AppGlobal.kt @@ -22,7 +22,7 @@ import com.meloda.fast.R import com.meloda.fast.api.UserConfig import com.meloda.fast.database.AppDatabase import com.meloda.fast.database.MemoryCache -import com.meloda.fast.fragment.FragmentSettings +import com.meloda.fast.fragment.SettingsFragment import com.meloda.fast.util.AndroidUtils import com.meloda.mvp.MvpBase import com.microsoft.appcenter.AppCenter @@ -133,20 +133,21 @@ class AppGlobal : Application() { } } - fun applyNightMode(value: String? = null) { - val mode = value ?: preferences.getString(FragmentSettings.KEY_THEME, "-1")!! + fun applyNightMode(value: String? = null): Int { + val mode = value ?: preferences.getString(SettingsFragment.KEY_THEME, "-1")!! val nightMode = getNightMode(mode.toInt()) val oldNightMode = AppCompatDelegate.getDefaultNightMode() AppCompatDelegate.setDefaultNightMode(nightMode) + + return nightMode } fun getNightMode(nightMode: Int = -1): Int { - return AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM val mode = if (nightMode != -1) nightMode else preferences.getString( - FragmentSettings.KEY_THEME, + SettingsFragment.KEY_THEME, "-1" )!!.toInt() diff --git a/app/src/main/java/com/meloda/fast/dialog/AccountDialog.kt b/app/src/main/java/com/meloda/fast/dialog/AccountDialog.kt index b2f00d75..17a06a85 100644 --- a/app/src/main/java/com/meloda/fast/dialog/AccountDialog.kt +++ b/app/src/main/java/com/meloda/fast/dialog/AccountDialog.kt @@ -16,13 +16,11 @@ import com.meloda.fast.api.UserConfig import com.meloda.fast.base.BaseFullscreenDialog import com.meloda.fast.common.AppGlobal import com.meloda.fast.database.MemoryCache -import com.meloda.fast.extensions.ContextExtensions.color import com.meloda.fast.extensions.ContextExtensions.drawable import com.meloda.fast.extensions.DrawableExtensions.tint import com.meloda.fast.extensions.FragmentExtensions.findViewById import com.meloda.fast.item.SimpleMenuItem import com.meloda.fast.listener.ItemClickListener -import com.meloda.fast.util.AndroidUtils import com.meloda.fast.util.ColorUtils import com.meloda.fast.util.ViewUtils import com.meloda.fast.widget.Toolbar @@ -63,8 +61,7 @@ class AccountDialog : BaseFullscreenDialog(), ItemClickListener { private fun prepareToolbar() { toolbar.navigationIcon = requireContext().drawable(R.drawable.ic_close) - .tint(ColorUtils.getColorAccent(requireContext())) - + toolbar.tintNavigationIcon(ColorUtils.getColorAccent(requireContext())) toolbar.setTitle(R.string.account_dialog_title) toolbar.setTitleMode(Toolbar.TitleMode.SIMPLE) diff --git a/app/src/main/java/com/meloda/fast/fragment/LoginFragment.kt b/app/src/main/java/com/meloda/fast/fragment/LoginFragment.kt index babe77c5..72a6530e 100644 --- a/app/src/main/java/com/meloda/fast/fragment/LoginFragment.kt +++ b/app/src/main/java/com/meloda/fast/fragment/LoginFragment.kt @@ -10,11 +10,14 @@ import android.view.ViewGroup import android.view.inputmethod.EditorInfo import android.widget.EditText import com.google.android.material.button.MaterialButton +import com.google.android.material.card.MaterialCardView import com.meloda.fast.R import com.meloda.fast.base.BaseFragment import com.meloda.fast.fragment.ui.presenter.LoginPresenter import com.meloda.fast.fragment.ui.view.LoginView +import com.meloda.fast.util.AndroidUtils import com.meloda.fast.util.KeyboardUtils +import kotlin.math.roundToInt class LoginFragment : BaseFragment(), LoginView { @@ -23,6 +26,7 @@ class LoginFragment : BaseFragment(), LoginView { private lateinit var email: EditText private lateinit var password: EditText private lateinit var authorize: MaterialButton + private lateinit var card: MaterialCardView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -48,12 +52,14 @@ class LoginFragment : BaseFragment(), LoginView { email = requireView().findViewById(R.id.loginEmailEditText) password = requireView().findViewById(R.id.loginPasswordEditText) authorize = requireView().findViewById(R.id.loginAuthorize) + card = requireView().findViewById(R.id.loginCard) } override fun prepareViews() { prepareEmailEditText() preparePasswordEditText() prepareAuthorizeButton() + prepareCardView() } private fun prepareEmailEditText() { @@ -65,7 +71,7 @@ class LoginFragment : BaseFragment(), LoginView { password.setOnEditorActionListener { _, _, event -> if (event == null) return@setOnEditorActionListener false - return@setOnEditorActionListener if (event.action == EditorInfo.IME_ACTION_DONE || + return@setOnEditorActionListener if (event.action == EditorInfo.IME_ACTION_GO || (event.action == KeyEvent.ACTION_DOWN && (event.keyCode == KeyEvent.KEYCODE_ENTER || event.keyCode == KeyEvent.KEYCODE_NUMPAD_ENTER)) ) { KeyboardUtils.hideKeyboardFrom(password) @@ -85,6 +91,14 @@ class LoginFragment : BaseFragment(), LoginView { } } + private fun prepareCardView() { + val width = AndroidUtils.dp(resources.displayMetrics.widthPixels).roundToInt() + + if (width < 380) { + card.strokeWidth = 0 + } + } + override fun showErrorSnackbar(t: Throwable) { TODO("Not yet implemented") } diff --git a/app/src/main/java/com/meloda/fast/fragment/FragmentSettings.kt b/app/src/main/java/com/meloda/fast/fragment/SettingsFragment.kt similarity index 90% rename from app/src/main/java/com/meloda/fast/fragment/FragmentSettings.kt rename to app/src/main/java/com/meloda/fast/fragment/SettingsFragment.kt index 64b2481d..8fd21800 100644 --- a/app/src/main/java/com/meloda/fast/fragment/FragmentSettings.kt +++ b/app/src/main/java/com/meloda/fast/fragment/SettingsFragment.kt @@ -3,20 +3,19 @@ package com.meloda.fast.fragment import android.content.Intent import android.os.Bundle import androidx.appcompat.app.AlertDialog +import androidx.appcompat.app.AppCompatActivity import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceScreen import com.meloda.fast.R import com.meloda.fast.activity.DropUserDataActivity import com.meloda.fast.activity.UpdateActivity -import com.meloda.fast.base.BaseActivity import com.meloda.fast.common.AppGlobal import com.meloda.fast.common.TaskManager import com.meloda.fast.extensions.ContextExtensions.color -import com.meloda.fast.extensions.ContextExtensions.drawable import com.meloda.fast.util.AndroidUtils -class FragmentSettings : PreferenceFragmentCompat(), +class SettingsFragment : PreferenceFragmentCompat(), Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener { @@ -40,6 +39,7 @@ class FragmentSettings : PreferenceFragmentCompat(), } private var currentPreferenceLayout = 0 + private var isRestoringState = false override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.fragment_settings, rootKey) @@ -49,7 +49,6 @@ class FragmentSettings : PreferenceFragmentCompat(), private fun init() { setTitle() - setNavigationIcon() setPreferencesFromResource(currentPreferenceLayout, null) val general = findPreference(CATEGORY_GENERAL) @@ -100,14 +99,6 @@ class FragmentSettings : PreferenceFragmentCompat(), private val rootLayoutClickListener = Preference.OnPreferenceClickListener { changeRootLayout(it) } - private fun setNavigationIcon() { - val drawable = - if (currentPreferenceLayout == R.xml.fragment_settings) null - else requireContext().drawable(R.drawable.ic_arrow_back) - - drawable?.setTint(requireContext().color(R.color.accent)) - } - private fun setTitle() { var title = R.string.navigation_settings when (currentPreferenceLayout) { @@ -189,14 +180,8 @@ class FragmentSettings : PreferenceFragmentCompat(), return true } KEY_THEME -> { - AppGlobal.instance.applyNightMode(newValue as String) - (requireActivity() as BaseActivity).apply { -// applyNightMode() - finish() - startActivity(intent) -// recreate() - } - + val nightMode = AppGlobal.instance.applyNightMode(newValue as String) + (requireActivity() as AppCompatActivity).delegate.localNightMode = nightMode return true } } diff --git a/app/src/main/java/com/meloda/fast/util/AndroidUtils.kt b/app/src/main/java/com/meloda/fast/util/AndroidUtils.kt index d3935dd4..2891de8e 100644 --- a/app/src/main/java/com/meloda/fast/util/AndroidUtils.kt +++ b/app/src/main/java/com/meloda/fast/util/AndroidUtils.kt @@ -3,6 +3,7 @@ package com.meloda.fast.util import android.content.ClipData import android.content.Context import android.content.Intent +import android.content.res.Configuration import android.net.NetworkCapabilities import android.net.Uri import android.os.Build @@ -28,6 +29,15 @@ object AndroidUtils { fun dp(px: Int) = dp(px.toFloat()) + fun isDarkTheme(): Boolean { + val currentNightMode = + AppGlobal.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK + return when (currentNightMode) { + Configuration.UI_MODE_NIGHT_YES -> true + else -> false + } + } + fun hasConnection(): Boolean { val network = AppGlobal.connectivityManager.activeNetwork ?: return false val activeNetwork = diff --git a/app/src/main/java/com/meloda/fast/util/ColorUtils.kt b/app/src/main/java/com/meloda/fast/util/ColorUtils.kt index ff82de84..9e038147 100644 --- a/app/src/main/java/com/meloda/fast/util/ColorUtils.kt +++ b/app/src/main/java/com/meloda/fast/util/ColorUtils.kt @@ -1,6 +1,7 @@ package com.meloda.fast.util import android.content.Context +import android.graphics.Color import androidx.annotation.ColorInt import com.meloda.fast.R @@ -11,4 +12,19 @@ object ColorUtils { return AndroidUtils.getThemeAttrColor(context, R.attr.colorAccent) } + @ColorInt + fun getColorPrimary(context: Context): Int { + return AndroidUtils.getThemeAttrColor(context, R.attr.colorPrimary) + } + + @JvmOverloads + fun darkenColor(color: Int, darkFactor: Float = 0.75f): Int { + var newColor = color + val hsv = FloatArray(3) + Color.colorToHSV(newColor, hsv) + hsv[2] *= darkFactor + newColor = Color.HSVToColor(hsv) + return newColor + } + } \ No newline at end of file diff --git a/app/src/main/java/com/meloda/fast/util/Utils.kt b/app/src/main/java/com/meloda/fast/util/Utils.kt index cd021c94..1973dd09 100644 --- a/app/src/main/java/com/meloda/fast/util/Utils.kt +++ b/app/src/main/java/com/meloda/fast/util/Utils.kt @@ -17,15 +17,6 @@ object Utils { return context.getString(R.string.error, t.message.toString()) } - fun isDarkTheme(): Boolean { - val currentNightMode = - AppGlobal.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK - return when (currentNightMode) { - Configuration.UI_MODE_NIGHT_YES -> true - else -> false - } - } - fun serialize(source: Any?): ByteArray? { try { val bos = BytesOutputStream() diff --git a/app/src/main/java/com/meloda/fast/widget/Toolbar.kt b/app/src/main/java/com/meloda/fast/widget/Toolbar.kt index ea49f427..e792312d 100644 --- a/app/src/main/java/com/meloda/fast/widget/Toolbar.kt +++ b/app/src/main/java/com/meloda/fast/widget/Toolbar.kt @@ -2,6 +2,7 @@ package com.meloda.fast.widget import android.app.Activity import android.content.Context +import android.content.res.ColorStateList import android.graphics.Canvas import android.graphics.drawable.Drawable import android.util.AttributeSet @@ -11,6 +12,7 @@ import android.view.View import android.widget.ImageButton import android.widget.ImageView import android.widget.TextView +import androidx.annotation.ColorInt import androidx.annotation.DrawableRes import androidx.core.content.res.ResourcesCompat import com.facebook.drawee.view.SimpleDraweeView @@ -85,6 +87,11 @@ class Toolbar : MaterialToolbar { findViewById(R.id.toolbarNavigation).visibility = if (visible) VISIBLE else GONE } + fun tintNavigationIcon(@ColorInt color: Int) { + findViewById(R.id.toolbarNavigationIcon).imageTintList = + ColorStateList.valueOf(color) + } + fun setAvatarIcon(icon: Drawable?) { findViewById(R.id.toolbarAvatar).setImageDrawable(icon) } diff --git a/app/src/main/res/drawable-v21/ic_arrow_back.xml b/app/src/main/res/drawable-v21/ic_arrow_back.xml index 71d5bbd2..e3ff9579 100644 --- a/app/src/main/res/drawable-v21/ic_arrow_back.xml +++ b/app/src/main/res/drawable-v21/ic_arrow_back.xml @@ -1,5 +1,9 @@ - - + + diff --git a/app/src/main/res/drawable-v21/ic_online_mobile.xml b/app/src/main/res/drawable-v21/ic_online_mobile.xml index f04b22f8..4a878387 100644 --- a/app/src/main/res/drawable-v21/ic_online_mobile.xml +++ b/app/src/main/res/drawable-v21/ic_online_mobile.xml @@ -5,14 +5,14 @@ android:viewportHeight="15.921"> diff --git a/app/src/main/res/drawable-v21/ic_online_mobile_dark.xml b/app/src/main/res/drawable-v21/ic_online_mobile_dark.xml new file mode 100644 index 00000000..1ed5ea8c --- /dev/null +++ b/app/src/main/res/drawable-v21/ic_online_mobile_dark.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index cfe8cbf9..391f4910 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -15,21 +15,13 @@ android:layout_height="match_parent" android:layout_marginBottom="48dp" /> - - diff --git a/app/src/main/res/layout/item_conversation.xml b/app/src/main/res/layout/item_conversation.xml index e7fe5ce7..0cb8b32c 100644 --- a/app/src/main/res/layout/item_conversation.xml +++ b/app/src/main/res/layout/item_conversation.xml @@ -73,9 +73,10 @@ diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 78957a89..3eac2511 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -22,6 +22,35 @@ @android:color/transparent + + + + + + - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index b71d6560..2ce146b3 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -35,8 +35,8 @@ 0 - 0 - 0 - 0 + 1 + 2 + 3 \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..4fc6a9bc --- /dev/null +++ b/app/src/main/res/values/styles.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 6803c6b4..fc659bcb 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -22,36 +22,16 @@ @color/navigationBar true - @android:color/transparent + + @android:color/transparent + - - - - - - @@ -61,37 +41,8 @@ @font/tt_commons_medium - - - - - - + + + + + + + + + \ No newline at end of file