Theme switching

This commit is contained in:
2021-02-21 00:31:02 +03:00
parent 06aa41cab1
commit 35c45fd34f
34 changed files with 447 additions and 155 deletions
+3
View File
@@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml
Generated
+1
View File
@@ -0,0 +1 @@
Fast
+139
View File
@@ -0,0 +1,139 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<JetCodeStyleSettings>
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
<value>
<package name="java.util" alias="false" withSubpackages="false" />
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
<package name="io.ktor" alias="false" withSubpackages="true" />
</value>
</option>
<option name="PACKAGES_IMPORT_LAYOUT">
<value>
<package name="" alias="false" withSubpackages="true" />
<package name="java" alias="false" withSubpackages="true" />
<package name="javax" alias="false" withSubpackages="true" />
<package name="kotlin" alias="false" withSubpackages="true" />
<package name="" alias="true" withSubpackages="true" />
</value>
</option>
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings>
<codeStyleSettings language="XML">
<option name="FORCE_REARRANGE_MODE" value="1" />
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
<codeStyleSettings language="kotlin">
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</codeStyleSettings>
</code_scheme>
</component>
+5
View File
@@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="1.8" />
</component>
</project>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" />
</component>
</project>
+21
View File
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="PLATFORM" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="1.8" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
<option name="useQualifiedModuleNames" value="true" />
</GradleProjectSettings>
</option>
</component>
</project>
+25
View File
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="BintrayJCenter" />
<option name="name" value="BintrayJCenter" />
<option name="url" value="https://jcenter.bintray.com/" />
</remote-repository>
<remote-repository>
<option name="id" value="Google" />
<option name="name" value="Google" />
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
</remote-repository>
</component>
</project>
+9
View File
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>
Generated
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
+10 -10
View File
@@ -5,14 +5,14 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application <application
android:name="com.meloda.fast.common.AppGlobal" android:name=".common.AppGlobal"
android:allowBackup="true" android:allowBackup="true"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme"> android:theme="@style/AppTheme">
<activity android:name="com.meloda.fast.activity.MainActivity"> <activity android:name=".activity.MainActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
@@ -21,29 +21,29 @@
</activity> </activity>
<service <service
android:name="com.meloda.fast.service.LongPollService" android:name=".service.LongPollService"
android:enabled="true" /> android:enabled="true" />
<activity android:name="com.meloda.fast.activity.MessagesActivity" /> <activity android:name=".activity.MessagesActivity" />
<activity <activity
android:name="com.meloda.fast.activity.StartActivity" android:name=".activity.StartActivity"
android:theme="@style/AppTheme.Start" /> android:theme="@style/AppTheme.Start" />
<activity <activity
android:name="com.meloda.fast.activity.LoginActivity" android:name=".activity.LoginActivity"
android:label="@string/activity_login" /> android:label="@string/activity_login" />
<activity android:name="com.meloda.fast.activity.DropUserDataActivity" /> <activity android:name=".activity.DropUserDataActivity" />
<activity <activity
android:name="com.meloda.fast.activity.SettingsActivity" android:name=".activity.SettingsActivity"
android:label="@string/navigation_settings" /> android:label="@string/navigation_settings" />
<activity android:name="com.meloda.fast.activity.UpdateActivity" /> <activity android:name=".activity.UpdateActivity" />
<receiver <receiver
android:name="com.meloda.fast.receiver.MinuteReceiver" android:name=".receiver.MinuteReceiver"
android:enabled="true"> android:enabled="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.ACTION_TIME_CHANGED" /> <action android:name="android.intent.ACTION_TIME_CHANGED" />
@@ -24,7 +24,7 @@ import com.meloda.fast.extensions.ContextExtensions.drawable
import com.meloda.fast.extensions.DrawableExtensions.tint import com.meloda.fast.extensions.DrawableExtensions.tint
import com.meloda.fast.fragment.FragmentConversations import com.meloda.fast.fragment.FragmentConversations
import com.meloda.fast.fragment.FragmentFriends 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.fragment.LoginFragment
import com.meloda.fast.listener.OnResponseListener import com.meloda.fast.listener.OnResponseListener
import com.meloda.fast.service.LongPollService import com.meloda.fast.service.LongPollService
@@ -39,7 +39,7 @@ class MainActivity : BaseActivity(),
private lateinit var fragmentConversations: FragmentConversations private lateinit var fragmentConversations: FragmentConversations
private lateinit var fragmentFriends: FragmentFriends private lateinit var fragmentFriends: FragmentFriends
private lateinit var fragmentSettings: FragmentSettings private lateinit var settingsFragment: SettingsFragment
private var selectedId = 0 private var selectedId = 0
@@ -91,7 +91,7 @@ class MainActivity : BaseActivity(),
private fun prepareFragments() { private fun prepareFragments() {
fragmentConversations = FragmentConversations() fragmentConversations = FragmentConversations()
fragmentFriends = FragmentFriends(UserConfig.userId) fragmentFriends = FragmentFriends(UserConfig.userId)
fragmentSettings = FragmentSettings() settingsFragment = SettingsFragment()
val containerId = R.id.fragmentContainer val containerId = R.id.fragmentContainer
@@ -27,7 +27,7 @@ import com.meloda.fast.dialog.ProfileDialog
import com.meloda.fast.extensions.ContextExtensions.color import com.meloda.fast.extensions.ContextExtensions.color
import com.meloda.fast.extensions.DrawableExtensions.tint import com.meloda.fast.extensions.DrawableExtensions.tint
import com.meloda.fast.extensions.ImageViewExtensions.loadImage 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.KeyboardUtils
import com.meloda.fast.util.TextUtils import com.meloda.fast.util.TextUtils
import com.meloda.fast.util.ViewUtils import com.meloda.fast.util.ViewUtils
@@ -169,7 +169,7 @@ class MessagesActivity : BaseActivity(), MessagesView {
super.onScrolled(recyclerView, dx, dy) super.onScrolled(recyclerView, dx, dy)
if (dy < 0 && AppGlobal.inputMethodManager.isAcceptingText && AppGlobal.preferences.getBoolean( if (dy < 0 && AppGlobal.inputMethodManager.isAcceptingText && AppGlobal.preferences.getBoolean(
FragmentSettings.KEY_HIDE_KEYBOARD_ON_SCROLL_UP, SettingsFragment.KEY_HIDE_KEYBOARD_ON_SCROLL_UP,
true true
) )
) { ) {
@@ -4,10 +4,9 @@ import android.os.Bundle
import com.meloda.fast.R import com.meloda.fast.R
import com.meloda.fast.base.BaseActivity import com.meloda.fast.base.BaseActivity
import com.meloda.fast.common.FragmentSwitcher 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.ContextExtensions.drawable
import com.meloda.fast.extensions.DrawableExtensions.tint import com.meloda.fast.fragment.SettingsFragment
import com.meloda.fast.fragment.FragmentSettings import com.meloda.fast.util.ColorUtils
import com.meloda.fast.widget.Toolbar import com.meloda.fast.widget.Toolbar
class SettingsActivity : BaseActivity() { class SettingsActivity : BaseActivity() {
@@ -21,12 +20,14 @@ class SettingsActivity : BaseActivity() {
setSupportActionBar(toolbar) setSupportActionBar(toolbar)
toolbar.navigationIcon = drawable(R.drawable.ic_arrow_back).tint(color(R.color.accent))
toolbar.setNavigationClickListener { onBackPressed() } toolbar.setNavigationClickListener { onBackPressed() }
toolbar.navigationIcon = drawable(R.drawable.ic_arrow_back)
toolbar.tintNavigationIcon(ColorUtils.getColorAccent(this))
supportFragmentManager.beginTransaction() supportFragmentManager.beginTransaction()
.replace(R.id.fragmentContainer, FragmentSettings()).commitNow() .replace(R.id.fragmentContainer, SettingsFragment())
.commit()
} }
private fun initViews() { private fun initViews() {
@@ -36,7 +37,7 @@ class SettingsActivity : BaseActivity() {
override fun onBackPressed() { override fun onBackPressed() {
val currentFragment = FragmentSwitcher.getCurrentFragment(supportFragmentManager) ?: return 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() super.onBackPressed()
} }
} }
@@ -1,10 +1,31 @@
package com.meloda.fast.base package com.meloda.fast.base
import android.os.Build
import android.os.Bundle
import android.view.View import android.view.View
import androidx.appcompat.app.AppCompatActivity 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() { 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 { fun getRootView(): View {
return findViewById(android.R.id.content) return findViewById(android.R.id.content)
} }
@@ -22,7 +22,7 @@ import com.meloda.fast.R
import com.meloda.fast.api.UserConfig import com.meloda.fast.api.UserConfig
import com.meloda.fast.database.AppDatabase import com.meloda.fast.database.AppDatabase
import com.meloda.fast.database.MemoryCache 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.fast.util.AndroidUtils
import com.meloda.mvp.MvpBase import com.meloda.mvp.MvpBase
import com.microsoft.appcenter.AppCenter import com.microsoft.appcenter.AppCenter
@@ -133,20 +133,21 @@ class AppGlobal : Application() {
} }
} }
fun applyNightMode(value: String? = null) { fun applyNightMode(value: String? = null): Int {
val mode = value ?: preferences.getString(FragmentSettings.KEY_THEME, "-1")!! val mode = value ?: preferences.getString(SettingsFragment.KEY_THEME, "-1")!!
val nightMode = getNightMode(mode.toInt()) val nightMode = getNightMode(mode.toInt())
val oldNightMode = AppCompatDelegate.getDefaultNightMode() val oldNightMode = AppCompatDelegate.getDefaultNightMode()
AppCompatDelegate.setDefaultNightMode(nightMode) AppCompatDelegate.setDefaultNightMode(nightMode)
return nightMode
} }
fun getNightMode(nightMode: Int = -1): Int { fun getNightMode(nightMode: Int = -1): Int {
return AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM
val mode = if (nightMode != -1) nightMode else preferences.getString( val mode = if (nightMode != -1) nightMode else preferences.getString(
FragmentSettings.KEY_THEME, SettingsFragment.KEY_THEME,
"-1" "-1"
)!!.toInt() )!!.toInt()
@@ -16,13 +16,11 @@ import com.meloda.fast.api.UserConfig
import com.meloda.fast.base.BaseFullscreenDialog import com.meloda.fast.base.BaseFullscreenDialog
import com.meloda.fast.common.AppGlobal import com.meloda.fast.common.AppGlobal
import com.meloda.fast.database.MemoryCache 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.ContextExtensions.drawable
import com.meloda.fast.extensions.DrawableExtensions.tint import com.meloda.fast.extensions.DrawableExtensions.tint
import com.meloda.fast.extensions.FragmentExtensions.findViewById import com.meloda.fast.extensions.FragmentExtensions.findViewById
import com.meloda.fast.item.SimpleMenuItem import com.meloda.fast.item.SimpleMenuItem
import com.meloda.fast.listener.ItemClickListener import com.meloda.fast.listener.ItemClickListener
import com.meloda.fast.util.AndroidUtils
import com.meloda.fast.util.ColorUtils import com.meloda.fast.util.ColorUtils
import com.meloda.fast.util.ViewUtils import com.meloda.fast.util.ViewUtils
import com.meloda.fast.widget.Toolbar import com.meloda.fast.widget.Toolbar
@@ -63,8 +61,7 @@ class AccountDialog : BaseFullscreenDialog(), ItemClickListener {
private fun prepareToolbar() { private fun prepareToolbar() {
toolbar.navigationIcon = requireContext().drawable(R.drawable.ic_close) 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.setTitle(R.string.account_dialog_title)
toolbar.setTitleMode(Toolbar.TitleMode.SIMPLE) toolbar.setTitleMode(Toolbar.TitleMode.SIMPLE)
@@ -10,11 +10,14 @@ import android.view.ViewGroup
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import android.widget.EditText import android.widget.EditText
import com.google.android.material.button.MaterialButton import com.google.android.material.button.MaterialButton
import com.google.android.material.card.MaterialCardView
import com.meloda.fast.R import com.meloda.fast.R
import com.meloda.fast.base.BaseFragment import com.meloda.fast.base.BaseFragment
import com.meloda.fast.fragment.ui.presenter.LoginPresenter import com.meloda.fast.fragment.ui.presenter.LoginPresenter
import com.meloda.fast.fragment.ui.view.LoginView import com.meloda.fast.fragment.ui.view.LoginView
import com.meloda.fast.util.AndroidUtils
import com.meloda.fast.util.KeyboardUtils import com.meloda.fast.util.KeyboardUtils
import kotlin.math.roundToInt
class LoginFragment : BaseFragment(), LoginView { class LoginFragment : BaseFragment(), LoginView {
@@ -23,6 +26,7 @@ class LoginFragment : BaseFragment(), LoginView {
private lateinit var email: EditText private lateinit var email: EditText
private lateinit var password: EditText private lateinit var password: EditText
private lateinit var authorize: MaterialButton private lateinit var authorize: MaterialButton
private lateinit var card: MaterialCardView
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@@ -48,12 +52,14 @@ class LoginFragment : BaseFragment(), LoginView {
email = requireView().findViewById(R.id.loginEmailEditText) email = requireView().findViewById(R.id.loginEmailEditText)
password = requireView().findViewById(R.id.loginPasswordEditText) password = requireView().findViewById(R.id.loginPasswordEditText)
authorize = requireView().findViewById(R.id.loginAuthorize) authorize = requireView().findViewById(R.id.loginAuthorize)
card = requireView().findViewById(R.id.loginCard)
} }
override fun prepareViews() { override fun prepareViews() {
prepareEmailEditText() prepareEmailEditText()
preparePasswordEditText() preparePasswordEditText()
prepareAuthorizeButton() prepareAuthorizeButton()
prepareCardView()
} }
private fun prepareEmailEditText() { private fun prepareEmailEditText() {
@@ -65,7 +71,7 @@ class LoginFragment : BaseFragment(), LoginView {
password.setOnEditorActionListener { _, _, event -> password.setOnEditorActionListener { _, _, event ->
if (event == null) return@setOnEditorActionListener false 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)) (event.action == KeyEvent.ACTION_DOWN && (event.keyCode == KeyEvent.KEYCODE_ENTER || event.keyCode == KeyEvent.KEYCODE_NUMPAD_ENTER))
) { ) {
KeyboardUtils.hideKeyboardFrom(password) 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) { override fun showErrorSnackbar(t: Throwable) {
TODO("Not yet implemented") TODO("Not yet implemented")
} }
@@ -3,20 +3,19 @@ package com.meloda.fast.fragment
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.preference.Preference import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import com.meloda.fast.R import com.meloda.fast.R
import com.meloda.fast.activity.DropUserDataActivity import com.meloda.fast.activity.DropUserDataActivity
import com.meloda.fast.activity.UpdateActivity import com.meloda.fast.activity.UpdateActivity
import com.meloda.fast.base.BaseActivity
import com.meloda.fast.common.AppGlobal import com.meloda.fast.common.AppGlobal
import com.meloda.fast.common.TaskManager import com.meloda.fast.common.TaskManager
import com.meloda.fast.extensions.ContextExtensions.color import com.meloda.fast.extensions.ContextExtensions.color
import com.meloda.fast.extensions.ContextExtensions.drawable
import com.meloda.fast.util.AndroidUtils import com.meloda.fast.util.AndroidUtils
class FragmentSettings : PreferenceFragmentCompat(), class SettingsFragment : PreferenceFragmentCompat(),
Preference.OnPreferenceClickListener, Preference.OnPreferenceClickListener,
Preference.OnPreferenceChangeListener { Preference.OnPreferenceChangeListener {
@@ -40,6 +39,7 @@ class FragmentSettings : PreferenceFragmentCompat(),
} }
private var currentPreferenceLayout = 0 private var currentPreferenceLayout = 0
private var isRestoringState = false
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.fragment_settings, rootKey) setPreferencesFromResource(R.xml.fragment_settings, rootKey)
@@ -49,7 +49,6 @@ class FragmentSettings : PreferenceFragmentCompat(),
private fun init() { private fun init() {
setTitle() setTitle()
setNavigationIcon()
setPreferencesFromResource(currentPreferenceLayout, null) setPreferencesFromResource(currentPreferenceLayout, null)
val general = findPreference<Preference>(CATEGORY_GENERAL) val general = findPreference<Preference>(CATEGORY_GENERAL)
@@ -100,14 +99,6 @@ class FragmentSettings : PreferenceFragmentCompat(),
private val rootLayoutClickListener = private val rootLayoutClickListener =
Preference.OnPreferenceClickListener { changeRootLayout(it) } 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() { private fun setTitle() {
var title = R.string.navigation_settings var title = R.string.navigation_settings
when (currentPreferenceLayout) { when (currentPreferenceLayout) {
@@ -189,14 +180,8 @@ class FragmentSettings : PreferenceFragmentCompat(),
return true return true
} }
KEY_THEME -> { KEY_THEME -> {
AppGlobal.instance.applyNightMode(newValue as String) val nightMode = AppGlobal.instance.applyNightMode(newValue as String)
(requireActivity() as BaseActivity).apply { (requireActivity() as AppCompatActivity).delegate.localNightMode = nightMode
// applyNightMode()
finish()
startActivity(intent)
// recreate()
}
return true return true
} }
} }
@@ -3,6 +3,7 @@ package com.meloda.fast.util
import android.content.ClipData import android.content.ClipData
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.res.Configuration
import android.net.NetworkCapabilities import android.net.NetworkCapabilities
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
@@ -28,6 +29,15 @@ object AndroidUtils {
fun dp(px: Int) = dp(px.toFloat()) 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 { fun hasConnection(): Boolean {
val network = AppGlobal.connectivityManager.activeNetwork ?: return false val network = AppGlobal.connectivityManager.activeNetwork ?: return false
val activeNetwork = val activeNetwork =
@@ -1,6 +1,7 @@
package com.meloda.fast.util package com.meloda.fast.util
import android.content.Context import android.content.Context
import android.graphics.Color
import androidx.annotation.ColorInt import androidx.annotation.ColorInt
import com.meloda.fast.R import com.meloda.fast.R
@@ -11,4 +12,19 @@ object ColorUtils {
return AndroidUtils.getThemeAttrColor(context, R.attr.colorAccent) 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
}
} }
@@ -17,15 +17,6 @@ object Utils {
return context.getString(R.string.error, t.message.toString()) 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? { fun serialize(source: Any?): ByteArray? {
try { try {
val bos = BytesOutputStream() val bos = BytesOutputStream()
@@ -2,6 +2,7 @@ package com.meloda.fast.widget
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
import android.content.res.ColorStateList
import android.graphics.Canvas import android.graphics.Canvas
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.util.AttributeSet import android.util.AttributeSet
@@ -11,6 +12,7 @@ import android.view.View
import android.widget.ImageButton import android.widget.ImageButton
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import androidx.annotation.ColorInt
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes
import androidx.core.content.res.ResourcesCompat import androidx.core.content.res.ResourcesCompat
import com.facebook.drawee.view.SimpleDraweeView import com.facebook.drawee.view.SimpleDraweeView
@@ -85,6 +87,11 @@ class Toolbar : MaterialToolbar {
findViewById<View>(R.id.toolbarNavigation).visibility = if (visible) VISIBLE else GONE findViewById<View>(R.id.toolbarNavigation).visibility = if (visible) VISIBLE else GONE
} }
fun tintNavigationIcon(@ColorInt color: Int) {
findViewById<ImageButton>(R.id.toolbarNavigationIcon).imageTintList =
ColorStateList.valueOf(color)
}
fun setAvatarIcon(icon: Drawable?) { fun setAvatarIcon(icon: Drawable?) {
findViewById<ImageView>(R.id.toolbarAvatar).setImageDrawable(icon) findViewById<ImageView>(R.id.toolbarAvatar).setImageDrawable(icon)
} }
@@ -1,5 +1,9 @@
<vector android:height="24dp" android:tint="#FFFFFF" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportHeight="24.0" android:viewportWidth="24.0" android:width="24dp"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> android:height="24dp"
<path android:fillColor="#FF000000" android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/> android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#ffffff"
android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z" />
</vector> </vector>
@@ -5,14 +5,14 @@
android:viewportHeight="15.921"> android:viewportHeight="15.921">
<path <path
android:fillColor="#fff" android:fillColor="?android:windowBackground"
android:pathData="M2,3h7v10h-7z" /> android:pathData="M2,3h7v10h-7z" />
<path <path
android:fillColor="?colorAccent" android:fillColor="?colorAccent"
android:pathData="M8.5026,14.9214L3.0838,14.9214C1.9348,14.9214 1,13.9866 1,12.8376L1,3.0838C1,1.9348 1.9348,1 3.0838,1L8.5036,1.0054C9.6516,1.0054 10.5863,1.9378 10.5863,3.0838L10.5863,12.8376C10.5863,13.9866 9.6516,14.9214 8.5026,14.9214ZM4.0838,10.7539L7.5026,10.7539L7.5026,5.1675L4.0838,5.1675L4.0838,10.7539Z" android:pathData="M8.5026,14.9214L3.0838,14.9214C1.9348,14.9214 1,13.9866 1,12.8376L1,3.0838C1,1.9348 1.9348,1 3.0838,1L8.5036,1.0054C9.6516,1.0054 10.5863,1.9378 10.5863,3.0838L10.5863,12.8376C10.5863,13.9866 9.6516,14.9214 8.5026,14.9214ZM4.0838,10.7539L7.5026,10.7539L7.5026,5.1675L4.0838,5.1675L4.0838,10.7539Z"
android:strokeColor="#00000000" /> android:strokeColor="#00000000" />
<path <path
android:fillColor="#fff" android:fillColor="?android:windowBackground"
android:pathData="M3.0838,2C2.4877,2 2,2.4877 2,3.0838L2,12.8376C2,13.4337 2.4877,13.9214 3.0838,13.9214L8.5026,13.9214C9.0986,13.9214 9.5863,13.4337 9.5863,12.8376L9.5863,3.0838C9.5863,2.4877 9.0986,2.0054 8.5026,2.0054L3.0838,2M8.5026,11.7539L3.0838,11.7539L3.0838,4.1675L8.5026,4.1675L8.5026,11.7539M3.0838,0L3.0848,0L3.0858,0L8.5046,0.0054C10.203,0.0054 11.5863,1.3864 11.5863,3.0838L11.5863,12.8376C11.5863,14.538 10.203,15.9214 8.5026,15.9214L3.0838,15.9214C1.3834,15.9214 -0,14.538 -0,12.8376L-0,3.0838C-0,1.3834 1.3834,0 3.0838,0ZM6.5026,6.1675L5.0838,6.1675L5.0838,9.7539L6.5026,9.7539L6.5026,6.1675Z" android:pathData="M3.0838,2C2.4877,2 2,2.4877 2,3.0838L2,12.8376C2,13.4337 2.4877,13.9214 3.0838,13.9214L8.5026,13.9214C9.0986,13.9214 9.5863,13.4337 9.5863,12.8376L9.5863,3.0838C9.5863,2.4877 9.0986,2.0054 8.5026,2.0054L3.0838,2M8.5026,11.7539L3.0838,11.7539L3.0838,4.1675L8.5026,4.1675L8.5026,11.7539M3.0838,0L3.0848,0L3.0858,0L8.5046,0.0054C10.203,0.0054 11.5863,1.3864 11.5863,3.0838L11.5863,12.8376C11.5863,14.538 10.203,15.9214 8.5026,15.9214L3.0838,15.9214C1.3834,15.9214 -0,14.538 -0,12.8376L-0,3.0838C-0,1.3834 1.3834,0 3.0838,0ZM6.5026,6.1675L5.0838,6.1675L5.0838,9.7539L6.5026,9.7539L6.5026,6.1675Z"
android:strokeColor="#00000000" /> android:strokeColor="#00000000" />
</vector> </vector>
@@ -0,0 +1,18 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="11.586dp"
android:height="15.921dp"
android:viewportWidth="11.586"
android:viewportHeight="15.921">
<path
android:fillColor="?android:windowBackground"
android:pathData="M2,3h7v10h-7z" />
<path
android:fillColor="?colorAccent"
android:pathData="M8.5026,14.9214L3.0838,14.9214C1.9348,14.9214 1,13.9866 1,12.8376L1,3.0838C1,1.9348 1.9348,1 3.0838,1L8.5036,1.0054C9.6516,1.0054 10.5863,1.9378 10.5863,3.0838L10.5863,12.8376C10.5863,13.9866 9.6516,14.9214 8.5026,14.9214ZM4.0838,10.7539L7.5026,10.7539L7.5026,5.1675L4.0838,5.1675L4.0838,10.7539Z"
android:strokeColor="#00000000" />
<path
android:fillColor="#fff"
android:pathData="M3.0838,2C2.4877,2 2,2.4877 2,3.0838L2,12.8376C2,13.4337 2.4877,13.9214 3.0838,13.9214L8.5026,13.9214C9.0986,13.9214 9.5863,13.4337 9.5863,12.8376L9.5863,3.0838C9.5863,2.4877 9.0986,2.0054 8.5026,2.0054L3.0838,2M8.5026,11.7539L3.0838,11.7539L3.0838,4.1675L8.5026,4.1675L8.5026,11.7539M3.0838,0L3.0848,0L3.0858,0L8.5046,0.0054C10.203,0.0054 11.5863,1.3864 11.5863,3.0838L11.5863,12.8376C11.5863,14.538 10.203,15.9214 8.5026,15.9214L3.0838,15.9214C1.3834,15.9214 -0,14.538 -0,12.8376L-0,3.0838C-0,1.3834 1.3834,0 3.0838,0ZM6.5026,6.1675L5.0838,6.1675L5.0838,9.7539L6.5026,9.7539L6.5026,6.1675Z"
android:strokeColor="#00000000" />
</vector>
+1 -9
View File
@@ -15,21 +15,13 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginBottom="48dp" /> android:layout_marginBottom="48dp" />
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_gravity="bottom"
android:layout_marginBottom="48dp"
android:alpha="0.6"
android:background="?dividerHorizontal" />
<com.google.android.material.bottomnavigation.BottomNavigationView <com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomBar" android:id="@+id/bottomBar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="48dp" android:layout_height="48dp"
android:layout_gravity="bottom" android:layout_gravity="bottom"
app:backgroundTint="?colorPrimary" app:backgroundTint="?colorPrimary"
app:elevation="0dp" app:elevation="0.5dp"
app:itemIconTint="@drawable/navigation_view_items_colors" app:itemIconTint="@drawable/navigation_view_items_colors"
app:itemTextColor="@drawable/navigation_view_items_colors" app:itemTextColor="@drawable/navigation_view_items_colors"
app:labelVisibilityMode="unlabeled" app:labelVisibilityMode="unlabeled"
@@ -72,6 +72,7 @@
style="@style/AppTheme.Login.EditText" style="@style/AppTheme.Login.EditText"
android:layout_width="match_parent" android:layout_width="match_parent"
android:hint="@string/email_login_hint" android:hint="@string/email_login_hint"
android:imeOptions="actionGo"
android:inputType="textEmailAddress" /> android:inputType="textEmailAddress" />
</LinearLayout> </LinearLayout>
@@ -73,9 +73,10 @@
<TextView <TextView
android:id="@+id/conversationTitle" android:id="@+id/conversationTitle"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:fontFamily="@font/tt_commons_medium" android:fontFamily="@font/tt_commons_medium"
android:singleLine="true" android:singleLine="true"
android:textColor="?itemTitleColor" android:textColor="?itemTitleColor"
@@ -107,10 +108,10 @@
<TextView <TextView
android:id="@+id/conversationText" android:id="@+id/conversationText"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginEnd="4dp" android:layout_marginEnd="12dp"
android:baselineAligned="false" android:baselineAligned="false"
android:gravity="center_vertical" android:gravity="center_vertical"
android:singleLine="true" android:singleLine="true"
-1
View File
@@ -31,7 +31,6 @@
android:clickable="false" android:clickable="false"
android:focusable="false" android:focusable="false"
android:tint="?android:textColorPrimary" android:tint="?android:textColorPrimary"
android:tintMode="multiply"
tools:src="@drawable/ic_search" /> tools:src="@drawable/ic_search" />
</LinearLayout> </LinearLayout>
+29 -20
View File
@@ -22,6 +22,35 @@
<item name="android:navigationBarDividerColor" tools:targetApi="o_mr1">@android:color/transparent</item> <item name="android:navigationBarDividerColor" tools:targetApi="o_mr1">@android:color/transparent</item>
</style> </style>
<style name="AppTheme.FullScreenDialog" parent="Theme.MaterialComponents.Dialog.Bridge">
<item name="colorPrimary">@color/dark_primary</item>
<item name="colorPrimaryDark">@color/dark_primaryDark</item>
<item name="colorAccent">@color/dark_accent</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowBackground">@color/dark_background</item>
<item name="actionMenuTextColor">?colorAccent</item>
<item name="android:navigationBarColor" tools:targetApi="o_mr1">?colorPrimaryDark</item>
<item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">true</item>
<item name="android:navigationBarDividerColor" tools:targetApi="o_mr1">
@android:color/transparent
</item>
<item name="colorControlNormal">?colorAccent</item>
</style>
<style name="AppTheme.ProfileDialog" parent="Theme.MaterialComponents.BottomSheetDialog">
<item name="colorAccent">@color/dark_accent</item>
<item name="colorPrimary">@color/dark_primary</item>
<item name="colorPrimaryDark">@color/dark_primaryDark</item>
</style>
<style name="AppTheme.Update" parent="Theme.MaterialComponents.NoActionBar.Bridge">
<item name="colorPrimaryDark">@android:color/white</item>
<item name="colorAccent">@color/dark_accent</item>
<item name="android:windowLightStatusBar">true</item>
</style>
<style name="AppTheme.Start" parent="Theme.MaterialComponents.NoActionBar.Bridge"> <style name="AppTheme.Start" parent="Theme.MaterialComponents.NoActionBar.Bridge">
<item name="android:windowBackground">@color/dark_accent</item> <item name="android:windowBackground">@color/dark_accent</item>
<item name="colorPrimaryDark">@color/dark_accent</item> <item name="colorPrimaryDark">@color/dark_accent</item>
@@ -31,24 +60,4 @@
<item name="android:windowAnimationStyle">@style/AppTheme.ActivityAnimation</item> <item name="android:windowAnimationStyle">@style/AppTheme.ActivityAnimation</item>
</style> </style>
<style name="AppTheme.Update" parent="Theme.MaterialComponents.NoActionBar.Bridge">
<item name="colorPrimaryDark">@android:color/white</item>
<item name="colorAccent">@color/dark_accent</item>
<item name="android:windowLightStatusBar">true</item>
</style>
<style name="AppTheme.ProfileDialog" parent="Theme.MaterialComponents.BottomSheetDialog">
<item name="colorAccent">@color/dark_accent</item>
<item name="colorPrimary">@color/dark_primary</item>
<item name="colorPrimaryDark">@color/dark_primaryDark</item>
</style>
<style name="AppTheme.Toolbar" parent="Widget.MaterialComponents.Toolbar.PrimarySurface">
<item name="titleTextAppearance">@style/Toolbar.Title</item>
<item name="android:textSize">24sp</item>
<item name="android:elevation">3dp</item>
<item name="titleTextColor">?colorAccent</item>
<item name="android:background">?colorPrimary</item>
</style>
</resources> </resources>
+3 -3
View File
@@ -35,8 +35,8 @@
<string-array name="theme_values"> <string-array name="theme_values">
<item>0</item> <item>0</item>
<item>0</item> <item>1</item>
<item>0</item> <item>2</item>
<item>0</item> <item>3</item>
</string-array> </string-array>
</resources> </resources>
+14
View File
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme.ActivityAnimation" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/activity_open_enter</item>
<item name="android:activityOpenExitAnimation">@anim/activity_open_exit</item>
<item name="android:activityCloseEnterAnimation">@anim/activity_close_enter</item>
<item name="android:activityCloseExitAnimation">@anim/activity_close_exit</item>
</style>
<style name="AppTheme.Slide">
<item name="android:windowEnterAnimation">@anim/slide_up</item>
<item name="android:windowExitAnimation">@anim/slide_down</item>
</style>
</resources>
+42 -52
View File
@@ -22,36 +22,16 @@
<item name="android:navigationBarColor">@color/navigationBar</item> <item name="android:navigationBarColor">@color/navigationBar</item>
<item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">true</item> <item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">true</item>
<item name="android:navigationBarDividerColor" tools:targetApi="o_mr1">@android:color/transparent</item> <item name="android:navigationBarDividerColor" tools:targetApi="o_mr1">
@android:color/transparent
</item>
</style> </style>
<style name="AppTheme.Start" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">
<item name="android:windowBackground">@color/accent</item>
<item name="colorPrimaryDark">@color/accent</item>
<item name="colorAccent">@color/accent</item>
<item name="android:navigationBarColor">@color/accent</item>
<item name="dialogCornerRadius">12dp</item>
<item name="android:windowAnimationStyle">@style/AppTheme.ActivityAnimation</item>
</style>
<style name="AppTheme.Update" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">
<item name="colorPrimaryDark">@android:color/white</item>
<item name="colorAccent">@color/accent</item>
<item name="android:windowLightStatusBar">true</item>
</style>
<style name="AppTheme.ProfileDialog" parent="Theme.MaterialComponents.Light.BottomSheetDialog">
<item name="colorAccent">@color/accent</item>
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
</style>
<style name="AppTheme.Toolbar" parent="Widget.MaterialComponents.Toolbar.PrimarySurface"> <style name="AppTheme.Toolbar" parent="Widget.MaterialComponents.Toolbar.PrimarySurface">
<item name="titleTextAppearance">@style/Toolbar.Title</item> <item name="titleTextAppearance">@style/Toolbar.Title</item>
<item name="android:textSize">24sp</item> <item name="android:textSize">24sp</item>
<item name="android:elevation">3dp</item> <item name="android:elevation">3dp</item>
<item name="titleTextColor">?colorAccent</item> <item name="titleTextColor">?colorAccent</item>
<item name="android:background">?colorPrimary</item> <item name="android:background">?colorPrimary</item>
</style> </style>
@@ -61,37 +41,8 @@
<item name="android:fontFamily">@font/tt_commons_medium</item> <item name="android:fontFamily">@font/tt_commons_medium</item>
</style> </style>
<style name="AppTheme.ActivityAnimation" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/activity_open_enter</item>
<item name="android:activityOpenExitAnimation">@anim/activity_open_exit</item>
<item name="android:activityCloseEnterAnimation">@anim/activity_close_enter</item>
<item name="android:activityCloseExitAnimation">@anim/activity_close_exit</item>
</style>
<style name="AppTheme.Slide">
<item name="android:windowEnterAnimation">@anim/slide_up</item>
<item name="android:windowExitAnimation">@anim/slide_down</item>
</style>
<style name="AppTheme.Dialog" parent="Theme.MaterialComponents.DayNight.Dialog.Alert" /> <style name="AppTheme.Dialog" parent="Theme.MaterialComponents.DayNight.Dialog.Alert" />
<style name="AppTheme.FullScreenDialog" parent="Theme.MaterialComponents.Light.Dialog.Bridge">
<item name="colorPrimary">?colorPrimary</item>
<item name="colorPrimaryDark">?colorPrimaryDark</item>
<item name="colorAccent">?colorAccent</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowBackground">?android:windowBackground</item>
<item name="actionMenuTextColor">?colorAccent</item>
<item name="android:navigationBarColor" tools:targetApi="o_mr1">?colorPrimaryDark</item>
<item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">true</item>
<item name="android:navigationBarDividerColor" tools:targetApi="o_mr1">@android:color/transparent</item>
<item name="colorControlNormal">?colorAccent</item>
<item name="toolbarStyle">@style/AppTheme.Toolbar</item>
</style>
<style name="AppTheme.Login.EditText" parent=""> <style name="AppTheme.Login.EditText" parent="">
<item name="android:layout_height">52dp</item> <item name="android:layout_height">52dp</item>
<item name="android:background">@drawable/edittext_filled_background</item> <item name="android:background">@drawable/edittext_filled_background</item>
@@ -106,10 +57,49 @@
<item name="android:maxLines">1</item> <item name="android:maxLines">1</item>
</style> </style>
<style name="AppTheme.FullScreenDialog" parent="Theme.MaterialComponents.Light.Dialog.Bridge">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="colorAccent">@color/accent</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowBackground">@color/background</item>
<item name="actionMenuTextColor">?colorAccent</item>
<item name="android:navigationBarColor" tools:targetApi="o_mr1">?colorPrimaryDark</item>
<item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">true</item>
<item name="android:navigationBarDividerColor" tools:targetApi="o_mr1">
@android:color/transparent
</item>
<item name="colorControlNormal">?colorAccent</item>
</style>
<style name="AppTheme.Login.EditText.Icon" parent=""> <style name="AppTheme.Login.EditText.Icon" parent="">
<item name="tint">?textColorSecondary</item> <item name="tint">?textColorSecondary</item>
<item name="android:layout_marginStart">8dp</item> <item name="android:layout_marginStart">8dp</item>
<item name="android:layout_marginEnd">12dp</item> <item name="android:layout_marginEnd">12dp</item>
</style> </style>
<style name="AppTheme.Update" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">
<item name="colorPrimaryDark">@android:color/white</item>
<item name="colorAccent">@color/accent</item>
<item name="android:windowLightStatusBar">true</item>
</style>
<style name="AppTheme.ProfileDialog" parent="Theme.MaterialComponents.Light.BottomSheetDialog">
<item name="colorAccent">@color/accent</item>
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
</style>
<style name="AppTheme.Start" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">
<item name="android:windowBackground">@color/accent</item>
<item name="colorPrimaryDark">@color/accent</item>
<item name="colorAccent">@color/accent</item>
<item name="android:navigationBarColor">@color/accent</item>
<item name="dialogCornerRadius">12dp</item>
<item name="android:windowAnimationStyle">@style/AppTheme.ActivityAnimation</item>
</style>
</resources> </resources>