From 694e0bce7fdc048dd5d0085e308822814aa1a02c Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Thu, 20 Jun 2019 00:37:44 +0500 Subject: [PATCH 01/89] Update gradle version from 3.4.0 to 3.4.1 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 888f7399d5..35157f4407 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.4.0' + classpath 'com.android.tools.build:gradle:3.4.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}" classpath "org.jetbrains.dokka:dokka-gradle-plugin:${versions.dokka}" classpath 'com.google.gms:google-services:4.2.0' From 84c0f6dd65bcba9883ed9ca87267823d17fb4983 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Fri, 21 Jun 2019 23:07:53 +0500 Subject: [PATCH 02/89] Added thememanager package and themelibrary. --- app/build.gradle | 4 + .../main/presentation/MainNavigator.kt | 10 ++ .../presentation/SettingsPresenter.kt | 2 + .../android/settings/ui/SettingsFragment.kt | 2 + .../android/thememanager/InjectorUtils.kt | 13 ++ .../thememanager/adapter/ThemesAdapter.kt | 5 + .../thememanager/di/ThemesFragmentModule.kt | 25 +++ .../thememanager/di/ThemesFragmentProvider.kt | 15 ++ .../android/thememanager/model/Theme.kt | 8 + .../thememanager/model/ThemesRepository.kt | 28 ++++ .../android/thememanager/ui/ThemesFragment.kt | 156 ++++++++++++++++++ .../thememanager/viewmodel/ThemesViewModel.kt | 12 ++ .../viewmodel/ThemesViewModelFactory.kt | 17 ++ app/src/main/res/layout/fragment_settings.xml | 22 ++- app/src/main/res/layout/fragment_theme.xml | 70 ++++++++ app/src/main/res/layout/item_theme.xml | 17 ++ app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 3 + app/src/main/res/values-es/strings.xml | 3 + app/src/main/res/values-fa/strings.xml | 3 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-hi-rIN/strings.xml | 3 + app/src/main/res/values-it/strings.xml | 3 + app/src/main/res/values-ja/strings.xml | 3 + app/src/main/res/values-pt-rBR/strings.xml | 3 + app/src/main/res/values-pt-rPT/strings.xml | 3 + app/src/main/res/values-ru-rRU/strings.xml | 3 + app/src/main/res/values-tr/strings.xml | 3 + app/src/main/res/values-uk/strings.xml | 3 + app/src/main/res/values-zh-rCN/strings.xml | 3 + app/src/main/res/values-zh-rTW/strings.xml | 3 + app/src/main/res/values/attrs.xml | 4 + app/src/main/res/values/colors.xml | 3 + app/src/main/res/values/strings.xml | 6 + app/src/main/res/values/styles.xml | 20 +++ build.gradle | 2 +- settings.gradle | 2 +- themelibrary/.gitignore | 1 + themelibrary/build.gradle | 36 ++++ themelibrary/proguard-rules.pro | 21 +++ .../themelibrary/ExampleInstrumentedTest.java | 27 +++ themelibrary/src/main/AndroidManifest.xml | 2 + themelibrary/src/main/res/values/attrs.xml | 4 + themelibrary/src/main/res/values/colors.xml | 6 + themelibrary/src/main/res/values/strings.xml | 3 + themelibrary/src/main/res/values/styles.xml | 14 ++ .../nbamir/themelibrary/ExampleUnitTest.java | 17 ++ 47 files changed, 612 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/chat/rocket/android/thememanager/InjectorUtils.kt create mode 100644 app/src/main/java/chat/rocket/android/thememanager/adapter/ThemesAdapter.kt create mode 100644 app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentModule.kt create mode 100644 app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentProvider.kt create mode 100644 app/src/main/java/chat/rocket/android/thememanager/model/Theme.kt create mode 100644 app/src/main/java/chat/rocket/android/thememanager/model/ThemesRepository.kt create mode 100644 app/src/main/java/chat/rocket/android/thememanager/ui/ThemesFragment.kt create mode 100644 app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt create mode 100644 app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModelFactory.kt create mode 100644 app/src/main/res/layout/fragment_theme.xml create mode 100644 app/src/main/res/layout/item_theme.xml create mode 100644 app/src/main/res/values/attrs.xml create mode 100644 themelibrary/.gitignore create mode 100644 themelibrary/build.gradle create mode 100644 themelibrary/proguard-rules.pro create mode 100644 themelibrary/src/androidTest/java/com/example/nbamir/themelibrary/ExampleInstrumentedTest.java create mode 100644 themelibrary/src/main/AndroidManifest.xml create mode 100644 themelibrary/src/main/res/values/attrs.xml create mode 100644 themelibrary/src/main/res/values/colors.xml create mode 100644 themelibrary/src/main/res/values/strings.xml create mode 100644 themelibrary/src/main/res/values/styles.xml create mode 100644 themelibrary/src/test/java/com/example/nbamir/themelibrary/ExampleUnitTest.java diff --git a/app/build.gradle b/app/build.gradle index 16be0a25ea..f84882f7e8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -110,6 +110,7 @@ dependencies { implementation project(':util') implementation project(':core') implementation project(':suggestions') + implementation project(':themelibrary') implementation libraries.kotlin implementation libraries.coroutinesCore @@ -126,6 +127,9 @@ dependencies { implementation libraries.dagger implementation libraries.daggerSupport + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation 'androidx.appcompat:appcompat:1.0.2' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' kapt libraries.daggerProcessor kapt libraries.daggerAndroidApt diff --git a/app/src/main/java/chat/rocket/android/main/presentation/MainNavigator.kt b/app/src/main/java/chat/rocket/android/main/presentation/MainNavigator.kt index 917f7922ba..d5993d7485 100644 --- a/app/src/main/java/chat/rocket/android/main/presentation/MainNavigator.kt +++ b/app/src/main/java/chat/rocket/android/main/presentation/MainNavigator.kt @@ -11,11 +11,14 @@ import chat.rocket.android.main.ui.MainActivity import chat.rocket.android.profile.ui.TAG_PROFILE_FRAGMENT import chat.rocket.android.server.ui.changeServerIntent import chat.rocket.android.settings.ui.TAG_SETTINGS_FRAGMENT +import chat.rocket.android.thememanager.ui.TAG_THEME_FRAGMENT +import chat.rocket.android.thememanager.ui.newInstance import chat.rocket.android.util.extensions.addFragment import chat.rocket.android.util.extensions.addFragmentBackStack import chat.rocket.android.webview.adminpanel.ui.TAG_ADMIN_PANEL_WEB_VIEW_FRAGMENT import chat.rocket.android.webview.ui.webViewIntent + class MainNavigator(internal val activity: MainActivity) { fun toChatList(chatRoomId: String? = null) { @@ -47,6 +50,13 @@ class MainNavigator(internal val activity: MainActivity) { chat.rocket.android.profile.ui.newInstance() } } + //---------------------------------------------------------------------------------- + fun toChangeTheme() { + activity.addFragmentBackStack(TAG_THEME_FRAGMENT, R.id.fragment_container) { + newInstance() + } + } + //--------------------------------------------------------------------------------- fun toAdminPanel(webPageUrl: String, userToken: String) { activity.addFragmentBackStack(TAG_ADMIN_PANEL_WEB_VIEW_FRAGMENT, R.id.fragment_container) { diff --git a/app/src/main/java/chat/rocket/android/settings/presentation/SettingsPresenter.kt b/app/src/main/java/chat/rocket/android/settings/presentation/SettingsPresenter.kt index 6a53e265bf..964f925bfe 100644 --- a/app/src/main/java/chat/rocket/android/settings/presentation/SettingsPresenter.kt +++ b/app/src/main/java/chat/rocket/android/settings/presentation/SettingsPresenter.kt @@ -142,6 +142,8 @@ class SettingsPresenter @Inject constructor( fun toProfile() = navigator.toProfile() + fun toChangeTheme() = navigator.toChangeTheme() + fun toAdmin() = tokenRepository.get(currentServer)?.let { navigator.toAdminPanel(currentServer.adminPanelUrl(), it.authToken) } diff --git a/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt b/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt index e8da11c562..017ac96de5 100644 --- a/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt +++ b/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt @@ -93,6 +93,8 @@ class SettingsFragment : Fragment(), SettingsView, AppLanguageView { profile_container.setOnClickListener { presenter.toProfile() } + text_change_theme.setOnClickListener { presenter.toChangeTheme() } + text_contact_us.setOnClickListener { contactSupport() } text_language.setOnClickListener { changeLanguage() } diff --git a/app/src/main/java/chat/rocket/android/thememanager/InjectorUtils.kt b/app/src/main/java/chat/rocket/android/thememanager/InjectorUtils.kt new file mode 100644 index 0000000000..31da563ce0 --- /dev/null +++ b/app/src/main/java/chat/rocket/android/thememanager/InjectorUtils.kt @@ -0,0 +1,13 @@ +package chat.rocket.android.thememanager + +import chat.rocket.android.thememanager.model.ThemesRepository +import chat.rocket.android.thememanager.viewmodel.ThemesViewModelFactory + +object InjectorUtils { + + fun provideThemesViewModelFactory(): ThemesViewModelFactory { + // The whole dependency tree is constructed right here, in one place + val themeRepository = ThemesRepository() + return ThemesViewModelFactory(themeRepository) + } +} \ No newline at end of file diff --git a/app/src/main/java/chat/rocket/android/thememanager/adapter/ThemesAdapter.kt b/app/src/main/java/chat/rocket/android/thememanager/adapter/ThemesAdapter.kt new file mode 100644 index 0000000000..8d93724a5b --- /dev/null +++ b/app/src/main/java/chat/rocket/android/thememanager/adapter/ThemesAdapter.kt @@ -0,0 +1,5 @@ +package chat.rocket.android.thememanager.adapter + +class ThemesAdapter { + //For Theme Recycler View +} \ No newline at end of file diff --git a/app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentModule.kt b/app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentModule.kt new file mode 100644 index 0000000000..0ab169cc18 --- /dev/null +++ b/app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentModule.kt @@ -0,0 +1,25 @@ +package chat.rocket.android.thememanager.di + +import androidx.lifecycle.LifecycleOwner +import chat.rocket.android.dagger.scope.PerFragment +import chat.rocket.android.server.infrastructure.ConnectionManager +import chat.rocket.android.server.infrastructure.ConnectionManagerFactory +import chat.rocket.android.thememanager.model.ThemesRepository +import chat.rocket.android.thememanager.ui.ThemesFragment +import chat.rocket.android.thememanager.viewmodel.ThemesViewModelFactory +import dagger.Module +import dagger.Provides +import javax.inject.Named + +@Module +class ThemesFragmentModule { + +// @Provides +// @PerFragment +// fun provideThemesViewModelFactory( +// repository: ThemesRepository +// ): ThemesViewModelFactory{ +// return ThemesViewModelFactory(repository) +// } + +} \ No newline at end of file diff --git a/app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentProvider.kt b/app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentProvider.kt new file mode 100644 index 0000000000..ce174fb274 --- /dev/null +++ b/app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentProvider.kt @@ -0,0 +1,15 @@ +package chat.rocket.android.thememanager.di + +import chat.rocket.android.dagger.scope.PerFragment +import chat.rocket.android.thememanager.ui.ThemesFragment +import chat.rocket.android.thememanager.viewmodel.ThemesViewModelFactory +import dagger.Module +import dagger.android.ContributesAndroidInjector + +@Module +abstract class ThemesFragmentProvider { + +// @ContributesAndroidInjector(modules = [ThemesFragmentModule::class]) +// @PerFragment +// abstract fun provideThemesViewModelFactory(): ThemesViewModelFactory +} \ No newline at end of file diff --git a/app/src/main/java/chat/rocket/android/thememanager/model/Theme.kt b/app/src/main/java/chat/rocket/android/thememanager/model/Theme.kt new file mode 100644 index 0000000000..264066bd2b --- /dev/null +++ b/app/src/main/java/chat/rocket/android/thememanager/model/Theme.kt @@ -0,0 +1,8 @@ +package chat.rocket.android.thememanager.model + +data class Theme(val id: Int, val name: String) { + + override fun toString(): String { + return "$id - $name" + } +} \ No newline at end of file diff --git a/app/src/main/java/chat/rocket/android/thememanager/model/ThemesRepository.kt b/app/src/main/java/chat/rocket/android/thememanager/model/ThemesRepository.kt new file mode 100644 index 0000000000..97112f4bea --- /dev/null +++ b/app/src/main/java/chat/rocket/android/thememanager/model/ThemesRepository.kt @@ -0,0 +1,28 @@ +package chat.rocket.android.thememanager.model + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData + +class ThemesRepository{ + + private val themeList = mutableListOf() + private val themes = MutableLiveData>() + + init { + val theme1 = Theme(1,"AppTheme") + val theme2 = Theme(2,"AppDarkTheme") + val theme3 = Theme(3,"LibraryTheme") + themeList.add(theme1) + themeList.add(theme2) + themeList.add(theme3) + themes.value = themeList + } + + //not required for now + fun addTheme(theme: Theme) { + themeList.add(theme) + themes.value = themeList + } + + fun getThemes() = themes as LiveData> +} diff --git a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesFragment.kt b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesFragment.kt new file mode 100644 index 0000000000..a66b9d63b0 --- /dev/null +++ b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesFragment.kt @@ -0,0 +1,156 @@ +package chat.rocket.android.thememanager.ui + +import android.content.SharedPreferences +import android.os.Bundle +import android.preference.PreferenceManager +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.CompoundButton +import android.widget.Toast +import android.widget.ToggleButton +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity +import androidx.fragment.app.FragmentManager +import androidx.fragment.app.FragmentTransaction +import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProviders +import androidx.recyclerview.widget.RecyclerView +import chat.rocket.android.R +import chat.rocket.android.chatrooms.viewmodel.ChatRoomsViewModelFactory +import chat.rocket.android.thememanager.InjectorUtils +import chat.rocket.android.thememanager.model.Theme +import chat.rocket.android.thememanager.viewmodel.ThemesViewModel +import chat.rocket.android.thememanager.viewmodel.ThemesViewModelFactory +import chat.rocket.android.util.extensions.inflate +import chat.rocket.android.util.extensions.ui +import dagger.android.support.AndroidSupportInjection +import kotlinx.android.synthetic.main.fragment_theme.* +import kotlinx.android.synthetic.main.fragment_theme.view.* +import javax.inject.Inject + + + +internal const val TAG_THEME_FRAGMENT = "ThemesFragment" + +fun newInstance() = ThemesFragment() + +class ThemesFragment : Fragment() { +// @Inject lateinit var factory: ThemesViewModelFactory + private lateinit var viewModel: ThemesViewModel + var fragment: Fragment = this + lateinit var sharedPref:SharedPreferences + var currentTheme:String = "AppTheme" + lateinit var factory:ThemesViewModelFactory + var checked:Boolean = false + var checkedLib:Boolean = false + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) +// AndroidSupportInjection.inject(this) + factory = InjectorUtils.provideThemesViewModelFactory() + sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity()?.getApplicationContext()) + currentTheme = sharedPref.getString("current_theme", "AppTheme") + checked = sharedPref.getBoolean("checked", false) + checkedLib = sharedPref.getBoolean("checkedLib", false) + setSavedTheme() + applyTheme(sharedPref,activity) + } + + private fun applyTheme(sharedPref:SharedPreferences,activity: FragmentActivity?){ + if (currentTheme == "AppTheme") + activity?.setTheme(R.style.AppTheme) + else if(currentTheme == "AppDarkTheme") + activity?.setTheme(R.style.AppDarkTheme) + else if(currentTheme == "LibraryTheme") { + activity?.setTheme(R.style.LibraryTheme) + } + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? = container?.inflate(R.layout.fragment_theme) + + override fun onViewCreated(view: View, savedInstanceState: Bundle?){ + super.onViewCreated(view, savedInstanceState) + + viewModel = ViewModelProviders.of(this, factory).get(ThemesViewModel::class.java) + val toggleButton = view.findViewById(R.id.toggleButton) + val toggleButtonLibrary = view.findViewById(R.id.toggleButtonLibrary) + subscribeUi() + setSavedTheme() + setupListeners() + } + + private fun subscribeUi() { + viewModel.getThemes().observe(this, Observer { themes -> + val stringBuilder = StringBuilder() + themes.forEach { theme -> + stringBuilder.append("$theme\n\n") + } + textView_themes.text = stringBuilder.toString() + }) + } + + private fun setSavedTheme() { + if(toggleButton!=null){ + println("Toggle Exists!") + if(checked) + toggleButton.isChecked=true + } + if(toggleButtonLibrary!=null){ + println("Toggle Exists!") + if(checkedLib) + toggleButtonLibrary.isChecked=true + } + } + + private fun setupListeners(){ + toggleButton.setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener { buttonView, isChecked -> + if (isChecked) { + Toast.makeText(activity,"Turned On",Toast.LENGTH_LONG).show() + toggleButtonLibrary.isChecked=false + sharedPref.edit().putString("current_theme","AppDarkTheme").apply() + sharedPref.edit().putBoolean("checked",true).apply() + sharedPref.edit().putBoolean("checkedLib",false).apply() + + } else { + Toast.makeText(activity,"Turned Off", Toast.LENGTH_LONG).show() + sharedPref.edit().putString("current_theme","AppTheme").apply() + sharedPref.edit().putBoolean("checked",false).apply() + } + reloadFragment() + }) + + toggleButtonLibrary.setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener { buttonView, isChecked -> + if (isChecked) { + Toast.makeText(activity,"Turned On",Toast.LENGTH_LONG).show() + toggleButton.isChecked=false + sharedPref.edit().putString("current_theme","LibraryTheme").apply() + sharedPref.edit().putBoolean("checkedLib",true).apply() + sharedPref.edit().putBoolean("checked",false).apply() + } else { + Toast.makeText(activity,"Turned Off", Toast.LENGTH_LONG).show() + sharedPref.edit().putString("current_theme","AppTheme").apply() + sharedPref.edit().putBoolean("checkedLib",false).apply() + } + reloadFragment() + }) + } + + private fun reloadFragment() { + fragmentManager?.beginTransaction()?.detach(this)?.attach(this)?.commit() + } + override fun onResume() { + super.onResume(); + val theme = sharedPref.getString("current_theme", "AppTheme") + checked = sharedPref.getBoolean("checked", false) + checkedLib = sharedPref.getBoolean("checkedLib", false) + if (currentTheme != theme) + currentTheme=theme + applyTheme(sharedPref,activity) + setSavedTheme() + } +} diff --git a/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt b/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt new file mode 100644 index 0000000000..23dc481592 --- /dev/null +++ b/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt @@ -0,0 +1,12 @@ +package chat.rocket.android.thememanager.viewmodel + +import androidx.lifecycle.ViewModel +import chat.rocket.android.thememanager.model.Theme +import chat.rocket.android.thememanager.model.ThemesRepository + +class ThemesViewModel (private val themeRepository: ThemesRepository) + : ViewModel() { + + fun getThemes() = themeRepository.getThemes() + fun addTheme(theme: Theme) = themeRepository.addTheme(theme) +} diff --git a/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModelFactory.kt b/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModelFactory.kt new file mode 100644 index 0000000000..39a190bbd1 --- /dev/null +++ b/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModelFactory.kt @@ -0,0 +1,17 @@ +package chat.rocket.android.thememanager.viewmodel + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import chat.rocket.android.thememanager.model.ThemesRepository +import javax.inject.Inject + + +class ThemesViewModelFactory @Inject constructor( + private val repository: ThemesRepository +) : ViewModelProvider.NewInstanceFactory() { + + @Suppress("UNCHECKED_CAST") + override fun create(modelClass: Class): T { + return ThemesViewModel(repository) as T + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 6572366bf9..f7aefcfa69 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -92,6 +92,26 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/profile_container" /> + //----------------------------------------------------------------- + + //-------------------------------------------------------------- + app:layout_constraintTop_toBottomOf="@+id/text_change_theme" /> + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_theme.xml b/app/src/main/res/layout/item_theme.xml new file mode 100644 index 0000000000..f732dedc1d --- /dev/null +++ b/app/src/main/res/layout/item_theme.xml @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 37f2ee000f..1ca8e3f3e1 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -62,6 +62,7 @@ اتصل بنا + Change Theme تغيير اللغة قيم هذا التطبيق شارك هذا التطبيق diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 7537ca4503..7d79a9e2d3 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -62,6 +62,9 @@ Kontaktiere uns + //-------------------------------------------------------------------------------------------- + Change Theme + //-------------------------------------------------------------------------------------------- Sprache Bewerte diese App Teile diese App diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index c37d26129c..d0a9dac3f5 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -62,6 +62,9 @@ Contact us + //-------------------------------------------------------------------------------------------- + Change Theme + //-------------------------------------------------------------------------------------------- Language Review this app Share this app diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 64890f4844..0172bf5f2f 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -62,6 +62,9 @@ Contact us + //-------------------------------------------------------------------------------------------- + Change Theme + //-------------------------------------------------------------------------------------------- Language Review this app Share this app diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index c8fd8bfec5..9543b9f904 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -62,6 +62,7 @@ Nous contacter + Change Theme Langue Notez cette application Partagez cette application diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 7238c689f6..cbad68fe2d 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -62,6 +62,9 @@ Contact us + //-------------------------------------------------------------------------------------------- + Change Theme + //-------------------------------------------------------------------------------------------- Language Review this app Share this app diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index cdf6833595..68e9500289 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -62,6 +62,9 @@ Contact us + //-------------------------------------------------------------------------------------------- + Change Theme + //-------------------------------------------------------------------------------------------- Language Review this app Share this app diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 4cfebbe82d..bc47668d22 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -62,6 +62,9 @@ Contact us + //-------------------------------------------------------------------------------------------- + Change Theme + //-------------------------------------------------------------------------------------------- Language Review this app Share this app diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 99149bf599..344e8c9b28 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -62,6 +62,9 @@ Contact us + //-------------------------------------------------------------------------------------------- + Change Theme + //-------------------------------------------------------------------------------------------- Language Review this app Share this app diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 9ff0bea9be..129751f77b 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -62,6 +62,9 @@ Contact us + //-------------------------------------------------------------------------------------------- + Change Theme + //-------------------------------------------------------------------------------------------- Language Review this app Share this app diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 9f53bec231..342c7ac442 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -62,6 +62,9 @@ Связаться с нами + //-------------------------------------------------------------------------------------------- + Change Theme + //-------------------------------------------------------------------------------------------- Изменить язык Оставить отзыв Поделиться приложением diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 081e4c4e0e..3b91d91d7f 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -62,6 +62,9 @@ Contact us + //-------------------------------------------------------------------------------------------- + Change Theme + //-------------------------------------------------------------------------------------------- Language Review this app Share this app diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 56dcda881c..962d1bb505 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -62,6 +62,9 @@ Contact us + //-------------------------------------------------------------------------------------------- + Change Theme + //-------------------------------------------------------------------------------------------- Language Review this app Share this app diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 28b57edb7e..1d8cfd5675 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -62,6 +62,9 @@ Contact us + //-------------------------------------------------------------------------------------------- + Change Theme + //-------------------------------------------------------------------------------------------- Language Review this app Share this app diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index e7ad15bbe3..f2c8566a1e 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -62,6 +62,9 @@ Contact us + //-------------------------------------------------------------------------------------------- + Change Theme + //-------------------------------------------------------------------------------------------- Language Review this app Share this app diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml new file mode 100644 index 0000000000..557ccf177b --- /dev/null +++ b/app/src/main/res/values/attrs.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index cf64225425..8e7452909a 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -6,6 +6,9 @@ #FF2F343D #FF1D74F5 + #F33E5B + #CD1DF5 + #DE000000 #FF787878 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5d4ae3300e..6707f33c5e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -74,6 +74,9 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin Contact us + //------------------------------------------------- + Change Theme + //------------------------------------------------ Language Review this app Share this app @@ -386,4 +389,7 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin Submit *required Your report has been sent! + + + Hello blank fragment \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 22e9fd87ef..422eff4651 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -11,7 +11,22 @@ @color/colorPrimary @color/colorPrimary locale + @color/color_white + + + + @@ -280,5 +295,10 @@ @drawable/ic_close_white_24dp @drawable/ic_close_white_24dp + + + + + diff --git a/build.gradle b/build.gradle index 35157f4407..9a4493f99d 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,7 @@ buildscript { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}" classpath "org.jetbrains.dokka:dokka-gradle-plugin:${versions.dokka}" classpath 'com.google.gms:google-services:4.2.0' - classpath 'io.fabric.tools:gradle:1.26.1' + classpath 'io.fabric.tools:gradle:1.28.0' classpath "com.github.ben-manes:gradle-versions-plugin:0.20.0" } } diff --git a/settings.gradle b/settings.gradle index fd0c37ffa6..7bf10dfe9f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -include ':app', ':player', ':emoji', ':draw', ':util', ':core', ':suggestions' \ No newline at end of file +include ':app', ':player', ':emoji', ':draw', ':util', ':core', ':suggestions', ':themelibrary' \ No newline at end of file diff --git a/themelibrary/.gitignore b/themelibrary/.gitignore new file mode 100644 index 0000000000..796b96d1c4 --- /dev/null +++ b/themelibrary/.gitignore @@ -0,0 +1 @@ +/build diff --git a/themelibrary/build.gradle b/themelibrary/build.gradle new file mode 100644 index 0000000000..e4a7fba9e9 --- /dev/null +++ b/themelibrary/build.gradle @@ -0,0 +1,36 @@ +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' + +android { + compileSdkVersion 28 + + + defaultConfig { + minSdkVersion 15 + targetSdkVersion 28 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + + implementation 'androidx.appcompat:appcompat:1.0.2' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'androidx.test:runner:1.2.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.21" +} diff --git a/themelibrary/proguard-rules.pro b/themelibrary/proguard-rules.pro new file mode 100644 index 0000000000..f1b424510d --- /dev/null +++ b/themelibrary/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/themelibrary/src/androidTest/java/com/example/nbamir/themelibrary/ExampleInstrumentedTest.java b/themelibrary/src/androidTest/java/com/example/nbamir/themelibrary/ExampleInstrumentedTest.java new file mode 100644 index 0000000000..5521a14b6d --- /dev/null +++ b/themelibrary/src/androidTest/java/com/example/nbamir/themelibrary/ExampleInstrumentedTest.java @@ -0,0 +1,27 @@ +package com.example.nbamir.themelibrary; + +import android.content.Context; + +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("com.example.nbamir.themelibrary.test", appContext.getPackageName()); + } +} diff --git a/themelibrary/src/main/AndroidManifest.xml b/themelibrary/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..1444cb9d17 --- /dev/null +++ b/themelibrary/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + diff --git a/themelibrary/src/main/res/values/attrs.xml b/themelibrary/src/main/res/values/attrs.xml new file mode 100644 index 0000000000..608d409886 --- /dev/null +++ b/themelibrary/src/main/res/values/attrs.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/colors.xml b/themelibrary/src/main/res/values/colors.xml new file mode 100644 index 0000000000..abbfcbfcbe --- /dev/null +++ b/themelibrary/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + + #224717 + #00BFA5 + #F51D36 + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/strings.xml b/themelibrary/src/main/res/values/strings.xml new file mode 100644 index 0000000000..645a4b91ba --- /dev/null +++ b/themelibrary/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + ThemeLibrary + diff --git a/themelibrary/src/main/res/values/styles.xml b/themelibrary/src/main/res/values/styles.xml new file mode 100644 index 0000000000..41f1ce0298 --- /dev/null +++ b/themelibrary/src/main/res/values/styles.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/themelibrary/src/test/java/com/example/nbamir/themelibrary/ExampleUnitTest.java b/themelibrary/src/test/java/com/example/nbamir/themelibrary/ExampleUnitTest.java new file mode 100644 index 0000000000..0dd540c195 --- /dev/null +++ b/themelibrary/src/test/java/com/example/nbamir/themelibrary/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package com.example.nbamir.themelibrary; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file From dfbbf29f9a7317e53cc16d0e8f5f204ea41e146c Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sat, 22 Jun 2019 00:58:44 +0500 Subject: [PATCH 03/89] Updated themelibrary and styles. --- app/src/main/res/layout/fragment_theme.xml | 1 - app/src/main/res/layout/message_composer.xml | 1 - app/src/main/res/values-de/strings.xml | 38 ++--- app/src/main/res/values/attrs.xml | 24 +++- app/src/main/res/values/colors.xml | 65 +++++---- app/src/main/res/values/styles.xml | 143 +++++++++++-------- app/src/main/res/values/themes.xml | 45 ++++++ themelibrary/build.gradle | 2 +- themelibrary/src/main/res/values/attrs.xml | 24 +++- themelibrary/src/main/res/values/colors.xml | 95 +++++++++++- themelibrary/src/main/res/values/styles.xml | 26 ++-- themelibrary/src/main/res/values/themes.xml | 74 ++++++++++ 12 files changed, 406 insertions(+), 132 deletions(-) create mode 100644 app/src/main/res/values/themes.xml create mode 100644 themelibrary/src/main/res/values/themes.xml diff --git a/app/src/main/res/layout/fragment_theme.xml b/app/src/main/res/layout/fragment_theme.xml index 2108fffa72..2af429ee3d 100644 --- a/app/src/main/res/layout/fragment_theme.xml +++ b/app/src/main/res/layout/fragment_theme.xml @@ -60,7 +60,6 @@ android:id="@+id/floatingActionButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:tint="?attr/themeIconColor" android:clickable="true" android:src="@drawable/ic_action_message_copy_24dp" app:layout_constraintBottom_toBottomOf="parent" diff --git a/app/src/main/res/layout/message_composer.xml b/app/src/main/res/layout/message_composer.xml index 6975c4ea2f..76c56f2c84 100644 --- a/app/src/main/res/layout/message_composer.xml +++ b/app/src/main/res/layout/message_composer.xml @@ -3,7 +3,6 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/default_background" android:orientation="vertical"> Erstelle Abmelden Eine Datei anhängen - Bestätige Passwort-Änderung + Bestätige Passwort Änderung Trete Chat bei Online Abwesend @@ -72,7 +72,7 @@ Lizenz Version: %1$s (%2$d) Serverversion: %1$s - Analysedaten senden + Analysesaten senden Anonyme Statistiken senden um diese App weiter zu verbessern KEINE anonymen Statistiken senden um diese App weiter zu verbessern Nicht anwendbar, da es sich um eine FOSS version handelt @@ -104,20 +104,20 @@ Keine Anzeigedaten vorhanden Schau dir das an Teilen Sie mit - Profil-Update erfolgreich + Profil update erfolgreich Benutzername Benutzername oder E-Mail Passwort Name - E-Mail + EMail Avatar URL Oder weiter mit einem Social Account Neuer Benutzer? %1$s Passwort vergessen? Zurücksetzen - E-Mail gesendet! Prüfe deinen E-Mail Posteingang, um dein Passwort zurückzusetzen. + E-Mail gesendet! Prüfe dein E-Mail Posteingang um dein Passwort zurückzusetzen. Bitte eine korrekte E-Mail Adresse eingeben - Beim Weitergehen akzeptieren Sie unsere\n%1$s und %2$s + Beim weitergehen akzeptieren Sie usere\n%1$s und %2$s Gestern Heute Nachricht @@ -126,7 +126,7 @@ Dieser Raum ist Read-Only Falscher 2FA Code Falsche Datei - Falsche Server-URL + Falsche Server URL Login mit Facebook Login mit GitHub Login mit Google @@ -137,10 +137,10 @@ Login mit WordPress Sende Nachricht Zeige mehr Login-Optionen - Zeige Anhang-Optionen + Zeige Anhang Optionen Du Unbekannt - E-Mail Addresse + E-Mail Address UTC Offset Neues Passwort eingeben Bestätige neues Passwort @@ -153,13 +153,13 @@ Datei Noch keine Nachrichten Build %1$d - %2$s - %3$s - Server-Version veraltet. Bitte kontaktieren Sie ihren Server-Administrator. - Die Server-Version scheint älter als die empfolene Version %1$s zu sein.\nSie können sich trotzdem einloggen, aber es kann zu einem unerwartetem Verhalten kommen. - Die Server-Version scheint älter als die minimale Version %1$s zu sein.\nBitte updaten Sie Ihren Server, um sich einloggen zu können! - Keine Chat-Nachrichten - Starte die Konversation, um Ihre \nNachrichten hier zu sehen. - Bei HTTP verbinden Sie sich unsicher zu einem Server. Wir empfehlen, HTTPS zu benutzen. - Ein Fehler ist aufgetreten beim Prüfen der Server-Version, bitte versuchen Sie es noch einmal + Server Version veraltet. Bitte kontaktieren Sie ihren Server Administrator. + Die Server Version scheint älter als die empfolene Version %1$s zu sein.\nSie können sich trotzdem einloggen, aber es kann zu einem unerwartetem Verhalten kommen. + Die Server Version scheint älter als die minimale Version %1$s zu sein.\nBitte updaten Sie Ihren Server um sich einloggen zu können! + Keine Chat Nachrichten + Starte die Konversation um Ihre \nNachrichten hier zu sehen. + Bei HTTP verbinden Sie sich usicher zu einem Server. Wir empfehlen HTTPS zu benutzen. + Ein Fehler ist aufgetreten beim prüfen der Server Version, bitte versuchen Sie es noch einmal Das ausgewählte Protokoll wird vom Server nicht akzeptiert, versuchen Sie HTTPS Bild wurde in der Galerie gespeichert Bild speichern fehlgeschlagen @@ -171,7 +171,7 @@ Kein Ergebnis gefunden Ausloggen… Lade Datei hoch - Datei-Beschreibung + Datei Beschreibung Sende Sende Anhang @@ -226,7 +226,7 @@ Android App-Unterstützung - Raum-Namen geändert zu: %1$s von %2$s + Raum Namen geändert zu: %1$s von %2$s Benutzer %1$s hinzugefügt von %2$s Benutzer %1$s entfernt von %2$s Hat den Raum verlassen. @@ -330,7 +330,7 @@ Keine letzten Emojis - Standard-Hautton + Standard Hautton Sortiert nach %1$s diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 557ccf177b..8ec54bf930 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -1,4 +1,26 @@ - + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 8e7452909a..5039eae4ed 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -6,8 +6,19 @@ #FF2F343D #FF1D74F5 - #F33E5B - #CD1DF5 + + #1F000000 + @color/colorPrimary + #FF9EA2A8 + #f3f4f5 + #54585e + + #FF727272 + @color/colorWhite + #9FA2A8 + #FBFBFB + #99000000 + #A0A0A0 #DE000000 @@ -15,9 +26,13 @@ #FFC1C1C1 #FF9DA2A9 #FF5699FF - #99000000 #FF0C0D0F + #FF0C0D0F #8B000000 + #54585e + #868585 + #FFCBCED1 + #FF9EA2A8 #2FE1A8 @@ -29,46 +44,30 @@ #FFFFFFFF #FF000000 #FFFF0000 + #FFa0a0a0 + #FFf1f1f1 + #F4F5F7 #FFE1E5E8 #FFE1E5E8 #FFCBCED1 #FF9EA2A8 - - #FFa0a0a0 - #FF727272 - #FFf1f1f1 - - @color/colorWhite - - #9FA2A8 - - #D8D8D8 - - #FBFBFB - - #99000000 - - #4D000000 - - #70F1F1F1 - - #FF767676 - - #A0A0A0 - - #1F000000 - - #F4F5F7 + #FF9CA2A8 + #FF9CA2A8 + #FFCBCED1 @color/colorWhite - #AFADAF - #FAFAFA - - #868585 + @color/colorWhite + #f1f2f4 + #ffffff + #e1e5e8 + #261d74f5 + #4c1d74f5 + + #0a4469 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 422eff4651..24b737e9ca 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,33 +1,4 @@ - - - - - - - - @@ -44,15 +15,16 @@ wrap_content 16sp sans-serif - #FF54585E + ?colorDescriptiveText normal + @@ -65,7 +37,7 @@ 15sp sans-serif normal - @color/colorAuthenticationSecondaryText + ?colorDescriptiveText 1 end @@ -74,7 +46,7 @@ 17sp sans-serif normal - @color/colorAuthenticationSecondaryText + ?colorDescriptiveText @@ -97,16 +68,17 @@ 18sp sans-serif-medium normal - @color/colorWhite + ?android:colorBackground false @drawable/rounded_color_accent + ?colorButtonDisabled @@ -126,7 +98,7 @@ 16sp sans-serif-medium normal - @color/colorPrimary + ?colorPrimaryText end 1 @@ -134,26 +106,28 @@ @@ -189,44 +163,46 @@ 18sp sans-serif bold - @color/colorUserDetailsNameText + ?titleTextColor + + // REMARK: To be removed. @@ -287,7 +266,7 @@ normal 24dp start - @color/colorPrimary + ?colorPrimaryText 1 @@ -295,10 +274,50 @@ @drawable/ic_close_white_24dp @drawable/ic_close_white_24dp - - - - - + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 0000000000..2b9d087e5b --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,45 @@ + + + + \ No newline at end of file diff --git a/themelibrary/build.gradle b/themelibrary/build.gradle index e4a7fba9e9..f770da66f8 100644 --- a/themelibrary/build.gradle +++ b/themelibrary/build.gradle @@ -7,7 +7,7 @@ android { defaultConfig { - minSdkVersion 15 + minSdkVersion 21 targetSdkVersion 28 versionCode 1 versionName "1.0" diff --git a/themelibrary/src/main/res/values/attrs.xml b/themelibrary/src/main/res/values/attrs.xml index 608d409886..42ce61598b 100644 --- a/themelibrary/src/main/res/values/attrs.xml +++ b/themelibrary/src/main/res/values/attrs.xml @@ -1,4 +1,26 @@ - + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/colors.xml b/themelibrary/src/main/res/values/colors.xml index abbfcbfcbe..02a2c2b134 100644 --- a/themelibrary/src/main/res/values/colors.xml +++ b/themelibrary/src/main/res/values/colors.xml @@ -1,6 +1,95 @@ - #224717 - #00BFA5 - #F51D36 + + #FFe8ebed + + #0b182c + #0b182c + #0b182c + #0b182c + #0b182c + + #9297a3 + #FF9297a3 + #FF9297a3 + #FF9297a3 + #FF9297a3 + + #2b2b2d + #2b2b2d + #0b182c + #2b2b2d + #2b2b2d + + #ffffff + #ffffff + #ffffff + #ffffff + + #FFb2b8c6 + + #1a2232 + #1a2232 + + #0e1f38 + #0e1f38 + + #261d74f5 + + #4c1d74f5 + + #1d74f5 + #030c1b + #99ffffff + #dadee6 + + #07101e + #cdcdcd + + + #FFe8ebed + + + #FF0e0d0d + #FF0e0d0d + #FF0e0d0d + #FF0e0d0d + #FF0e0d0d + + #9297a3 + #FF9297a3 + #FF9297a3 + #FF9297a3 + #FF9297a3 + + #FF2b2b29 + #FF2b2b29 + #FF2b2b29 + #FF2b2b29 + #FF2b2b29 + + #FFFAFAFA + #FFFAFAFA + #FFFAFAFA + #FFFAFAFA + + #9297a3 + + #17181a + #17181a + + #1f2329 + #1f2329 + + #261d74f5 + + #4c1d74f5 + + #1d74f5 + #000000 + #99ffffff + #dadee6 + + #090909 + #cdcdcd \ No newline at end of file diff --git a/themelibrary/src/main/res/values/styles.xml b/themelibrary/src/main/res/values/styles.xml index 41f1ce0298..46e8278a36 100644 --- a/themelibrary/src/main/res/values/styles.xml +++ b/themelibrary/src/main/res/values/styles.xml @@ -1,14 +1,20 @@ - - + + + + + + + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml new file mode 100644 index 0000000000..32f6cdcee4 --- /dev/null +++ b/themelibrary/src/main/res/values/themes.xml @@ -0,0 +1,74 @@ + + + + + + \ No newline at end of file From c4285fc1f83686cc0b91c1743b52d0dbcfe7f6ee Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sat, 22 Jun 2019 01:14:08 +0500 Subject: [PATCH 04/89] Updated ThemeManager and added BaseActivity. --- .../ui/AuthenticationActivity.kt | 3 +- .../chatinformation/ui/MessageInfoActivity.kt | 3 +- .../chatroom/adapter/MessageViewHolder.kt | 5 +- .../android/chatroom/ui/ChatRoomActivity.kt | 3 +- .../android/dagger/module/ActivityBuilder.kt | 2 + .../rocket/android/main/ui/MainActivity.kt | 3 +- .../android/server/ui/ChangeServerActivity.kt | 3 +- .../settings/password/ui/PasswordActivity.kt | 3 +- .../android/settings/ui/SettingsFragment.kt | 2 + .../android/thememanager/BaseActivity.kt | 50 +++++++ .../android/thememanager/InjectorUtils.kt | 13 -- .../thememanager/di/ThemesFragmentModule.kt | 25 ---- .../thememanager/di/ThemesFragmentProvider.kt | 7 +- .../infrastructure/ThemesRepository.kt | 67 +++++++++ .../thememanager/model/ThemesRepository.kt | 28 ---- .../android/thememanager/ui/ThemesFragment.kt | 133 +++++++----------- .../thememanager/viewmodel/ThemesViewModel.kt | 14 +- .../viewmodel/ThemesViewModelFactory.kt | 3 +- .../chat/rocket/android/util/extensions/Ui.kt | 2 +- .../ui/VideoConferenceActivity.kt | 1 + .../webview/oauth/ui/OauthWebViewActivity.kt | 3 +- .../webview/sso/ui/SsoWebViewActivity.kt | 3 +- .../android/webview/ui/WebViewActivity.kt | 3 +- 23 files changed, 212 insertions(+), 167 deletions(-) create mode 100644 app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt delete mode 100644 app/src/main/java/chat/rocket/android/thememanager/InjectorUtils.kt delete mode 100644 app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentModule.kt create mode 100644 app/src/main/java/chat/rocket/android/thememanager/infrastructure/ThemesRepository.kt delete mode 100644 app/src/main/java/chat/rocket/android/thememanager/model/ThemesRepository.kt diff --git a/app/src/main/java/chat/rocket/android/authentication/ui/AuthenticationActivity.kt b/app/src/main/java/chat/rocket/android/authentication/ui/AuthenticationActivity.kt index 7500d442f1..85150a198c 100644 --- a/app/src/main/java/chat/rocket/android/authentication/ui/AuthenticationActivity.kt +++ b/app/src/main/java/chat/rocket/android/authentication/ui/AuthenticationActivity.kt @@ -12,6 +12,7 @@ import chat.rocket.android.analytics.event.ScreenViewEvent import chat.rocket.android.authentication.domain.model.LoginDeepLinkInfo import chat.rocket.android.authentication.domain.model.getLoginDeepLinkInfo import chat.rocket.android.authentication.presentation.AuthenticationPresenter +import chat.rocket.android.thememanager.BaseActivity import chat.rocket.android.util.extensions.addFragment import chat.rocket.common.util.ifNull import dagger.android.AndroidInjection @@ -21,7 +22,7 @@ import dagger.android.support.HasSupportFragmentInjector import kotlinx.android.synthetic.main.app_bar.* import javax.inject.Inject -class AuthenticationActivity : AppCompatActivity(), HasSupportFragmentInjector { +class AuthenticationActivity : BaseActivity(), HasSupportFragmentInjector { @Inject lateinit var fragmentDispatchingAndroidInjector: DispatchingAndroidInjector @Inject diff --git a/app/src/main/java/chat/rocket/android/chatinformation/ui/MessageInfoActivity.kt b/app/src/main/java/chat/rocket/android/chatinformation/ui/MessageInfoActivity.kt index 92fd1e9b09..e4da029993 100644 --- a/app/src/main/java/chat/rocket/android/chatinformation/ui/MessageInfoActivity.kt +++ b/app/src/main/java/chat/rocket/android/chatinformation/ui/MessageInfoActivity.kt @@ -6,6 +6,7 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import chat.rocket.android.R +import chat.rocket.android.thememanager.BaseActivity import chat.rocket.android.util.extensions.addFragment import chat.rocket.android.util.extensions.textContent import dagger.android.AndroidInjection @@ -23,7 +24,7 @@ fun Context.messageInformationIntent(messageId: String): Intent { private const val INTENT_MESSAGE_ID = "message_id" -class MessageInfoActivity : AppCompatActivity(), HasSupportFragmentInjector { +class MessageInfoActivity : BaseActivity(), HasSupportFragmentInjector { @Inject lateinit var fragmentDispatchingAndroidInjector: DispatchingAndroidInjector diff --git a/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt b/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt index 7773d483d3..2b4d8675cc 100644 --- a/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt +++ b/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt @@ -57,7 +57,10 @@ class MessageViewHolder( button_join_video_call.setOnClickListener { joinVideoCallListener(it) } image_avatar.setImageURI(data.avatar) - text_content.setTextColor(if (data.isTemporary) Color.GRAY else Color.BLACK) + if (data.isTemporary){ + text_content.setTextColor(Color.GRAY) + } +// text_content.setTextColor(if (data.isTemporary) Color.GRAY else Color.BLACK) data.message.let { text_edit_indicator.isVisible = !it.isSystemMessage() && it.editedBy != null diff --git a/app/src/main/java/chat/rocket/android/chatroom/ui/ChatRoomActivity.kt b/app/src/main/java/chat/rocket/android/chatroom/ui/ChatRoomActivity.kt index 207a9f8a07..a65d89cffd 100644 --- a/app/src/main/java/chat/rocket/android/chatroom/ui/ChatRoomActivity.kt +++ b/app/src/main/java/chat/rocket/android/chatroom/ui/ChatRoomActivity.kt @@ -11,6 +11,7 @@ import chat.rocket.android.R import chat.rocket.android.chatroom.presentation.ChatRoomNavigator import chat.rocket.android.server.domain.GetCurrentServerInteractor import chat.rocket.android.server.infrastructure.ConnectionManagerFactory +import chat.rocket.android.thememanager.BaseActivity import chat.rocket.android.util.extensions.addFragment import chat.rocket.android.util.extensions.textContent import dagger.android.AndroidInjection @@ -52,7 +53,7 @@ private const val INTENT_CHAT_ROOM_LAST_SEEN = "chat_room_last_seen" private const val INTENT_CHAT_IS_SUBSCRIBED = "is_chat_room_subscribed" private const val INTENT_CHAT_ROOM_MESSAGE = "chat_room_message" -class ChatRoomActivity : AppCompatActivity(), HasSupportFragmentInjector { +class ChatRoomActivity : BaseActivity(), HasSupportFragmentInjector { @Inject lateinit var fragmentDispatchingAndroidInjector: DispatchingAndroidInjector // TODO - workaround for now... We will move to a single activity diff --git a/app/src/main/java/chat/rocket/android/dagger/module/ActivityBuilder.kt b/app/src/main/java/chat/rocket/android/dagger/module/ActivityBuilder.kt index 2893e634dd..bdb4ec6bc9 100644 --- a/app/src/main/java/chat/rocket/android/dagger/module/ActivityBuilder.kt +++ b/app/src/main/java/chat/rocket/android/dagger/module/ActivityBuilder.kt @@ -37,6 +37,7 @@ import chat.rocket.android.settings.di.SettingsFragmentProvider import chat.rocket.android.settings.password.di.PasswordFragmentProvider import chat.rocket.android.settings.password.ui.PasswordActivity import chat.rocket.android.sortingandgrouping.di.SortingAndGroupingBottomSheetFragmentProvider +import chat.rocket.android.thememanager.di.ThemesFragmentProvider import chat.rocket.android.userdetails.di.UserDetailsFragmentProvider import chat.rocket.android.videoconference.di.VideoConferenceModule import chat.rocket.android.videoconference.ui.VideoConferenceActivity @@ -65,6 +66,7 @@ abstract class ActivityBuilder { @PerActivity @ContributesAndroidInjector( modules = [MainModule::class, + ThemesFragmentProvider::class, ChatRoomsFragmentProvider::class, ServersBottomSheetFragmentProvider::class, SortingAndGroupingBottomSheetFragmentProvider::class, diff --git a/app/src/main/java/chat/rocket/android/main/ui/MainActivity.kt b/app/src/main/java/chat/rocket/android/main/ui/MainActivity.kt index 1dde86a3e4..b7bea64697 100644 --- a/app/src/main/java/chat/rocket/android/main/ui/MainActivity.kt +++ b/app/src/main/java/chat/rocket/android/main/ui/MainActivity.kt @@ -14,6 +14,7 @@ import chat.rocket.android.core.behaviours.AppLanguageView import chat.rocket.android.main.presentation.MainPresenter import chat.rocket.android.push.refreshPushToken import chat.rocket.android.server.ui.INTENT_CHAT_ROOM_ID +import chat.rocket.android.thememanager.BaseActivity import dagger.android.AndroidInjection import dagger.android.AndroidInjector import dagger.android.DispatchingAndroidInjector @@ -22,7 +23,7 @@ import dagger.android.support.HasSupportFragmentInjector import java.util.* import javax.inject.Inject -class MainActivity : AppCompatActivity(), HasActivityInjector, +class MainActivity : BaseActivity(), HasActivityInjector, HasSupportFragmentInjector, AppLanguageView { @Inject lateinit var activityDispatchingAndroidInjector: DispatchingAndroidInjector diff --git a/app/src/main/java/chat/rocket/android/server/ui/ChangeServerActivity.kt b/app/src/main/java/chat/rocket/android/server/ui/ChangeServerActivity.kt index df6b72b5fd..eec927f5fc 100644 --- a/app/src/main/java/chat/rocket/android/server/ui/ChangeServerActivity.kt +++ b/app/src/main/java/chat/rocket/android/server/ui/ChangeServerActivity.kt @@ -7,6 +7,7 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import chat.rocket.android.server.presentation.ChangeServerPresenter import chat.rocket.android.server.presentation.ChangeServerView +import chat.rocket.android.thememanager.BaseActivity import chat.rocket.android.util.extensions.showToast import dagger.android.AndroidInjection import javax.inject.Inject @@ -24,7 +25,7 @@ fun Context.changeServerIntent(serverUrl: String? = null, chatRoomId: String? = } } -class ChangeServerActivity : AppCompatActivity(), ChangeServerView { +class ChangeServerActivity : BaseActivity(), ChangeServerView { @Inject lateinit var presenter: ChangeServerPresenter var progress: ProgressDialog? = null diff --git a/app/src/main/java/chat/rocket/android/settings/password/ui/PasswordActivity.kt b/app/src/main/java/chat/rocket/android/settings/password/ui/PasswordActivity.kt index 169eba224a..40f883297c 100644 --- a/app/src/main/java/chat/rocket/android/settings/password/ui/PasswordActivity.kt +++ b/app/src/main/java/chat/rocket/android/settings/password/ui/PasswordActivity.kt @@ -4,6 +4,7 @@ import android.os.Bundle import androidx.fragment.app.Fragment import androidx.appcompat.app.AppCompatActivity import chat.rocket.android.R +import chat.rocket.android.thememanager.BaseActivity import chat.rocket.android.util.extensions.addFragment import chat.rocket.android.util.extensions.textContent import dagger.android.AndroidInjection @@ -13,7 +14,7 @@ import dagger.android.support.HasSupportFragmentInjector import kotlinx.android.synthetic.main.app_bar_password.* import javax.inject.Inject -class PasswordActivity : AppCompatActivity(), HasSupportFragmentInjector { +class PasswordActivity : BaseActivity(), HasSupportFragmentInjector { @Inject lateinit var fragmentDispatchingAndroidInjector: DispatchingAndroidInjector override fun onCreate(savedInstanceState: Bundle?) { diff --git a/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt b/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt index 017ac96de5..7485aebdb3 100644 --- a/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt +++ b/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt @@ -93,7 +93,9 @@ class SettingsFragment : Fragment(), SettingsView, AppLanguageView { profile_container.setOnClickListener { presenter.toProfile() } + //---------------------------------------------------------------- text_change_theme.setOnClickListener { presenter.toChangeTheme() } + //---------------------------------------------------------------- text_contact_us.setOnClickListener { contactSupport() } diff --git a/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt b/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt new file mode 100644 index 0000000000..f337cb15cb --- /dev/null +++ b/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt @@ -0,0 +1,50 @@ +package chat.rocket.android.thememanager + +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import androidx.lifecycle.ViewModelProviders +import chat.rocket.android.R +import chat.rocket.android.thememanager.viewmodel.ThemesViewModel +import chat.rocket.android.thememanager.viewmodel.ThemesViewModelFactory +import javax.inject.Inject + +open class BaseActivity : AppCompatActivity() { + + @Inject + lateinit var factory: ThemesViewModelFactory + private lateinit var viewModel: ThemesViewModel + private var currentTheme:String = "AppTheme" +// private lateinit var TEMP_ARRAY : IntArray + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + viewModel = ViewModelProviders.of(this, factory).get(ThemesViewModel::class.java) + currentTheme=viewModel.getCurrentTheme()!! + applyTheme(currentTheme) + } + + override fun onResume() { + super.onResume() + val selectedTheme = viewModel.getCurrentTheme()!! + if(currentTheme != selectedTheme) + recreate() + } + + private fun applyTheme(currentTheme: String) { + if (currentTheme == "AppTheme"){ + setTheme(R.style.AppTheme) + } + else if(currentTheme == "DarkTheme"){ + setTheme(R.style.DarkTheme) + } + else if(currentTheme == "BlackTheme") { + setTheme(R.style.BlackTheme) + } + } + +// fun getThemeAttributeColor(attr : Int){ +// TEMP_ARRAY[0] = attr +// val color = getThemeAttributeColor(attr) +// return color +// } +} \ No newline at end of file diff --git a/app/src/main/java/chat/rocket/android/thememanager/InjectorUtils.kt b/app/src/main/java/chat/rocket/android/thememanager/InjectorUtils.kt deleted file mode 100644 index 31da563ce0..0000000000 --- a/app/src/main/java/chat/rocket/android/thememanager/InjectorUtils.kt +++ /dev/null @@ -1,13 +0,0 @@ -package chat.rocket.android.thememanager - -import chat.rocket.android.thememanager.model.ThemesRepository -import chat.rocket.android.thememanager.viewmodel.ThemesViewModelFactory - -object InjectorUtils { - - fun provideThemesViewModelFactory(): ThemesViewModelFactory { - // The whole dependency tree is constructed right here, in one place - val themeRepository = ThemesRepository() - return ThemesViewModelFactory(themeRepository) - } -} \ No newline at end of file diff --git a/app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentModule.kt b/app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentModule.kt deleted file mode 100644 index 0ab169cc18..0000000000 --- a/app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentModule.kt +++ /dev/null @@ -1,25 +0,0 @@ -package chat.rocket.android.thememanager.di - -import androidx.lifecycle.LifecycleOwner -import chat.rocket.android.dagger.scope.PerFragment -import chat.rocket.android.server.infrastructure.ConnectionManager -import chat.rocket.android.server.infrastructure.ConnectionManagerFactory -import chat.rocket.android.thememanager.model.ThemesRepository -import chat.rocket.android.thememanager.ui.ThemesFragment -import chat.rocket.android.thememanager.viewmodel.ThemesViewModelFactory -import dagger.Module -import dagger.Provides -import javax.inject.Named - -@Module -class ThemesFragmentModule { - -// @Provides -// @PerFragment -// fun provideThemesViewModelFactory( -// repository: ThemesRepository -// ): ThemesViewModelFactory{ -// return ThemesViewModelFactory(repository) -// } - -} \ No newline at end of file diff --git a/app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentProvider.kt b/app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentProvider.kt index ce174fb274..e65bcabe94 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentProvider.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentProvider.kt @@ -2,14 +2,13 @@ package chat.rocket.android.thememanager.di import chat.rocket.android.dagger.scope.PerFragment import chat.rocket.android.thememanager.ui.ThemesFragment -import chat.rocket.android.thememanager.viewmodel.ThemesViewModelFactory import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class ThemesFragmentProvider { -// @ContributesAndroidInjector(modules = [ThemesFragmentModule::class]) -// @PerFragment -// abstract fun provideThemesViewModelFactory(): ThemesViewModelFactory + @ContributesAndroidInjector + @PerFragment + abstract fun providesThemesFragment(): ThemesFragment } \ No newline at end of file diff --git a/app/src/main/java/chat/rocket/android/thememanager/infrastructure/ThemesRepository.kt b/app/src/main/java/chat/rocket/android/thememanager/infrastructure/ThemesRepository.kt new file mode 100644 index 0000000000..61ee60ef7c --- /dev/null +++ b/app/src/main/java/chat/rocket/android/thememanager/infrastructure/ThemesRepository.kt @@ -0,0 +1,67 @@ +package chat.rocket.android.thememanager.infrastructure + +import android.content.SharedPreferences +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import chat.rocket.android.thememanager.model.Theme +import javax.inject.Inject + +const val SELECTED_THEME = "selected_theme" +const val DARK_THEME= "dark_theme" +const val BLACK_THEME = "black_theme" + +class ThemesRepository @Inject constructor(private val preferences: SharedPreferences){ + + private val themeList = mutableListOf() + private val themes = MutableLiveData>() + + init { + val theme1 = Theme(1, "AppTheme") + val theme2 = Theme(2, "DarkTheme") + val theme3 = Theme(3, "BlackTheme") + themeList.add(theme1) + themeList.add(theme2) + themeList.add(theme3) + themes.value = themeList + } + + //not required for now + fun addTheme(theme : Theme) { + themeList.add(theme) + themes.value = themeList + } + + fun getThemes() = themes as LiveData> + + fun saveTheme(theme : String){ + with(preferences) { + edit().putString(SELECTED_THEME, theme).apply() + if (theme.equals("DarkTheme")){ + edit().putBoolean(DARK_THEME, true).apply() + edit().putBoolean(BLACK_THEME, false).apply() + println("Putting DarkTheme"+theme) + } else if (theme.equals("BlackTheme")){ + edit().putBoolean(DARK_THEME, false).apply() + edit().putBoolean(BLACK_THEME, true).apply() + println("Putting BlackTheme"+theme) + } + else if (theme.equals("AppTheme")){ + edit().putBoolean(DARK_THEME, false).apply() + edit().putBoolean(BLACK_THEME, false).apply() + println("Putting AppTheme"+theme) + } + } + } + + fun getCurrentTheme() : String? { + return preferences.getString(SELECTED_THEME, "AppTheme") + } + + fun getLeftToggle() : Boolean? { + return preferences.getBoolean(DARK_THEME, false) + } + + fun getRightToggle() : Boolean? { + return preferences.getBoolean(BLACK_THEME, false) + } +} diff --git a/app/src/main/java/chat/rocket/android/thememanager/model/ThemesRepository.kt b/app/src/main/java/chat/rocket/android/thememanager/model/ThemesRepository.kt deleted file mode 100644 index 97112f4bea..0000000000 --- a/app/src/main/java/chat/rocket/android/thememanager/model/ThemesRepository.kt +++ /dev/null @@ -1,28 +0,0 @@ -package chat.rocket.android.thememanager.model - -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData - -class ThemesRepository{ - - private val themeList = mutableListOf() - private val themes = MutableLiveData>() - - init { - val theme1 = Theme(1,"AppTheme") - val theme2 = Theme(2,"AppDarkTheme") - val theme3 = Theme(3,"LibraryTheme") - themeList.add(theme1) - themeList.add(theme2) - themeList.add(theme3) - themes.value = themeList - } - - //not required for now - fun addTheme(theme: Theme) { - themeList.add(theme) - themes.value = themeList - } - - fun getThemes() = themes as LiveData> -} diff --git a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesFragment.kt b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesFragment.kt index a66b9d63b0..a3348cdd4a 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesFragment.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesFragment.kt @@ -8,84 +8,55 @@ import android.view.View import android.view.ViewGroup import android.widget.CompoundButton import android.widget.Toast -import android.widget.ToggleButton import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentActivity -import androidx.fragment.app.FragmentManager -import androidx.fragment.app.FragmentTransaction import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders -import androidx.recyclerview.widget.RecyclerView import chat.rocket.android.R -import chat.rocket.android.chatrooms.viewmodel.ChatRoomsViewModelFactory -import chat.rocket.android.thememanager.InjectorUtils -import chat.rocket.android.thememanager.model.Theme import chat.rocket.android.thememanager.viewmodel.ThemesViewModel import chat.rocket.android.thememanager.viewmodel.ThemesViewModelFactory import chat.rocket.android.util.extensions.inflate -import chat.rocket.android.util.extensions.ui import dagger.android.support.AndroidSupportInjection import kotlinx.android.synthetic.main.fragment_theme.* -import kotlinx.android.synthetic.main.fragment_theme.view.* import javax.inject.Inject - internal const val TAG_THEME_FRAGMENT = "ThemesFragment" fun newInstance() = ThemesFragment() class ThemesFragment : Fragment() { -// @Inject lateinit var factory: ThemesViewModelFactory + @Inject + lateinit var factory: ThemesViewModelFactory private lateinit var viewModel: ThemesViewModel - var fragment: Fragment = this - lateinit var sharedPref:SharedPreferences var currentTheme:String = "AppTheme" - lateinit var factory:ThemesViewModelFactory - var checked:Boolean = false - var checkedLib:Boolean = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) -// AndroidSupportInjection.inject(this) - factory = InjectorUtils.provideThemesViewModelFactory() - sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity()?.getApplicationContext()) - currentTheme = sharedPref.getString("current_theme", "AppTheme") - checked = sharedPref.getBoolean("checked", false) - checkedLib = sharedPref.getBoolean("checkedLib", false) - setSavedTheme() - applyTheme(sharedPref,activity) - } + AndroidSupportInjection.inject(this) - private fun applyTheme(sharedPref:SharedPreferences,activity: FragmentActivity?){ - if (currentTheme == "AppTheme") - activity?.setTheme(R.style.AppTheme) - else if(currentTheme == "AppDarkTheme") - activity?.setTheme(R.style.AppDarkTheme) - else if(currentTheme == "LibraryTheme") { - activity?.setTheme(R.style.LibraryTheme) - } } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? = container?.inflate(R.layout.fragment_theme) + ): View? { + viewModel = ViewModelProviders.of(this, factory).get(ThemesViewModel::class.java) + currentTheme=viewModel.getCurrentTheme()!! + applyTheme(activity) + return container?.inflate(R.layout.fragment_theme) + } override fun onViewCreated(view: View, savedInstanceState: Bundle?){ super.onViewCreated(view, savedInstanceState) - - viewModel = ViewModelProviders.of(this, factory).get(ThemesViewModel::class.java) - val toggleButton = view.findViewById(R.id.toggleButton) - val toggleButtonLibrary = view.findViewById(R.id.toggleButtonLibrary) subscribeUi() setSavedTheme() setupListeners() } private fun subscribeUi() { - viewModel.getThemes().observe(this, Observer { themes -> + viewModel.getThemes().observe(this, Observer { themes -> val stringBuilder = StringBuilder() themes.forEach { theme -> stringBuilder.append("$theme\n\n") @@ -94,63 +65,65 @@ class ThemesFragment : Fragment() { }) } + private fun applyTheme(activity: FragmentActivity?){ + println("Applying"+viewModel.getCurrentTheme()!!) + if (currentTheme == "AppTheme"){ + activity?.setTheme(R.style.AppTheme) + } + else if(currentTheme == "DarkTheme"){ + activity?.setTheme(R.style.DarkTheme) + } + else if(currentTheme == "BlackTheme") { + activity?.setTheme(R.style.BlackTheme) + } + } + private fun setSavedTheme() { if(toggleButton!=null){ - println("Toggle Exists!") - if(checked) + if(viewModel.getLeftToggle()!!){ toggleButton.isChecked=true + } } if(toggleButtonLibrary!=null){ - println("Toggle Exists!") - if(checkedLib) + if(viewModel.getRightToggle()!!){ toggleButtonLibrary.isChecked=true + } } } private fun setupListeners(){ - toggleButton.setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener { buttonView, isChecked -> - if (isChecked) { - Toast.makeText(activity,"Turned On",Toast.LENGTH_LONG).show() - toggleButtonLibrary.isChecked=false - sharedPref.edit().putString("current_theme","AppDarkTheme").apply() - sharedPref.edit().putBoolean("checked",true).apply() - sharedPref.edit().putBoolean("checkedLib",false).apply() - - } else { - Toast.makeText(activity,"Turned Off", Toast.LENGTH_LONG).show() - sharedPref.edit().putString("current_theme","AppTheme").apply() - sharedPref.edit().putBoolean("checked",false).apply() + println("SetupListeners!") + toggleButton.setOnCheckedChangeListener { buttonView, isChecked -> + if(buttonView.isPressed){ + if (isChecked) { + println("Left Checked" + toggleButton.isChecked+viewModel.getLeftToggle()+isChecked) + println("Right" + toggleButtonLibrary.isChecked+viewModel.getRightToggle()+isChecked) + toggleButtonLibrary.isChecked=false + viewModel.saveTheme("DarkTheme") + } else { + viewModel.saveTheme("AppTheme") + } + reloadFragment() } - reloadFragment() - }) + } - toggleButtonLibrary.setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener { buttonView, isChecked -> - if (isChecked) { - Toast.makeText(activity,"Turned On",Toast.LENGTH_LONG).show() - toggleButton.isChecked=false - sharedPref.edit().putString("current_theme","LibraryTheme").apply() - sharedPref.edit().putBoolean("checkedLib",true).apply() - sharedPref.edit().putBoolean("checked",false).apply() - } else { - Toast.makeText(activity,"Turned Off", Toast.LENGTH_LONG).show() - sharedPref.edit().putString("current_theme","AppTheme").apply() - sharedPref.edit().putBoolean("checkedLib",false).apply() + toggleButtonLibrary.setOnCheckedChangeListener { buttonView, isChecked -> + if(buttonView.isPressed){ + if (isChecked) { + println("Right Checked" + toggleButtonLibrary.isChecked+viewModel.getRightToggle()+isChecked) + println("Left" + toggleButton.isChecked+viewModel.getLeftToggle()+isChecked) + toggleButton.isChecked=false + viewModel.saveTheme("BlackTheme") + } else { + viewModel.saveTheme("AppTheme") + } + reloadFragment() } - reloadFragment() - }) + } } private fun reloadFragment() { + println("Reload Fragment!") fragmentManager?.beginTransaction()?.detach(this)?.attach(this)?.commit() } - override fun onResume() { - super.onResume(); - val theme = sharedPref.getString("current_theme", "AppTheme") - checked = sharedPref.getBoolean("checked", false) - checkedLib = sharedPref.getBoolean("checkedLib", false) - if (currentTheme != theme) - currentTheme=theme - applyTheme(sharedPref,activity) - setSavedTheme() - } } diff --git a/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt b/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt index 23dc481592..ce2bf2ebd3 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt @@ -2,11 +2,17 @@ package chat.rocket.android.thememanager.viewmodel import androidx.lifecycle.ViewModel import chat.rocket.android.thememanager.model.Theme -import chat.rocket.android.thememanager.model.ThemesRepository +import chat.rocket.android.thememanager.infrastructure.ThemesRepository +import javax.inject.Inject -class ThemesViewModel (private val themeRepository: ThemesRepository) +class ThemesViewModel @Inject constructor(private val themesRepository: ThemesRepository) : ViewModel() { - fun getThemes() = themeRepository.getThemes() - fun addTheme(theme: Theme) = themeRepository.addTheme(theme) + //no data to be retained across configuration changes yet + fun getThemes() = themesRepository.getThemes() + fun addTheme(theme : Theme) = themesRepository.addTheme(theme) + fun saveTheme(theme : String) = themesRepository.saveTheme(theme) + fun getCurrentTheme() = themesRepository.getCurrentTheme() + fun getLeftToggle() = themesRepository.getLeftToggle() + fun getRightToggle() = themesRepository.getRightToggle() } diff --git a/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModelFactory.kt b/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModelFactory.kt index 39a190bbd1..74f89da22e 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModelFactory.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModelFactory.kt @@ -2,10 +2,9 @@ package chat.rocket.android.thememanager.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import chat.rocket.android.thememanager.model.ThemesRepository +import chat.rocket.android.thememanager.infrastructure.ThemesRepository import javax.inject.Inject - class ThemesViewModelFactory @Inject constructor( private val repository: ThemesRepository ) : ViewModelProvider.NewInstanceFactory() { diff --git a/app/src/main/java/chat/rocket/android/util/extensions/Ui.kt b/app/src/main/java/chat/rocket/android/util/extensions/Ui.kt index e93bcafd84..657ed23917 100644 --- a/app/src/main/java/chat/rocket/android/util/extensions/Ui.kt +++ b/app/src/main/java/chat/rocket/android/util/extensions/Ui.kt @@ -38,7 +38,7 @@ fun FragmentActivity.setLightStatusBar(view: View, @ColorInt color: Int = 0) { fun FragmentActivity.clearLightStatusBar() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - window.statusBarColor = ContextCompat.getColor(this, R.color.colorPrimary) +// window.statusBarColor = ContextCompat.getColor(this, R.color.colorPrimary) } } diff --git a/app/src/main/java/chat/rocket/android/videoconference/ui/VideoConferenceActivity.kt b/app/src/main/java/chat/rocket/android/videoconference/ui/VideoConferenceActivity.kt index 94e9a5704b..8bfc4118f1 100644 --- a/app/src/main/java/chat/rocket/android/videoconference/ui/VideoConferenceActivity.kt +++ b/app/src/main/java/chat/rocket/android/videoconference/ui/VideoConferenceActivity.kt @@ -3,6 +3,7 @@ package chat.rocket.android.videoconference.ui import android.content.Context import android.content.Intent import android.os.Bundle +import chat.rocket.android.thememanager.BaseActivity import chat.rocket.android.videoconference.presenter.JitsiVideoConferenceView import chat.rocket.android.videoconference.presenter.VideoConferencePresenter import dagger.android.AndroidInjection diff --git a/app/src/main/java/chat/rocket/android/webview/oauth/ui/OauthWebViewActivity.kt b/app/src/main/java/chat/rocket/android/webview/oauth/ui/OauthWebViewActivity.kt index bcf96ca879..b77eb85be8 100644 --- a/app/src/main/java/chat/rocket/android/webview/oauth/ui/OauthWebViewActivity.kt +++ b/app/src/main/java/chat/rocket/android/webview/oauth/ui/OauthWebViewActivity.kt @@ -11,6 +11,7 @@ import android.webkit.WebView import android.webkit.WebViewClient import androidx.core.net.toUri import chat.rocket.android.R +import chat.rocket.android.thememanager.BaseActivity import chat.rocket.android.util.extensions.decodeUrl import chat.rocket.android.util.extensions.toJsonObject import kotlinx.android.synthetic.main.activity_web_view.* @@ -32,7 +33,7 @@ const val INTENT_OAUTH_CREDENTIAL_TOKEN = "credential_token" const val INTENT_OAUTH_CREDENTIAL_SECRET = "credential_secret" // Shows a WebView to the user authenticate with its OAuth credential. -class OauthWebViewActivity : AppCompatActivity() { +class OauthWebViewActivity : BaseActivity() { private lateinit var webPageUrl: String private lateinit var state: String private var isWebViewSetUp: Boolean = false diff --git a/app/src/main/java/chat/rocket/android/webview/sso/ui/SsoWebViewActivity.kt b/app/src/main/java/chat/rocket/android/webview/sso/ui/SsoWebViewActivity.kt index eb6444c083..a00fd63813 100644 --- a/app/src/main/java/chat/rocket/android/webview/sso/ui/SsoWebViewActivity.kt +++ b/app/src/main/java/chat/rocket/android/webview/sso/ui/SsoWebViewActivity.kt @@ -11,6 +11,7 @@ import android.webkit.CookieManager import android.webkit.WebView import android.webkit.WebViewClient import chat.rocket.android.R +import chat.rocket.android.thememanager.BaseActivity import kotlinx.android.synthetic.main.activity_web_view.* import kotlinx.android.synthetic.main.app_bar.* @@ -27,7 +28,7 @@ const val INTENT_SSO_TOKEN = "cas_token" /** * This class is responsible to handle the authentication thought single sign-on protocol (CAS and SAML). */ -class SsoWebViewActivity : AppCompatActivity() { +class SsoWebViewActivity : BaseActivity() { private lateinit var webPageUrl: String private lateinit var casToken: String private var isWebViewSetUp: Boolean = false diff --git a/app/src/main/java/chat/rocket/android/webview/ui/WebViewActivity.kt b/app/src/main/java/chat/rocket/android/webview/ui/WebViewActivity.kt index f09c5391f4..ab7a2d6b21 100644 --- a/app/src/main/java/chat/rocket/android/webview/ui/WebViewActivity.kt +++ b/app/src/main/java/chat/rocket/android/webview/ui/WebViewActivity.kt @@ -8,6 +8,7 @@ import androidx.appcompat.app.AppCompatActivity import android.webkit.WebView import android.webkit.WebViewClient import chat.rocket.android.R +import chat.rocket.android.thememanager.BaseActivity import kotlinx.android.synthetic.main.activity_web_view.* import kotlinx.android.synthetic.main.app_bar.* @@ -22,7 +23,7 @@ private const val INTENT_WEB_PAGE_URL = "web_page_url" private const val TOOLBAR_TITLE = "toolbar_title" // Simple WebView to load URL. -class WebViewActivity : AppCompatActivity() { +class WebViewActivity : BaseActivity() { private lateinit var webPageUrl: String private var toolbarTitle: String? = "" From 58f6aa6b6a51a6ae76b6f1e92f90cbc23c7174df Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sat, 22 Jun 2019 10:42:40 +0500 Subject: [PATCH 05/89] Updated layout and drawable colors. --- .../bg_border_user_details_avatar.xml | 2 +- .../res/drawable/circle_background_grey.xml | 4 +- .../drawable/ic_action_message_pin_24dp.xml | 2 +- .../drawable/ic_action_message_star_24dp.xml | 3 +- .../main/res/drawable/ic_activity_20dp.xml | 4 +- app/src/main/res/drawable/ic_add_24dp.xml | 2 +- .../res/drawable/ic_add_new_server_48dp.xml | 4 +- app/src/main/res/drawable/ic_add_reaction.xml | 10 ++-- .../main/res/drawable/ic_at_black_20dp.xml | 6 +-- .../main/res/drawable/ic_chat_black_24dp.xml | 2 +- app/src/main/res/drawable/ic_check.xml | 2 +- .../res/drawable/ic_check_unread_24dp.xml | 4 +- .../drawable/ic_chevron_right_black_24dp.xml | 2 +- .../main/res/drawable/ic_email_black_20dp.xml | 4 +- .../main/res/drawable/ic_favorites_20dp.xml | 2 +- app/src/main/res/drawable/ic_files_24dp.xml | 2 +- app/src/main/res/drawable/ic_filter_20dp.xml | 10 ++-- .../res/drawable/ic_group_by_type_20dp.xml | 2 +- app/src/main/res/drawable/ic_hashtag_12dp.xml | 10 ++-- app/src/main/res/drawable/ic_hashtag_16dp.xml | 2 +- .../res/drawable/ic_hashtag_black_12dp.xml | 8 +-- .../main/res/drawable/ic_image_black_24dp.xml | 2 +- .../ic_insert_drive_file_black_24dp.xml | 2 +- .../main/res/drawable/ic_key_black_20dp.xml | 4 +- .../main/res/drawable/ic_lock_black_12_dp.xml | 4 +- app/src/main/res/drawable/ic_message_24dp.xml | 2 +- .../res/drawable/ic_person_black_20dp.xml | 2 +- .../drawable/ic_photo_camera_black_24dp.xml | 4 +- .../main/res/drawable/ic_reaction_24dp.xml | 8 +-- app/src/main/res/drawable/ic_server.xml | 2 +- .../res/drawable/ic_status_invisible_12dp.xml | 2 +- app/src/main/res/drawable/ic_unread_20dp.xml | 6 +-- app/src/main/res/drawable/ic_user_16dp.xml | 2 +- app/src/main/res/drawable/ic_video_24dp.xml | 2 +- .../res/drawable/message_reply_button_bg.xml | 2 +- .../res/drawable/quote_vertical_blue_bar.xml | 2 +- .../res/drawable/quote_vertical_gray_bar.xml | 4 +- app/src/main/res/drawable/round_textview.xml | 2 +- .../main/res/drawable/rounded_background.xml | 5 +- app/src/main/res/drawable/rounded_border.xml | 2 +- .../res/drawable/rounded_color_accent.xml | 2 +- .../res/drawable/style_attachment_options.xml | 2 +- .../res/drawable/style_edit_text_profile.xml | 2 +- .../drawable/style_total_unread_messages.xml | 2 +- .../res/layout/activity_authentication.xml | 1 + .../main/res/layout/activity_chat_room.xml | 1 + app/src/main/res/layout/activity_main.xml | 3 +- app/src/main/res/layout/activity_password.xml | 2 +- app/src/main/res/layout/activity_web_view.xml | 3 +- app/src/main/res/layout/app_bar.xml | 8 +-- app/src/main/res/layout/app_bar_chat_room.xml | 6 +-- .../main/res/layout/app_bar_chat_rooms.xml | 16 ++---- app/src/main/res/layout/app_bar_password.xml | 13 ++--- app/src/main/res/layout/avatar.xml | 1 + app/src/main/res/layout/avatar_profile.xml | 1 + ...ottom_sheet_fragment_directory_sorting.xml | 19 ++++--- .../layout/bottom_sheet_fragment_servers.xml | 4 +- .../layout/bottom_sheet_fragment_sort_by.xml | 16 +++--- app/src/main/res/layout/dialog_status.xml | 4 ++ app/src/main/res/layout/emoji_row_item.xml | 2 +- .../res/layout/file_attachments_dialog.xml | 5 +- .../layout/fragment_admin_panel_web_view.xml | 3 +- .../layout/fragment_authentication_log_in.xml | 2 +- .../fragment_authentication_login_options.xml | 21 ++++---- .../fragment_authentication_on_boarding.xml | 4 +- ...gment_authentication_register_username.xml | 2 +- ...fragment_authentication_reset_password.xml | 2 +- .../layout/fragment_authentication_server.xml | 7 ++- .../fragment_authentication_sign_up.xml | 3 +- .../layout/fragment_authentication_two_fa.xml | 2 +- .../main/res/layout/fragment_chat_details.xml | 7 ++- .../main/res/layout/fragment_chat_room.xml | 19 +++---- .../main/res/layout/fragment_chat_rooms.xml | 13 ++--- .../res/layout/fragment_create_channel.xml | 21 +++----- .../main/res/layout/fragment_directory.xml | 12 ++--- .../res/layout/fragment_favorite_messages.xml | 11 ++-- app/src/main/res/layout/fragment_files.xml | 6 +-- app/src/main/res/layout/fragment_members.xml | 3 +- app/src/main/res/layout/fragment_mentions.xml | 8 +-- .../main/res/layout/fragment_message_info.xml | 4 +- app/src/main/res/layout/fragment_password.xml | 3 +- .../res/layout/fragment_pinned_messages.xml | 8 +-- app/src/main/res/layout/fragment_profile.xml | 5 +- app/src/main/res/layout/fragment_settings.xml | 51 ++++++++++--------- app/src/main/res/layout/fragment_theme.xml | 26 +++------- .../main/res/layout/fragment_user_details.xml | 4 +- .../main/res/layout/item_action_button.xml | 3 ++ .../res/layout/item_actions_attachment.xml | 4 +- .../main/res/layout/item_add_new_server.xml | 3 +- app/src/main/res/layout/item_add_reaction.xml | 1 + .../res/layout/item_author_attachment.xml | 4 +- app/src/main/res/layout/item_chat.xml | 2 +- .../main/res/layout/item_chatroom_header.xml | 1 + .../main/res/layout/item_color_attachment.xml | 4 +- .../main/res/layout/item_detail_option.xml | 4 +- .../res/layout/item_directory_channel.xml | 9 ++-- .../main/res/layout/item_directory_user.xml | 9 ++-- .../main/res/layout/item_file_attachment.xml | 5 +- .../res/layout/item_generic_attachment.xml | 5 +- app/src/main/res/layout/item_member.xml | 3 +- app/src/main/res/layout/item_message.xml | 10 ++-- .../res/layout/item_message_attachment.xml | 18 ++++--- .../main/res/layout/item_message_reply.xml | 5 +- app/src/main/res/layout/item_reaction.xml | 4 +- app/src/main/res/layout/item_read_receipt.xml | 3 ++ app/src/main/res/layout/item_server.xml | 7 +-- app/src/main/res/layout/item_theme.xml | 3 ++ app/src/main/res/layout/layout_reactions.xml | 1 + app/src/main/res/layout/layout_toolbar.xml | 6 +-- .../main/res/layout/message_action_bar.xml | 6 +-- .../main/res/layout/message_action_item.xml | 4 +- .../main/res/layout/message_attachment.xml | 7 ++- .../res/layout/message_attachment_options.xml | 3 ++ .../main/res/layout/message_bottomsheet.xml | 1 + app/src/main/res/layout/message_composer.xml | 13 +++-- app/src/main/res/layout/message_list.xml | 7 +-- .../main/res/layout/message_url_preview.xml | 6 ++- .../res/layout/reaction_praises_list_item.xml | 4 +- .../res/layout/suggestion_command_item.xml | 6 +-- .../main/res/layout/suggestion_emoji_item.xml | 8 +-- .../res/layout/suggestion_member_item.xml | 8 +-- .../main/res/layout/suggestion_room_item.xml | 8 +-- .../main/res/layout/update_avatar_options.xml | 4 ++ .../main/res/layout/webview_bottomsheet.xml | 3 +- app/src/main/res/values/themes.xml | 1 + themelibrary/src/main/res/values/themes.xml | 1 + 126 files changed, 374 insertions(+), 336 deletions(-) diff --git a/app/src/main/res/drawable/bg_border_user_details_avatar.xml b/app/src/main/res/drawable/bg_border_user_details_avatar.xml index 21468e90e4..e68058e7a4 100644 --- a/app/src/main/res/drawable/bg_border_user_details_avatar.xml +++ b/app/src/main/res/drawable/bg_border_user_details_avatar.xml @@ -8,7 +8,7 @@ android:right="3dp" android:top="3dp" /> - + diff --git a/app/src/main/res/drawable/circle_background_grey.xml b/app/src/main/res/drawable/circle_background_grey.xml index c63b22acf4..9d8e59907f 100644 --- a/app/src/main/res/drawable/circle_background_grey.xml +++ b/app/src/main/res/drawable/circle_background_grey.xml @@ -2,5 +2,7 @@ - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_action_message_pin_24dp.xml b/app/src/main/res/drawable/ic_action_message_pin_24dp.xml index fa957518da..4eb57f3e6a 100644 --- a/app/src/main/res/drawable/ic_action_message_pin_24dp.xml +++ b/app/src/main/res/drawable/ic_action_message_pin_24dp.xml @@ -5,6 +5,6 @@ android:viewportWidth="24"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_action_message_star_24dp.xml b/app/src/main/res/drawable/ic_action_message_star_24dp.xml index 0659283c74..d852886550 100644 --- a/app/src/main/res/drawable/ic_action_message_star_24dp.xml +++ b/app/src/main/res/drawable/ic_action_message_star_24dp.xml @@ -5,6 +5,7 @@ android:viewportWidth="24.0"> + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_activity_20dp.xml b/app/src/main/res/drawable/ic_activity_20dp.xml index 7dd8e07c32..c2402bbbde 100644 --- a/app/src/main/res/drawable/ic_activity_20dp.xml +++ b/app/src/main/res/drawable/ic_activity_20dp.xml @@ -9,11 +9,11 @@ android:fillType="evenOdd" android:pathData="M10,10m-9.25,0a9.25,9.25 0,1 1,18.5 0a9.25,9.25 0,1 1,-18.5 0" android:strokeWidth="1.5" - android:strokeColor="#9EA2A8" /> + android:strokeColor="?colorBottomSheetFragmentText" /> + android:strokeColor="?colorBottomSheetFragmentText" /> diff --git a/app/src/main/res/drawable/ic_add_24dp.xml b/app/src/main/res/drawable/ic_add_24dp.xml index 0258249cc4..edca755965 100644 --- a/app/src/main/res/drawable/ic_add_24dp.xml +++ b/app/src/main/res/drawable/ic_add_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_add_new_server_48dp.xml b/app/src/main/res/drawable/ic_add_new_server_48dp.xml index 8bf08b2bcb..2e92430cf5 100644 --- a/app/src/main/res/drawable/ic_add_new_server_48dp.xml +++ b/app/src/main/res/drawable/ic_add_new_server_48dp.xml @@ -9,12 +9,12 @@ android:fillType="evenOdd" android:pathData="M4.5,0.5L43.5,0.5A4,4 0,0 1,47.5 4.5L47.5,43.5A4,4 0,0 1,43.5 47.5L4.5,47.5A4,4 0,0 1,0.5 43.5L0.5,4.5A4,4 0,0 1,4.5 0.5z" android:strokeWidth="1" - android:strokeColor="#CBCED1" /> + android:strokeColor="?colorDescriptiveText" /> + android:strokeColor="?colorDescriptiveText" /> diff --git a/app/src/main/res/drawable/ic_add_reaction.xml b/app/src/main/res/drawable/ic_add_reaction.xml index 0660ee6c01..39be0b6d4b 100644 --- a/app/src/main/res/drawable/ic_add_reaction.xml +++ b/app/src/main/res/drawable/ic_add_reaction.xml @@ -4,22 +4,24 @@ android:viewportHeight="20.0" android:viewportWidth="20.0"> + + diff --git a/app/src/main/res/drawable/ic_at_black_20dp.xml b/app/src/main/res/drawable/ic_at_black_20dp.xml index 49c5f5f609..e5266ce704 100644 --- a/app/src/main/res/drawable/ic_at_black_20dp.xml +++ b/app/src/main/res/drawable/ic_at_black_20dp.xml @@ -10,17 +10,17 @@ android:pathData="M0 0h20v20H0z" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_chat_black_24dp.xml b/app/src/main/res/drawable/ic_chat_black_24dp.xml index e3489bdead..97868241f9 100644 --- a/app/src/main/res/drawable/ic_chat_black_24dp.xml +++ b/app/src/main/res/drawable/ic_chat_black_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_check.xml b/app/src/main/res/drawable/ic_check.xml index 6046365a41..25fb3fac14 100644 --- a/app/src/main/res/drawable/ic_check.xml +++ b/app/src/main/res/drawable/ic_check.xml @@ -9,5 +9,5 @@ android:fillType="nonZero" android:pathData="M5.5875,9.7331L14.7078,0.6128C15.0463,0.2744 15.595,0.2744 15.9335,0.6128L15.9335,0.6128C16.2719,0.9513 16.2719,1.5 15.9335,1.8385L6.2225,11.5494C5.832,11.9399 5.1989,11.9399 4.8083,11.5494L0.6489,7.39C0.2905,7.0316 0.2905,6.4506 0.6489,6.0922L0.6489,6.0922C1.0072,5.7338 1.5883,5.7338 1.9466,6.0922L5.5875,9.7331Z" android:strokeWidth="1" - android:strokeColor="#00000000" /> + android:strokeColor="?colorAccent" /> diff --git a/app/src/main/res/drawable/ic_check_unread_24dp.xml b/app/src/main/res/drawable/ic_check_unread_24dp.xml index 31bb59746c..b0a80e8521 100644 --- a/app/src/main/res/drawable/ic_check_unread_24dp.xml +++ b/app/src/main/res/drawable/ic_check_unread_24dp.xml @@ -4,6 +4,8 @@ android:viewportHeight="24.0" android:viewportWidth="24.0"> + + diff --git a/app/src/main/res/drawable/ic_chevron_right_black_24dp.xml b/app/src/main/res/drawable/ic_chevron_right_black_24dp.xml index 24835127dd..f771d246b2 100644 --- a/app/src/main/res/drawable/ic_chevron_right_black_24dp.xml +++ b/app/src/main/res/drawable/ic_chevron_right_black_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_email_black_20dp.xml b/app/src/main/res/drawable/ic_email_black_20dp.xml index e062d6a22b..e66a2167e1 100644 --- a/app/src/main/res/drawable/ic_email_black_20dp.xml +++ b/app/src/main/res/drawable/ic_email_black_20dp.xml @@ -10,12 +10,12 @@ android:pathData="M0 0h20v20H0z" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_favorites_20dp.xml b/app/src/main/res/drawable/ic_favorites_20dp.xml index 94c6c62039..9633d1e3a4 100644 --- a/app/src/main/res/drawable/ic_favorites_20dp.xml +++ b/app/src/main/res/drawable/ic_favorites_20dp.xml @@ -9,5 +9,5 @@ android:fillType="evenOdd" android:pathData="M14.882,16.72l-0.933,-5.437 3.95,-3.85 -5.458,-0.793L10,1.695 7.56,6.64 2.1,7.434l3.95,3.85 -0.933,5.435L10,14.153l4.882,2.566z" android:strokeWidth="1.5" - android:strokeColor="#9EA2A8" /> + android:strokeColor="?colorBottomSheetFragmentText" /> diff --git a/app/src/main/res/drawable/ic_files_24dp.xml b/app/src/main/res/drawable/ic_files_24dp.xml index 8b8a88fe31..950be29ffe 100644 --- a/app/src/main/res/drawable/ic_files_24dp.xml +++ b/app/src/main/res/drawable/ic_files_24dp.xml @@ -4,7 +4,7 @@ android:viewportHeight="17.0" android:viewportWidth="18.0"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_filter_20dp.xml b/app/src/main/res/drawable/ic_filter_20dp.xml index f92bb571b1..9a872bead4 100644 --- a/app/src/main/res/drawable/ic_filter_20dp.xml +++ b/app/src/main/res/drawable/ic_filter_20dp.xml @@ -9,30 +9,30 @@ android:fillType="evenOdd" android:pathData="M5,4L5,18" android:strokeWidth="1.5" - android:strokeColor="#9EA2A8" + android:strokeColor="?colorBottomSheetFragmentText" android:strokeLineCap="round" /> diff --git a/app/src/main/res/drawable/ic_hashtag_12dp.xml b/app/src/main/res/drawable/ic_hashtag_12dp.xml index 88daadc6ae..a8cc5f8922 100644 --- a/app/src/main/res/drawable/ic_hashtag_12dp.xml +++ b/app/src/main/res/drawable/ic_hashtag_12dp.xml @@ -4,19 +4,21 @@ android:viewportHeight="12" android:viewportWidth="12"> + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_hashtag_16dp.xml b/app/src/main/res/drawable/ic_hashtag_16dp.xml index db18661f34..ef77b43c8b 100644 --- a/app/src/main/res/drawable/ic_hashtag_16dp.xml +++ b/app/src/main/res/drawable/ic_hashtag_16dp.xml @@ -6,7 +6,7 @@ diff --git a/app/src/main/res/drawable/ic_hashtag_black_12dp.xml b/app/src/main/res/drawable/ic_hashtag_black_12dp.xml index d7b7455e2f..5e6ea78df1 100644 --- a/app/src/main/res/drawable/ic_hashtag_black_12dp.xml +++ b/app/src/main/res/drawable/ic_hashtag_black_12dp.xml @@ -5,18 +5,18 @@ android:viewportWidth="12"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_image_black_24dp.xml b/app/src/main/res/drawable/ic_image_black_24dp.xml index f0effe9e4f..ed544dca07 100644 --- a/app/src/main/res/drawable/ic_image_black_24dp.xml +++ b/app/src/main/res/drawable/ic_image_black_24dp.xml @@ -5,6 +5,6 @@ android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_insert_drive_file_black_24dp.xml b/app/src/main/res/drawable/ic_insert_drive_file_black_24dp.xml index 5d88006c77..3e4b20ed24 100644 --- a/app/src/main/res/drawable/ic_insert_drive_file_black_24dp.xml +++ b/app/src/main/res/drawable/ic_insert_drive_file_black_24dp.xml @@ -5,6 +5,6 @@ android:viewportWidth="24.0"> diff --git a/app/src/main/res/drawable/ic_key_black_20dp.xml b/app/src/main/res/drawable/ic_key_black_20dp.xml index 4cb9196bce..2835f4fa2b 100644 --- a/app/src/main/res/drawable/ic_key_black_20dp.xml +++ b/app/src/main/res/drawable/ic_key_black_20dp.xml @@ -10,12 +10,12 @@ android:fillType="evenOdd" android:pathData="M10.0002,5.5001C10.0002,6.3261 9.869,6.9474 9.6082,7.3639L14.4347,12.0381L15,13.8704L13.8695,15L12.0425,14.4382L11.6838,14.0804L11.6838,12.7898L10.3931,12.7898L9.8419,12.2385L9.8419,10.947L8.5504,10.947L7.1801,9.5715C6.6709,9.8576 6.11,10.0002 5.5001,10.0002C4.2845,10.0003 3.1205,9.5084 2.2732,8.6367C1.4258,7.765 0.9672,6.5876 1.0017,5.3724C1.0674,3.0239 3.0247,1.0674 5.3724,1.0017C6.5873,0.9675 7.7643,1.4261 8.6358,2.2732C9.5073,3.1203 9.9991,4.2839 9.9994,5.4992L10.0002,5.5001Z" android:strokeWidth="1.5" - android:strokeColor="#FF2F343D" /> + android:strokeColor="?colorPrimary" /> + android:strokeColor="?colorPrimary" /> diff --git a/app/src/main/res/drawable/ic_lock_black_12_dp.xml b/app/src/main/res/drawable/ic_lock_black_12_dp.xml index ec2a0d9f99..4ea5abd301 100644 --- a/app/src/main/res/drawable/ic_lock_black_12_dp.xml +++ b/app/src/main/res/drawable/ic_lock_black_12_dp.xml @@ -6,11 +6,11 @@ \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_message_24dp.xml b/app/src/main/res/drawable/ic_message_24dp.xml index 8631256240..1aad390954 100644 --- a/app/src/main/res/drawable/ic_message_24dp.xml +++ b/app/src/main/res/drawable/ic_message_24dp.xml @@ -5,7 +5,7 @@ android:viewportHeight="20"> diff --git a/app/src/main/res/drawable/ic_person_black_20dp.xml b/app/src/main/res/drawable/ic_person_black_20dp.xml index ae64ca0dd4..833a8a5226 100644 --- a/app/src/main/res/drawable/ic_person_black_20dp.xml +++ b/app/src/main/res/drawable/ic_person_black_20dp.xml @@ -10,7 +10,7 @@ android:pathData="M0 0h20v20H0z" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_photo_camera_black_24dp.xml b/app/src/main/res/drawable/ic_photo_camera_black_24dp.xml index 881e02ddb1..4e31ece8e8 100644 --- a/app/src/main/res/drawable/ic_photo_camera_black_24dp.xml +++ b/app/src/main/res/drawable/ic_photo_camera_black_24dp.xml @@ -5,9 +5,9 @@ android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_reaction_24dp.xml b/app/src/main/res/drawable/ic_reaction_24dp.xml index 1acb14aa2d..5e8dd5558c 100644 --- a/app/src/main/res/drawable/ic_reaction_24dp.xml +++ b/app/src/main/res/drawable/ic_reaction_24dp.xml @@ -5,21 +5,21 @@ android:viewportWidth="20.0"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_server.xml b/app/src/main/res/drawable/ic_server.xml index a3d3568e28..d488810a0e 100644 --- a/app/src/main/res/drawable/ic_server.xml +++ b/app/src/main/res/drawable/ic_server.xml @@ -6,7 +6,7 @@ android:viewportHeight="171"> + android:strokeColor="?colorBottomSheetFragmentText" /> + android:strokeColor="?colorBottomSheetFragmentText" /> diff --git a/app/src/main/res/drawable/ic_user_16dp.xml b/app/src/main/res/drawable/ic_user_16dp.xml index e5be22cc64..07eda76927 100644 --- a/app/src/main/res/drawable/ic_user_16dp.xml +++ b/app/src/main/res/drawable/ic_user_16dp.xml @@ -5,7 +5,7 @@ android:viewportHeight="16"> diff --git a/app/src/main/res/drawable/message_reply_button_bg.xml b/app/src/main/res/drawable/message_reply_button_bg.xml index 85a9bdb663..7ac48613a1 100644 --- a/app/src/main/res/drawable/message_reply_button_bg.xml +++ b/app/src/main/res/drawable/message_reply_button_bg.xml @@ -2,7 +2,7 @@ - + diff --git a/app/src/main/res/drawable/quote_vertical_blue_bar.xml b/app/src/main/res/drawable/quote_vertical_blue_bar.xml index f32a820fa1..dc3f4ff216 100644 --- a/app/src/main/res/drawable/quote_vertical_blue_bar.xml +++ b/app/src/main/res/drawable/quote_vertical_blue_bar.xml @@ -2,7 +2,7 @@ - + diff --git a/app/src/main/res/drawable/quote_vertical_gray_bar.xml b/app/src/main/res/drawable/quote_vertical_gray_bar.xml index 28c98fc7d9..8649213b69 100644 --- a/app/src/main/res/drawable/quote_vertical_gray_bar.xml +++ b/app/src/main/res/drawable/quote_vertical_gray_bar.xml @@ -1,7 +1,9 @@ - + + + diff --git a/app/src/main/res/drawable/round_textview.xml b/app/src/main/res/drawable/round_textview.xml index f5f6c954de..fd41fb321f 100644 --- a/app/src/main/res/drawable/round_textview.xml +++ b/app/src/main/res/drawable/round_textview.xml @@ -1,7 +1,7 @@ - + - + + diff --git a/app/src/main/res/drawable/rounded_border.xml b/app/src/main/res/drawable/rounded_border.xml index f36cb2a5b3..60bb814d3f 100644 --- a/app/src/main/res/drawable/rounded_border.xml +++ b/app/src/main/res/drawable/rounded_border.xml @@ -4,7 +4,7 @@ + android:color="?colorAuthenticationButtonBorderAndDivider" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/rounded_color_accent.xml b/app/src/main/res/drawable/rounded_color_accent.xml index 81a3650e17..e3df494dbe 100644 --- a/app/src/main/res/drawable/rounded_color_accent.xml +++ b/app/src/main/res/drawable/rounded_color_accent.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/style_attachment_options.xml b/app/src/main/res/drawable/style_attachment_options.xml index 29b8374102..4ed1a113d9 100644 --- a/app/src/main/res/drawable/style_attachment_options.xml +++ b/app/src/main/res/drawable/style_attachment_options.xml @@ -3,7 +3,7 @@ android:shape="rectangle"> + android:color="?android:colorBackground" /> diff --git a/app/src/main/res/drawable/style_edit_text_profile.xml b/app/src/main/res/drawable/style_edit_text_profile.xml index 5308affbbf..3a122046c8 100644 --- a/app/src/main/res/drawable/style_edit_text_profile.xml +++ b/app/src/main/res/drawable/style_edit_text_profile.xml @@ -4,7 +4,7 @@ + android:color="?colorPrimary" /> diff --git a/app/src/main/res/drawable/style_total_unread_messages.xml b/app/src/main/res/drawable/style_total_unread_messages.xml index c1d197d9b3..922b6a844e 100644 --- a/app/src/main/res/drawable/style_total_unread_messages.xml +++ b/app/src/main/res/drawable/style_total_unread_messages.xml @@ -2,6 +2,6 @@ - + diff --git a/app/src/main/res/layout/activity_authentication.xml b/app/src/main/res/layout/activity_authentication.xml index 34c38691e8..bfa47fcc45 100644 --- a/app/src/main/res/layout/activity_authentication.xml +++ b/app/src/main/res/layout/activity_authentication.xml @@ -4,6 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" + android:background="?android:colorBackground" tools:context=".authentication.ui.AuthenticationActivity"> \ No newline at end of file + android:background="?android:colorBackground" + tools:context=".main.ui.MainActivity" /> diff --git a/app/src/main/res/layout/activity_password.xml b/app/src/main/res/layout/activity_password.xml index c4dd4a2a8f..8e59d3f2d6 100644 --- a/app/src/main/res/layout/activity_password.xml +++ b/app/src/main/res/layout/activity_password.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - android:theme="@style/AppTheme" + android:background="?android:colorBackground" tools:context=".settings.password.ui.PasswordActivity"> \ No newline at end of file diff --git a/app/src/main/res/layout/app_bar.xml b/app/src/main/res/layout/app_bar.xml index 87845b60de..f4f441372a 100644 --- a/app/src/main/res/layout/app_bar.xml +++ b/app/src/main/res/layout/app_bar.xml @@ -2,15 +2,11 @@ + android:layout_height="wrap_content"> + android:layout_height="?attr/actionBarSize"/> \ No newline at end of file diff --git a/app/src/main/res/layout/app_bar_chat_room.xml b/app/src/main/res/layout/app_bar_chat_room.xml index 4e6ffd318c..5d2fee66aa 100644 --- a/app/src/main/res/layout/app_bar_chat_room.xml +++ b/app/src/main/res/layout/app_bar_chat_room.xml @@ -4,8 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/colorPrimary" - android:theme="@style/Theme.AppCompat.Light.NoActionBar"> + > + > - + > + > + \ No newline at end of file diff --git a/app/src/main/res/layout/app_bar_password.xml b/app/src/main/res/layout/app_bar_password.xml index 8db44bba59..2c31ba55a3 100644 --- a/app/src/main/res/layout/app_bar_password.xml +++ b/app/src/main/res/layout/app_bar_password.xml @@ -4,17 +4,14 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/colorPrimary" - android:theme="@style/Theme.AppCompat.Light.NoActionBar"> + > + app:navigationIcon="?android:attr/homeAsUpIndicator"> diff --git a/app/src/main/res/layout/avatar.xml b/app/src/main/res/layout/avatar.xml index 64e38375cc..f2ba3844f0 100644 --- a/app/src/main/res/layout/avatar.xml +++ b/app/src/main/res/layout/avatar.xml @@ -2,6 +2,7 @@ diff --git a/app/src/main/res/layout/avatar_profile.xml b/app/src/main/res/layout/avatar_profile.xml index 02c71781b8..33d98c9c70 100644 --- a/app/src/main/res/layout/avatar_profile.xml +++ b/app/src/main/res/layout/avatar_profile.xml @@ -2,6 +2,7 @@ diff --git a/app/src/main/res/layout/bottom_sheet_fragment_directory_sorting.xml b/app/src/main/res/layout/bottom_sheet_fragment_directory_sorting.xml index 4594abaf50..49171385b6 100644 --- a/app/src/main/res/layout/bottom_sheet_fragment_directory_sorting.xml +++ b/app/src/main/res/layout/bottom_sheet_fragment_directory_sorting.xml @@ -15,16 +15,15 @@ android:layout_marginTop="16dp" android:layout_marginEnd="16dp" android:text="@string/msg_sort_by" - android:textColor="#9EA2A8" - android:textSize="17sp" - android:textStyle="normal" /> + android:textColor="?colorBottomSheetFragmentText" /> + /> @@ -73,7 +72,7 @@ android:layout_height="1dp" android:layout_marginStart="16dp" android:layout_marginEnd="16dp" - android:background="#1F000000" + android:background="?colorDivider" app:layout_constraintTop_toBottomOf="@+id/text_users" /> @@ -22,7 +22,7 @@ android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginTop="16dp" - android:background="#1F000000" /> + android:background="?colorDivider" /> @@ -59,7 +59,7 @@ android:paddingEnd="16dp" android:paddingBottom="16dp" android:text="@string/msg_sort_by_activity" - android:textColor="#2F343D" + android:textColor="?colorBottomSheetFragmentHeading" android:textSize="16sp" android:textStyle="normal" /> @@ -69,7 +69,7 @@ android:layout_height="1dp" android:layout_marginStart="16dp" android:layout_marginEnd="16dp" - android:background="#1F000000" /> + android:background="?colorDivider" /> @@ -97,7 +97,7 @@ android:paddingEnd="16dp" android:paddingBottom="16dp" android:text="@string/msg_group_by_type" - android:textColor="#2F343D" + android:textColor="?colorBottomSheetFragmentHeading" android:textSize="16sp" android:textStyle="normal" /> @@ -112,7 +112,7 @@ android:paddingEnd="16dp" android:paddingBottom="16dp" android:text="@string/msg_group_by_favorites" - android:textColor="#2F343D" + android:textColor="?colorBottomSheetFragmentHeading" android:textSize="16sp" android:textStyle="normal" /> diff --git a/app/src/main/res/layout/dialog_status.xml b/app/src/main/res/layout/dialog_status.xml index 03405d7f28..21cef9a02e 100644 --- a/app/src/main/res/layout/dialog_status.xml +++ b/app/src/main/res/layout/dialog_status.xml @@ -12,6 +12,7 @@ diff --git a/app/src/main/res/layout/file_attachments_dialog.xml b/app/src/main/res/layout/file_attachments_dialog.xml index ddabaa6fa0..eaf1ee1f8c 100644 --- a/app/src/main/res/layout/file_attachments_dialog.xml +++ b/app/src/main/res/layout/file_attachments_dialog.xml @@ -17,6 +17,7 @@ android:layout_height="wrap_content" android:text="@string/msg_upload_file" style="@style/Base.DialogWindowTitle.AppCompat" + android:textColor="?titleTextColor" android:layout_margin="16dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -25,7 +26,7 @@ android:id="@+id/text_file_name" android:layout_width="0dp" android:layout_height="wrap_content" - android:textColor="@color/colorAccent" + android:textColor="?colorAccent" android:textAppearance="@style/TextAppearance.AppCompat.Body2" android:drawableStart="@drawable/ic_files_24dp" android:drawablePadding="6dp" @@ -71,6 +72,7 @@ diff --git a/app/src/main/res/layout/fragment_admin_panel_web_view.xml b/app/src/main/res/layout/fragment_admin_panel_web_view.xml index 2f1bd797dd..e73a7ebfa6 100644 --- a/app/src/main/res/layout/fragment_admin_panel_web_view.xml +++ b/app/src/main/res/layout/fragment_admin_panel_web_view.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="?android:colorBackground" tools:context=".webview.adminpanel.ui.AdminPanelWebViewFragment"> @@ -53,7 +53,7 @@ android:paddingEnd="16dp" android:text="@string/msg_continue_with_github" android:textAllCaps="false" - android:textColor="@color/colorPrimary" + android:textColor="?colorPrimary" android:textSize="16sp" android:visibility="gone" tools:visibility="visible" /> @@ -72,7 +72,7 @@ android:paddingEnd="16dp" android:text="@string/msg_continue_with_google" android:textAllCaps="false" - android:textColor="@color/colorPrimary" + android:textColor="?colorPrimary" android:textSize="16sp" android:visibility="gone" tools:visibility="visible" /> @@ -91,7 +91,7 @@ android:paddingEnd="16dp" android:text="@string/msg_continue_with_linkedin" android:textAllCaps="false" - android:textColor="@color/colorPrimary" + android:textColor="?colorPrimary" android:textSize="16sp" android:visibility="gone" tools:visibility="visible" /> @@ -110,7 +110,7 @@ android:paddingEnd="16dp" android:text="@string/msg_continue_with_gitlab" android:textAllCaps="false" - android:textColor="@color/colorPrimary" + android:textColor="?colorPrimary" android:textSize="16sp" android:visibility="gone" tools:visibility="visible" /> @@ -129,7 +129,7 @@ android:paddingEnd="16dp" android:text="@string/msg_continue_with_wordpress" android:textAllCaps="false" - android:textColor="@color/colorPrimary" + android:textColor="?colorPrimary" android:textSize="16sp" android:visibility="gone" tools:visibility="visible" /> @@ -153,16 +153,17 @@ android:background="@drawable/circle_background_grey" android:contentDescription="@string/msg_content_description_show_more_login_options" android:src="@drawable/ic_expand_more_black_24dp" - android:tint="@color/colorWhite" + android:tint="?android:colorBackground" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + android:popupBackground="?background" /> + android:background="?android:colorBackground" + + > + + tools:context=".chatroom.ui.ChatRoomFragment" + android:background="?android:colorBackground" + > @@ -109,7 +110,7 @@ android:id="@+id/view_dim" android:layout_width="0dp" android:layout_height="0dp" - android:background="@color/colorDim" + android:background="?colorDim" android:visibility="gone" app:layout_constraintBottom_toTopOf="@id/layout_message_composer" app:layout_constraintEnd_toEndOf="parent" @@ -132,11 +133,11 @@ android:layout_width="0dp" android:layout_height="32dp" android:alpha="0" - android:background="@color/colorPrimary" + android:background="?colorPrimary" android:elevation="4dp" android:gravity="center" android:textAppearance="@style/TextAppearance.AppCompat.Body2" - android:textColor="@color/colorWhite" + android:textColor="?android:colorBackground" android:visibility="gone" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -150,7 +151,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" - app:indicatorColor="@color/colorBlack" + app:indicatorColor="?colorLoading" app:indicatorName="BallPulseIndicator" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/fragment_chat_rooms.xml b/app/src/main/res/layout/fragment_chat_rooms.xml index 0c387d2938..9190b6ab0a 100644 --- a/app/src/main/res/layout/fragment_chat_rooms.xml +++ b/app/src/main/res/layout/fragment_chat_rooms.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="?android:colorBackground" tools:context=".chatrooms.ui.ChatRoomsFragment"> + @@ -62,7 +57,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" - app:indicatorColor="@color/colorBlack" + app:indicatorColor="?colorLoading" app:indicatorName="BallPulseIndicator" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/fragment_create_channel.xml b/app/src/main/res/layout/fragment_create_channel.xml index 7e7249e9e8..b2d49d913d 100644 --- a/app/src/main/res/layout/fragment_create_channel.xml +++ b/app/src/main/res/layout/fragment_create_channel.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="?android:colorBackground" tools:context="createchannel.ui.CreateChannelFragment"> @@ -58,26 +57,22 @@ @@ -108,7 +103,7 @@ android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginEnd="16dp" - android:backgroundTint="@color/colorDim" + android:backgroundTint="?attr/colorDim" android:hint="@string/msg_channel_name" android:inputType="text" android:maxLines="1" @@ -136,7 +131,7 @@ android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginEnd="16dp" - android:backgroundTint="@color/colorDim" + android:backgroundTint="?attr/colorDim" android:hint="@string/msg_invite_members" android:inputType="text" android:maxLines="1" diff --git a/app/src/main/res/layout/fragment_directory.xml b/app/src/main/res/layout/fragment_directory.xml index 7de8dd034a..f7aba541f5 100644 --- a/app/src/main/res/layout/fragment_directory.xml +++ b/app/src/main/res/layout/fragment_directory.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="?android:colorBackground" tools:context=".directory.ui.DirectoryFragment"> @@ -44,7 +38,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" - app:indicatorColor="@color/colorBlack" + app:indicatorColor="?colorLoading" app:indicatorName="BallPulseIndicator" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/fragment_favorite_messages.xml b/app/src/main/res/layout/fragment_favorite_messages.xml index 510068e374..c1b1dcdc03 100644 --- a/app/src/main/res/layout/fragment_favorite_messages.xml +++ b/app/src/main/res/layout/fragment_favorite_messages.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="?android:colorBackground" tools:context=".favoritemessages.ui.FavoriteMessagesFragment"> + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_mentions.xml b/app/src/main/res/layout/fragment_mentions.xml index f0fcc461df..f48899af66 100644 --- a/app/src/main/res/layout/fragment_mentions.xml +++ b/app/src/main/res/layout/fragment_mentions.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="?android:colorBackground" tools:context=".mentions.ui.MentionsFragment"> - - @@ -45,6 +40,7 @@ android:layout_height="wrap_content" android:paddingTop="20dp" android:textSize="20sp" + android:textColor="?colorPrimaryText" android:text="TextView" app:layout_constraintStart_toStartOf="@id/editTextTest" app:layout_constraintTop_toBottomOf="@id/editTextTest"/> @@ -56,14 +52,4 @@ app:layout_constraintStart_toStartOf="@id/textView_themes" app:layout_constraintTop_toBottomOf="@id/textView_themes"/> - - diff --git a/app/src/main/res/layout/fragment_user_details.xml b/app/src/main/res/layout/fragment_user_details.xml index 5234df1d6c..eea5260346 100644 --- a/app/src/main/res/layout/fragment_user_details.xml +++ b/app/src/main/res/layout/fragment_user_details.xml @@ -3,12 +3,12 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" + android:background="?android:colorBackground" android:layout_height="match_parent"> diff --git a/app/src/main/res/layout/item_action_button.xml b/app/src/main/res/layout/item_action_button.xml index 62c470b24e..923d9c7dc5 100644 --- a/app/src/main/res/layout/item_action_button.xml +++ b/app/src/main/res/layout/item_action_button.xml @@ -3,11 +3,14 @@ xmlns:fresco="http://schemas.android.com/apk/res-auto" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:background="?android:colorBackground" android:orientation="horizontal"> @@ -42,7 +42,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:textAppearance="@style/TextAppearance.AppCompat.Body2" - android:textColor="@color/colorAccent" + android:textColor="?colorAccent" android:textDirection="locale" app:layout_constraintEnd_toEndOf="@id/title" app:layout_constraintStart_toEndOf="@id/quote_bar" diff --git a/app/src/main/res/layout/item_add_new_server.xml b/app/src/main/res/layout/item_add_new_server.xml index de8f1cf10b..267fea449c 100644 --- a/app/src/main/res/layout/item_add_new_server.xml +++ b/app/src/main/res/layout/item_add_new_server.xml @@ -3,7 +3,6 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?selectableItemBackground" android:orientation="vertical" android:padding="16dp"> @@ -16,7 +15,7 @@ android:fontFamily="sans-serif" android:gravity="center" android:text="@string/msg_add_new_server" - android:textColor="#9ea2a8" + android:textColor="?colorDescriptiveText" android:textSize="16sp" android:textStyle="bold" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/item_add_reaction.xml b/app/src/main/res/layout/item_add_reaction.xml index 18dedf3c37..1c6d79b91b 100644 --- a/app/src/main/res/layout/item_add_reaction.xml +++ b/app/src/main/res/layout/item_add_reaction.xml @@ -6,6 +6,7 @@ android:paddingEnd="4dp" android:paddingLeft="4dp" android:paddingRight="4dp" + android:background="?android:colorBackground" android:paddingStart="4dp" android:paddingTop="2dp" android:src="@drawable/ic_add_reaction" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_author_attachment.xml b/app/src/main/res/layout/item_author_attachment.xml index 18a4032c2a..a020772089 100644 --- a/app/src/main/res/layout/item_author_attachment.xml +++ b/app/src/main/res/layout/item_author_attachment.xml @@ -5,9 +5,9 @@ android:id="@+id/author_attachment_container" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?android:attr/selectableItemBackground" android:clickable="true" android:focusable="true" + android:background="?android:colorBackground" android:paddingBottom="@dimen/message_item_top_and_bottom_padding" android:paddingEnd="@dimen/screen_edge_left_and_right_padding" android:paddingStart="@dimen/screen_edge_left_and_right_padding" @@ -38,7 +38,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="4dp" - android:textColor="@color/colorAccent" + android:textColor="?colorAccent" android:textAppearance="@style/TextAppearance.AppCompat.Body2" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toEndOf="@id/author_icon" diff --git a/app/src/main/res/layout/item_chat.xml b/app/src/main/res/layout/item_chat.xml index 541fcf66c3..9b83c852c3 100644 --- a/app/src/main/res/layout/item_chat.xml +++ b/app/src/main/res/layout/item_chat.xml @@ -4,9 +4,9 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?android:attr/selectableItemBackground" android:paddingStart="@dimen/screen_edge_left_and_right_padding" android:paddingTop="@dimen/chat_item_top_and_bottom_padding" + android:background="?android:colorBackground" android:paddingEnd="@dimen/screen_edge_left_and_right_padding" android:paddingBottom="@dimen/chat_item_top_and_bottom_padding" tools:context=".chatrooms.adapter.RoomsAdapter"> diff --git a/app/src/main/res/layout/item_chatroom_header.xml b/app/src/main/res/layout/item_chatroom_header.xml index 3324ad081c..1b3d2f3f5e 100644 --- a/app/src/main/res/layout/item_chatroom_header.xml +++ b/app/src/main/res/layout/item_chatroom_header.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/item_color_attachment.xml b/app/src/main/res/layout/item_color_attachment.xml index 5e400d771c..ebec0ff40c 100644 --- a/app/src/main/res/layout/item_color_attachment.xml +++ b/app/src/main/res/layout/item_color_attachment.xml @@ -4,14 +4,15 @@ xmlns:tools="http://schemas.android.com/tools" android:id="@+id/color_attachment_container" android:layout_width="match_parent" + android:background="?android:colorBackground" android:layout_height="wrap_content" - android:background="?android:attr/selectableItemBackground" android:clickable="true" android:focusable="true" android:paddingStart="@dimen/screen_edge_left_and_right_padding" android:paddingTop="@dimen/message_item_top_and_bottom_padding" android:paddingEnd="@dimen/screen_edge_left_and_right_padding" android:paddingBottom="@dimen/message_item_top_and_bottom_padding"> + + + + + + + + + + android:background="?colorDivider" /> + android:background="?colorDivider" /> @@ -162,7 +164,7 @@ android:id="@+id/button_join_video_call" android:layout_width="200dp" android:layout_height="wrap_content" - android:background="@color/colorAccent" + android:background="?colorAccent" android:text="@string/msg_join_video_call" android:visibility="gone" app:layout_constraintStart_toStartOf="@+id/text_content" diff --git a/app/src/main/res/layout/item_message_attachment.xml b/app/src/main/res/layout/item_message_attachment.xml index 0ffb5ca0d4..0247d7bee6 100644 --- a/app/src/main/res/layout/item_message_attachment.xml +++ b/app/src/main/res/layout/item_message_attachment.xml @@ -7,12 +7,13 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:animateLayoutChanges="true" - android:background="?android:attr/selectableItemBackground" + android:background="?android:colorBackground" android:clickable="true" android:focusable="true" android:paddingStart="@dimen/screen_edge_left_and_right_padding" android:paddingEnd="@dimen/screen_edge_left_and_right_padding" android:paddingBottom="@dimen/message_item_top_and_bottom_padding"> + + diff --git a/app/src/main/res/layout/item_reaction.xml b/app/src/main/res/layout/item_reaction.xml index cf3772d373..e7dcf9186c 100644 --- a/app/src/main/res/layout/item_reaction.xml +++ b/app/src/main/res/layout/item_reaction.xml @@ -26,7 +26,7 @@ android:maxLines="1" android:paddingStart="4dp" android:paddingLeft="4dp" - android:textColor="@color/reaction_text" + android:textColor="?colorAccent" android:textSize="16sp" tools:text=":)" /> @@ -50,7 +50,7 @@ android:paddingEnd="4dp" android:paddingRight="4dp" android:paddingBottom="4dp" - android:textColor="@color/reaction_text" + android:textColor="?colorAccent" android:textSize="16sp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" diff --git a/app/src/main/res/layout/item_read_receipt.xml b/app/src/main/res/layout/item_read_receipt.xml index 6908f56234..c5ae35b3e8 100644 --- a/app/src/main/res/layout/item_read_receipt.xml +++ b/app/src/main/res/layout/item_read_receipt.xml @@ -3,11 +3,13 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" + android:background="?android:colorBackground" android:layout_height="wrap_content" android:layout_marginTop="8dp"> + diff --git a/app/src/main/res/layout/layout_reactions.xml b/app/src/main/res/layout/layout_reactions.xml index 1a341b5ba1..9a1776d126 100644 --- a/app/src/main/res/layout/layout_reactions.xml +++ b/app/src/main/res/layout/layout_reactions.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/layout_toolbar.xml b/app/src/main/res/layout/layout_toolbar.xml index 1ce9943c67..efe287f49c 100644 --- a/app/src/main/res/layout/layout_toolbar.xml +++ b/app/src/main/res/layout/layout_toolbar.xml @@ -2,6 +2,7 @@ @@ -9,13 +10,12 @@ android:id="@+id/toolbar" android:layout_width="0dp" android:layout_height="@dimen/toolbar_height" - android:background="@color/colorPrimary" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_scrollFlags="scroll|enterAlways" - app:popupTheme="@style/ThemeOverlay.AppCompat.Light" - app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> + style="@style/ChatRoom.ChatName.TextView" + > + android:layout_height="wrap_content"> + + @@ -36,7 +38,7 @@ android:id="@+id/audio_video_attachment" android:layout_width="match_parent" android:layout_height="150dp" - android:background="@color/colorBlack" + android:background="?android:colorBackground" android:visibility="gone" tools:visibility="visible"> @@ -49,6 +51,7 @@ diff --git a/app/src/main/res/layout/message_attachment_options.xml b/app/src/main/res/layout/message_attachment_options.xml index 3b8746323f..94c62e7561 100644 --- a/app/src/main/res/layout/message_attachment_options.xml +++ b/app/src/main/res/layout/message_attachment_options.xml @@ -8,6 +8,7 @@ diff --git a/app/src/main/res/layout/message_composer.xml b/app/src/main/res/layout/message_composer.xml index 76c56f2c84..31242553c7 100644 --- a/app/src/main/res/layout/message_composer.xml +++ b/app/src/main/res/layout/message_composer.xml @@ -2,6 +2,7 @@ @@ -14,19 +15,20 @@ android:id="@+id/divider" android:layout_width="0dp" android:layout_height="1dp" - android:background="@color/colorDividerMessageComposer" + android:background="?colorDivider" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + @@ -17,10 +18,10 @@ android:layout_height="wrap_content" android:visibility="invisible" android:layout_margin="16dp" + app:backgroundTint="?colorFloatingActionButtonBorder" android:src="@drawable/ic_arrow_downward_24dp" - android:theme="@style/Theme.AppCompat" - android:tint="@color/actionMenuColor" - app:backgroundTint="@color/colorWhite" + android:tint="?colorAccent" + android:backgroundTint="?colorFloatingActionButtonBackground" tools:visibility="visible" android:layout_gravity="end|bottom" /> diff --git a/app/src/main/res/layout/message_url_preview.xml b/app/src/main/res/layout/message_url_preview.xml index 8fe5454c16..1a79352851 100644 --- a/app/src/main/res/layout/message_url_preview.xml +++ b/app/src/main/res/layout/message_url_preview.xml @@ -5,9 +5,10 @@ android:id="@+id/url_preview_layout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?android:attr/selectableItemBackground" + android:background="?android:colorBackground" android:paddingStart="72dp" android:paddingEnd="24dp"> + @@ -18,7 +18,7 @@ android:layout_marginStart="8dp" android:ellipsize="end" android:maxLines="1" - android:textColor="@color/colorBlack" + android:textColor="?colorPrimaryText" android:textSize="14sp" tools:text="/leave" /> @@ -32,7 +32,7 @@ android:ellipsize="end" android:gravity="start" android:maxLines="1" - android:textColor="@color/actionMenuColor" + android:textColor="?colorDim" android:textSize="14sp" tools:text="Leave a channel" /> diff --git a/app/src/main/res/layout/suggestion_emoji_item.xml b/app/src/main/res/layout/suggestion_emoji_item.xml index 7bc93f57bf..0b2e8f41df 100644 --- a/app/src/main/res/layout/suggestion_emoji_item.xml +++ b/app/src/main/res/layout/suggestion_emoji_item.xml @@ -6,9 +6,9 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="2dp" + android:background="?android:colorBackground" android:layout_marginEnd="2dp" - android:layout_marginBottom="2dp" - android:background="@color/suggestion_background_color"> + android:layout_marginBottom="2dp"> + android:layout_marginTop="2dp"> + android:layout_marginTop="2dp"> @@ -25,7 +25,7 @@ android:layout_toEndOf="@+id/text_name" android:maxLines="1" android:layout_marginStart="8dp" - android:textColor="@color/actionMenuColor" + android:textColor="?colorDim" android:textSize="16sp" tools:text="@tools:sample/full_names" /> diff --git a/app/src/main/res/layout/update_avatar_options.xml b/app/src/main/res/layout/update_avatar_options.xml index 4431228a29..a45ccbdf9d 100644 --- a/app/src/main/res/layout/update_avatar_options.xml +++ b/app/src/main/res/layout/update_avatar_options.xml @@ -1,6 +1,7 @@ @@ -8,6 +9,7 @@ @@ -21,7 +22,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" - app:indicatorColor="@color/colorBlack" + app:indicatorColor="?colorLoading" app:indicatorName="BallPulseIndicator" /> \ 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 2b9d087e5b..ea9e4deb79 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -41,5 +41,6 @@ @style/CustomAlertDialogTheme @color/colorPrimaryDark @color/colorAuxiliaryTint + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml index 32f6cdcee4..55908e1002 100644 --- a/themelibrary/src/main/res/values/themes.xml +++ b/themelibrary/src/main/res/values/themes.xml @@ -70,5 +70,6 @@ @style/BlackCustomAlertDialogTheme @color/blackColorPrimaryDark @color/blackColorAuxiliaryTint + \ No newline at end of file From 57d6ef4ecd46d205e1d4e7dcf05ecb1740cee7eb Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sat, 22 Jun 2019 10:48:34 +0500 Subject: [PATCH 06/89] Update AndroidManifest.xml --- app/src/main/AndroidManifest.xml | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9bb4177bb3..2a01aacef8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,22 +18,19 @@ android:networkSecurityConfig="@xml/network_security_config" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" + android:theme="@style/AppTheme" tools:replace="android:name"> - - - @@ -43,57 +40,49 @@ - - + /> + + /> - + + \ No newline at end of file From 569a517276cbfdb3e4295092a3817fb1339dbca5 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Thu, 20 Jun 2019 20:06:35 +0500 Subject: [PATCH 07/89] Changed Colors Added new attribute colorHeadings. --- app/src/main/res/drawable/ic_add_24dp.xml | 2 +- .../main/res/drawable/ic_lock_black_12_dp.xml | 4 ++-- app/src/main/res/layout/emoji_row_item.xml | 2 +- .../res/layout/file_attachments_dialog.xml | 2 +- app/src/main/res/layout/fragment_settings.xml | 22 +++++++++--------- app/src/main/res/layout/item_server.xml | 2 +- .../res/layout/message_attachment_options.xml | 6 ++--- app/src/main/res/layout/message_composer.xml | 4 ++-- app/src/main/res/values/attrs.xml | 1 + app/src/main/res/values/styles.xml | 23 +++++++++++++++---- app/src/main/res/values/themes.xml | 3 ++- themelibrary/src/main/res/values/attrs.xml | 1 + themelibrary/src/main/res/values/themes.xml | 2 ++ 13 files changed, 46 insertions(+), 28 deletions(-) diff --git a/app/src/main/res/drawable/ic_add_24dp.xml b/app/src/main/res/drawable/ic_add_24dp.xml index edca755965..a2e44ba0af 100644 --- a/app/src/main/res/drawable/ic_add_24dp.xml +++ b/app/src/main/res/drawable/ic_add_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_lock_black_12_dp.xml b/app/src/main/res/drawable/ic_lock_black_12_dp.xml index 4ea5abd301..e18f0d1c28 100644 --- a/app/src/main/res/drawable/ic_lock_black_12_dp.xml +++ b/app/src/main/res/drawable/ic_lock_black_12_dp.xml @@ -6,11 +6,11 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/emoji_row_item.xml b/app/src/main/res/layout/emoji_row_item.xml index ee11f43cff..248b3e2737 100644 --- a/app/src/main/res/layout/emoji_row_item.xml +++ b/app/src/main/res/layout/emoji_row_item.xml @@ -7,6 +7,6 @@ android:foreground="?selectableItemBackground" android:layout_gravity="center" android:gravity="center" - android:textColor="?titleTextColor" + android:textColor="?colorPrimaryText" android:textSize="24sp" tools:text="😀" /> diff --git a/app/src/main/res/layout/file_attachments_dialog.xml b/app/src/main/res/layout/file_attachments_dialog.xml index eaf1ee1f8c..db3f9d11aa 100644 --- a/app/src/main/res/layout/file_attachments_dialog.xml +++ b/app/src/main/res/layout/file_attachments_dialog.xml @@ -17,7 +17,7 @@ android:layout_height="wrap_content" android:text="@string/msg_upload_file" style="@style/Base.DialogWindowTitle.AppCompat" - android:textColor="?titleTextColor" + android:textColor="?colorHeadings" android:layout_margin="16dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 229a53c090..5b1b861779 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -50,7 +50,7 @@ android:layout_height="wrap_content" android:layout_marginStart="12dp" android:fontFamily="sans-serif-medium" - android:textColor="?titleTextColor" + android:textColor="?colorHeadings" android:textSize="14sp" android:textStyle="normal" app:layout_constraintEnd_toEndOf="parent" @@ -86,7 +86,7 @@ android:paddingEnd="16dp" android:paddingBottom="8dp" android:text="@string/msg_contact_us" - android:textColor="?titleTextColor" + android:textColor="?colorHeadings" android:textSize="16sp" android:textStyle="normal" app:layout_constraintEnd_toEndOf="parent" @@ -106,7 +106,7 @@ android:paddingEnd="16dp" android:paddingBottom="8dp" android:text="@string/msg_change_theme" - android:textColor="?titleTextColor" + android:textColor="?colorHeadings" android:textSize="16sp" android:textStyle="normal" app:layout_constraintEnd_toEndOf="parent" @@ -125,7 +125,7 @@ android:paddingEnd="16dp" android:paddingBottom="8dp" android:text="@string/msg_language" - android:textColor="?titleTextColor" + android:textColor="?colorHeadings" android:textSize="16sp" android:textStyle="normal" app:layout_constraintEnd_toEndOf="parent" @@ -144,7 +144,7 @@ android:paddingEnd="16dp" android:paddingBottom="8dp" android:text="@string/msg_review_this_app" - android:textColor="?titleTextColor" + android:textColor="?colorHeadings" android:textSize="16sp" android:textStyle="normal" app:layout_constraintEnd_toEndOf="parent" @@ -163,7 +163,7 @@ android:paddingEnd="16dp" android:paddingBottom="8dp" android:text="@string/msg_share_this_app" - android:textColor="?titleTextColor" + android:textColor="?colorHeadings" android:textSize="16sp" android:textStyle="normal" app:layout_constraintEnd_toEndOf="parent" @@ -183,7 +183,7 @@ android:paddingEnd="16dp" android:paddingBottom="8dp" android:text="@string/msg_administration" - android:textColor="?titleTextColor" + android:textColor="?colorHeadings" android:textSize="16sp" android:textStyle="normal" android:visibility="gone" @@ -205,7 +205,7 @@ android:paddingEnd="16dp" android:paddingBottom="8dp" android:text="@string/msg_license" - android:textColor="?titleTextColor" + android:textColor="?colorHeadings" android:textSize="16sp" android:textStyle="normal" app:layout_constraintEnd_toEndOf="parent" @@ -223,7 +223,7 @@ android:paddingEnd="16dp" android:paddingBottom="8dp" android:text="@string/msg_app_version" - android:textColor="?titleTextColor" + android:textColor="?colorHeadings" android:textSize="16sp" android:textStyle="normal" app:layout_constraintEnd_toEndOf="parent" @@ -241,7 +241,7 @@ android:paddingEnd="16dp" android:paddingBottom="8dp" android:text="@string/msg_server_version" - android:textColor="?titleTextColor" + android:textColor="?colorHeadings" android:textSize="16sp" android:textStyle="normal" app:layout_constraintEnd_toEndOf="parent" @@ -266,7 +266,7 @@ android:layout_height="wrap_content" android:fontFamily="sans-serif-medium" android:text="@string/msg_send_analytics" - android:textColor="?titleTextColor" + android:textColor="?colorHeadings" android:textSize="16sp" android:textStyle="normal" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/item_server.xml b/app/src/main/res/layout/item_server.xml index e72818d6f6..b74194bbe8 100644 --- a/app/src/main/res/layout/item_server.xml +++ b/app/src/main/res/layout/item_server.xml @@ -26,7 +26,7 @@ android:layout_marginEnd="12dp" android:fontFamily="sans-serif-medium" android:maxLines="1" - android:textColor="?titleTextColor" + android:textColor="?colorHeadings" android:textSize="16sp" android:textStyle="normal" app:layout_constraintStart_toEndOf="@+id/image_server" diff --git a/app/src/main/res/layout/message_attachment_options.xml b/app/src/main/res/layout/message_attachment_options.xml index 94c62e7561..51ba286e1e 100644 --- a/app/src/main/res/layout/message_attachment_options.xml +++ b/app/src/main/res/layout/message_attachment_options.xml @@ -8,7 +8,7 @@ + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 24b737e9ca..5af36bb9c3 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -6,7 +6,7 @@ wrap_content 24sp sans-serif - ?titleTextColor + ?colorHeadings bold @@ -163,7 +163,7 @@ 18sp sans-serif bold - ?titleTextColor + ?colorHeadings @@ -219,12 +219,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/colors.xml b/themelibrary/src/main/res/values/colors.xml index 02a2c2b134..73ba827895 100644 --- a/themelibrary/src/main/res/values/colors.xml +++ b/themelibrary/src/main/res/values/colors.xml @@ -92,4 +92,20 @@ #090909 #cdcdcd + + + @color/darkColorAccent + @color/darkColorPrimaryText + @color/darkColorPrimary + @color/darkColorDescriptiveText + @color/darkColorBackground + + + + @color/blackColorAccent + @color/blackColorPrimaryText + @color/blackColorPrimary + @color/blackColorDescriptiveText + @color/blackColorBackground + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml index f2b50b884b..5ecdd9134a 100644 --- a/themelibrary/src/main/res/values/themes.xml +++ b/themelibrary/src/main/res/values/themes.xml @@ -37,6 +37,7 @@ @color/darkColorAuxiliaryTint + + + \ No newline at end of file From c8d183e3377c546faecead927833fd292f6789a2 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sun, 23 Jun 2019 21:16:36 +0500 Subject: [PATCH 16/89] [FIX] Fixed status and navigation bar theming issue. --- app/src/main/AndroidManifest.xml | 4 + .../android/dagger/module/ActivityBuilder.kt | 7 +- .../main/presentation/MainNavigator.kt | 11 +- .../android/thememanager/BaseActivity.kt | 2 +- .../thememanager/di/ThemesFragmentModule.kt | 17 --- .../android/thememanager/ui/ThemesActivity.kt | 59 ++++++++++ .../android/thememanager/ui/ThemesFragment.kt | 102 ------------------ app/src/main/res/layout/fragment_theme.xml | 2 +- 8 files changed, 74 insertions(+), 130 deletions(-) delete mode 100644 app/src/main/java/chat/rocket/android/thememanager/di/ThemesFragmentModule.kt create mode 100644 app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt delete mode 100644 app/src/main/java/chat/rocket/android/thememanager/ui/ThemesFragment.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2a01aacef8..d6704be33a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -78,6 +78,10 @@ android:name=".chatinformation.ui.MessageInfoActivity" android:windowSoftInputMode="adjustResize|stateAlwaysHidden" /> + + + setupRecyclerView(themes) + }) + } + + private fun saveTheme(theme:Theme){ + viewModel.saveTheme(theme.toString()) + reloadFragment() + } + + private fun reloadFragment() { + recreate() + } + + private fun setupToolbar() { + with((this as AppCompatActivity)) { + with(toolbar) { + setSupportActionBar(this) + title = getString(R.string.title_change_theme) + setNavigationIcon(R.drawable.ic_arrow_back_white_24dp) + setNavigationOnClickListener { onBackPressed() } + } + } + } + + private fun setupRecyclerView(themes : List) { + adapter = ThemesAdapter(themes, listener = {theme:Theme -> saveTheme(theme)}) + recycler_view.layoutManager = LinearLayoutManager(this) + recycler_view.addItemDecoration(DividerItemDecoration(this, DividerItemDecoration.HORIZONTAL)) + recycler_view.adapter = adapter + } +} diff --git a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesFragment.kt b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesFragment.kt deleted file mode 100644 index 45bf3e7958..0000000000 --- a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesFragment.kt +++ /dev/null @@ -1,102 +0,0 @@ -package chat.rocket.android.thememanager.ui - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.appcompat.app.AppCompatActivity -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentActivity -import androidx.lifecycle.Observer -import androidx.lifecycle.ViewModelProviders -import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager -import chat.rocket.android.R -import chat.rocket.android.thememanager.adapter.ThemesAdapter -import chat.rocket.android.thememanager.viewmodel.ThemesViewModel -import chat.rocket.android.thememanager.viewmodel.ThemesViewModelFactory -import chat.rocket.android.util.extensions.inflate -import chat.rocket.android.util.extensions.ui -import dagger.android.support.AndroidSupportInjection -import kotlinx.android.synthetic.main.app_bar.* -import kotlinx.android.synthetic.main.fragment_theme.* -import javax.inject.Inject -import chat.rocket.android.thememanager.model.Theme - -internal const val TAG_THEME_FRAGMENT = "ThemesFragment" - -fun newInstance() = ThemesFragment() - -class ThemesFragment : Fragment() { - @Inject - lateinit var factory: ThemesViewModelFactory - private lateinit var viewModel: ThemesViewModel - private lateinit var adapter: ThemesAdapter - var currentTheme: String = "AppTheme" - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - AndroidSupportInjection.inject(this) - } - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - viewModel = ViewModelProviders.of(this, factory).get(ThemesViewModel::class.java) - currentTheme = viewModel.getCurrentTheme()!! - applyTheme(activity) - return container?.inflate(R.layout.fragment_theme) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?){ - super.onViewCreated(view, savedInstanceState) - setupToolbar() - subscribeUi() - } - - private fun subscribeUi() { - viewModel.getThemes().observe(this, Observer { themes -> - setupRecyclerView(themes) - }) - } - - private fun applyTheme(activity: FragmentActivity?){ - when(currentTheme){ - "AppTheme" -> activity?.setTheme(R.style.AppTheme) - "DarkTheme" -> activity?.setTheme(R.style.DarkTheme) - "BlackTheme" -> activity?.setTheme(R.style.BlackTheme) - } - } - - private fun saveTheme(theme:Theme){ - viewModel.saveTheme(theme.toString()) - reloadFragment() - } - - private fun reloadFragment() { - fragmentManager?.beginTransaction()?.detach(this)?.attach(this)?.commit() - } - - private fun setupToolbar() { - with((activity as AppCompatActivity)) { - with(toolbar) { - setSupportActionBar(this) - title = getString(R.string.title_change_theme) - setNavigationIcon(R.drawable.ic_arrow_back_white_24dp) - setNavigationOnClickListener { activity?.onBackPressed() } - } - } - } - - private fun setupRecyclerView(themes : List) { - ui { - adapter = ThemesAdapter(themes, listener = {theme:Theme -> saveTheme(theme)}) - recycler_view.layoutManager = LinearLayoutManager(context) - recycler_view.addItemDecoration(DividerItemDecoration(it, DividerItemDecoration.HORIZONTAL)) - recycler_view.adapter = adapter - } - } - -} diff --git a/app/src/main/res/layout/fragment_theme.xml b/app/src/main/res/layout/fragment_theme.xml index 0c37106fd2..682180bd48 100644 --- a/app/src/main/res/layout/fragment_theme.xml +++ b/app/src/main/res/layout/fragment_theme.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="?android:colorBackground" - tools:context=".thememanager.ui.ThemesFragment"> + tools:context=".thememanager.ui.ThemesActivity"> Date: Sun, 23 Jun 2019 23:28:04 +0500 Subject: [PATCH 17/89] [Improvement] Provided Smooth Theme Switching. Implemented fade in and fade out animation to provide smoother theme switches. --- .../rocket/android/thememanager/ui/ThemesActivity.kt | 10 +++++++++- app/src/main/res/anim/fade_in.xml | 5 +++++ app/src/main/res/anim/fade_out.xml | 5 +++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/anim/fade_in.xml create mode 100644 app/src/main/res/anim/fade_out.xml diff --git a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt index b1274eff61..60ace754cb 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt @@ -1,5 +1,7 @@ package chat.rocket.android.thememanager.ui +import android.content.Intent +import android.os.Build import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Observer @@ -36,7 +38,13 @@ class ThemesActivity : BaseActivity() { } private fun reloadFragment() { - recreate() + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + startActivity(Intent(this, ThemesActivity::class.java)) + overridePendingTransition(R.anim.fade_in, R.anim.fade_out) + finish() + } else { + recreate() + } } private fun setupToolbar() { diff --git a/app/src/main/res/anim/fade_in.xml b/app/src/main/res/anim/fade_in.xml new file mode 100644 index 0000000000..0ff06a3083 --- /dev/null +++ b/app/src/main/res/anim/fade_in.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/anim/fade_out.xml b/app/src/main/res/anim/fade_out.xml new file mode 100644 index 0000000000..9b71a9421a --- /dev/null +++ b/app/src/main/res/anim/fade_out.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file From 5fc8e62800f4e0943a5178446b61da943dd549f0 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Mon, 24 Jun 2019 12:19:25 +0500 Subject: [PATCH 18/89] [FIX] Fixed issue with message responses. --- app/src/main/res/layout/activity_chat_room.xml | 4 ++-- app/src/main/res/values/attrs.xml | 1 + app/src/main/res/values/themes.xml | 1 + themelibrary/src/main/res/values/attrs.xml | 1 + themelibrary/src/main/res/values/themes.xml | 2 ++ 5 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/layout/activity_chat_room.xml b/app/src/main/res/layout/activity_chat_room.xml index e53bd2c4c2..2f438de848 100644 --- a/app/src/main/res/layout/activity_chat_room.xml +++ b/app/src/main/res/layout/activity_chat_room.xml @@ -3,10 +3,10 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:theme="@style/AppTheme" + android:theme="?appTheme" android:background="?android:colorBackground" tools:context=".chatroom.ui.ChatRoomActivity"> - +. diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index d188e4ab3c..c701266be6 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -24,4 +24,5 @@ + \ 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 6baf1782da..722546cd13 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -42,5 +42,6 @@ @style/CustomAlertDialogTheme @color/colorPrimaryDark @color/colorAuxiliaryTint + @style/AppTheme \ No newline at end of file diff --git a/themelibrary/src/main/res/values/attrs.xml b/themelibrary/src/main/res/values/attrs.xml index f20bf228df..ba308701c5 100644 --- a/themelibrary/src/main/res/values/attrs.xml +++ b/themelibrary/src/main/res/values/attrs.xml @@ -24,4 +24,5 @@ + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml index 5ecdd9134a..ab1e37e713 100644 --- a/themelibrary/src/main/res/values/themes.xml +++ b/themelibrary/src/main/res/values/themes.xml @@ -35,6 +35,7 @@ @style/DarkCustomAlertDialogTheme @color/darkColorPrimaryDark @color/darkColorAuxiliaryTint + @style/DarkTheme @@ -73,6 +74,7 @@ @style/BlackCustomAlertDialogTheme @color/blackColorPrimaryDark @color/blackColorAuxiliaryTint + @style/BlackTheme From 89481196c33b61d32141e259fc01da9e3c8ec6d8 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Mon, 24 Jun 2019 16:40:18 +0500 Subject: [PATCH 19/89] [FIX] Changing drawable colors using Theme Utility across app. --- .../authentication/login/ui/LoginFragment.kt | 7 +++---- .../ui/RegisterUsernameFragment.kt | 5 +++-- .../resetpassword/ui/ResetPasswordFragment.kt | 3 ++- .../authentication/server/ui/ServerFragment.kt | 3 ++- .../authentication/signup/ui/SignupFragment.kt | 3 ++- .../authentication/twofactor/ui/TwoFAFragment.kt | 3 ++- .../chatdetails/adapter/OptionViewHolder.kt | 3 ++- .../android/chatdetails/ui/ChatDetailsFragment.kt | 3 ++- .../chatroom/adapter/AttachmentViewHolder.kt | 3 ++- .../chatroom/adapter/MessageReactionsAdapter.kt | 3 ++- .../android/chatroom/adapter/MessageViewHolder.kt | 2 +- .../chat/rocket/android/dagger/module/AppModule.kt | 3 ++- .../chat/rocket/android/helper/MessageParser.kt | 5 +++-- .../android/main/presentation/MainNavigator.kt | 1 - .../rocket/android/profile/ui/ProfileFragment.kt | 3 ++- .../java/chat/rocket/android/push/PushManager.kt | 3 ++- .../rocket/android/thememanager/util/ThemeUtil.kt | 14 ++++++++++---- .../chat/rocket/android/util/extensions/View.kt | 3 ++- .../res/drawable/ic_action_message_copy_24dp.xml | 2 +- .../res/drawable/ic_action_message_edit_24dp.xml | 2 +- .../ic_action_message_info_outline_24dp.xml | 2 +- .../res/drawable/ic_action_message_link_24dp.xml | 2 +- .../res/drawable/ic_action_message_quote_24dp.xml | 2 +- .../res/drawable/ic_action_message_reply_24dp.xml | 2 +- .../res/drawable/ic_action_message_report_24dp.xml | 2 +- app/src/main/res/drawable/ic_activity_20dp.xml | 1 + app/src/main/res/drawable/ic_at_black_20dp.xml | 6 +++--- app/src/main/res/drawable/ic_close_gray_24dp.xml | 2 +- app/src/main/res/drawable/ic_email_black_20dp.xml | 4 ++-- app/src/main/res/drawable/ic_favorites_20dp.xml | 1 + app/src/main/res/drawable/ic_filter_20dp.xml | 1 + .../main/res/drawable/ic_group_by_type_20dp.xml | 1 + app/src/main/res/drawable/ic_hashtag_16dp.xml | 1 + .../main/res/drawable/ic_hashtag_black_12dp.xml | 8 ++++---- app/src/main/res/drawable/ic_lock_black_12_dp.xml | 4 ++-- app/src/main/res/drawable/ic_person_black_20dp.xml | 2 +- app/src/main/res/drawable/ic_unread_20dp.xml | 1 + app/src/main/res/drawable/ic_user_16dp.xml | 1 + .../main/res/layout/activity_authentication.xml | 2 +- app/src/main/res/layout/activity_main.xml | 2 ++ app/src/main/res/layout/activity_password.xml | 2 +- app/src/main/res/layout/activity_web_view.xml | 1 + app/src/main/res/layout/app_bar.xml | 2 +- app/src/main/res/layout/app_bar_chat_room.xml | 2 +- app/src/main/res/layout/app_bar_chat_rooms.xml | 1 + app/src/main/res/layout/app_bar_password.xml | 2 +- app/src/main/res/layout/avatar.xml | 1 + app/src/main/res/layout/avatar_profile.xml | 1 + .../bottom_sheet_fragment_directory_sorting.xml | 1 + .../res/layout/bottom_sheet_fragment_servers.xml | 2 +- .../res/layout/bottom_sheet_fragment_sort_by.xml | 1 + .../res/layout/fragment_authentication_server.xml | 5 +---- app/src/main/res/layout/message_action_bar.xml | 2 +- app/src/main/res/values/attrs.xml | 2 ++ app/src/main/res/values/colors.xml | 4 ++-- app/src/main/res/values/styles.xml | 2 ++ app/src/main/res/values/themes.xml | 2 ++ themelibrary/src/main/res/values/attrs.xml | 2 ++ themelibrary/src/main/res/values/colors.xml | 4 ++++ themelibrary/src/main/res/values/themes.xml | 4 ++++ 60 files changed, 105 insertions(+), 59 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt b/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt index 98169b957d..bd911782db 100644 --- a/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt @@ -20,6 +20,7 @@ import chat.rocket.android.helper.getCredentials import chat.rocket.android.helper.hasCredentialsSupport import chat.rocket.android.helper.requestStoredCredentials import chat.rocket.android.helper.saveCredentials +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extension.asObservable import chat.rocket.android.util.extensions.clearLightStatusBar import chat.rocket.android.util.extensions.inflate @@ -167,7 +168,7 @@ class LoginFragment : Fragment(), LoginView { override fun enableButtonLogin() { context?.let { ViewCompat.setBackgroundTintList( - button_log_in, ContextCompat.getColorStateList(it, R.color.colorAccent) + button_log_in, ContextCompat.getColorStateList(it, ThemeUtil.getThemeColorResource(R.attr.colorAccent)) ) button_log_in.isEnabled = true } @@ -187,9 +188,7 @@ class LoginFragment : Fragment(), LoginView { override fun enableButtonForgetPassword() { context?.let { button_forgot_your_password.isEnabled = true - button_forgot_your_password.setTextColor( - ContextCompat.getColorStateList(it, R.color.colorAccent) - ) + button_forgot_your_password.setTextColor(ThemeUtil.getThemeColor(R.attr.colorAccent)) } } diff --git a/app/src/main/java/chat/rocket/android/authentication/registerusername/ui/RegisterUsernameFragment.kt b/app/src/main/java/chat/rocket/android/authentication/registerusername/ui/RegisterUsernameFragment.kt index 0ddd217bd4..ffc1560202 100644 --- a/app/src/main/java/chat/rocket/android/authentication/registerusername/ui/RegisterUsernameFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/registerusername/ui/RegisterUsernameFragment.kt @@ -15,6 +15,7 @@ import chat.rocket.android.analytics.AnalyticsManager import chat.rocket.android.analytics.event.ScreenViewEvent import chat.rocket.android.authentication.registerusername.presentation.RegisterUsernamePresenter import chat.rocket.android.authentication.registerusername.presentation.RegisterUsernameView +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extension.asObservable import chat.rocket.android.util.extensions.inflate import chat.rocket.android.util.extensions.showKeyboard @@ -89,7 +90,7 @@ class RegisterUsernameFragment : Fragment(), RegisterUsernameView { override fun enableButtonUseThisUsername() { context?.let { ViewCompat.setBackgroundTintList( - button_use_this_username, ContextCompat.getColorStateList(it, R.color.colorAccent) + button_use_this_username, ContextCompat.getColorStateList(it, ThemeUtil.getThemeColorResource(R.attr.colorAccent)) ) button_use_this_username.isEnabled = true } @@ -139,7 +140,7 @@ class RegisterUsernameFragment : Fragment(), RegisterUsernameView { ui { val atDrawable = DrawableHelper.getDrawableFromId(R.drawable.ic_at_black_20dp, it) DrawableHelper.wrapDrawable(atDrawable) - DrawableHelper.tintDrawable(atDrawable, it, R.color.colorDrawableTintGrey) + DrawableHelper.tintDrawable(atDrawable, it, ThemeUtil.getThemeColorResource(R.attr.colorDrawableTintEditText)) DrawableHelper.compoundStartDrawable(text_username, atDrawable) } } diff --git a/app/src/main/java/chat/rocket/android/authentication/resetpassword/ui/ResetPasswordFragment.kt b/app/src/main/java/chat/rocket/android/authentication/resetpassword/ui/ResetPasswordFragment.kt index 61b5d09c25..29811a59fa 100644 --- a/app/src/main/java/chat/rocket/android/authentication/resetpassword/ui/ResetPasswordFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/resetpassword/ui/ResetPasswordFragment.kt @@ -13,6 +13,7 @@ import chat.rocket.android.analytics.AnalyticsManager import chat.rocket.android.analytics.event.ScreenViewEvent import chat.rocket.android.authentication.resetpassword.presentation.ResetPasswordPresenter import chat.rocket.android.authentication.resetpassword.presentation.ResetPasswordView +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extension.asObservable import chat.rocket.android.util.extensions.inflate import chat.rocket.android.util.extensions.isEmail @@ -74,7 +75,7 @@ class ResetPasswordFragment : Fragment(), ResetPasswordView { override fun enableButtonConnect() { context?.let { ViewCompat.setBackgroundTintList( - button_reset_password, ContextCompat.getColorStateList(it, R.color.colorAccent) + button_reset_password, ContextCompat.getColorStateList(it, ThemeUtil.getThemeColorResource(R.attr.colorAccent)) ) button_reset_password.isEnabled = true } diff --git a/app/src/main/java/chat/rocket/android/authentication/server/ui/ServerFragment.kt b/app/src/main/java/chat/rocket/android/authentication/server/ui/ServerFragment.kt index adeebc8d20..d639d6c1ca 100644 --- a/app/src/main/java/chat/rocket/android/authentication/server/ui/ServerFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/server/ui/ServerFragment.kt @@ -25,6 +25,7 @@ import chat.rocket.android.authentication.server.presentation.ServerPresenter import chat.rocket.android.authentication.server.presentation.ServerView import chat.rocket.android.authentication.ui.AuthenticationActivity import chat.rocket.android.helper.KeyboardHelper +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extension.asObservable import chat.rocket.android.util.extensions.hintContent import chat.rocket.android.util.extensions.inflate @@ -147,7 +148,7 @@ class ServerFragment : Fragment(), ServerView { override fun enableButtonConnect() { context?.let { ViewCompat.setBackgroundTintList( - button_connect, ContextCompat.getColorStateList(it, R.color.colorAccent) + button_connect, ContextCompat.getColorStateList(it, ThemeUtil.getThemeColorResource(R.attr.colorAccent)) ) button_connect.isEnabled = true } diff --git a/app/src/main/java/chat/rocket/android/authentication/signup/ui/SignupFragment.kt b/app/src/main/java/chat/rocket/android/authentication/signup/ui/SignupFragment.kt index fcf39174fb..141d542023 100644 --- a/app/src/main/java/chat/rocket/android/authentication/signup/ui/SignupFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/signup/ui/SignupFragment.kt @@ -16,6 +16,7 @@ import chat.rocket.android.analytics.event.ScreenViewEvent import chat.rocket.android.authentication.signup.presentation.SignupPresenter import chat.rocket.android.authentication.signup.presentation.SignupView import chat.rocket.android.helper.saveCredentials +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extension.asObservable import chat.rocket.android.util.extensions.inflate import chat.rocket.android.util.extensions.isEmail @@ -89,7 +90,7 @@ class SignupFragment : Fragment(), SignupView { override fun enableButtonRegister() { context?.let { ViewCompat.setBackgroundTintList( - button_register, ContextCompat.getColorStateList(it, R.color.colorAccent) + button_register, ContextCompat.getColorStateList(it, ThemeUtil.getThemeColorResource(R.attr.colorAccent)) ) button_register.isEnabled = true } diff --git a/app/src/main/java/chat/rocket/android/authentication/twofactor/ui/TwoFAFragment.kt b/app/src/main/java/chat/rocket/android/authentication/twofactor/ui/TwoFAFragment.kt index 7f01393176..17946dcd53 100644 --- a/app/src/main/java/chat/rocket/android/authentication/twofactor/ui/TwoFAFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/twofactor/ui/TwoFAFragment.kt @@ -15,6 +15,7 @@ import chat.rocket.android.analytics.AnalyticsManager import chat.rocket.android.analytics.event.ScreenViewEvent import chat.rocket.android.authentication.twofactor.presentation.TwoFAPresenter import chat.rocket.android.authentication.twofactor.presentation.TwoFAView +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extension.asObservable import chat.rocket.android.util.extensions.inflate import chat.rocket.android.util.extensions.showToast @@ -86,7 +87,7 @@ class TwoFAFragment : Fragment(), TwoFAView { override fun enableButtonConfirm() { context?.let { ViewCompat.setBackgroundTintList( - button_confirm, ContextCompat.getColorStateList(it, R.color.colorAccent) + button_confirm, ContextCompat.getColorStateList(it, ThemeUtil.getThemeColorResource(R.attr.colorAccent)) ) button_confirm.isEnabled = true } diff --git a/app/src/main/java/chat/rocket/android/chatdetails/adapter/OptionViewHolder.kt b/app/src/main/java/chat/rocket/android/chatdetails/adapter/OptionViewHolder.kt index a9cec0d045..0e3a029385 100644 --- a/app/src/main/java/chat/rocket/android/chatdetails/adapter/OptionViewHolder.kt +++ b/app/src/main/java/chat/rocket/android/chatdetails/adapter/OptionViewHolder.kt @@ -7,6 +7,7 @@ import android.widget.TextView import chat.rocket.android.R import chat.rocket.android.chatdetails.domain.Option import chat.rocket.android.chatrooms.adapter.ViewHolder +import chat.rocket.android.thememanager.util.ThemeUtil import kotlinx.android.synthetic.main.item_detail_option.view.* class OptionViewHolder( @@ -24,7 +25,7 @@ class OptionViewHolder( val drawable = DrawableHelper.getDrawableFromId(option.icon, itemView.context) drawable.let { image -> val mutateDrawable = DrawableHelper.wrapDrawable(image).mutate() - DrawableHelper.tintDrawable(mutateDrawable, itemView.context, R.color.colorPrimaryText) + DrawableHelper.tintDrawable(mutateDrawable, itemView.context, ThemeUtil.getThemeColorResource(R.attr.colorPrimaryText)) view.setImageDrawable(mutateDrawable) } } diff --git a/app/src/main/java/chat/rocket/android/chatdetails/ui/ChatDetailsFragment.kt b/app/src/main/java/chat/rocket/android/chatdetails/ui/ChatDetailsFragment.kt index 2e957adfb4..cdabe5fc12 100644 --- a/app/src/main/java/chat/rocket/android/chatdetails/ui/ChatDetailsFragment.kt +++ b/app/src/main/java/chat/rocket/android/chatdetails/ui/ChatDetailsFragment.kt @@ -21,6 +21,7 @@ import chat.rocket.android.chatdetails.viewmodel.ChatDetailsViewModelFactory import chat.rocket.android.chatroom.ui.ChatRoomActivity import chat.rocket.android.server.domain.CurrentServerRepository import chat.rocket.android.server.domain.GetSettingsInteractor +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extensions.inflate import chat.rocket.android.util.extensions.showToast import chat.rocket.android.util.extensions.ui @@ -194,7 +195,7 @@ class ChatDetailsFragment : Fragment(), ChatDetailsView { drawable?.let { val wrappedDrawable = DrawableHelper.wrapDrawable(it) val mutableDrawable = wrappedDrawable.mutate() - DrawableHelper.tintDrawable(mutableDrawable, context!!, R.color.colorPrimary) + DrawableHelper.tintDrawable(mutableDrawable, context!!, ThemeUtil.getThemeColorResource(R.attr.colorPrimary)) DrawableHelper.compoundStartDrawable(name, mutableDrawable) } } diff --git a/app/src/main/java/chat/rocket/android/chatroom/adapter/AttachmentViewHolder.kt b/app/src/main/java/chat/rocket/android/chatroom/adapter/AttachmentViewHolder.kt index 2c5ed9fdb8..eec6e38e03 100644 --- a/app/src/main/java/chat/rocket/android/chatroom/adapter/AttachmentViewHolder.kt +++ b/app/src/main/java/chat/rocket/android/chatroom/adapter/AttachmentViewHolder.kt @@ -15,6 +15,7 @@ import chat.rocket.android.chatroom.uimodel.AttachmentUiModel import chat.rocket.android.emoji.EmojiReactionListener import chat.rocket.android.helper.ImageHelper import chat.rocket.android.player.PlayerActivity +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extensions.content import chat.rocket.android.util.extensions.isVisible import chat.rocket.android.util.extensions.openTabbedUrl @@ -42,7 +43,7 @@ class AttachmentViewHolder( itemView.play_button ) - private val quoteBarColor = ContextCompat.getColor(itemView.context, R.color.quoteBar) + private val quoteBarColor = ThemeUtil.getThemeColor(R.attr.colorQuoteBar) init { with(itemView) { diff --git a/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageReactionsAdapter.kt b/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageReactionsAdapter.kt index 87da4d9576..699bff866a 100644 --- a/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageReactionsAdapter.kt +++ b/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageReactionsAdapter.kt @@ -14,6 +14,7 @@ import chat.rocket.android.emoji.EmojiKeyboardListener import chat.rocket.android.emoji.EmojiPickerPopup import chat.rocket.android.emoji.EmojiReactionListener import chat.rocket.android.infrastructure.LocalRepository +import chat.rocket.android.thememanager.util.ThemeUtil import com.bumptech.glide.Glide import kotlinx.android.synthetic.main.item_reaction.view.* import java.util.concurrent.CopyOnWriteArrayList @@ -114,7 +115,7 @@ class MessageReactionsAdapter : RecyclerView.Adapter() val myself = localRepository.get(LocalRepository.CURRENT_USERNAME_KEY) if (reaction.usernames.contains(myself)) { val context = itemView.context - text_count.setTextColor(ContextCompat.getColor(context, R.color.colorAccent)) + text_count.setTextColor(ThemeUtil.getThemeColor(R.attr.colorAccent)) } text_count.text = reaction.count.toString() diff --git a/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt b/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt index 79e5bd55fe..8a8e9567d7 100644 --- a/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt +++ b/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt @@ -59,7 +59,7 @@ class MessageViewHolder( button_join_video_call.setOnClickListener { joinVideoCallListener(it) } // text_content.setTextColor(if (data.isTemporary) Color.GRAY else Color.BLACK) - text_content.setTextColor(if (data.isTemporary) ThemeUtil.getThemeAttribute(R.attr.colorControlText) else ThemeUtil.getThemeAttribute(R.attr.colorPrimaryText)) + text_content.setTextColor(if (data.isTemporary) ThemeUtil.getThemeColor(R.attr.colorControlText) else ThemeUtil.getThemeColor(R.attr.colorPrimaryText)) data.message.let { text_edit_indicator.isVisible = !it.isSystemMessage() && it.editedBy != null diff --git a/app/src/main/java/chat/rocket/android/dagger/module/AppModule.kt b/app/src/main/java/chat/rocket/android/dagger/module/AppModule.kt index 536192cd8d..2297abaa4e 100644 --- a/app/src/main/java/chat/rocket/android/dagger/module/AppModule.kt +++ b/app/src/main/java/chat/rocket/android/dagger/module/AppModule.kt @@ -59,6 +59,7 @@ import chat.rocket.android.server.infrastructure.SharedPrefsBasicAuthRepository import chat.rocket.android.server.infrastructure.SharedPrefsConnectingServerRepository import chat.rocket.android.server.infrastructure.SharedPrefsCurrentServerRepository import chat.rocket.android.server.infrastructure.SharedPrefsSortingAndGroupingRepository +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.AppJsonAdapterFactory import chat.rocket.android.util.BasicAuthenticatorInterceptor import chat.rocket.android.util.HttpLoggingInterceptor @@ -292,7 +293,7 @@ class AppModule { .theme( SpannableTheme.builder() .blockMargin(0) - .linkColor(res.getColor(R.color.colorAccent)) + .linkColor(ThemeUtil.getThemeColor(R.attr.colorAccent)) .build() ) .build() diff --git a/app/src/main/java/chat/rocket/android/helper/MessageParser.kt b/app/src/main/java/chat/rocket/android/helper/MessageParser.kt index e91faac4f8..53bac97cd0 100644 --- a/app/src/main/java/chat/rocket/android/helper/MessageParser.kt +++ b/app/src/main/java/chat/rocket/android/helper/MessageParser.kt @@ -19,6 +19,7 @@ import chat.rocket.android.emoji.EmojiRepository import chat.rocket.android.emoji.EmojiTypefaceSpan import chat.rocket.android.server.domain.PublicSettings import chat.rocket.android.server.domain.useRealName +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extensions.openTabbedUrl import chat.rocket.common.model.SimpleUser import chat.rocket.core.model.Message @@ -142,10 +143,10 @@ class MessageParser @Inject constructor( private val currentUser: String? ) : AbstractVisitor() { - private val othersTextColor = ResourcesCompat.getColor(context.resources, R.color.colorAccent, context.theme) + private val othersTextColor = ThemeUtil.getThemeColor(R.attr.colorAccent) private val othersBackgroundColor = ResourcesCompat.getColor(context.resources, android.R.color.transparent, context.theme) private val myselfTextColor = ResourcesCompat.getColor(context.resources, R.color.colorWhite, context.theme) - private val myselfBackgroundColor = ResourcesCompat.getColor(context.resources, R.color.colorAccent, context.theme) + private val myselfBackgroundColor = ThemeUtil.getThemeColor(R.attr.colorAccent) private val padding = context.resources.getDimensionPixelSize(R.dimen.padding_mention).toFloat() private val radius = context.resources.getDimensionPixelSize(R.dimen.radius_mention).toFloat() diff --git a/app/src/main/java/chat/rocket/android/main/presentation/MainNavigator.kt b/app/src/main/java/chat/rocket/android/main/presentation/MainNavigator.kt index 622ba669eb..8f50656fbb 100644 --- a/app/src/main/java/chat/rocket/android/main/presentation/MainNavigator.kt +++ b/app/src/main/java/chat/rocket/android/main/presentation/MainNavigator.kt @@ -52,7 +52,6 @@ class MainNavigator(internal val activity: MainActivity) { fun toChangeTheme() { activity.startActivity(Intent(activity, ThemesActivity::class.java)) - activity.finish() } fun toAdminPanel(webPageUrl: String, userToken: String) { diff --git a/app/src/main/java/chat/rocket/android/profile/ui/ProfileFragment.kt b/app/src/main/java/chat/rocket/android/profile/ui/ProfileFragment.kt index a8d337c7d7..9562a8c597 100644 --- a/app/src/main/java/chat/rocket/android/profile/ui/ProfileFragment.kt +++ b/app/src/main/java/chat/rocket/android/profile/ui/ProfileFragment.kt @@ -28,6 +28,7 @@ import chat.rocket.android.helper.AndroidPermissionsHelper.hasCameraPermission import chat.rocket.android.main.ui.MainActivity import chat.rocket.android.profile.presentation.ProfilePresenter import chat.rocket.android.profile.presentation.ProfileView +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extension.asObservable import chat.rocket.android.util.extension.dispatchImageSelection import chat.rocket.android.util.extension.dispatchTakePicture @@ -268,7 +269,7 @@ class ProfileFragment : Fragment(), ProfileView, ActionMode.Callback { val drawables = arrayOf(personDrawable, atDrawable, emailDrawable) DrawableHelper.wrapDrawables(drawables) - DrawableHelper.tintDrawables(drawables, this, R.color.colorDrawableTintGrey) + DrawableHelper.tintDrawables(drawables, this, ThemeUtil.getThemeColorResource(R.attr.colorDrawableTintEditText)) DrawableHelper.compoundDrawables( arrayOf(text_name, text_username, text_email), drawables ) diff --git a/app/src/main/java/chat/rocket/android/push/PushManager.kt b/app/src/main/java/chat/rocket/android/push/PushManager.kt index efd3b84e6c..7027b3db37 100644 --- a/app/src/main/java/chat/rocket/android/push/PushManager.kt +++ b/app/src/main/java/chat/rocket/android/push/PushManager.kt @@ -26,6 +26,7 @@ import chat.rocket.android.server.domain.GetAccountInteractor import chat.rocket.android.server.domain.GetSettingsInteractor import chat.rocket.android.server.domain.siteName import chat.rocket.android.server.ui.changeServerIntent +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.common.model.RoomType import chat.rocket.common.model.roomTypeOf import com.squareup.moshi.Json @@ -367,7 +368,7 @@ class PushManager @Inject constructor( with(this) { setAutoCancel(true) setShowWhen(true) - color = ContextCompat.getColor(context, R.color.colorPrimary) + color = ThemeUtil.getThemeColor(R.attr.colorPrimary) setDefaults(Notification.DEFAULT_ALL) setSmallIcon(smallIcon) setSound(alarmSound) diff --git a/app/src/main/java/chat/rocket/android/thememanager/util/ThemeUtil.kt b/app/src/main/java/chat/rocket/android/thememanager/util/ThemeUtil.kt index 097280fc82..86b284bd53 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/util/ThemeUtil.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/util/ThemeUtil.kt @@ -8,16 +8,22 @@ class ThemeUtil{ companion object { @JvmStatic - private lateinit var theme : Resources.Theme + private lateinit var theme: Resources.Theme private val typedValue: TypedValue = TypedValue() private val resolveRefs: Boolean = true - fun setTheme(theme : Resources.Theme){ + fun setTheme(theme: Resources.Theme) { this.theme = theme } - fun getThemeAttribute( @AttrRes attrColor: Int) : Int{ + fun getThemeColor(@AttrRes attrColor: Int): Int { theme.resolveAttribute(attrColor, typedValue, resolveRefs) return typedValue.data - }} + } + + fun getThemeColorResource(@AttrRes attrColor: Int): Int { + theme.resolveAttribute(attrColor, typedValue, resolveRefs) + return typedValue.resourceId + } + } } diff --git a/app/src/main/java/chat/rocket/android/util/extensions/View.kt b/app/src/main/java/chat/rocket/android/util/extensions/View.kt index 55f68eb223..eec68f3d80 100644 --- a/app/src/main/java/chat/rocket/android/util/extensions/View.kt +++ b/app/src/main/java/chat/rocket/android/util/extensions/View.kt @@ -6,6 +6,7 @@ import androidx.core.content.res.ResourcesCompat import android.view.View import androidx.core.view.isVisible import chat.rocket.android.R +import chat.rocket.android.thememanager.util.ThemeUtil import timber.log.Timber fun View.openTabbedUrl(url: String?) { @@ -13,7 +14,7 @@ fun View.openTabbedUrl(url: String?) { with(this) { val uri = url.ensureScheme() val tabsbuilder = CustomTabsIntent.Builder() - tabsbuilder.setToolbarColor(ResourcesCompat.getColor(context.resources, R.color.colorPrimary, context.theme)) + tabsbuilder.setToolbarColor(ThemeUtil.getThemeColor(R.attr.colorPrimary)) val customTabsIntent = tabsbuilder.build() try { customTabsIntent.launchUrl(context, uri) diff --git a/app/src/main/res/drawable/ic_action_message_copy_24dp.xml b/app/src/main/res/drawable/ic_action_message_copy_24dp.xml index 13867bd2ca..993cbf39df 100644 --- a/app/src/main/res/drawable/ic_action_message_copy_24dp.xml +++ b/app/src/main/res/drawable/ic_action_message_copy_24dp.xml @@ -5,6 +5,6 @@ android:viewportWidth="24.0"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_action_message_edit_24dp.xml b/app/src/main/res/drawable/ic_action_message_edit_24dp.xml index 9f97047379..c684d56972 100644 --- a/app/src/main/res/drawable/ic_action_message_edit_24dp.xml +++ b/app/src/main/res/drawable/ic_action_message_edit_24dp.xml @@ -5,6 +5,6 @@ android:viewportWidth="24.0"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_action_message_info_outline_24dp.xml b/app/src/main/res/drawable/ic_action_message_info_outline_24dp.xml index 91752eab05..71cd425ecf 100644 --- a/app/src/main/res/drawable/ic_action_message_info_outline_24dp.xml +++ b/app/src/main/res/drawable/ic_action_message_info_outline_24dp.xml @@ -4,6 +4,6 @@ android:viewportHeight="24.0" android:viewportWidth="24.0"> diff --git a/app/src/main/res/drawable/ic_action_message_link_24dp.xml b/app/src/main/res/drawable/ic_action_message_link_24dp.xml index e0698f9f34..dfbc8d80c4 100644 --- a/app/src/main/res/drawable/ic_action_message_link_24dp.xml +++ b/app/src/main/res/drawable/ic_action_message_link_24dp.xml @@ -5,6 +5,6 @@ android:viewportHeight="20"> diff --git a/app/src/main/res/drawable/ic_action_message_quote_24dp.xml b/app/src/main/res/drawable/ic_action_message_quote_24dp.xml index 6108ec53ec..9257c67f71 100644 --- a/app/src/main/res/drawable/ic_action_message_quote_24dp.xml +++ b/app/src/main/res/drawable/ic_action_message_quote_24dp.xml @@ -5,6 +5,6 @@ android:viewportWidth="24.0"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_action_message_reply_24dp.xml b/app/src/main/res/drawable/ic_action_message_reply_24dp.xml index 1be865065f..e1690752bb 100644 --- a/app/src/main/res/drawable/ic_action_message_reply_24dp.xml +++ b/app/src/main/res/drawable/ic_action_message_reply_24dp.xml @@ -5,6 +5,6 @@ android:viewportWidth="24.0"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_action_message_report_24dp.xml b/app/src/main/res/drawable/ic_action_message_report_24dp.xml index f789e51484..fdd075bf49 100644 --- a/app/src/main/res/drawable/ic_action_message_report_24dp.xml +++ b/app/src/main/res/drawable/ic_action_message_report_24dp.xml @@ -5,6 +5,6 @@ android:viewportHeight="20"> diff --git a/app/src/main/res/drawable/ic_activity_20dp.xml b/app/src/main/res/drawable/ic_activity_20dp.xml index c2402bbbde..903f6409fd 100644 --- a/app/src/main/res/drawable/ic_activity_20dp.xml +++ b/app/src/main/res/drawable/ic_activity_20dp.xml @@ -17,3 +17,4 @@ android:strokeWidth="1.5" android:strokeColor="?colorBottomSheetFragmentText" /> + diff --git a/app/src/main/res/drawable/ic_at_black_20dp.xml b/app/src/main/res/drawable/ic_at_black_20dp.xml index e5266ce704..89203c27b5 100644 --- a/app/src/main/res/drawable/ic_at_black_20dp.xml +++ b/app/src/main/res/drawable/ic_at_black_20dp.xml @@ -10,17 +10,17 @@ android:pathData="M0 0h20v20H0z" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_close_gray_24dp.xml b/app/src/main/res/drawable/ic_close_gray_24dp.xml index f91f9ccfb2..32fcb3dab5 100644 --- a/app/src/main/res/drawable/ic_close_gray_24dp.xml +++ b/app/src/main/res/drawable/ic_close_gray_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_email_black_20dp.xml b/app/src/main/res/drawable/ic_email_black_20dp.xml index e66a2167e1..5b9fab89bc 100644 --- a/app/src/main/res/drawable/ic_email_black_20dp.xml +++ b/app/src/main/res/drawable/ic_email_black_20dp.xml @@ -10,12 +10,12 @@ android:pathData="M0 0h20v20H0z" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_favorites_20dp.xml b/app/src/main/res/drawable/ic_favorites_20dp.xml index 9633d1e3a4..8cdf6631e0 100644 --- a/app/src/main/res/drawable/ic_favorites_20dp.xml +++ b/app/src/main/res/drawable/ic_favorites_20dp.xml @@ -10,4 +10,5 @@ android:pathData="M14.882,16.72l-0.933,-5.437 3.95,-3.85 -5.458,-0.793L10,1.695 7.56,6.64 2.1,7.434l3.95,3.85 -0.933,5.435L10,14.153l4.882,2.566z" android:strokeWidth="1.5" android:strokeColor="?colorBottomSheetFragmentText" /> + diff --git a/app/src/main/res/drawable/ic_filter_20dp.xml b/app/src/main/res/drawable/ic_filter_20dp.xml index 9a872bead4..4e8b80d295 100644 --- a/app/src/main/res/drawable/ic_filter_20dp.xml +++ b/app/src/main/res/drawable/ic_filter_20dp.xml @@ -11,6 +11,7 @@ android:strokeWidth="1.5" android:strokeColor="?colorBottomSheetFragmentText" android:strokeLineCap="round" /> + diff --git a/app/src/main/res/drawable/ic_hashtag_16dp.xml b/app/src/main/res/drawable/ic_hashtag_16dp.xml index ef77b43c8b..5e6bc8a702 100644 --- a/app/src/main/res/drawable/ic_hashtag_16dp.xml +++ b/app/src/main/res/drawable/ic_hashtag_16dp.xml @@ -9,4 +9,5 @@ android:fillColor="?colorBottomSheetFragmentText" android:fillType="nonZero" android:strokeColor="#00000000" /> + diff --git a/app/src/main/res/drawable/ic_hashtag_black_12dp.xml b/app/src/main/res/drawable/ic_hashtag_black_12dp.xml index 5e6ea78df1..44e4669d6b 100644 --- a/app/src/main/res/drawable/ic_hashtag_black_12dp.xml +++ b/app/src/main/res/drawable/ic_hashtag_black_12dp.xml @@ -5,18 +5,18 @@ android:viewportWidth="12"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_lock_black_12_dp.xml b/app/src/main/res/drawable/ic_lock_black_12_dp.xml index e18f0d1c28..fa530c43df 100644 --- a/app/src/main/res/drawable/ic_lock_black_12_dp.xml +++ b/app/src/main/res/drawable/ic_lock_black_12_dp.xml @@ -6,11 +6,11 @@ \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_person_black_20dp.xml b/app/src/main/res/drawable/ic_person_black_20dp.xml index 833a8a5226..93fbe02279 100644 --- a/app/src/main/res/drawable/ic_person_black_20dp.xml +++ b/app/src/main/res/drawable/ic_person_black_20dp.xml @@ -10,7 +10,7 @@ android:pathData="M0 0h20v20H0z" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_unread_20dp.xml b/app/src/main/res/drawable/ic_unread_20dp.xml index c96472be04..40f8478f94 100644 --- a/app/src/main/res/drawable/ic_unread_20dp.xml +++ b/app/src/main/res/drawable/ic_unread_20dp.xml @@ -9,6 +9,7 @@ android:fillColor="#00000000" android:fillType="evenOdd" android:strokeColor="?colorBottomSheetFragmentText" /> + + diff --git a/app/src/main/res/layout/activity_authentication.xml b/app/src/main/res/layout/activity_authentication.xml index bfa47fcc45..0c998e25d5 100644 --- a/app/src/main/res/layout/activity_authentication.xml +++ b/app/src/main/res/layout/activity_authentication.xml @@ -6,7 +6,7 @@ android:orientation="vertical" android:background="?android:colorBackground" tools:context=".authentication.ui.AuthenticationActivity"> - +. diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 3d418a976d..69e33d4835 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,3 +6,5 @@ android:layout_height="match_parent" android:background="?android:colorBackground" tools:context=".main.ui.MainActivity" /> + + diff --git a/app/src/main/res/layout/activity_password.xml b/app/src/main/res/layout/activity_password.xml index 8e59d3f2d6..9dc4490c5f 100644 --- a/app/src/main/res/layout/activity_password.xml +++ b/app/src/main/res/layout/activity_password.xml @@ -9,7 +9,7 @@ + layout="@layout/app_bar_password" />. + \ No newline at end of file diff --git a/app/src/main/res/layout/app_bar.xml b/app/src/main/res/layout/app_bar.xml index f4f441372a..de0b228dbb 100644 --- a/app/src/main/res/layout/app_bar.xml +++ b/app/src/main/res/layout/app_bar.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content"> - +. + >. + \ No newline at end of file diff --git a/app/src/main/res/layout/app_bar_password.xml b/app/src/main/res/layout/app_bar_password.xml index 2c31ba55a3..f18c9def0f 100644 --- a/app/src/main/res/layout/app_bar_password.xml +++ b/app/src/main/res/layout/app_bar_password.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - > + >. + \ No newline at end of file diff --git a/app/src/main/res/layout/avatar_profile.xml b/app/src/main/res/layout/avatar_profile.xml index 33d98c9c70..c9677b4d9c 100644 --- a/app/src/main/res/layout/avatar_profile.xml +++ b/app/src/main/res/layout/avatar_profile.xml @@ -18,4 +18,5 @@ app:layout_constraintTop_toTopOf="parent" app:roundedCornerRadius="4dp" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/bottom_sheet_fragment_directory_sorting.xml b/app/src/main/res/layout/bottom_sheet_fragment_directory_sorting.xml index 49171385b6..3ccbdb4ff9 100644 --- a/app/src/main/res/layout/bottom_sheet_fragment_directory_sorting.xml +++ b/app/src/main/res/layout/bottom_sheet_fragment_directory_sorting.xml @@ -7,6 +7,7 @@ android:orientation="vertical" tools:context=".directory.ui.DirectorySortingBottomSheetFragment"> + + diff --git a/app/src/main/res/layout/fragment_authentication_server.xml b/app/src/main/res/layout/fragment_authentication_server.xml index 7f66df3a31..6012685656 100644 --- a/app/src/main/res/layout/fragment_authentication_server.xml +++ b/app/src/main/res/layout/fragment_authentication_server.xml @@ -5,7 +5,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/screen_edge_left_and_right_margins" - android:background="?android:colorBackground" tools:context=".authentication.server.ui.ServerFragment"> + android:layout_height="match_parent" /> + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 73bf1f0faa..c1c3a9dacd 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -15,10 +15,10 @@ #FF727272 @color/colorWhite - #9FA2A8 + #FF9EA2A8 #FBFBFB #99000000 - #A0A0A0 + #A0A0A0 #DE000000 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index cec564b593..e52988d873 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -85,6 +85,7 @@ // REMARK: To be removed as soon as we have our loading view. + // REMARK: To be removed. + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/attrs.xml b/themelibrary/src/main/res/values/attrs.xml index ba308701c5..d43776ae95 100644 --- a/themelibrary/src/main/res/values/attrs.xml +++ b/themelibrary/src/main/res/values/attrs.xml @@ -25,4 +25,6 @@ + + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/colors.xml b/themelibrary/src/main/res/values/colors.xml index 73ba827895..85e977c860 100644 --- a/themelibrary/src/main/res/values/colors.xml +++ b/themelibrary/src/main/res/values/colors.xml @@ -12,6 +12,8 @@ #9297a3 #FF9297a3 #FF9297a3 + #FF9297a3 + #FF9297a3 #FF9297a3 #FF9297a3 @@ -59,6 +61,8 @@ #9297a3 #FF9297a3 #FF9297a3 + #FF9297a3 + #FF9297a3 #FF9297a3 #FF9297a3 diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml index ab1e37e713..425b2db8cf 100644 --- a/themelibrary/src/main/res/values/themes.xml +++ b/themelibrary/src/main/res/values/themes.xml @@ -36,6 +36,8 @@ @color/darkColorPrimaryDark @color/darkColorAuxiliaryTint @style/DarkTheme + @color/darkColorDrawableTintEditText + @color/darkColorQuoteBar @@ -75,6 +77,8 @@ @color/blackColorPrimaryDark @color/blackColorAuxiliaryTint @style/BlackTheme + @color/blackColorDrawableTintEditText + @color/blackColorQuoteBar From 65b8c475b89a447085c538b73eac190abf8375d3 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Tue, 25 Jun 2019 11:35:57 +0500 Subject: [PATCH 20/89] [FIX] Changed code for theme switching. --- .../authentication/login/ui/LoginFragment.kt | 20 ++++++++++++++-- .../ui/RegisterUsernameFragment.kt | 4 ++-- .../resetpassword/ui/ResetPasswordFragment.kt | 2 +- .../server/ui/ServerFragment.kt | 12 ++++++---- .../signup/ui/SignupFragment.kt | 2 +- .../twofactor/ui/TwoFAFragment.kt | 2 +- .../chatroom/adapter/MessageViewHolder.kt | 1 - .../android/chatroom/ui/ActionSnackbar.kt | 3 ++- .../rocket/android/helper/MessageParser.kt | 2 +- .../android/profile/ui/ProfileFragment.kt | 2 +- .../chat/rocket/android/util/extensions/Ui.kt | 5 ++-- .../drawable/ic_action_message_pin_24dp.xml | 2 +- .../main/res/drawable/ic_activity_20dp.xml | 4 ++-- app/src/main/res/drawable/ic_add_24dp.xml | 2 +- .../main/res/drawable/ic_favorites_20dp.xml | 2 +- app/src/main/res/drawable/ic_files_24dp.xml | 2 +- app/src/main/res/drawable/ic_filter_20dp.xml | 10 ++++---- .../res/drawable/ic_group_by_type_20dp.xml | 2 +- app/src/main/res/drawable/ic_hashtag_12dp.xml | 9 ++++--- app/src/main/res/drawable/ic_hashtag_16dp.xml | 2 +- .../main/res/drawable/ic_key_black_20dp.xml | 6 ++--- .../res/drawable/ic_status_invisible_12dp.xml | 2 +- app/src/main/res/drawable/ic_unread_20dp.xml | 6 ++--- app/src/main/res/drawable/ic_user_16dp.xml | 2 +- .../res/layout/activity_authentication.xml | 3 +-- .../main/res/layout/activity_chat_room.xml | 3 +-- app/src/main/res/layout/activity_main.xml | 1 - app/src/main/res/layout/activity_password.xml | 3 +-- app/src/main/res/layout/activity_web_view.xml | 2 -- app/src/main/res/layout/app_bar.xml | 2 +- app/src/main/res/layout/app_bar_chat_room.xml | 2 +- .../main/res/layout/app_bar_chat_rooms.xml | 1 - app/src/main/res/layout/app_bar_password.xml | 2 +- app/src/main/res/layout/avatar.xml | 2 -- app/src/main/res/layout/avatar_profile.xml | 2 -- ...ottom_sheet_fragment_directory_sorting.xml | 1 - .../fragment_authentication_login_options.xml | 12 +++++----- .../layout/fragment_authentication_server.xml | 2 ++ .../res/layout/fragment_create_channel.xml | 5 ++-- app/src/main/res/layout/fragment_files.xml | 2 +- app/src/main/res/layout/item_chat.xml | 2 +- .../res/layout/item_generic_attachment.xml | 4 ++-- app/src/main/res/layout/item_message.xml | 1 - .../main/res/layout/message_url_preview.xml | 4 ++-- .../main/res/layout/spinner_dropdown_item.xml | 9 +++++++ app/src/main/res/values/attrs.xml | 6 ++++- app/src/main/res/values/colors.xml | 24 +++++++------------ app/src/main/res/values/styles.xml | 11 ++++----- app/src/main/res/values/themes.xml | 6 ++++- themelibrary/src/main/res/values/attrs.xml | 6 ++++- themelibrary/src/main/res/values/colors.xml | 11 ++++++--- themelibrary/src/main/res/values/themes.xml | 14 +++++++---- 52 files changed, 140 insertions(+), 109 deletions(-) create mode 100644 app/src/main/res/layout/spinner_dropdown_item.xml diff --git a/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt b/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt index bd911782db..56772b88f3 100644 --- a/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt @@ -2,6 +2,7 @@ package chat.rocket.android.authentication.login.ui import android.app.Activity import android.content.Intent +import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -32,6 +33,7 @@ import io.reactivex.disposables.CompositeDisposable import io.reactivex.rxkotlin.Observables import kotlinx.android.synthetic.main.app_bar.* import kotlinx.android.synthetic.main.fragment_authentication_log_in.* +import kotlinx.android.synthetic.main.fragment_authentication_log_in.view_loading import javax.inject.Inject private const val SERVER_NAME = "server_name" @@ -74,6 +76,11 @@ class LoginFragment : Fragment(), LoginView { setupToolbar() presenter.setupView() subscribeEditTexts() + + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { + tintEditTextDrawableStart() + } + setupOnClickListener() analyticsManager.logScreenView(ScreenViewEvent.Login) } @@ -179,7 +186,7 @@ class LoginFragment : Fragment(), LoginView { context?.let { ViewCompat.setBackgroundTintList( button_log_in, - ContextCompat.getColorStateList(it, R.color.colorAuthenticationButtonDisabled) + ContextCompat.getColorStateList(it, ThemeUtil.getThemeColorResource(R.attr.colorButtonDisabled)) ) button_log_in.isEnabled = false } @@ -196,7 +203,7 @@ class LoginFragment : Fragment(), LoginView { context?.let { button_forgot_your_password.isEnabled = false button_forgot_your_password.setTextColor( - ContextCompat.getColorStateList(it, R.color.colorAuthenticationButtonDisabled) + ContextCompat.getColorStateList(it, ThemeUtil.getThemeColorResource(R.attr.colorButtonDisabled)) ) } } @@ -252,4 +259,13 @@ class LoginFragment : Fragment(), LoginView { text_password.isEnabled = false } } + + private fun tintEditTextDrawableStart() { + ui { + val atDrawable = DrawableHelper.getDrawableFromId(R.drawable.ic_at_black_20dp, it) + DrawableHelper.wrapDrawable(atDrawable) + DrawableHelper.tintDrawable(atDrawable, it, ThemeUtil.getThemeColorResource(R.attr.colorDrawableStrongTint)) + DrawableHelper.compoundStartDrawable(text_username_or_email, atDrawable) + } + } } diff --git a/app/src/main/java/chat/rocket/android/authentication/registerusername/ui/RegisterUsernameFragment.kt b/app/src/main/java/chat/rocket/android/authentication/registerusername/ui/RegisterUsernameFragment.kt index ffc1560202..cb48ee0a0b 100644 --- a/app/src/main/java/chat/rocket/android/authentication/registerusername/ui/RegisterUsernameFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/registerusername/ui/RegisterUsernameFragment.kt @@ -100,7 +100,7 @@ class RegisterUsernameFragment : Fragment(), RegisterUsernameView { context?.let { ViewCompat.setBackgroundTintList( button_use_this_username, - ContextCompat.getColorStateList(it, R.color.colorAuthenticationButtonDisabled) + ContextCompat.getColorStateList(it, ThemeUtil.getThemeColorResource(R.attr.colorButtonDisabled)) ) button_use_this_username.isEnabled = false } @@ -140,7 +140,7 @@ class RegisterUsernameFragment : Fragment(), RegisterUsernameView { ui { val atDrawable = DrawableHelper.getDrawableFromId(R.drawable.ic_at_black_20dp, it) DrawableHelper.wrapDrawable(atDrawable) - DrawableHelper.tintDrawable(atDrawable, it, ThemeUtil.getThemeColorResource(R.attr.colorDrawableTintEditText)) + DrawableHelper.tintDrawable(atDrawable, it, ThemeUtil.getThemeColorResource(R.attr.colorDrawableSubtleTint)) DrawableHelper.compoundStartDrawable(text_username, atDrawable) } } diff --git a/app/src/main/java/chat/rocket/android/authentication/resetpassword/ui/ResetPasswordFragment.kt b/app/src/main/java/chat/rocket/android/authentication/resetpassword/ui/ResetPasswordFragment.kt index 29811a59fa..106cbb4b06 100644 --- a/app/src/main/java/chat/rocket/android/authentication/resetpassword/ui/ResetPasswordFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/resetpassword/ui/ResetPasswordFragment.kt @@ -85,7 +85,7 @@ class ResetPasswordFragment : Fragment(), ResetPasswordView { context?.let { ViewCompat.setBackgroundTintList( button_reset_password, - ContextCompat.getColorStateList(it, R.color.colorAuthenticationButtonDisabled) + ContextCompat.getColorStateList(it, ThemeUtil.getThemeColorResource(R.attr.colorButtonDisabled)) ) button_reset_password.isEnabled = false } diff --git a/app/src/main/java/chat/rocket/android/authentication/server/ui/ServerFragment.kt b/app/src/main/java/chat/rocket/android/authentication/server/ui/ServerFragment.kt index d639d6c1ca..4631daefbf 100644 --- a/app/src/main/java/chat/rocket/android/authentication/server/ui/ServerFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/server/ui/ServerFragment.kt @@ -109,10 +109,12 @@ class ServerFragment : Fragment(), ServerView { private fun setupSpinner() { context?.let { - spinner_server_protocol.adapter = ArrayAdapter( - it, - android.R.layout.simple_dropdown_item_1line, arrayOf("https://", "http://") + val adapter = ArrayAdapter( + it, + android.R.layout.simple_dropdown_item_1line, arrayOf("https://", "http://") ) + adapter.setDropDownViewResource(R.layout.spinner_dropdown_item) + spinner_server_protocol.adapter = adapter spinner_server_protocol.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { @@ -158,7 +160,7 @@ class ServerFragment : Fragment(), ServerView { context?.let { ViewCompat.setBackgroundTintList( button_connect, - ContextCompat.getColorStateList(it, R.color.colorAuthenticationButtonDisabled) + ContextCompat.getColorStateList(it, ThemeUtil.getThemeColorResource(R.attr.colorButtonDisabled)) ) button_connect.isEnabled = false } @@ -271,7 +273,7 @@ class ServerFragment : Fragment(), ServerView { private fun addDomain() { val cursorPosition = text_server_url.length() text_server_url.append(SpannableStringBuilder() - .color(R.color.colorAuthenticationSecondaryText) { append("rocket.chat") }) + .color(ThemeUtil.getThemeColorResource(R.attr.colorDescriptiveText)) { append("rocket.chat") }) text_server_url.setSelection(cursorPosition) appendedText = text_server_url.text.toString() isDomainAppended = true diff --git a/app/src/main/java/chat/rocket/android/authentication/signup/ui/SignupFragment.kt b/app/src/main/java/chat/rocket/android/authentication/signup/ui/SignupFragment.kt index 141d542023..98bcae618f 100644 --- a/app/src/main/java/chat/rocket/android/authentication/signup/ui/SignupFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/signup/ui/SignupFragment.kt @@ -101,7 +101,7 @@ class SignupFragment : Fragment(), SignupView { context?.let { ViewCompat.setBackgroundTintList( button_register, - ContextCompat.getColorStateList(it, R.color.colorAuthenticationButtonDisabled) + ContextCompat.getColorStateList(it, ThemeUtil.getThemeColorResource(R.attr.colorButtonDisabled)) ) button_register.isEnabled = false } diff --git a/app/src/main/java/chat/rocket/android/authentication/twofactor/ui/TwoFAFragment.kt b/app/src/main/java/chat/rocket/android/authentication/twofactor/ui/TwoFAFragment.kt index 17946dcd53..288111ba85 100644 --- a/app/src/main/java/chat/rocket/android/authentication/twofactor/ui/TwoFAFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/twofactor/ui/TwoFAFragment.kt @@ -97,7 +97,7 @@ class TwoFAFragment : Fragment(), TwoFAView { context?.let { ViewCompat.setBackgroundTintList( button_confirm, - ContextCompat.getColorStateList(it, R.color.colorAuthenticationButtonDisabled) + ContextCompat.getColorStateList(it, ThemeUtil.getThemeColorResource(R.attr.colorButtonDisabled)) ) button_confirm.isEnabled = false } diff --git a/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt b/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt index 8a8e9567d7..cf5257d9e5 100644 --- a/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt +++ b/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt @@ -58,7 +58,6 @@ class MessageViewHolder( button_join_video_call.isVisible = data.message.type is MessageType.JitsiCallStarted button_join_video_call.setOnClickListener { joinVideoCallListener(it) } -// text_content.setTextColor(if (data.isTemporary) Color.GRAY else Color.BLACK) text_content.setTextColor(if (data.isTemporary) ThemeUtil.getThemeColor(R.attr.colorControlText) else ThemeUtil.getThemeColor(R.attr.colorPrimaryText)) data.message.let { diff --git a/app/src/main/java/chat/rocket/android/chatroom/ui/ActionSnackbar.kt b/app/src/main/java/chat/rocket/android/chatroom/ui/ActionSnackbar.kt index 1fc5673756..5d38a915d5 100644 --- a/app/src/main/java/chat/rocket/android/chatroom/ui/ActionSnackbar.kt +++ b/app/src/main/java/chat/rocket/android/chatroom/ui/ActionSnackbar.kt @@ -11,6 +11,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.setPadding import chat.rocket.android.R import chat.rocket.android.helper.MessageParser +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extensions.content import com.google.android.material.snackbar.BaseTransientBottomBar import kotlinx.android.synthetic.main.message_action_bar.view.* @@ -28,7 +29,7 @@ class ActionSnackbar private constructor( val actionSnackbar = ActionSnackbar(parentViewGroup, view, CallbackImpl(view)) with(view) { actionSnackbar.getView().setPadding(0) - actionSnackbar.getView().setBackgroundColor(ContextCompat.getColor(context, R.color.colorWhite)) + actionSnackbar.getView().setBackgroundColor(ThemeUtil.getThemeColor(android.R.attr.colorBackground)) actionSnackbar.parser = parser actionSnackbar.messageTextView = text_view_action_text actionSnackbar.titleTextView = text_view_action_title diff --git a/app/src/main/java/chat/rocket/android/helper/MessageParser.kt b/app/src/main/java/chat/rocket/android/helper/MessageParser.kt index 53bac97cd0..18b409e282 100644 --- a/app/src/main/java/chat/rocket/android/helper/MessageParser.kt +++ b/app/src/main/java/chat/rocket/android/helper/MessageParser.kt @@ -145,7 +145,7 @@ class MessageParser @Inject constructor( private val othersTextColor = ThemeUtil.getThemeColor(R.attr.colorAccent) private val othersBackgroundColor = ResourcesCompat.getColor(context.resources, android.R.color.transparent, context.theme) - private val myselfTextColor = ResourcesCompat.getColor(context.resources, R.color.colorWhite, context.theme) + private val myselfTextColor = ThemeUtil.getThemeColor(android.R.attr.colorBackground) private val myselfBackgroundColor = ThemeUtil.getThemeColor(R.attr.colorAccent) private val padding = context.resources.getDimensionPixelSize(R.dimen.padding_mention).toFloat() private val radius = context.resources.getDimensionPixelSize(R.dimen.radius_mention).toFloat() diff --git a/app/src/main/java/chat/rocket/android/profile/ui/ProfileFragment.kt b/app/src/main/java/chat/rocket/android/profile/ui/ProfileFragment.kt index 9562a8c597..f5aebacc22 100644 --- a/app/src/main/java/chat/rocket/android/profile/ui/ProfileFragment.kt +++ b/app/src/main/java/chat/rocket/android/profile/ui/ProfileFragment.kt @@ -269,7 +269,7 @@ class ProfileFragment : Fragment(), ProfileView, ActionMode.Callback { val drawables = arrayOf(personDrawable, atDrawable, emailDrawable) DrawableHelper.wrapDrawables(drawables) - DrawableHelper.tintDrawables(drawables, this, ThemeUtil.getThemeColorResource(R.attr.colorDrawableTintEditText)) + DrawableHelper.tintDrawables(drawables, this, ThemeUtil.getThemeColorResource(R.attr.colorDrawableSubtleTint)) DrawableHelper.compoundDrawables( arrayOf(text_name, text_username, text_email), drawables ) diff --git a/app/src/main/java/chat/rocket/android/util/extensions/Ui.kt b/app/src/main/java/chat/rocket/android/util/extensions/Ui.kt index 657ed23917..d1d2265093 100644 --- a/app/src/main/java/chat/rocket/android/util/extensions/Ui.kt +++ b/app/src/main/java/chat/rocket/android/util/extensions/Ui.kt @@ -22,6 +22,7 @@ import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentActivity import chat.rocket.android.R +import chat.rocket.android.thememanager.util.ThemeUtil fun FragmentActivity.setLightStatusBar(view: View, @ColorInt color: Int = 0) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { @@ -29,7 +30,7 @@ fun FragmentActivity.setLightStatusBar(view: View, @ColorInt color: Int = 0) { flags = flags or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR view.systemUiVisibility = flags window.statusBarColor = if (color == 0) { - ContextCompat.getColor(this, R.color.colorWhite) + ThemeUtil.getThemeColor(android.R.attr.colorBackground) } else { color } @@ -38,7 +39,7 @@ fun FragmentActivity.setLightStatusBar(view: View, @ColorInt color: Int = 0) { fun FragmentActivity.clearLightStatusBar() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { -// window.statusBarColor = ContextCompat.getColor(this, R.color.colorPrimary) + window.statusBarColor = ThemeUtil.getThemeColor(R.attr.colorPrimaryDark) } } diff --git a/app/src/main/res/drawable/ic_action_message_pin_24dp.xml b/app/src/main/res/drawable/ic_action_message_pin_24dp.xml index 4eb57f3e6a..7cdba8cd8b 100644 --- a/app/src/main/res/drawable/ic_action_message_pin_24dp.xml +++ b/app/src/main/res/drawable/ic_action_message_pin_24dp.xml @@ -5,6 +5,6 @@ android:viewportWidth="24"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_activity_20dp.xml b/app/src/main/res/drawable/ic_activity_20dp.xml index 903f6409fd..7ccfbee1db 100644 --- a/app/src/main/res/drawable/ic_activity_20dp.xml +++ b/app/src/main/res/drawable/ic_activity_20dp.xml @@ -9,12 +9,12 @@ android:fillType="evenOdd" android:pathData="M10,10m-9.25,0a9.25,9.25 0,1 1,18.5 0a9.25,9.25 0,1 1,-18.5 0" android:strokeWidth="1.5" - android:strokeColor="?colorBottomSheetFragmentText" /> + android:strokeColor="#9EA2A8" /> + android:strokeColor="#9EA2A8" /> diff --git a/app/src/main/res/drawable/ic_add_24dp.xml b/app/src/main/res/drawable/ic_add_24dp.xml index a2e44ba0af..b5b5ba4cc8 100644 --- a/app/src/main/res/drawable/ic_add_24dp.xml +++ b/app/src/main/res/drawable/ic_add_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_favorites_20dp.xml b/app/src/main/res/drawable/ic_favorites_20dp.xml index 8cdf6631e0..4e2a0058b5 100644 --- a/app/src/main/res/drawable/ic_favorites_20dp.xml +++ b/app/src/main/res/drawable/ic_favorites_20dp.xml @@ -9,6 +9,6 @@ android:fillType="evenOdd" android:pathData="M14.882,16.72l-0.933,-5.437 3.95,-3.85 -5.458,-0.793L10,1.695 7.56,6.64 2.1,7.434l3.95,3.85 -0.933,5.435L10,14.153l4.882,2.566z" android:strokeWidth="1.5" - android:strokeColor="?colorBottomSheetFragmentText" /> + android:strokeColor="#9EA2A8" /> diff --git a/app/src/main/res/drawable/ic_files_24dp.xml b/app/src/main/res/drawable/ic_files_24dp.xml index 950be29ffe..7ba296a8ac 100644 --- a/app/src/main/res/drawable/ic_files_24dp.xml +++ b/app/src/main/res/drawable/ic_files_24dp.xml @@ -4,7 +4,7 @@ android:viewportHeight="17.0" android:viewportWidth="18.0"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_filter_20dp.xml b/app/src/main/res/drawable/ic_filter_20dp.xml index 4e8b80d295..a167583d40 100644 --- a/app/src/main/res/drawable/ic_filter_20dp.xml +++ b/app/src/main/res/drawable/ic_filter_20dp.xml @@ -9,7 +9,7 @@ android:fillType="evenOdd" android:pathData="M5,4L5,18" android:strokeWidth="1.5" - android:strokeColor="?colorBottomSheetFragmentText" + android:strokeColor="#9EA2A8" android:strokeLineCap="round" /> diff --git a/app/src/main/res/drawable/ic_hashtag_12dp.xml b/app/src/main/res/drawable/ic_hashtag_12dp.xml index a8cc5f8922..506efbed25 100644 --- a/app/src/main/res/drawable/ic_hashtag_12dp.xml +++ b/app/src/main/res/drawable/ic_hashtag_12dp.xml @@ -4,21 +4,20 @@ android:viewportHeight="12" android:viewportWidth="12"> - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_hashtag_16dp.xml b/app/src/main/res/drawable/ic_hashtag_16dp.xml index 5e6bc8a702..0acd62b973 100644 --- a/app/src/main/res/drawable/ic_hashtag_16dp.xml +++ b/app/src/main/res/drawable/ic_hashtag_16dp.xml @@ -6,7 +6,7 @@ diff --git a/app/src/main/res/drawable/ic_key_black_20dp.xml b/app/src/main/res/drawable/ic_key_black_20dp.xml index 2835f4fa2b..15e7a3f1ae 100644 --- a/app/src/main/res/drawable/ic_key_black_20dp.xml +++ b/app/src/main/res/drawable/ic_key_black_20dp.xml @@ -10,12 +10,12 @@ android:fillType="evenOdd" android:pathData="M10.0002,5.5001C10.0002,6.3261 9.869,6.9474 9.6082,7.3639L14.4347,12.0381L15,13.8704L13.8695,15L12.0425,14.4382L11.6838,14.0804L11.6838,12.7898L10.3931,12.7898L9.8419,12.2385L9.8419,10.947L8.5504,10.947L7.1801,9.5715C6.6709,9.8576 6.11,10.0002 5.5001,10.0002C4.2845,10.0003 3.1205,9.5084 2.2732,8.6367C1.4258,7.765 0.9672,6.5876 1.0017,5.3724C1.0674,3.0239 3.0247,1.0674 5.3724,1.0017C6.5873,0.9675 7.7643,1.4261 8.6358,2.2732C9.5073,3.1203 9.9991,4.2839 9.9994,5.4992L10.0002,5.5001Z" android:strokeWidth="1.5" - android:strokeColor="?colorPrimary" /> + android:strokeColor="?colorDrawableStrongTint" /> + android:strokeColor="?colorDrawableStrongTint" /> diff --git a/app/src/main/res/drawable/ic_status_invisible_12dp.xml b/app/src/main/res/drawable/ic_status_invisible_12dp.xml index 9e7b421245..7b0f22024a 100644 --- a/app/src/main/res/drawable/ic_status_invisible_12dp.xml +++ b/app/src/main/res/drawable/ic_status_invisible_12dp.xml @@ -5,7 +5,7 @@ android:viewportWidth="12"> + android:strokeColor="#9EA2A8" /> + android:strokeColor="#9EA2A8" /> diff --git a/app/src/main/res/drawable/ic_user_16dp.xml b/app/src/main/res/drawable/ic_user_16dp.xml index 5859fc3f66..914a0ca86d 100644 --- a/app/src/main/res/drawable/ic_user_16dp.xml +++ b/app/src/main/res/drawable/ic_user_16dp.xml @@ -5,7 +5,7 @@ android:viewportHeight="16"> -. + diff --git a/app/src/main/res/layout/activity_chat_room.xml b/app/src/main/res/layout/activity_chat_room.xml index 2f438de848..311dd22b09 100644 --- a/app/src/main/res/layout/activity_chat_room.xml +++ b/app/src/main/res/layout/activity_chat_room.xml @@ -4,9 +4,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:theme="?appTheme" - android:background="?android:colorBackground" tools:context=".chatroom.ui.ChatRoomActivity"> -. + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 69e33d4835..e5df16ee79 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -4,7 +4,6 @@ android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="?android:colorBackground" tools:context=".main.ui.MainActivity" /> diff --git a/app/src/main/res/layout/activity_password.xml b/app/src/main/res/layout/activity_password.xml index 9dc4490c5f..2be59929df 100644 --- a/app/src/main/res/layout/activity_password.xml +++ b/app/src/main/res/layout/activity_password.xml @@ -4,12 +4,11 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - android:background="?android:colorBackground" tools:context=".settings.password.ui.PasswordActivity"> . + layout="@layout/app_bar_password" /> - \ No newline at end of file diff --git a/app/src/main/res/layout/app_bar.xml b/app/src/main/res/layout/app_bar.xml index de0b228dbb..f4f441372a 100644 --- a/app/src/main/res/layout/app_bar.xml +++ b/app/src/main/res/layout/app_bar.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content"> -. + . + > - \ No newline at end of file diff --git a/app/src/main/res/layout/app_bar_password.xml b/app/src/main/res/layout/app_bar_password.xml index f18c9def0f..2c31ba55a3 100644 --- a/app/src/main/res/layout/app_bar_password.xml +++ b/app/src/main/res/layout/app_bar_password.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - >. + > @@ -12,5 +11,4 @@ android:layout_height="40dp" app:roundedCornerRadius="3dp" /> - \ No newline at end of file diff --git a/app/src/main/res/layout/avatar_profile.xml b/app/src/main/res/layout/avatar_profile.xml index c9677b4d9c..02c71781b8 100644 --- a/app/src/main/res/layout/avatar_profile.xml +++ b/app/src/main/res/layout/avatar_profile.xml @@ -2,7 +2,6 @@ @@ -18,5 +17,4 @@ app:layout_constraintTop_toTopOf="parent" app:roundedCornerRadius="4dp" /> - \ No newline at end of file diff --git a/app/src/main/res/layout/bottom_sheet_fragment_directory_sorting.xml b/app/src/main/res/layout/bottom_sheet_fragment_directory_sorting.xml index 3ccbdb4ff9..49171385b6 100644 --- a/app/src/main/res/layout/bottom_sheet_fragment_directory_sorting.xml +++ b/app/src/main/res/layout/bottom_sheet_fragment_directory_sorting.xml @@ -7,7 +7,6 @@ android:orientation="vertical" tools:context=".directory.ui.DirectorySortingBottomSheetFragment"> - @@ -53,7 +53,7 @@ android:paddingEnd="16dp" android:text="@string/msg_continue_with_github" android:textAllCaps="false" - android:textColor="?colorPrimary" + android:textColor="?colorHeadings" android:textSize="16sp" android:visibility="gone" tools:visibility="visible" /> @@ -72,7 +72,7 @@ android:paddingEnd="16dp" android:text="@string/msg_continue_with_google" android:textAllCaps="false" - android:textColor="?colorPrimary" + android:textColor="?colorHeadings" android:textSize="16sp" android:visibility="gone" tools:visibility="visible" /> @@ -91,7 +91,7 @@ android:paddingEnd="16dp" android:text="@string/msg_continue_with_linkedin" android:textAllCaps="false" - android:textColor="?colorPrimary" + android:textColor="?colorHeadings" android:textSize="16sp" android:visibility="gone" tools:visibility="visible" /> @@ -110,7 +110,7 @@ android:paddingEnd="16dp" android:text="@string/msg_continue_with_gitlab" android:textAllCaps="false" - android:textColor="?colorPrimary" + android:textColor="?colorHeadings" android:textSize="16sp" android:visibility="gone" tools:visibility="visible" /> @@ -129,7 +129,7 @@ android:paddingEnd="16dp" android:text="@string/msg_continue_with_wordpress" android:textAllCaps="false" - android:textColor="?colorPrimary" + android:textColor="?colorHeadings" android:textSize="16sp" android:visibility="gone" tools:visibility="visible" /> diff --git a/app/src/main/res/layout/fragment_authentication_server.xml b/app/src/main/res/layout/fragment_authentication_server.xml index 6012685656..97d2cf288b 100644 --- a/app/src/main/res/layout/fragment_authentication_server.xml +++ b/app/src/main/res/layout/fragment_authentication_server.xml @@ -44,6 +44,7 @@ @@ -28,6 +27,7 @@ app:layout_constraintBottom_toBottomOf="@+id/text_chat_name" app:layout_constraintStart_toEndOf="@+id/image_avatar" app:layout_constraintTop_toTopOf="@+id/text_chat_name" + android:tint="?colorDescriptiveText" tools:src="@drawable/ic_hashtag_12dp" /> + \ No newline at end of file diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index daec01ea08..c5f431c204 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -25,6 +25,10 @@ - + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index c1c3a9dacd..c34456b5e3 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -13,9 +13,8 @@ #f3f4f5 #54585e - #FF727272 @color/colorWhite - #FF9EA2A8 + #FF9EA2A8 #FBFBFB #99000000 #A0A0A0 @@ -23,16 +22,13 @@ #DE000000 #FF787878 - #FFC1C1C1 #FF9DA2A9 #FF5699FF - #FF0C0D0F #FF0C0D0F - #8B000000 #54585e - #868585 #FFCBCED1 #FF9EA2A8 + #54585e #2FE1A8 @@ -44,30 +40,26 @@ #FFFFFFFF #FF000000 #FFFF0000 - #FFa0a0a0 - #FFf1f1f1 - #F4F5F7 + #FFf1f1f1 #FFE1E5E8 #FFE1E5E8 - #FFCBCED1 - #FF9EA2A8 - #FF9CA2A8 + #FFCBCED1 + #FF9CA2A8 #FF9CA2A8 #FFCBCED1 - @color/colorWhite - #AFADAF + #AFADAF @color/colorWhite #f1f2f4 #ffffff #e1e5e8 - #261d74f5 - #4c1d74f5 + @color/colorWhite + @color/colorWhite #0a4469 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index e52988d873..5891c589b1 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -114,14 +114,14 @@ 14sp sans-serif normal - ?colorDescriptiveText + ?colorChatText end 2 - diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 50c07e0f5d..85400d591e 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -43,7 +43,11 @@ @color/colorPrimaryDark @color/colorAuxiliaryTint @style/AppTheme - @color/colorDrawableTintEditText + @color/colorDrawableSubtleTint @color/colorQuoteBar + @color/colorSecondaryText + @color/colorPrimary + @color/colorChatText + @color/colorPrimary \ No newline at end of file diff --git a/themelibrary/src/main/res/values/attrs.xml b/themelibrary/src/main/res/values/attrs.xml index d43776ae95..b2cbe47454 100644 --- a/themelibrary/src/main/res/values/attrs.xml +++ b/themelibrary/src/main/res/values/attrs.xml @@ -25,6 +25,10 @@ - + + + + + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/colors.xml b/themelibrary/src/main/res/values/colors.xml index 85e977c860..8db761f183 100644 --- a/themelibrary/src/main/res/values/colors.xml +++ b/themelibrary/src/main/res/values/colors.xml @@ -12,14 +12,14 @@ #9297a3 #FF9297a3 #FF9297a3 - #FF9297a3 + #FF9297a3 #FF9297a3 #FF9297a3 #FF9297a3 + #FF9297a3 #2b2b2d #2b2b2d - #0b182c #2b2b2d #2b2b2d @@ -29,6 +29,7 @@ #ffffff #FFb2b8c6 + #FFb2b8c6 #1a2232 #1a2232 @@ -39,6 +40,7 @@ #261d74f5 #4c1d74f5 + #4c1d74f5 #1d74f5 #030c1b @@ -61,10 +63,11 @@ #9297a3 #FF9297a3 #FF9297a3 - #FF9297a3 + #FF9297a3 #FF9297a3 #FF9297a3 #FF9297a3 + #FF9297a3 #FF2b2b29 #FF2b2b29 @@ -97,6 +100,8 @@ #090909 #cdcdcd + #FFb2b8c6 + @color/darkColorAccent @color/darkColorPrimaryText diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml index 425b2db8cf..c0649887ed 100644 --- a/themelibrary/src/main/res/values/themes.xml +++ b/themelibrary/src/main/res/values/themes.xml @@ -36,8 +36,12 @@ @color/darkColorPrimaryDark @color/darkColorAuxiliaryTint @style/DarkTheme - @color/darkColorDrawableTintEditText + @color/darkColorDrawableSubtleTint @color/darkColorQuoteBar + @color/darkColorSecondaryText + @color/darkColorSecondaryText + @color/darkColorChatText + @color/darkColorBodyText @@ -77,9 +81,11 @@ @color/blackColorPrimaryDark @color/blackColorAuxiliaryTint @style/BlackTheme - @color/blackColorDrawableTintEditText + @color/blackColorDrawableSubtleTint @color/blackColorQuoteBar + @color/blackColorSecondaryText + @color/blackColorSecondaryText + @color/blackColorChatText + @color/blackColorBodyText - - \ No newline at end of file From fc306fd3152f66bb12bd2a641b70f28344a85f34 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Tue, 25 Jun 2019 12:23:57 +0500 Subject: [PATCH 21/89] [FIX] Allowed reverting to default theme and displayed date last changed. --- .../infrastructure/ThemesRepository.kt | 22 +++++++++++++++++++ .../android/thememanager/ui/ThemesActivity.kt | 22 ++++++++++++++----- .../thememanager/viewmodel/ThemesViewModel.kt | 1 + ...fragment_theme.xml => activity_themes.xml} | 2 +- 4 files changed, 41 insertions(+), 6 deletions(-) rename app/src/main/res/layout/{fragment_theme.xml => activity_themes.xml} (98%) diff --git a/app/src/main/java/chat/rocket/android/thememanager/infrastructure/ThemesRepository.kt b/app/src/main/java/chat/rocket/android/thememanager/infrastructure/ThemesRepository.kt index e9f08b8f5d..dd152b9fb2 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/infrastructure/ThemesRepository.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/infrastructure/ThemesRepository.kt @@ -6,13 +6,19 @@ import androidx.lifecycle.MutableLiveData import chat.rocket.android.R import chat.rocket.android.thememanager.model.Theme import javax.inject.Inject +import java.text.SimpleDateFormat +import java.util.* + const val SELECTED_THEME = "selected_theme" +const val LAST_CHANGED = "last_changed" class ThemesRepository @Inject constructor(private val preferences: SharedPreferences){ private val themeList = mutableListOf() private val themes = MutableLiveData>() + private val simpleDateFormat = SimpleDateFormat("MMM dd, yyyy") + private lateinit var currentDate : Date init { val theme1 = Theme("AppTheme", R.array.AppThemePreview) @@ -34,7 +40,23 @@ class ThemesRepository @Inject constructor(private val preferences: SharedPrefer fun saveTheme(theme : String){ with(preferences) { edit().putString(SELECTED_THEME, theme).apply() + saveDate() + } + } + + fun saveDate(){ + with(preferences) { + val currentTimeMillis = System.currentTimeMillis() + edit().putLong(LAST_CHANGED, currentTimeMillis).apply() + } + } + + fun getSavedDate() : String { + if(preferences.contains(LAST_CHANGED)){ + currentDate = Date(preferences.getLong(LAST_CHANGED,0)) + return simpleDateFormat.format(currentDate) } + return "" } fun getCurrentTheme() : String? { diff --git a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt index 60ace754cb..2062c81df7 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt @@ -11,7 +11,7 @@ import chat.rocket.android.R import chat.rocket.android.thememanager.BaseActivity import chat.rocket.android.thememanager.adapter.ThemesAdapter import kotlinx.android.synthetic.main.app_bar.* -import kotlinx.android.synthetic.main.fragment_theme.* +import kotlinx.android.synthetic.main.activity_themes.* import chat.rocket.android.thememanager.model.Theme fun newInstance() = ThemesActivity() @@ -21,9 +21,15 @@ class ThemesActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.fragment_theme) + setContentView(R.layout.activity_themes) setupToolbar() + setDate() subscribeUi() + setupListeners() + } + + private fun setDate(){ + theme_last_changed.text = "Last Changed "+viewModel.getSavedDate() } private fun subscribeUi() { @@ -34,10 +40,10 @@ class ThemesActivity : BaseActivity() { private fun saveTheme(theme:Theme){ viewModel.saveTheme(theme.toString()) - reloadFragment() + reloadActivity() } - private fun reloadFragment() { + private fun reloadActivity() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { startActivity(Intent(this, ThemesActivity::class.java)) overridePendingTransition(R.anim.fade_in, R.anim.fade_out) @@ -61,7 +67,13 @@ class ThemesActivity : BaseActivity() { private fun setupRecyclerView(themes : List) { adapter = ThemesAdapter(themes, listener = {theme:Theme -> saveTheme(theme)}) recycler_view.layoutManager = LinearLayoutManager(this) - recycler_view.addItemDecoration(DividerItemDecoration(this, DividerItemDecoration.HORIZONTAL)) recycler_view.adapter = adapter } + + private fun setupListeners() { + revert_to_default.setOnClickListener { + viewModel.saveTheme("AppTheme") + reloadActivity() + } + } } diff --git a/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt b/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt index a167d95dfa..369f187275 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt @@ -12,4 +12,5 @@ class ThemesViewModel @Inject constructor(private val themesRepository: ThemesRe fun addTheme(theme : Theme) = themesRepository.addTheme(theme) fun saveTheme(theme : String) = themesRepository.saveTheme(theme) fun getCurrentTheme() = themesRepository.getCurrentTheme() + fun getSavedDate() = themesRepository.getSavedDate() } diff --git a/app/src/main/res/layout/fragment_theme.xml b/app/src/main/res/layout/activity_themes.xml similarity index 98% rename from app/src/main/res/layout/fragment_theme.xml rename to app/src/main/res/layout/activity_themes.xml index 682180bd48..4f2b714560 100644 --- a/app/src/main/res/layout/fragment_theme.xml +++ b/app/src/main/res/layout/activity_themes.xml @@ -39,7 +39,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="25dp" - android:text="Last Changed 20.03.2019" + android:text="Last Changed" app:layout_constraintLeft_toRightOf="@+id/divider" app:layout_constraintTop_toBottomOf="@+id/layout_app_bar" /> From 68c35996b8709dc6662cf601882bcc10118c8384 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Tue, 25 Jun 2019 12:54:25 +0500 Subject: [PATCH 22/89] [FIX] Fixed issue of missing avatar in chatroom. --- .../chat/rocket/android/chatroom/adapter/MessageViewHolder.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt b/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt index cf5257d9e5..3d82821e46 100644 --- a/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt +++ b/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt @@ -58,6 +58,7 @@ class MessageViewHolder( button_join_video_call.isVisible = data.message.type is MessageType.JitsiCallStarted button_join_video_call.setOnClickListener { joinVideoCallListener(it) } + image_avatar.setImageURI(data.avatar) text_content.setTextColor(if (data.isTemporary) ThemeUtil.getThemeColor(R.attr.colorControlText) else ThemeUtil.getThemeColor(R.attr.colorPrimaryText)) data.message.let { From 319888f13d9549d85fe9e503afe1aadec8ddf5f1 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Fri, 28 Jun 2019 10:25:04 +0500 Subject: [PATCH 23/89] [FIX] Fixed status bar color changes. --- .../authentication/login/ui/LoginFragment.kt | 13 ++++--------- .../loginoptions/ui/LoginOptionsFragment.kt | 2 +- .../onboarding/ui/OnBoardingFragment.kt | 7 ++----- .../ui/RegisterUsernameFragment.kt | 5 ++--- .../resetpassword/ui/ResetPasswordFragment.kt | 13 +++++++++++++ .../authentication/server/ui/ServerFragment.kt | 11 ++--------- .../rocket/android/chatroom/ui/ChatRoomFragment.kt | 14 ++------------ .../rocket/android/members/ui/MembersFragment.kt | 7 ++----- .../rocket/android/profile/ui/ProfileFragment.kt | 4 ++-- .../rocket/android/thememanager/util/ThemeUtil.kt | 8 ++++++++ .../android/userdetails/ui/UserDetailsFragment.kt | 7 ++----- .../java/chat/rocket/android/util/extensions/Ui.kt | 13 +++++++++---- .../res/layout/fragment_authentication_log_in.xml | 1 - .../fragment_authentication_login_options.xml | 1 - .../fragment_authentication_reset_password.xml | 1 - app/src/main/res/values/attrs.xml | 1 + app/src/main/res/values/bools.xml | 4 ++++ app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/styles.xml | 2 +- app/src/main/res/values/themes.xml | 1 + themelibrary/src/main/res/values/attrs.xml | 1 + themelibrary/src/main/res/values/bools.xml | 5 +++++ themelibrary/src/main/res/values/colors.xml | 2 ++ themelibrary/src/main/res/values/themes.xml | 2 ++ 24 files changed, 67 insertions(+), 59 deletions(-) create mode 100644 app/src/main/res/values/bools.xml create mode 100644 themelibrary/src/main/res/values/bools.xml diff --git a/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt b/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt index 56772b88f3..571599c25b 100644 --- a/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt @@ -2,7 +2,6 @@ package chat.rocket.android.authentication.login.ui import android.app.Activity import android.content.Intent -import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -23,11 +22,7 @@ import chat.rocket.android.helper.requestStoredCredentials import chat.rocket.android.helper.saveCredentials import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extension.asObservable -import chat.rocket.android.util.extensions.clearLightStatusBar -import chat.rocket.android.util.extensions.inflate -import chat.rocket.android.util.extensions.showToast -import chat.rocket.android.util.extensions.textContent -import chat.rocket.android.util.extensions.ui +import chat.rocket.android.util.extensions.* import dagger.android.support.AndroidSupportInjection import io.reactivex.disposables.CompositeDisposable import io.reactivex.rxkotlin.Observables @@ -77,9 +72,9 @@ class LoginFragment : Fragment(), LoginView { presenter.setupView() subscribeEditTexts() - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { +// if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { tintEditTextDrawableStart() - } +// } setupOnClickListener() analyticsManager.logScreenView(ScreenViewEvent.Login) @@ -119,7 +114,7 @@ class LoginFragment : Fragment(), LoginView { private fun setupToolbar() { with(activity as AuthenticationActivity) { - this.clearLightStatusBar() + view?.let {this.clearInvisibleStatusBar(it)} toolbar.isVisible = true toolbar.title = serverName?.replace(getString(R.string.default_protocol), "") } diff --git a/app/src/main/java/chat/rocket/android/authentication/loginoptions/ui/LoginOptionsFragment.kt b/app/src/main/java/chat/rocket/android/authentication/loginoptions/ui/LoginOptionsFragment.kt index d0d1abd971..c614ddd383 100644 --- a/app/src/main/java/chat/rocket/android/authentication/loginoptions/ui/LoginOptionsFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/loginoptions/ui/LoginOptionsFragment.kt @@ -210,7 +210,7 @@ class LoginOptionsFragment : Fragment(), LoginOptionsView { private fun setupToolbar() { with(activity as AuthenticationActivity) { - this.clearLightStatusBar() + view?.let {this.clearInvisibleStatusBar(it)} toolbar.isVisible = true toolbar.title = serverName?.replace(getString(R.string.default_protocol), "") } diff --git a/app/src/main/java/chat/rocket/android/authentication/onboarding/ui/OnBoardingFragment.kt b/app/src/main/java/chat/rocket/android/authentication/onboarding/ui/OnBoardingFragment.kt index c2e1a10603..d1c2906a0d 100644 --- a/app/src/main/java/chat/rocket/android/authentication/onboarding/ui/OnBoardingFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/onboarding/ui/OnBoardingFragment.kt @@ -12,10 +12,7 @@ import chat.rocket.android.analytics.event.ScreenViewEvent import chat.rocket.android.authentication.onboarding.presentation.OnBoardingPresenter import chat.rocket.android.authentication.onboarding.presentation.OnBoardingView import chat.rocket.android.authentication.ui.AuthenticationActivity -import chat.rocket.android.util.extensions.inflate -import chat.rocket.android.util.extensions.setLightStatusBar -import chat.rocket.android.util.extensions.showToast -import chat.rocket.android.util.extensions.ui +import chat.rocket.android.util.extensions.* import dagger.android.support.AndroidSupportInjection import kotlinx.android.synthetic.main.app_bar.* import kotlinx.android.synthetic.main.fragment_authentication_on_boarding.* @@ -48,7 +45,7 @@ class OnBoardingFragment : Fragment(), OnBoardingView { private fun setupToolbar() { with(activity as AuthenticationActivity) { - view?.let { this.setLightStatusBar(it) } + view?.let { this.setInvisibleStatusBar(it) } toolbar.isVisible = false } } diff --git a/app/src/main/java/chat/rocket/android/authentication/registerusername/ui/RegisterUsernameFragment.kt b/app/src/main/java/chat/rocket/android/authentication/registerusername/ui/RegisterUsernameFragment.kt index cb48ee0a0b..c3b66b9a7a 100644 --- a/app/src/main/java/chat/rocket/android/authentication/registerusername/ui/RegisterUsernameFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/registerusername/ui/RegisterUsernameFragment.kt @@ -1,7 +1,6 @@ package chat.rocket.android.authentication.registerusername.ui import DrawableHelper -import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -72,9 +71,9 @@ class RegisterUsernameFragment : Fragment(), RegisterUsernameView { showKeyboard(text_username) } - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { +// if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { tintEditTextDrawableStart() - } +// } setupOnClickListener() subscribeEditText() diff --git a/app/src/main/java/chat/rocket/android/authentication/resetpassword/ui/ResetPasswordFragment.kt b/app/src/main/java/chat/rocket/android/authentication/resetpassword/ui/ResetPasswordFragment.kt index 106cbb4b06..00771b129d 100644 --- a/app/src/main/java/chat/rocket/android/authentication/resetpassword/ui/ResetPasswordFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/resetpassword/ui/ResetPasswordFragment.kt @@ -56,6 +56,10 @@ class ResetPasswordFragment : Fragment(), ResetPasswordView { showKeyboard(text_email) } +// if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { + tintEditTextDrawableStart() +// } + setupOnClickListener() subscribeEditText() @@ -148,4 +152,13 @@ class ResetPasswordFragment : Fragment(), ResetPasswordView { } private fun unsubscribeEditText() = emailAddressDisposable.dispose() + + private fun tintEditTextDrawableStart() { + ui { + val atDrawable = DrawableHelper.getDrawableFromId(R.drawable.ic_email_black_20dp, it) + DrawableHelper.wrapDrawable(atDrawable) + DrawableHelper.tintDrawable(atDrawable, it, ThemeUtil.getThemeColorResource(R.attr.colorDrawableSubtleTint)) + DrawableHelper.compoundStartDrawable(text_email, atDrawable) + } + } } \ No newline at end of file diff --git a/app/src/main/java/chat/rocket/android/authentication/server/ui/ServerFragment.kt b/app/src/main/java/chat/rocket/android/authentication/server/ui/ServerFragment.kt index 4631daefbf..dea4435834 100644 --- a/app/src/main/java/chat/rocket/android/authentication/server/ui/ServerFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/server/ui/ServerFragment.kt @@ -27,14 +27,7 @@ import chat.rocket.android.authentication.ui.AuthenticationActivity import chat.rocket.android.helper.KeyboardHelper import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extension.asObservable -import chat.rocket.android.util.extensions.hintContent -import chat.rocket.android.util.extensions.inflate -import chat.rocket.android.util.extensions.isValidUrl -import chat.rocket.android.util.extensions.sanitize -import chat.rocket.android.util.extensions.setLightStatusBar -import chat.rocket.android.util.extensions.showToast -import chat.rocket.android.util.extensions.textContent -import chat.rocket.android.util.extensions.ui +import chat.rocket.android.util.extensions.* import chat.rocket.common.util.ifNull import dagger.android.support.AndroidSupportInjection import io.reactivex.disposables.Disposable @@ -102,7 +95,7 @@ class ServerFragment : Fragment(), ServerView { private fun setupToolbar() { with(activity as AuthenticationActivity) { - view?.let { setLightStatusBar(it) } + view?.let { setInvisibleStatusBar(it) } toolbar.isVisible = false } } diff --git a/app/src/main/java/chat/rocket/android/chatroom/ui/ChatRoomFragment.kt b/app/src/main/java/chat/rocket/android/chatroom/ui/ChatRoomFragment.kt index abd56bd6d0..f3581aa2f4 100644 --- a/app/src/main/java/chat/rocket/android/chatroom/ui/ChatRoomFragment.kt +++ b/app/src/main/java/chat/rocket/android/chatroom/ui/ChatRoomFragment.kt @@ -75,17 +75,7 @@ import chat.rocket.android.helper.AndroidPermissionsHelper.hasWriteExternalStora import chat.rocket.android.util.extension.asObservable import chat.rocket.android.util.extension.createImageFile import chat.rocket.android.util.extension.orFalse -import chat.rocket.android.util.extensions.circularRevealOrUnreveal -import chat.rocket.android.util.extensions.clearLightStatusBar -import chat.rocket.android.util.extensions.fadeIn -import chat.rocket.android.util.extensions.fadeOut -import chat.rocket.android.util.extensions.hideKeyboard -import chat.rocket.android.util.extensions.inflate -import chat.rocket.android.util.extensions.isNotNullNorEmpty -import chat.rocket.android.util.extensions.rotateBy -import chat.rocket.android.util.extensions.showToast -import chat.rocket.android.util.extensions.textContent -import chat.rocket.android.util.extensions.ui +import chat.rocket.android.util.extensions.* import chat.rocket.common.model.RoomType import chat.rocket.common.model.roomTypeOf import chat.rocket.core.internal.realtime.socket.model.State @@ -1173,7 +1163,7 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR private fun setupToolbar(toolbarTitle: String) { with(activity as ChatRoomActivity) { - this.clearLightStatusBar() + view?.let {this.clearInvisibleStatusBar(it)} this.setupToolbarTitle(toolbarTitle) toolbar.isVisible = true } diff --git a/app/src/main/java/chat/rocket/android/members/ui/MembersFragment.kt b/app/src/main/java/chat/rocket/android/members/ui/MembersFragment.kt index 5c57bd98f1..179bd8a855 100644 --- a/app/src/main/java/chat/rocket/android/members/ui/MembersFragment.kt +++ b/app/src/main/java/chat/rocket/android/members/ui/MembersFragment.kt @@ -18,10 +18,7 @@ import chat.rocket.android.members.adapter.MembersAdapter import chat.rocket.android.members.presentation.MembersPresenter import chat.rocket.android.members.presentation.MembersView import chat.rocket.android.members.uimodel.MemberUiModel -import chat.rocket.android.util.extensions.clearLightStatusBar -import chat.rocket.android.util.extensions.inflate -import chat.rocket.android.util.extensions.showToast -import chat.rocket.android.util.extensions.ui +import chat.rocket.android.util.extensions.* import dagger.android.support.AndroidSupportInjection import kotlinx.android.synthetic.main.app_bar_chat_room.* import kotlinx.android.synthetic.main.fragment_members.* @@ -131,7 +128,7 @@ class MembersFragment : Fragment(), MembersView { } else { setupToolbarTitle((getString(R.string.title_members))) } - this.clearLightStatusBar() + view?.let {this.clearInvisibleStatusBar(it)} toolbar.isVisible = true } } diff --git a/app/src/main/java/chat/rocket/android/profile/ui/ProfileFragment.kt b/app/src/main/java/chat/rocket/android/profile/ui/ProfileFragment.kt index f5aebacc22..fca4f555f5 100644 --- a/app/src/main/java/chat/rocket/android/profile/ui/ProfileFragment.kt +++ b/app/src/main/java/chat/rocket/android/profile/ui/ProfileFragment.kt @@ -87,9 +87,9 @@ class ProfileFragment : Fragment(), ProfileView, ActionMode.Callback { super.onViewCreated(view, savedInstanceState) setupToolbar() - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { +// if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { tintEditTextDrawableStart() - } +// } presenter.loadUserProfile() setupListeners() diff --git a/app/src/main/java/chat/rocket/android/thememanager/util/ThemeUtil.kt b/app/src/main/java/chat/rocket/android/thememanager/util/ThemeUtil.kt index 86b284bd53..73f66bb988 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/util/ThemeUtil.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/util/ThemeUtil.kt @@ -1,8 +1,11 @@ package chat.rocket.android.thememanager.util +import android.content.Context import android.content.res.Resources import android.util.TypedValue import androidx.annotation.AttrRes +import chat.rocket.android.R +import java.lang.Boolean.getBoolean class ThemeUtil{ @@ -25,5 +28,10 @@ class ThemeUtil{ theme.resolveAttribute(attrColor, typedValue, resolveRefs) return typedValue.resourceId } + + fun getIsDark(context: Context): Boolean{ + theme.resolveAttribute(R.attr.colorBackgroundIsDark, typedValue, resolveRefs) + return context.resources.getBoolean(typedValue.resourceId) + } } } diff --git a/app/src/main/java/chat/rocket/android/userdetails/ui/UserDetailsFragment.kt b/app/src/main/java/chat/rocket/android/userdetails/ui/UserDetailsFragment.kt index bfd829b88a..4a34a1738f 100644 --- a/app/src/main/java/chat/rocket/android/userdetails/ui/UserDetailsFragment.kt +++ b/app/src/main/java/chat/rocket/android/userdetails/ui/UserDetailsFragment.kt @@ -14,10 +14,7 @@ import chat.rocket.android.analytics.event.ScreenViewEvent import chat.rocket.android.chatroom.ui.ChatRoomActivity import chat.rocket.android.userdetails.presentation.UserDetailsPresenter import chat.rocket.android.userdetails.presentation.UserDetailsView -import chat.rocket.android.util.extensions.inflate -import chat.rocket.android.util.extensions.setLightStatusBar -import chat.rocket.android.util.extensions.showToast -import chat.rocket.android.util.extensions.ui +import chat.rocket.android.util.extensions.* import com.bumptech.glide.Glide import com.bumptech.glide.load.MultiTransformation import com.bumptech.glide.load.engine.DiskCacheStrategy @@ -140,7 +137,7 @@ class UserDetailsFragment : Fragment(), UserDetailsView { handler.postDelayed({ with(activity as ChatRoomActivity) { view?.let { - setLightStatusBar( + setInvisibleStatusBar( it, ContextCompat.getColor(this, R.color.whitesmoke) ) diff --git a/app/src/main/java/chat/rocket/android/util/extensions/Ui.kt b/app/src/main/java/chat/rocket/android/util/extensions/Ui.kt index d1d2265093..899fd7c3f0 100644 --- a/app/src/main/java/chat/rocket/android/util/extensions/Ui.kt +++ b/app/src/main/java/chat/rocket/android/util/extensions/Ui.kt @@ -24,11 +24,13 @@ import androidx.fragment.app.FragmentActivity import chat.rocket.android.R import chat.rocket.android.thememanager.util.ThemeUtil -fun FragmentActivity.setLightStatusBar(view: View, @ColorInt color: Int = 0) { +fun FragmentActivity.setInvisibleStatusBar(view: View, @ColorInt color: Int = 0) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + val isDark = ThemeUtil.getIsDark(applicationContext) var flags = view.systemUiVisibility - flags = flags or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR - view.systemUiVisibility = flags + window.decorView.systemUiVisibility = (if (isDark){ + flags and (View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR).inv()}else{ + flags or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR}) window.statusBarColor = if (color == 0) { ThemeUtil.getThemeColor(android.R.attr.colorBackground) } else { @@ -37,8 +39,11 @@ fun FragmentActivity.setLightStatusBar(view: View, @ColorInt color: Int = 0) { } } -fun FragmentActivity.clearLightStatusBar() { +fun FragmentActivity.clearInvisibleStatusBar(view: View) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + val isDark = ThemeUtil.getIsDark(applicationContext) + var flags = view.systemUiVisibility + window.decorView.systemUiVisibility = flags and (View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR).inv() window.statusBarColor = ThemeUtil.getThemeColor(R.attr.colorPrimaryDark) } } diff --git a/app/src/main/res/layout/fragment_authentication_log_in.xml b/app/src/main/res/layout/fragment_authentication_log_in.xml index ebda1b6d4c..922ad7de07 100644 --- a/app/src/main/res/layout/fragment_authentication_log_in.xml +++ b/app/src/main/res/layout/fragment_authentication_log_in.xml @@ -6,7 +6,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/screen_edge_left_and_right_margins" - android:background="?android:colorBackground" tools:context=".authentication.login.ui.LoginFragment"> + \ No newline at end of file diff --git a/app/src/main/res/values/bools.xml b/app/src/main/res/values/bools.xml new file mode 100644 index 0000000000..08d25f7dba --- /dev/null +++ b/app/src/main/res/values/bools.xml @@ -0,0 +1,4 @@ + + + false + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index c34456b5e3..b1e8abbf1a 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -63,6 +63,7 @@ #0a4469 + @color/colorAccent @color/colorPrimaryText diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 5891c589b1..a6971e1c0b 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -15,7 +15,7 @@ wrap_content 16sp sans-serif - ?colorDescriptiveText + ?colorControlText normal diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 85400d591e..5001905c17 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -49,5 +49,6 @@ @color/colorPrimary @color/colorChatText @color/colorPrimary + @bool/isDark \ No newline at end of file diff --git a/themelibrary/src/main/res/values/attrs.xml b/themelibrary/src/main/res/values/attrs.xml index b2cbe47454..e9b13a1560 100644 --- a/themelibrary/src/main/res/values/attrs.xml +++ b/themelibrary/src/main/res/values/attrs.xml @@ -31,4 +31,5 @@ + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/bools.xml b/themelibrary/src/main/res/values/bools.xml new file mode 100644 index 0000000000..ca71f2e17b --- /dev/null +++ b/themelibrary/src/main/res/values/bools.xml @@ -0,0 +1,5 @@ + + + true + true + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/colors.xml b/themelibrary/src/main/res/values/colors.xml index 8db761f183..6a16ab4f82 100644 --- a/themelibrary/src/main/res/values/colors.xml +++ b/themelibrary/src/main/res/values/colors.xml @@ -101,6 +101,8 @@ #cdcdcd #FFb2b8c6 + true + @color/darkColorAccent diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml index c0649887ed..897a8ad2d9 100644 --- a/themelibrary/src/main/res/values/themes.xml +++ b/themelibrary/src/main/res/values/themes.xml @@ -42,6 +42,7 @@ @color/darkColorSecondaryText @color/darkColorChatText @color/darkColorBodyText + @bool/darkIsDark @@ -87,5 +88,6 @@ @color/blackColorSecondaryText @color/blackColorChatText @color/blackColorBodyText + @bool/blackIsDark \ No newline at end of file From 5b345684970d2ff4fef803db69d8e2842f33f409 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sat, 29 Jun 2019 20:33:24 +0500 Subject: [PATCH 24/89] [FIX] Changed spinner drop-down item style to support theme switching. --- .../java/chat/rocket/android/thememanager/BaseActivity.kt | 3 --- app/src/main/res/layout/fragment_authentication_server.xml | 1 + app/src/main/res/values/styles.xml | 4 ++++ app/src/main/res/values/themes.xml | 1 + themelibrary/src/main/res/values/themes.xml | 2 ++ 5 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt b/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt index b0abb9f714..587a632e36 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt @@ -1,9 +1,6 @@ package chat.rocket.android.thememanager -import android.content.res.Resources import android.os.Bundle -import android.util.TypedValue -import androidx.annotation.AttrRes import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.ViewModelProviders import chat.rocket.android.R diff --git a/app/src/main/res/layout/fragment_authentication_server.xml b/app/src/main/res/layout/fragment_authentication_server.xml index 97d2cf288b..413aa20ba2 100644 --- a/app/src/main/res/layout/fragment_authentication_server.xml +++ b/app/src/main/res/layout/fragment_authentication_server.xml @@ -43,6 +43,7 @@ diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index a6971e1c0b..522b8bfa02 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -360,4 +360,8 @@ + + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 5001905c17..79751bff0c 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -50,5 +50,6 @@ @color/colorChatText @color/colorPrimary @bool/isDark + @style/SpinnerItemStyle \ No newline at end of file diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml index 897a8ad2d9..f50d99c0d7 100644 --- a/themelibrary/src/main/res/values/themes.xml +++ b/themelibrary/src/main/res/values/themes.xml @@ -43,6 +43,7 @@ @color/darkColorChatText @color/darkColorBodyText @bool/darkIsDark + @style/SpinnerItemStyle @@ -89,5 +90,6 @@ @color/blackColorChatText @color/blackColorBodyText @bool/blackIsDark + @style/SpinnerItemStyle \ No newline at end of file From b37dd2dfa66330292faf864dd8dfb0c9fef3cddf Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sat, 29 Jun 2019 20:48:37 +0500 Subject: [PATCH 25/89] [FIX] Tinted drawables for log in and sign up. --- .../authentication/login/ui/LoginFragment.kt | 8 +++++--- .../signup/ui/SignupFragment.kt | 20 +++++++++++++++++++ .../main/res/drawable/ic_key_black_20dp.xml | 4 ++-- .../fragment_authentication_sign_up.xml | 1 - 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt b/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt index 571599c25b..8a7a945cff 100644 --- a/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/login/ui/LoginFragment.kt @@ -258,9 +258,11 @@ class LoginFragment : Fragment(), LoginView { private fun tintEditTextDrawableStart() { ui { val atDrawable = DrawableHelper.getDrawableFromId(R.drawable.ic_at_black_20dp, it) - DrawableHelper.wrapDrawable(atDrawable) - DrawableHelper.tintDrawable(atDrawable, it, ThemeUtil.getThemeColorResource(R.attr.colorDrawableStrongTint)) - DrawableHelper.compoundStartDrawable(text_username_or_email, atDrawable) + val keyDrawable = DrawableHelper.getDrawableFromId(R.drawable.ic_key_black_20dp, it) + val drawables = arrayOf(atDrawable, keyDrawable) + DrawableHelper.wrapDrawables(drawables) + DrawableHelper.tintDrawables(drawables, it, ThemeUtil.getThemeColorResource(R.attr.colorDrawableStrongTint)) + DrawableHelper.compoundDrawables( arrayOf(text_username_or_email, text_password), drawables) } } } diff --git a/app/src/main/java/chat/rocket/android/authentication/signup/ui/SignupFragment.kt b/app/src/main/java/chat/rocket/android/authentication/signup/ui/SignupFragment.kt index 98bcae618f..c80f82ba78 100644 --- a/app/src/main/java/chat/rocket/android/authentication/signup/ui/SignupFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/signup/ui/SignupFragment.kt @@ -15,6 +15,7 @@ import chat.rocket.android.analytics.AnalyticsManager import chat.rocket.android.analytics.event.ScreenViewEvent import chat.rocket.android.authentication.signup.presentation.SignupPresenter import chat.rocket.android.authentication.signup.presentation.SignupView +import chat.rocket.android.authentication.ui.AuthenticationActivity import chat.rocket.android.helper.saveCredentials import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extension.asObservable @@ -55,6 +56,7 @@ class SignupFragment : Fragment(), SignupView { super.onViewCreated(view, savedInstanceState) subscribeEditTexts() + tintEditTextDrawableStart() setupOnClickListener() analyticsManager.logScreenView(ScreenViewEvent.SignUp) @@ -181,4 +183,22 @@ class SignupFragment : Fragment(), SignupView { text_password.isEnabled = false text_email.isEnabled = false } + + private fun tintEditTextDrawableStart() { + (activity as AuthenticationActivity).apply { + val personDrawable = + DrawableHelper.getDrawableFromId(R.drawable.ic_person_black_20dp, this) + val atDrawable = DrawableHelper.getDrawableFromId(R.drawable.ic_at_black_20dp, this) + val keyDrawable = DrawableHelper.getDrawableFromId(R.drawable.ic_key_black_20dp, this) + val emailDrawable = + DrawableHelper.getDrawableFromId(R.drawable.ic_email_black_20dp, this) + + val drawables = arrayOf(personDrawable, atDrawable, keyDrawable, emailDrawable) + DrawableHelper.wrapDrawables(drawables) + DrawableHelper.tintDrawables(drawables, this, ThemeUtil.getThemeColorResource(R.attr.colorDrawableSubtleTint)) + DrawableHelper.compoundDrawables( + arrayOf(text_name, text_username, text_password, text_email), drawables + ) + } + } } diff --git a/app/src/main/res/drawable/ic_key_black_20dp.xml b/app/src/main/res/drawable/ic_key_black_20dp.xml index 15e7a3f1ae..46295b3876 100644 --- a/app/src/main/res/drawable/ic_key_black_20dp.xml +++ b/app/src/main/res/drawable/ic_key_black_20dp.xml @@ -10,12 +10,12 @@ android:fillType="evenOdd" android:pathData="M10.0002,5.5001C10.0002,6.3261 9.869,6.9474 9.6082,7.3639L14.4347,12.0381L15,13.8704L13.8695,15L12.0425,14.4382L11.6838,14.0804L11.6838,12.7898L10.3931,12.7898L9.8419,12.2385L9.8419,10.947L8.5504,10.947L7.1801,9.5715C6.6709,9.8576 6.11,10.0002 5.5001,10.0002C4.2845,10.0003 3.1205,9.5084 2.2732,8.6367C1.4258,7.765 0.9672,6.5876 1.0017,5.3724C1.0674,3.0239 3.0247,1.0674 5.3724,1.0017C6.5873,0.9675 7.7643,1.4261 8.6358,2.2732C9.5073,3.1203 9.9991,4.2839 9.9994,5.4992L10.0002,5.5001Z" android:strokeWidth="1.5" - android:strokeColor="?colorDrawableStrongTint" /> + android:strokeColor="#000000" /> + android:strokeColor="#000000" /> diff --git a/app/src/main/res/layout/fragment_authentication_sign_up.xml b/app/src/main/res/layout/fragment_authentication_sign_up.xml index e3aaa114fa..6c866220ba 100644 --- a/app/src/main/res/layout/fragment_authentication_sign_up.xml +++ b/app/src/main/res/layout/fragment_authentication_sign_up.xml @@ -4,7 +4,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/screen_edge_left_and_right_margins" - android:background="?android:colorBackground" tools:context=".authentication.signup.ui.SignupFragment"> Date: Sat, 29 Jun 2019 23:08:59 +0500 Subject: [PATCH 26/89] [Improvement] Set toolbar overflow icon color. --- .../authentication/loginoptions/ui/LoginOptionsFragment.kt | 5 +++++ .../rocket/android/chatdetails/ui/ChatDetailsFragment.kt | 4 ++-- app/src/main/res/layout/fragment_authentication_two_fa.xml | 1 - app/src/main/res/layout/fragment_chat_details.xml | 3 --- app/src/main/res/layout/fragment_chat_room.xml | 5 ++--- app/src/main/res/layout/fragment_chat_rooms.xml | 1 - 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/authentication/loginoptions/ui/LoginOptionsFragment.kt b/app/src/main/java/chat/rocket/android/authentication/loginoptions/ui/LoginOptionsFragment.kt index c614ddd383..8383eeb104 100644 --- a/app/src/main/java/chat/rocket/android/authentication/loginoptions/ui/LoginOptionsFragment.kt +++ b/app/src/main/java/chat/rocket/android/authentication/loginoptions/ui/LoginOptionsFragment.kt @@ -213,6 +213,11 @@ class LoginOptionsFragment : Fragment(), LoginOptionsView { view?.let {this.clearInvisibleStatusBar(it)} toolbar.isVisible = true toolbar.title = serverName?.replace(getString(R.string.default_protocol), "") + val overflowIcon = toolbar.overflowIcon + overflowIcon?.let{ + val wrappedDrawable = DrawableHelper.wrapDrawable(it) + DrawableHelper.tintDrawable(wrappedDrawable, this, R.color.colorWhite) + } } } diff --git a/app/src/main/java/chat/rocket/android/chatdetails/ui/ChatDetailsFragment.kt b/app/src/main/java/chat/rocket/android/chatdetails/ui/ChatDetailsFragment.kt index cdabe5fc12..2f67d153e3 100644 --- a/app/src/main/java/chat/rocket/android/chatdetails/ui/ChatDetailsFragment.kt +++ b/app/src/main/java/chat/rocket/android/chatdetails/ui/ChatDetailsFragment.kt @@ -189,13 +189,13 @@ class ChatDetailsFragment : Fragment(), ChatDetailsView { is RoomType.PrivateGroup -> { DrawableHelper.getDrawableFromId(R.drawable.ic_lock_black_12_dp, context!!) } - else -> null + else -> DrawableHelper.getDrawableFromId(R.drawable.ic_hashtag_black_12dp, context!!) } drawable?.let { val wrappedDrawable = DrawableHelper.wrapDrawable(it) val mutableDrawable = wrappedDrawable.mutate() - DrawableHelper.tintDrawable(mutableDrawable, context!!, ThemeUtil.getThemeColorResource(R.attr.colorPrimary)) + DrawableHelper.tintDrawable(mutableDrawable, context!!, ThemeUtil.getThemeColorResource(R.attr.colorMessageText)) DrawableHelper.compoundStartDrawable(name, mutableDrawable) } } diff --git a/app/src/main/res/layout/fragment_authentication_two_fa.xml b/app/src/main/res/layout/fragment_authentication_two_fa.xml index fef721180c..080d46404c 100644 --- a/app/src/main/res/layout/fragment_authentication_two_fa.xml +++ b/app/src/main/res/layout/fragment_authentication_two_fa.xml @@ -5,7 +5,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/screen_edge_left_and_right_margins" - android:background="?android:colorBackground" tools:context=".authentication.twofactor.ui.TwoFAFragment"> - Date: Mon, 1 Jul 2019 15:45:32 +0500 Subject: [PATCH 27/89] [Improvement] Updated theme colors --- app/src/main/res/layout/fragment_chat_rooms.xml | 2 +- app/src/main/res/layout/fragment_create_channel.xml | 7 +++++-- app/src/main/res/layout/fragment_directory.xml | 1 - 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/layout/fragment_chat_rooms.xml b/app/src/main/res/layout/fragment_chat_rooms.xml index 229bda51b8..858839fd86 100644 --- a/app/src/main/res/layout/fragment_chat_rooms.xml +++ b/app/src/main/res/layout/fragment_chat_rooms.xml @@ -25,7 +25,7 @@ android:paddingEnd="16dp" android:paddingBottom="32dp" android:text="@string/msg_directory" - android:textColor="#0c0d0f" + android:textColor="?colorPrimaryText" android:textSize="17sp" android:textStyle="bold" android:visibility="gone" diff --git a/app/src/main/res/layout/fragment_create_channel.xml b/app/src/main/res/layout/fragment_create_channel.xml index a5d1392248..49f28978bf 100644 --- a/app/src/main/res/layout/fragment_create_channel.xml +++ b/app/src/main/res/layout/fragment_create_channel.xml @@ -4,7 +4,6 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="?android:colorBackground" tools:context="createchannel.ui.CreateChannelFragment"> @@ -109,6 +109,7 @@ android:maxLines="1" android:paddingStart="24dp" android:paddingEnd="10dp" + android:textColor="?colorPrimaryText" android:textSize="16sp" app:layout_constraintBottom_toBottomOf="@+id/image_channel_icon" app:layout_constraintEnd_toEndOf="parent" @@ -122,6 +123,7 @@ android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:src="@drawable/ic_at_black_20dp" + android:tint="?colorHeadings" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/text_channel_name" /> @@ -137,6 +139,7 @@ android:maxLines="1" android:paddingStart="24dp" android:paddingEnd="10dp" + android:textColor="?colorPrimaryText" android:textSize="16sp" app:layout_constraintBottom_toBottomOf="@+id/image_invite_member" app:layout_constraintEnd_toEndOf="parent" @@ -181,10 +184,10 @@ Date: Thu, 4 Jul 2019 19:22:39 +0500 Subject: [PATCH 28/89] [Improvement] Added strings in strings.xml --- .../android/thememanager/BaseActivity.kt | 2 +- .../infrastructure/ThemesRepository.kt | 2 +- .../android/thememanager/ui/ThemesActivity.kt | 2 +- .../android/thememanager/util/ThemeUtil.kt | 2 +- app/src/main/res/layout/activity_themes.xml | 30 +++++++++---------- app/src/main/res/layout/item_theme_row.xml | 6 ++-- .../main/res/layout/item_theme_row_small.xml | 2 +- app/src/main/res/values-ar/strings.xml | 7 +++++ app/src/main/res/values-de/strings.xml | 6 ++++ app/src/main/res/values-es/strings.xml | 7 +++++ app/src/main/res/values-fa/strings.xml | 7 +++++ app/src/main/res/values-fr/strings.xml | 7 +++++ app/src/main/res/values-hi-rIN/strings.xml | 7 +++++ app/src/main/res/values-it/strings.xml | 7 +++++ app/src/main/res/values-ja/strings.xml | 7 +++++ app/src/main/res/values-pt-rBR/strings.xml | 7 +++++ app/src/main/res/values-pt-rPT/strings.xml | 7 +++++ app/src/main/res/values-ru-rRU/strings.xml | 7 +++++ app/src/main/res/values-tr/strings.xml | 7 +++++ app/src/main/res/values-uk/strings.xml | 7 +++++ app/src/main/res/values-zh-rCN/strings.xml | 7 +++++ app/src/main/res/values-zh-rTW/strings.xml | 7 +++++ app/src/main/res/values/dimens.xml | 5 ++++ app/src/main/res/values/strings.xml | 7 +++++ 24 files changed, 139 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt b/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt index 587a632e36..2160df4a28 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt @@ -10,7 +10,7 @@ import chat.rocket.android.thememanager.viewmodel.ThemesViewModelFactory import dagger.android.AndroidInjection import javax.inject.Inject -open class BaseActivity : AppCompatActivity() { +abstract class BaseActivity : AppCompatActivity() { @Inject lateinit var factory: ThemesViewModelFactory lateinit var viewModel: ThemesViewModel diff --git a/app/src/main/java/chat/rocket/android/thememanager/infrastructure/ThemesRepository.kt b/app/src/main/java/chat/rocket/android/thememanager/infrastructure/ThemesRepository.kt index dd152b9fb2..ff60bed8b4 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/infrastructure/ThemesRepository.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/infrastructure/ThemesRepository.kt @@ -17,7 +17,7 @@ class ThemesRepository @Inject constructor(private val preferences: SharedPrefer private val themeList = mutableListOf() private val themes = MutableLiveData>() - private val simpleDateFormat = SimpleDateFormat("MMM dd, yyyy") + private val simpleDateFormat = SimpleDateFormat("MMM dd, yyyy", Locale.getDefault()) private lateinit var currentDate : Date init { diff --git a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt index 2062c81df7..a23a990f72 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt @@ -29,7 +29,7 @@ class ThemesActivity : BaseActivity() { } private fun setDate(){ - theme_last_changed.text = "Last Changed "+viewModel.getSavedDate() + theme_last_changed.text = getString(R.string.last_changed,viewModel.getSavedDate()) } private fun subscribeUi() { diff --git a/app/src/main/java/chat/rocket/android/thememanager/util/ThemeUtil.kt b/app/src/main/java/chat/rocket/android/thememanager/util/ThemeUtil.kt index 73f66bb988..39945268a3 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/util/ThemeUtil.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/util/ThemeUtil.kt @@ -13,7 +13,7 @@ class ThemeUtil{ @JvmStatic private lateinit var theme: Resources.Theme private val typedValue: TypedValue = TypedValue() - private val resolveRefs: Boolean = true + private const val resolveRefs: Boolean = true fun setTheme(theme: Resources.Theme) { this.theme = theme diff --git a/app/src/main/res/layout/activity_themes.xml b/app/src/main/res/layout/activity_themes.xml index 4f2b714560..ea0daa747b 100644 --- a/app/src/main/res/layout/activity_themes.xml +++ b/app/src/main/res/layout/activity_themes.xml @@ -17,9 +17,9 @@ style="@style/ChangeTheme.Content.TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingStart="20dp" - android:paddingTop="25dp" - android:text="Current Theme" + android:paddingStart="@dimen/theme_screen_edge_left_and_right_padding" + android:paddingTop="@dimen/theme_screen_edge_top_padding" + android:text="@string/current_theme" app:layout_constraintStart_toStartOf="@+id/layout_app_bar" app:layout_constraintTop_toBottomOf="@+id/layout_app_bar" /> @@ -28,7 +28,7 @@ style="@style/ChangeTheme.Content.TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingTop="25dp" + android:paddingTop="@dimen/theme_screen_edge_top_padding" android:text=" | " app:layout_constraintLeft_toRightOf="@+id/current_theme" app:layout_constraintTop_toBottomOf="@+id/layout_app_bar" /> @@ -38,8 +38,8 @@ style="@style/ChangeTheme.Content.TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingTop="25dp" - android:text="Last Changed" + android:paddingTop="@dimen/theme_screen_edge_top_padding" + android:text="@string/last_changed" app:layout_constraintLeft_toRightOf="@+id/divider" app:layout_constraintTop_toBottomOf="@+id/layout_app_bar" /> @@ -56,9 +56,9 @@ style="@style/ChangeTheme.Content.TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingStart="20dp" - android:paddingTop="25dp" - android:text="Revert to Default" + android:paddingStart="@dimen/theme_screen_edge_left_and_right_padding" + android:paddingTop="@dimen/theme_screen_edge_top_padding" + android:text="@string/revert_to_default" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@+id/item_theme_row_small" /> @@ -67,7 +67,7 @@ style="@style/ChangeTheme.Content.TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingTop="25dp" + android:paddingTop="@dimen/theme_screen_edge_top_padding" android:text=" | " app:layout_constraintLeft_toRightOf="@+id/revert_to_default" app:layout_constraintTop_toBottomOf="@+id/item_theme_row_small" /> @@ -77,17 +77,17 @@ style="@style/ChangeTheme.Content.TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingTop="25dp" - android:text="Create Personal Theme" + android:paddingTop="@dimen/theme_screen_edge_top_padding" + android:text="@string/create_personal_theme" app:layout_constraintLeft_toRightOf="@+id/divider2" app:layout_constraintTop_toBottomOf="@+id/item_theme_row_small" /> diff --git a/app/src/main/res/layout/item_theme_row.xml b/app/src/main/res/layout/item_theme_row.xml index 6a26aa0c08..e08a1f8d60 100644 --- a/app/src/main/res/layout/item_theme_row.xml +++ b/app/src/main/res/layout/item_theme_row.xml @@ -5,9 +5,9 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?android:colorBackground" - android:paddingStart="20dp" + android:paddingStart="@dimen/theme_screen_edge_left_and_right_padding" android:paddingTop="20dp" - android:paddingEnd="20dp"> + android:paddingEnd="@dimen/theme_screen_edge_left_and_right_padding"> + tools:text="Eerie Black" /> تأكيد *مطلوب تم إرسال تقريرك! + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 852743fc83..7be935571e 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -371,4 +371,10 @@ *erforderlich Ihr Bericht wurde gesendet! + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 7890c05559..300cc44015 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -373,4 +373,11 @@ Submit *required Your report has been sent! + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 7d06436f58..f45a4a7033 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -372,4 +372,11 @@ واگذاری *required گزارش شما فرستاده شد + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 03c370e6ae..e527e95ca2 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -370,4 +370,11 @@ Soumettre *Obligatoire Votre rapport a été envoyé! + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 0f096988d1..94104b2878 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -374,4 +374,11 @@ जमा करें * आवश्यक आपकी रिपोर्ट भेज दी गई है! + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 93e698f62a..34c5059405 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -369,4 +369,11 @@ Invia *necessario Il tuo resoconto è stato inviato! + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 7d77d63c3b..2ea17e0e30 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -373,4 +373,11 @@ Submit *required Your report has been sent! + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes \ No newline at end of file diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index ebbd10a8dc..480405f6dd 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -373,4 +373,11 @@ Enviar *obrigatório A mensagem foi reportada! + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 78dca74c2d..673e7e4cbc 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -371,4 +371,11 @@ Enviar *requerido O seu relatório foi enviado! + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 02304abfa0..274c41ec04 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -370,4 +370,11 @@ Отправить *требуется Ваша жалоба была отправлена! + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 8c160230b7..2495ccebd2 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -373,4 +373,11 @@ Submit *required Your report has been sent! + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 95ec4ce2af..37f7c9c503 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -370,4 +370,11 @@ Submit *required Your report has been sent! + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 2c8ed3a80e..b71634e50b 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -369,4 +369,11 @@ 提交 *必须 您的报告已提交! + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 0e0c171e96..42370cc5a0 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -350,4 +350,11 @@ 提交 *必須輸入 您的報告已經提交! + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 4c1b7c16b0..6b1864c209 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -48,4 +48,9 @@ 32dp + + 20dp + 25dp + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7d7cc12178..da0951217b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -393,4 +393,11 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin Hello blank fragment + + + Last Changed %s + Current Theme + Revert to Default + Create Personal Theme + Other Themes \ No newline at end of file From 28e1c0741ba4e8b359905f83685487b88b02c7e0 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Fri, 5 Jul 2019 16:39:56 +0500 Subject: [PATCH 29/89] Added BaseActivity in AndroidManifest.xml --- app/src/main/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d6704be33a..7994bb9e5a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,7 @@ + Date: Fri, 5 Jul 2019 16:40:33 +0500 Subject: [PATCH 30/89] [FIX] Tinted key drawable in AlertDialog. --- .../rocket/android/settings/ui/SettingsFragment.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt b/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt index 7485aebdb3..88ce78c4f5 100644 --- a/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt +++ b/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt @@ -21,11 +21,14 @@ import chat.rocket.android.core.behaviours.AppLanguageView import chat.rocket.android.helper.TextHelper.getDeviceAndAppInformation import chat.rocket.android.settings.presentation.SettingsPresenter import chat.rocket.android.settings.presentation.SettingsView +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extensions.inflate import chat.rocket.android.util.extensions.showToast +import chat.rocket.android.util.extensions.ui import chat.rocket.android.util.invalidateFirebaseToken import dagger.android.support.AndroidSupportInjection import kotlinx.android.synthetic.main.app_bar.* +import kotlinx.android.synthetic.main.dialog_delete_account.* import kotlinx.android.synthetic.main.fragment_settings.* import timber.log.Timber import javax.inject.Inject @@ -252,12 +255,16 @@ class SettingsFragment : Fragment(), SettingsView, AppLanguageView { private fun showDeleteAccountDialog() { context?.let { - AlertDialog.Builder(it) + val dialog = AlertDialog.Builder(it) .setView(LayoutInflater.from(it).inflate(R.layout.dialog_delete_account, null)) .setPositiveButton(R.string.msg_delete_account) { _, _ -> presenter.deleteAccount(EditText(context).text.toString()) }.setNegativeButton(android.R.string.no) { dialog, _ -> dialog.cancel() }.create() - .show() + dialog.show() + val keyDrawable = DrawableHelper.getDrawableFromId(R.drawable.ic_key_black_20dp, it) + DrawableHelper.wrapDrawable(keyDrawable) + DrawableHelper.tintDrawable(keyDrawable, it, ThemeUtil.getThemeColorResource(R.attr.colorDrawableStrongTint)) + DrawableHelper.compoundStartDrawable(dialog.text_delete_account_password, keyDrawable) } } } \ No newline at end of file From 72fb04d9a1abd906fd6f5612d0f2e35e399ccd78 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Fri, 5 Jul 2019 16:41:40 +0500 Subject: [PATCH 31/89] Removed unnecessary theme attributes. --- themelibrary/src/main/res/values/themes.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml index f50d99c0d7..897a8ad2d9 100644 --- a/themelibrary/src/main/res/values/themes.xml +++ b/themelibrary/src/main/res/values/themes.xml @@ -43,7 +43,6 @@ @color/darkColorChatText @color/darkColorBodyText @bool/darkIsDark - @style/SpinnerItemStyle @@ -90,6 +89,5 @@ @color/blackColorChatText @color/blackColorBodyText @bool/blackIsDark - @style/SpinnerItemStyle \ No newline at end of file From 6c783266ec54fa3002a7e1714aef24d1c926b0a6 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Fri, 5 Jul 2019 16:42:36 +0500 Subject: [PATCH 32/89] [FIX] Fixed AlertDialog theming issue. --- .../java/chat/rocket/android/thememanager/BaseActivity.kt | 2 +- .../rocket/android/thememanager/adapter/ThemesAdapter.kt | 2 +- app/src/main/res/values/styles.xml | 5 +++++ app/src/main/res/values/themes.xml | 3 +++ themelibrary/src/main/res/values/styles.xml | 4 ++-- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt b/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt index 2160df4a28..587a632e36 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/BaseActivity.kt @@ -10,7 +10,7 @@ import chat.rocket.android.thememanager.viewmodel.ThemesViewModelFactory import dagger.android.AndroidInjection import javax.inject.Inject -abstract class BaseActivity : AppCompatActivity() { +open class BaseActivity : AppCompatActivity() { @Inject lateinit var factory: ThemesViewModelFactory lateinit var viewModel: ThemesViewModel diff --git a/app/src/main/java/chat/rocket/android/thememanager/adapter/ThemesAdapter.kt b/app/src/main/java/chat/rocket/android/thememanager/adapter/ThemesAdapter.kt index 898448d930..0bd4c9caf1 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/adapter/ThemesAdapter.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/adapter/ThemesAdapter.kt @@ -18,7 +18,7 @@ class ThemesAdapter(private val themes: List, private val listener: (Them override fun onBindViewHolder(holder: ThemesAdapter.ViewHolder, position: Int){ val theme = themes[position] holder.bind(theme) - holder.itemView.setOnClickListener { view -> + holder.itemView.setOnClickListener { listener.invoke(theme) } } diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 522b8bfa02..a9d5c15c60 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -359,6 +359,11 @@ + + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/styles.xml b/themelibrary/src/main/res/values/styles.xml index 46e8278a36..ab2af3b494 100644 --- a/themelibrary/src/main/res/values/styles.xml +++ b/themelibrary/src/main/res/values/styles.xml @@ -2,11 +2,11 @@ From de349c63cd4d1f43d60e962131ea005f93049294 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Fri, 5 Jul 2019 17:51:09 +0500 Subject: [PATCH 33/89] [FIX] Fixed DialogAlert theming in SettingsFragment.kt --- .../chat/rocket/android/settings/ui/SettingsFragment.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt b/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt index 88ce78c4f5..7afb2e350f 100644 --- a/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt +++ b/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt @@ -32,6 +32,11 @@ import kotlinx.android.synthetic.main.dialog_delete_account.* import kotlinx.android.synthetic.main.fragment_settings.* import timber.log.Timber import javax.inject.Inject +import android.text.Spanned +import android.text.style.ForegroundColorSpan +import android.text.SpannableString +import androidx.core.content.ContextCompat + internal const val TAG_SETTINGS_FRAGMENT = "SettingsFragment" @@ -244,8 +249,10 @@ class SettingsFragment : Fragment(), SettingsView, AppLanguageView { private fun showLogoutDialog() { context?.let { + val title = SpannableString(getString(R.string.title_are_you_sure)) + title.setSpan(ForegroundColorSpan(ContextCompat.getColor(it, ThemeUtil.getThemeColorResource(R.attr.colorHeadings))), 0, title.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) val builder = AlertDialog.Builder(it) - builder.setTitle(R.string.title_are_you_sure) + builder.setTitle(title) .setPositiveButton(R.string.action_logout) { _, _ -> presenter.logout() } .setNegativeButton(android.R.string.no) { dialog, _ -> dialog.cancel() } .create() From bf2d6cbc98749202a9f2f9b20463a8e08b11bad5 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Fri, 5 Jul 2019 20:21:27 +0500 Subject: [PATCH 34/89] [FIX] Fixed homeAsUpIndicator. --- app/src/main/res/values/themes.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 28af729f56..3a8a5d41db 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -54,5 +54,6 @@ @style/Alert.Button @style/Alert.Button @style/Alert.Button + @drawable/ic_arrow_back_white_24dp \ No newline at end of file From d16da9d83f3ab9d907d23cc1d6575951e5a4ee75 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Fri, 5 Jul 2019 21:38:27 +0500 Subject: [PATCH 35/89] [FIX] Tinted Drawables in ChatRoomsFragment.kt and DirectoryFragment.kt --- .../android/chatrooms/ui/ChatRoomsFragment.kt | 11 +++++++++++ .../android/directory/ui/DirectoryFragment.kt | 15 +++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/app/src/main/java/chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt b/app/src/main/java/chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt index 33bb481171..3ca2e2b67b 100644 --- a/app/src/main/java/chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt +++ b/app/src/main/java/chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt @@ -28,6 +28,7 @@ import chat.rocket.android.chatrooms.viewmodel.LoadingState import chat.rocket.android.chatrooms.viewmodel.Query import chat.rocket.android.servers.ui.ServersBottomSheetFragment import chat.rocket.android.sortingandgrouping.ui.SortingAndGroupingBottomSheetFragment +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extension.onQueryTextListener import chat.rocket.android.util.extensions.ifNotNullNotEmpty import chat.rocket.android.util.extensions.inflate @@ -94,11 +95,21 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView { viewModel = ViewModelProviders.of(this, factory).get(ChatRoomsViewModel::class.java) subscribeUi() + tintSortByDrawable() setupListeners() analyticsManager.logScreenView(ScreenViewEvent.ChatRooms) } + private fun tintSortByDrawable() { + ui { + val sortByDrawable = DrawableHelper.getDrawableFromId(R.drawable.ic_group_by_type_20dp, it) + DrawableHelper.wrapDrawable(sortByDrawable) + DrawableHelper.tintDrawable(sortByDrawable, it, ThemeUtil.getThemeColorResource(R.attr.colorSubHeaderText)) + DrawableHelper.compoundEndDrawable(text_sort_by, sortByDrawable) + } + } + override fun setupToolbar(serverName: String) { with((activity as AppCompatActivity)) { with(toolbar) { diff --git a/app/src/main/java/chat/rocket/android/directory/ui/DirectoryFragment.kt b/app/src/main/java/chat/rocket/android/directory/ui/DirectoryFragment.kt index 1ff98c0092..b86961c0d0 100644 --- a/app/src/main/java/chat/rocket/android/directory/ui/DirectoryFragment.kt +++ b/app/src/main/java/chat/rocket/android/directory/ui/DirectoryFragment.kt @@ -23,6 +23,7 @@ import chat.rocket.android.directory.presentation.DirectoryPresenter import chat.rocket.android.directory.presentation.DirectoryView import chat.rocket.android.directory.uimodel.DirectoryUiModel import chat.rocket.android.helper.EndlessRecyclerViewScrollListener +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extension.onQueryTextListener import chat.rocket.android.util.extensions.inflate import chat.rocket.android.util.extensions.isNotNullNorBlank @@ -81,11 +82,25 @@ class DirectoryFragment : Fragment(), DirectoryView { super.onViewCreated(view, savedInstanceState) setupToolbar() setupRecyclerView() + tintSortByDrawables() setupListeners() presenter.loadAllDirectoryChannels() analyticsManager.logScreenView(ScreenViewEvent.Directory) } + private fun tintSortByDrawables() { + ui{ + val drawables = arrayOf(hashtagDrawable, userDrawable, arrowDownDrawable) + DrawableHelper.wrapDrawables(drawables) + DrawableHelper.tintDrawables(drawables, it, ThemeUtil.getThemeColorResource(R.attr.colorSubHeaderText)) + DrawableHelper.compoundStartAndEndDrawable( + text_sort_by, + hashtagDrawable, + arrowDownDrawable + ) + } + } + override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { super.onCreateOptionsMenu(menu, inflater) inflater.inflate(R.menu.directory, menu) From d50b95cc0789d6eb6987a950d592ec1bd7892601 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Fri, 5 Jul 2019 22:04:17 +0500 Subject: [PATCH 36/89] [FIX] Tinted drawables in BottomSheetFragments. --- .../ui/DirectorySortingBottomSheetFragment.kt | 11 +++++ .../SortingAndGroupingBottomSheetFragment.kt | 40 ++++++++++++++----- 2 files changed, 42 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/directory/ui/DirectorySortingBottomSheetFragment.kt b/app/src/main/java/chat/rocket/android/directory/ui/DirectorySortingBottomSheetFragment.kt index 4290ac18c4..5a5a9ef881 100644 --- a/app/src/main/java/chat/rocket/android/directory/ui/DirectorySortingBottomSheetFragment.kt +++ b/app/src/main/java/chat/rocket/android/directory/ui/DirectorySortingBottomSheetFragment.kt @@ -9,6 +9,8 @@ import android.view.ViewGroup import android.widget.TextView import androidx.fragment.app.FragmentManager import chat.rocket.android.R +import chat.rocket.android.thememanager.util.ThemeUtil +import chat.rocket.android.util.extensions.ui import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialogFragment @@ -64,6 +66,7 @@ class DirectorySortingBottomSheetFragment : BottomSheetDialogFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + tintTextViewStartDrawables() setupView() setupListeners() } @@ -126,4 +129,12 @@ class DirectorySortingBottomSheetFragment : BottomSheetDialogFragment() { ) } } + + private fun tintTextViewStartDrawables(){ + ui{ + val drawables = arrayOf(hashtagDrawable, userDrawable) + DrawableHelper.wrapDrawables(drawables) + DrawableHelper.tintDrawables(drawables, it, ThemeUtil.getThemeColorResource(R.attr.colorBottomSheetFragmentText)) + } + } } \ No newline at end of file diff --git a/app/src/main/java/chat/rocket/android/sortingandgrouping/ui/SortingAndGroupingBottomSheetFragment.kt b/app/src/main/java/chat/rocket/android/sortingandgrouping/ui/SortingAndGroupingBottomSheetFragment.kt index ca62af7f67..5b948b2b97 100644 --- a/app/src/main/java/chat/rocket/android/sortingandgrouping/ui/SortingAndGroupingBottomSheetFragment.kt +++ b/app/src/main/java/chat/rocket/android/sortingandgrouping/ui/SortingAndGroupingBottomSheetFragment.kt @@ -2,6 +2,7 @@ package chat.rocket.android.sortingandgrouping.ui import DrawableHelper import android.content.DialogInterface +import android.graphics.drawable.Drawable import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -13,6 +14,8 @@ import chat.rocket.android.chatrooms.ui.ChatRoomsFragment import chat.rocket.android.chatrooms.ui.TAG_CHAT_ROOMS_FRAGMENT import chat.rocket.android.sortingandgrouping.presentation.SortingAndGroupingPresenter import chat.rocket.android.sortingandgrouping.presentation.SortingAndGroupingView +import chat.rocket.android.thememanager.util.ThemeUtil +import chat.rocket.android.util.extensions.ui import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialogFragment @@ -32,11 +35,21 @@ class SortingAndGroupingBottomSheetFragment : BottomSheetDialogFragment(), Sorti private val chatRoomFragment by lazy { activity?.supportFragmentManager?.findFragmentByTag(TAG_CHAT_ROOMS_FRAGMENT) as ChatRoomsFragment } - private val filterDrawable by lazy { R.drawable.ic_filter_20dp } - private val activityDrawable by lazy { R.drawable.ic_activity_20dp } - private val unreadOnTopDrawable by lazy { R.drawable.ic_unread_20dp } - private val groupByTypeDrawable by lazy { R.drawable.ic_group_by_type_20dp } - private val groupByFavoritesDrawable by lazy { R.drawable.ic_favorites_20dp } + private val filterDrawable by lazy { + DrawableHelper.getDrawableFromId(R.drawable.ic_filter_20dp, requireContext()) + } + private val activityDrawable by lazy { + DrawableHelper.getDrawableFromId(R.drawable.ic_activity_20dp, requireContext()) + } + private val unreadOnTopDrawable by lazy { + DrawableHelper.getDrawableFromId(R.drawable.ic_unread_20dp, requireContext()) + } + private val groupByTypeDrawable by lazy { + DrawableHelper.getDrawableFromId(R.drawable.ic_group_by_type_20dp, requireContext()) + } + private val groupByFavoritesDrawable by lazy { + DrawableHelper.getDrawableFromId(R.drawable.ic_favorites_20dp, requireContext()) + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -53,6 +66,7 @@ class SortingAndGroupingBottomSheetFragment : BottomSheetDialogFragment(), Sorti override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) presenter.getSortingAndGroupingPreferences() + tintTextViewStartDrawables() setupListeners() } @@ -154,21 +168,21 @@ class SortingAndGroupingBottomSheetFragment : BottomSheetDialogFragment(), Sorti text_sort_by.text = getString(R.string.msg_sort_by_placeholder, text.toLowerCase()) } - private fun checkSelection(textView: TextView, @DrawableRes startDrawable: Int) { + private fun checkSelection(textView: TextView, startDrawable: Drawable) { context?.let { DrawableHelper.compoundStartAndEndDrawable( textView, - DrawableHelper.getDrawableFromId(startDrawable, it), + startDrawable, DrawableHelper.getDrawableFromId(R.drawable.ic_check, it) ) } } - private fun uncheckSelection(textView: TextView, @DrawableRes startDrawable: Int) { + private fun uncheckSelection(textView: TextView, startDrawable: Drawable) { context?.let { DrawableHelper.compoundStartDrawable( textView, - DrawableHelper.getDrawableFromId(startDrawable, it) + startDrawable ) } } @@ -181,4 +195,12 @@ class SortingAndGroupingBottomSheetFragment : BottomSheetDialogFragment(), Sorti isGroupByFavorites ) } + + private fun tintTextViewStartDrawables(){ + ui{ + val drawables = arrayOf(filterDrawable, activityDrawable, unreadOnTopDrawable, groupByTypeDrawable, groupByFavoritesDrawable) + DrawableHelper.wrapDrawables(drawables) + DrawableHelper.tintDrawables(drawables, it, ThemeUtil.getThemeColorResource(R.attr.colorBottomSheetFragmentText)) + } + } } \ No newline at end of file From cfb1d938fb60ab0fe31d400655b1b41a8cb02ad6 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sat, 6 Jul 2019 20:51:21 +0500 Subject: [PATCH 37/89] [Improvement] Displayed Current Theme Programmatically. --- .../chat/rocket/android/thememanager/ui/ThemesActivity.kt | 5 +++++ app/src/main/res/layout/activity_themes.xml | 2 +- app/src/main/res/values-ar/strings.xml | 5 ++--- app/src/main/res/values-de/strings.xml | 5 ++--- app/src/main/res/values-es/strings.xml | 5 ++--- app/src/main/res/values-fa/strings.xml | 5 ++--- app/src/main/res/values-fr/strings.xml | 5 ++--- app/src/main/res/values-hi-rIN/strings.xml | 5 ++--- app/src/main/res/values-it/strings.xml | 5 ++--- app/src/main/res/values-ja/strings.xml | 5 ++--- app/src/main/res/values-pt-rBR/strings.xml | 5 ++--- app/src/main/res/values-pt-rPT/strings.xml | 5 ++--- app/src/main/res/values-ru-rRU/strings.xml | 5 ++--- app/src/main/res/values-tr/strings.xml | 5 ++--- app/src/main/res/values-uk/strings.xml | 5 ++--- app/src/main/res/values-zh-rCN/strings.xml | 5 ++--- app/src/main/res/values-zh-rTW/strings.xml | 5 ++--- app/src/main/res/values/strings.xml | 1 - 18 files changed, 36 insertions(+), 47 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt index a23a990f72..f681a4ec95 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt @@ -24,6 +24,7 @@ class ThemesActivity : BaseActivity() { setContentView(R.layout.activity_themes) setupToolbar() setDate() + setCurrentTheme() subscribeUi() setupListeners() } @@ -32,6 +33,10 @@ class ThemesActivity : BaseActivity() { theme_last_changed.text = getString(R.string.last_changed,viewModel.getSavedDate()) } + private fun setCurrentTheme(){ + current_theme.text = viewModel.getCurrentTheme() + } + private fun subscribeUi() { viewModel.getThemes().observe(this, Observer { themes -> setupRecyclerView(themes) diff --git a/app/src/main/res/layout/activity_themes.xml b/app/src/main/res/layout/activity_themes.xml index ea0daa747b..55691f3af0 100644 --- a/app/src/main/res/layout/activity_themes.xml +++ b/app/src/main/res/layout/activity_themes.xml @@ -19,7 +19,7 @@ android:layout_height="wrap_content" android:paddingStart="@dimen/theme_screen_edge_left_and_right_padding" android:paddingTop="@dimen/theme_screen_edge_top_padding" - android:text="@string/current_theme" + android:text="Current Theme" app:layout_constraintStart_toStartOf="@+id/layout_app_bar" app:layout_constraintTop_toBottomOf="@+id/layout_app_bar" /> diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 79c9ea2b74..15cb110f7a 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -374,8 +374,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 7be935571e..4334f8577a 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -373,8 +373,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 300cc44015..77e2257140 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -376,8 +376,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index f45a4a7033..8e61edca8b 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -375,8 +375,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index e527e95ca2..552f038d31 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -373,8 +373,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 94104b2878..89041b2b30 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -377,8 +377,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 34c5059405..a57d05cb98 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -372,8 +372,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 2ea17e0e30..4fa51ca183 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -376,8 +376,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes \ No newline at end of file diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 480405f6dd..bcb497b88e 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -376,8 +376,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 673e7e4cbc..031f2496cb 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -374,8 +374,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 274c41ec04..8e8d6305ff 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -373,8 +373,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 2495ccebd2..54f8666806 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -376,8 +376,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 37f7c9c503..0bd00f20eb 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -373,8 +373,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index b71634e50b..8c74b1eace 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -372,8 +372,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 42370cc5a0..bf23f71315 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -353,8 +353,7 @@ Last Changed %s - Current Theme - Revert to Default - Create Personal Theme + Revert to Default + Create Personal Theme Other Themes diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index da0951217b..1176378494 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -396,7 +396,6 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin Last Changed %s - Current Theme Revert to Default Create Personal Theme Other Themes From 352b66f11f3a953956d6e88c620551a062510046 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sat, 6 Jul 2019 21:38:26 +0500 Subject: [PATCH 38/89] [Improvement] Changed string create_personal_theme to create_custom_theme. --- app/src/main/res/layout/activity_themes.xml | 7 +++---- app/src/main/res/values-ar/strings.xml | 6 ++++-- app/src/main/res/values-de/strings.xml | 6 ++++-- app/src/main/res/values-es/strings.xml | 6 ++++-- app/src/main/res/values-fa/strings.xml | 6 ++++-- app/src/main/res/values-fr/strings.xml | 6 ++++-- app/src/main/res/values-hi-rIN/strings.xml | 6 ++++-- app/src/main/res/values-it/strings.xml | 6 ++++-- app/src/main/res/values-ja/strings.xml | 6 ++++-- app/src/main/res/values-pt-rBR/strings.xml | 6 ++++-- app/src/main/res/values-pt-rPT/strings.xml | 6 ++++-- app/src/main/res/values-ru-rRU/strings.xml | 6 ++++-- app/src/main/res/values-tr/strings.xml | 6 ++++-- app/src/main/res/values-uk/strings.xml | 6 ++++-- app/src/main/res/values-zh-rCN/strings.xml | 6 ++++-- app/src/main/res/values-zh-rTW/strings.xml | 6 ++++-- app/src/main/res/values/strings.xml | 4 +++- 17 files changed, 66 insertions(+), 35 deletions(-) diff --git a/app/src/main/res/layout/activity_themes.xml b/app/src/main/res/layout/activity_themes.xml index 55691f3af0..60eeb3fc19 100644 --- a/app/src/main/res/layout/activity_themes.xml +++ b/app/src/main/res/layout/activity_themes.xml @@ -4,7 +4,6 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="?android:colorBackground" tools:context=".thememanager.ui.ThemesActivity"> @@ -89,7 +88,7 @@ android:paddingTop="@dimen/theme_screen_edge_top_padding" android:text="@string/other_themes" app:layout_constraintLeft_toLeftOf="parent" - app:layout_constraintTop_toBottomOf="@+id/create_personal_theme" /> + app:layout_constraintTop_toBottomOf="@+id/create_custom_theme" /> Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 4334f8577a..eb6f65a6e9 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -374,6 +374,8 @@ Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 77e2257140..41398ab3c6 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -377,6 +377,8 @@ Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 8e61edca8b..8906305950 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -376,6 +376,8 @@ Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 552f038d31..69d2e343a9 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -374,6 +374,8 @@ Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 89041b2b30..67cc51c08e 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -378,6 +378,8 @@ Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index a57d05cb98..392f6d54b7 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -373,6 +373,8 @@ Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 4fa51ca183..4172f06a85 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -377,6 +377,8 @@ Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme \ No newline at end of file diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index bcb497b88e..1574facc46 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -377,6 +377,8 @@ Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 031f2496cb..bea46cfc67 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -375,6 +375,8 @@ Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 8e8d6305ff..3d4738b608 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -374,6 +374,8 @@ Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 54f8666806..303d4b5bc8 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -377,6 +377,8 @@ Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 0bd00f20eb..1ec2960465 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -374,6 +374,8 @@ Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 8c74b1eace..c60d008221 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -373,6 +373,8 @@ Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index bf23f71315..40689babed 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -354,6 +354,8 @@ Last Changed %s Revert to Default - Create Personal Theme - Other Themes + Create Custom Theme + Other Themes + Custom Themes + Add Theme diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1176378494..c1848bd214 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -397,6 +397,8 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin Last Changed %s Revert to Default - Create Personal Theme + Create Custom Theme Other Themes + Custom Themes + Add Theme \ No newline at end of file From 542418cb94be1dc2854015a72c0fe2edeae0e748 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sun, 7 Jul 2019 21:37:25 +0500 Subject: [PATCH 39/89] [FIX] Fixed theming issue with Language Alert Dialog. --- .../android/settings/ui/SettingsFragment.kt | 17 +++++++---------- .../layout/item_alert_dialog_single_choice.xml | 16 ++++++++++++++++ app/src/main/res/values/styles.xml | 4 +++- app/src/main/res/values/themes.xml | 1 + 4 files changed, 27 insertions(+), 11 deletions(-) create mode 100644 app/src/main/res/layout/item_alert_dialog_single_choice.xml diff --git a/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt b/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt index 7afb2e350f..400e54a560 100644 --- a/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt +++ b/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt @@ -32,10 +32,9 @@ import kotlinx.android.synthetic.main.dialog_delete_account.* import kotlinx.android.synthetic.main.fragment_settings.* import timber.log.Timber import javax.inject.Inject -import android.text.Spanned -import android.text.style.ForegroundColorSpan -import android.text.SpannableString -import androidx.core.content.ContextCompat +import android.widget.ArrayAdapter + + internal const val TAG_SETTINGS_FRAGMENT = "SettingsFragment" @@ -101,9 +100,7 @@ class SettingsFragment : Fragment(), SettingsView, AppLanguageView { profile_container.setOnClickListener { presenter.toProfile() } - //---------------------------------------------------------------- text_change_theme.setOnClickListener { presenter.toChangeTheme() } - //---------------------------------------------------------------- text_contact_us.setOnClickListener { contactSupport() } @@ -212,10 +209,12 @@ class SettingsFragment : Fragment(), SettingsView, AppLanguageView { } } } + val adapter = ArrayAdapter( + activity, R.layout.item_alert_dialog_single_choice, resources.getStringArray(R.array.languages)) AlertDialog.Builder(it) .setTitle(R.string.title_choose_language) .setSingleChoiceItems( - resources.getStringArray(R.array.languages), localeIndex + adapter, localeIndex ) { dialog, option -> val array = locales[option].split(",") if (array.size > 1) { @@ -249,10 +248,8 @@ class SettingsFragment : Fragment(), SettingsView, AppLanguageView { private fun showLogoutDialog() { context?.let { - val title = SpannableString(getString(R.string.title_are_you_sure)) - title.setSpan(ForegroundColorSpan(ContextCompat.getColor(it, ThemeUtil.getThemeColorResource(R.attr.colorHeadings))), 0, title.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) val builder = AlertDialog.Builder(it) - builder.setTitle(title) + builder.setTitle(R.string.title_are_you_sure) .setPositiveButton(R.string.action_logout) { _, _ -> presenter.logout() } .setNegativeButton(android.R.string.no) { dialog, _ -> dialog.cancel() } .create() diff --git a/app/src/main/res/layout/item_alert_dialog_single_choice.xml b/app/src/main/res/layout/item_alert_dialog_single_choice.xml new file mode 100644 index 0000000000..079c9e5ed7 --- /dev/null +++ b/app/src/main/res/layout/item_alert_dialog_single_choice.xml @@ -0,0 +1,16 @@ + + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index a9d5c15c60..15fea4bdc4 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -359,7 +359,9 @@ @@ -371,4 +370,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 19ddaf1ae2..ecadf2defe 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -41,7 +41,7 @@ @color/colorFloatingActionButtonBorder @style/CustomBottomSheetDialogStyle @style/CustomAlertDialogTheme - @color/colorPrimaryDark + ?colorPrimaryDark @color/colorAuxiliaryTint @style/AppTheme @color/colorDrawableSubtleTint @@ -56,5 +56,32 @@ @style/Alert.Button @style/Alert.Button @drawable/ic_arrow_back_white_24dp + @color/colorWhite + + + + + + + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/colors.xml b/themelibrary/src/main/res/values/colors.xml index 6a16ab4f82..c0cb923459 100644 --- a/themelibrary/src/main/res/values/colors.xml +++ b/themelibrary/src/main/res/values/colors.xml @@ -119,4 +119,24 @@ @color/blackColorDescriptiveText @color/blackColorBackground + + + #000000 + + #1A1A1A + #1E1E1E + + #142022 + #182628 + + #131901 + #21231A + + + Charcoal + Jet + DarkJungle + EerieGreen + Blue + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/styles.xml b/themelibrary/src/main/res/values/styles.xml index ab2af3b494..8afa307e9c 100644 --- a/themelibrary/src/main/res/values/styles.xml +++ b/themelibrary/src/main/res/values/styles.xml @@ -1,19 +1,11 @@ - - - - diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml index 897a8ad2d9..50b6740eca 100644 --- a/themelibrary/src/main/res/values/themes.xml +++ b/themelibrary/src/main/res/values/themes.xml @@ -30,10 +30,8 @@ @color/darkColorReactionBorder @color/darkColorFloatingActionButtonBackground @color/darkColorFloatingActionButtonBorder - @style/DarkCustomBottomSheetDialogStyle @color/darkColorPrimaryDark @style/DarkCustomAlertDialogTheme - @color/darkColorPrimaryDark @color/darkColorAuxiliaryTint @style/DarkTheme @color/darkColorDrawableSubtleTint @@ -76,10 +74,8 @@ @color/blackColorReactionBorder @color/blackColorFloatingActionButtonBackground @color/blackColorFloatingActionButtonBorder - @style/BlackCustomBottomSheetDialogStyle @color/blackColorPrimaryDark @style/BlackCustomAlertDialogTheme - @color/blackColorPrimaryDark @color/blackColorAuxiliaryTint @style/BlackTheme @color/blackColorDrawableSubtleTint @@ -90,4 +86,74 @@ @color/blackColorBodyText @bool/blackIsDark + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 9424d5c79e6d1e0d7e642f8fd0814fabef87bf87 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sun, 21 Jul 2019 19:34:40 +0500 Subject: [PATCH 41/89] [IMPROVEMENT] Added an option for returning to default theme accent or toolbar. --- .../android/thememanager/model/Theme.kt | 12 ++++++++-- .../thememanager/ui/CreateThemesActivity.kt | 2 +- app/src/main/res/values/colors.xml | 12 +++++++--- app/src/main/res/values/styles.xml | 24 +++++++++++++++---- themelibrary/src/main/res/values/colors.xml | 2 +- themelibrary/src/main/res/values/styles.xml | 18 ++++++++++++++ themelibrary/src/main/res/values/themes.xml | 8 +++---- 7 files changed, 62 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/thememanager/model/Theme.kt b/app/src/main/java/chat/rocket/android/thememanager/model/Theme.kt index 67ea2b1b25..59aa24a123 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/model/Theme.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/model/Theme.kt @@ -47,7 +47,11 @@ data class Theme(val name: String, val colorArray: Int, val isDark: Boolean) { var style = 0 if (customAccent != 0) { val color = resources.getResourceEntryName(customAccent) - style = resources.getIdentifier(color + "ColorAccent", "style", packageName) + if(color==""){ + style = resources.getIdentifier("Default" + name +"ColorAccent", "style", packageName) + }else{ + style = resources.getIdentifier(color + "ColorAccent", "style", packageName) + } } return style } @@ -56,7 +60,11 @@ data class Theme(val name: String, val colorArray: Int, val isDark: Boolean) { var style = 0 if (customToolbar != 0) { val color = resources.getResourceEntryName(customToolbar) - style = resources.getIdentifier(color + "ColorToolbar", "style", packageName) + if(color==""){ + style = resources.getIdentifier("Default" + name +"ColorToolbar", "style", packageName) + }else{ + style = resources.getIdentifier(color + "ColorToolbar", "style", packageName) + } } return style } diff --git a/app/src/main/java/chat/rocket/android/thememanager/ui/CreateThemesActivity.kt b/app/src/main/java/chat/rocket/android/thememanager/ui/CreateThemesActivity.kt index 1bb01d8c6d..92c63a43a7 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/ui/CreateThemesActivity.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/ui/CreateThemesActivity.kt @@ -124,7 +124,7 @@ class CreateThemesActivity : BaseActivity() { AlertDialog.Builder(it) .setTitle(title) .setSingleChoiceItems( - adapter, -1 + adapter, 0 ) { dialog, option -> editCustomTheme(themeIndex, option, title, customColorsArray) dialog.dismiss() diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index b2af6b191b..2d8313acf7 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -95,6 +95,7 @@ + Default Red LightPink LightPurple @@ -113,7 +114,6 @@ Coral Coconut BurntUmber - DarkCyan TeaPink Bronze TurtleGreen @@ -140,12 +140,16 @@ #005F3F #003E19 #013415 + #000000 + @color/darkColorPrimary + Default + Black + DarkBlue Blue Chocolate FreshGreen - Black Gold GunMetal CobaltBlue @@ -157,10 +161,12 @@ + Default + Black + DarkBlue Blue Chocolate FreshGreen - Black Gold GunMetal CobaltBlue diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 94d44731ad..34ab786822 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -371,6 +371,10 @@ ?colorPrimaryText + + @@ -451,6 +455,21 @@ @color/TurtleGreen + + + + + + - - + + + + + + + + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml index 50b6740eca..4690ce5e41 100644 --- a/themelibrary/src/main/res/values/themes.xml +++ b/themelibrary/src/main/res/values/themes.xml @@ -115,8 +115,8 @@ @color/RaisinBlack - - - - - - - \ No newline at end of file From c3c7dcd022b0b3e37fea7e4d6ae979542fe925e6 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sun, 28 Jul 2019 19:38:47 +0500 Subject: [PATCH 49/89] [FIX] Removed bug on loading WebViewActivity. --- .../chat/rocket/android/dagger/module/ActivityBuilder.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/java/chat/rocket/android/dagger/module/ActivityBuilder.kt b/app/src/main/java/chat/rocket/android/dagger/module/ActivityBuilder.kt index c82467df39..bf4d0be589 100644 --- a/app/src/main/java/chat/rocket/android/dagger/module/ActivityBuilder.kt +++ b/app/src/main/java/chat/rocket/android/dagger/module/ActivityBuilder.kt @@ -46,6 +46,7 @@ import chat.rocket.android.videoconference.di.VideoConferenceModule import chat.rocket.android.videoconference.ui.VideoConferenceActivity import chat.rocket.android.webview.adminpanel.di.AdminPanelWebViewFragmentProvider import chat.rocket.android.webview.oauth.ui.OauthWebViewActivity +import chat.rocket.android.webview.ui.WebViewActivity import dagger.Module import dagger.android.ContributesAndroidInjector @@ -116,6 +117,10 @@ abstract class ActivityBuilder { @ContributesAndroidInjector(modules = [(BaseActivityModule::class)]) abstract fun OauthWebViewActivity(): OauthWebViewActivity + @PerActivity + @ContributesAndroidInjector(modules = [(BaseActivityModule::class)]) + abstract fun bindWebViewActivity(): WebViewActivity + @PerActivity @ContributesAndroidInjector(modules = [PasswordFragmentProvider::class, BaseActivityModule::class]) abstract fun bindPasswordActivity(): PasswordActivity From d17f6019c4cab275dd87c1f3856f6a8a386a82ec Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sun, 28 Jul 2019 19:39:44 +0500 Subject: [PATCH 50/89] [IMPROVEMENT] Tinted Selection Drawables in Bottom Sheet Fragments. --- .../ui/DirectorySortingBottomSheetFragment.kt | 10 ++++++++++ .../android/servers/adapter/ServerViewHolder.kt | 5 +++++ .../ui/SortingAndGroupingBottomSheetFragment.kt | 14 ++++++++++++-- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/directory/ui/DirectorySortingBottomSheetFragment.kt b/app/src/main/java/chat/rocket/android/directory/ui/DirectorySortingBottomSheetFragment.kt index 5a5a9ef881..6aea0d0bd0 100644 --- a/app/src/main/java/chat/rocket/android/directory/ui/DirectorySortingBottomSheetFragment.kt +++ b/app/src/main/java/chat/rocket/android/directory/ui/DirectorySortingBottomSheetFragment.kt @@ -1,12 +1,15 @@ package chat.rocket.android.directory.ui import DrawableHelper +import android.content.res.ColorStateList +import android.graphics.Color import android.graphics.drawable.Drawable import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView +import androidx.fragment.app.DialogFragment import androidx.fragment.app.FragmentManager import chat.rocket.android.R import chat.rocket.android.thememanager.util.ThemeUtil @@ -67,6 +70,7 @@ class DirectorySortingBottomSheetFragment : BottomSheetDialogFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) tintTextViewStartDrawables() + tintCheckDrawable() setupView() setupListeners() } @@ -137,4 +141,10 @@ class DirectorySortingBottomSheetFragment : BottomSheetDialogFragment() { DrawableHelper.tintDrawables(drawables, it, ThemeUtil.getThemeColorResource(R.attr.colorBottomSheetFragmentText)) } } + + private fun tintCheckDrawable() { + context?.let { + DrawableHelper.tintDrawable(checkDrawable, it, ThemeUtil.getThemeColorResource(R.attr.colorAccent)) + } + } } \ No newline at end of file diff --git a/app/src/main/java/chat/rocket/android/servers/adapter/ServerViewHolder.kt b/app/src/main/java/chat/rocket/android/servers/adapter/ServerViewHolder.kt index 6ea75b314d..46c2915fdb 100644 --- a/app/src/main/java/chat/rocket/android/servers/adapter/ServerViewHolder.kt +++ b/app/src/main/java/chat/rocket/android/servers/adapter/ServerViewHolder.kt @@ -3,7 +3,9 @@ package chat.rocket.android.servers.adapter import android.view.View import androidx.core.view.isInvisible import androidx.recyclerview.widget.RecyclerView +import chat.rocket.android.R import chat.rocket.android.server.domain.model.Account +import chat.rocket.android.thememanager.util.ThemeUtil import com.bumptech.glide.Glide import kotlinx.android.synthetic.main.item_server.view.* @@ -15,6 +17,9 @@ class ServerViewHolder(itemView: View, private val currentServerUrl: String) : Glide.with(context).load(account.serverLogo).into(image_server) text_server_name.text = account.serverName ?: account.serverUrl text_server_url.text = account.serverUrl + val checkDrawable = DrawableHelper.getDrawableFromId(R.drawable.ic_check, context) + DrawableHelper.tintDrawable(checkDrawable, context, ThemeUtil.getThemeColorResource(R.attr.colorAccent)) + image_check.setImageDrawable(checkDrawable) image_check.isInvisible = currentServerUrl != account.serverUrl } } diff --git a/app/src/main/java/chat/rocket/android/sortingandgrouping/ui/SortingAndGroupingBottomSheetFragment.kt b/app/src/main/java/chat/rocket/android/sortingandgrouping/ui/SortingAndGroupingBottomSheetFragment.kt index 30aada6a15..82e51d6bf0 100644 --- a/app/src/main/java/chat/rocket/android/sortingandgrouping/ui/SortingAndGroupingBottomSheetFragment.kt +++ b/app/src/main/java/chat/rocket/android/sortingandgrouping/ui/SortingAndGroupingBottomSheetFragment.kt @@ -50,6 +50,9 @@ class SortingAndGroupingBottomSheetFragment : BottomSheetDialogFragment(), Sorti private val groupByFavoritesDrawable by lazy { DrawableHelper.getDrawableFromId(R.drawable.ic_favorites_20dp, requireContext()) } + private val checkDrawable by lazy { + DrawableHelper.getDrawableFromId(R.drawable.ic_check, requireContext()) + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -67,6 +70,7 @@ class SortingAndGroupingBottomSheetFragment : BottomSheetDialogFragment(), Sorti super.onViewCreated(view, savedInstanceState) presenter.getSortingAndGroupingPreferences() tintTextViewStartDrawables() + tintCheckDrawable() setupListeners() } @@ -170,8 +174,8 @@ class SortingAndGroupingBottomSheetFragment : BottomSheetDialogFragment(), Sorti private fun checkSelection(textView: TextView, startDrawable: Drawable) { context?.let { - val checkDrawable = DrawableHelper.getDrawableFromId(R.drawable.ic_check, it) - DrawableHelper.tintDrawable(checkDrawable, it, ThemeUtil.getThemeColorResource(R.attr.colorAccent)) +// val checkDrawable = DrawableHelper.getDrawableFromId(R.drawable.ic_check, it) +// DrawableHelper.tintDrawable(checkDrawable, it, ThemeUtil.getThemeColorResource(R.attr.colorAccent)) DrawableHelper.compoundStartAndEndDrawable( textView, startDrawable, @@ -205,4 +209,10 @@ class SortingAndGroupingBottomSheetFragment : BottomSheetDialogFragment(), Sorti DrawableHelper.tintDrawables(drawables, it, ThemeUtil.getThemeColorResource(R.attr.colorBottomSheetFragmentText)) } } + + private fun tintCheckDrawable() { + context?.let { + DrawableHelper.tintDrawable(checkDrawable, it, ThemeUtil.getThemeColorResource(R.attr.colorAccent)) + } + } } \ No newline at end of file From 2c98364ab562ee953f88024d85684690662736c0 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sun, 28 Jul 2019 19:40:56 +0500 Subject: [PATCH 51/89] [IMPROVEMENT] Changed layout attributes to support theme switching. --- .../main/res/layout/fragment_authentication_on_boarding.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/layout/fragment_authentication_on_boarding.xml b/app/src/main/res/layout/fragment_authentication_on_boarding.xml index 4b54fb17d5..06593e8617 100644 --- a/app/src/main/res/layout/fragment_authentication_on_boarding.xml +++ b/app/src/main/res/layout/fragment_authentication_on_boarding.xml @@ -79,7 +79,7 @@ android:layout_centerVertical="true" android:layout_marginEnd="8dp" android:src="@drawable/ic_chevron_right_black_24dp" - android:tint="@color/colorAuthenticationChevronAndExpandIcon" + android:tint="?colorAuthenticationButtonBorderAndDivider" tools:ignore="ContentDescription" /> @@ -131,7 +131,7 @@ android:layout_centerVertical="true" android:layout_marginEnd="8dp" android:src="@drawable/ic_chevron_right_black_24dp" - android:tint="@color/colorAuthenticationChevronAndExpandIcon" + android:tint="?colorAuthenticationButtonBorderAndDivider" tools:ignore="ContentDescription" /> From ea4e0012ebcc1dd226e0024b7b2add2c825cc0f2 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Sun, 28 Jul 2019 19:41:35 +0500 Subject: [PATCH 52/89] [IMPROVEMENT] Removed unnecessary comments from code. --- app/src/main/res/layout/item_server.xml | 1 - app/src/main/res/layout/message_composer.xml | 1 - 2 files changed, 2 deletions(-) diff --git a/app/src/main/res/layout/item_server.xml b/app/src/main/res/layout/item_server.xml index b74194bbe8..78b71913bb 100644 --- a/app/src/main/res/layout/item_server.xml +++ b/app/src/main/res/layout/item_server.xml @@ -8,7 +8,6 @@ android:paddingStart="16dp" android:paddingTop="16dp" android:paddingEnd="16dp"> - - Date: Sun, 28 Jul 2019 19:42:29 +0500 Subject: [PATCH 53/89] [IMPROVEMENT] Changed colors and styles to fix minor theming issues. --- app/src/main/res/values/colors.xml | 10 ++++----- app/src/main/res/values/styles.xml | 4 ++++ app/src/main/res/values/themes.xml | 4 ++++ themelibrary/src/main/res/values/colors.xml | 25 ++++++++++++--------- themelibrary/src/main/res/values/themes.xml | 10 +++++++++ 5 files changed, 38 insertions(+), 15 deletions(-) diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 0f947cdbfc..4cf14550e1 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -9,7 +9,7 @@ #1F000000 @color/colorPrimary - #FF9EA2A8 + #77000000 #f3f4f5 #54585e @@ -27,7 +27,7 @@ #FF0C0D0F #54585e #FFCBCED1 - #FF9EA2A8 + #88000000 #54585e @@ -43,9 +43,9 @@ #FFf1f1f1 - #FFE1E5E8 - #FFE1E5E8 - #FFCBCED1 + #22000000 + #22000000 + #22000000 #66000000 #88ffffff #FF9CA2A8 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 79f8e77ca5..d8267b061f 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -371,6 +371,10 @@ ?colorPrimaryText + + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index c4a11aa8af..37f292ddf6 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -58,6 +58,7 @@ @style/Alert.Button @drawable/ic_arrow_back_white_24dp @color/colorWhite + @style/ItemTextAppearance \ No newline at end of file diff --git a/themelibrary/src/main/res/values/colors.xml b/themelibrary/src/main/res/values/colors.xml index ed15c88a54..b5adfd4ce5 100644 --- a/themelibrary/src/main/res/values/colors.xml +++ b/themelibrary/src/main/res/values/colors.xml @@ -10,8 +10,9 @@ #0b182c #77ffffff - #FF9297a3 - #FF9297a3 + #70FFFFFF + #77ffffff + #FF9297a3 #FF9297a3 #FF9297a3 @@ -19,8 +20,8 @@ #FF9297a3 #2b2b2d - #2b2b2d - #2b2b2d + #33FFFFFF + #33FFFFFF #2b2b2d #ffffff @@ -40,7 +41,7 @@ #261d74f5 #4c1d74f5 - #4c1d74f5 + #22FFFFFF #1d74f5 #030c1b @@ -61,8 +62,9 @@ #FF0e0d0d #77ffffff - #FF9297a3 - #FF9297a3 + #70FFFFFF + + #77ffffff #FF9297a3 #FF9297a3 #FF9297a3 @@ -70,9 +72,9 @@ #FF9297a3 #FF2b2b29 - #FF2b2b29 - #FF2b2b29 - #FF2b2b29 + #33FFFFFF + #22FFFFFF + #33FFFFFF #FF2b2b29 #FFFAFAFA @@ -125,12 +127,15 @@ #1A1A1A #1E1E1E + #C0C0C0 #142022 #182628 + #545C5E #131901 #21231A + #686C5D Default diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml index 8edb01257a..ab65935717 100644 --- a/themelibrary/src/main/res/values/themes.xml +++ b/themelibrary/src/main/res/values/themes.xml @@ -90,6 +90,7 @@ @color/blackColorSettingsSecondaryBackground @color/Charcoal @color/blackColorPrimaryDark + @color/blackColorAuxiliaryTint \ No newline at end of file From 272e302a6a42ad530345619a37d89df6bdc1b517 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Wed, 31 Jul 2019 13:43:15 +0500 Subject: [PATCH 54/89] [FIX] Fixed MessageComposer Theming Issue in ChatRoomsFragment. --- app/src/main/res/drawable/ic_add_24dp.xml | 2 +- app/src/main/res/drawable/ic_keyboard_black_24dp.xml | 2 +- app/src/main/res/drawable/ic_reaction_24dp.xml | 8 ++++---- app/src/main/res/drawable/ic_send_24dp.xml | 2 +- app/src/main/res/layout/item_detail_option.xml | 1 - app/src/main/res/layout/message_composer.xml | 1 + app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/themes.xml | 3 +++ themelibrary/src/main/res/values/themes.xml | 10 ++++++++++ 9 files changed, 22 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/drawable/ic_add_24dp.xml b/app/src/main/res/drawable/ic_add_24dp.xml index b5b5ba4cc8..e2d88e56d3 100644 --- a/app/src/main/res/drawable/ic_add_24dp.xml +++ b/app/src/main/res/drawable/ic_add_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_keyboard_black_24dp.xml b/app/src/main/res/drawable/ic_keyboard_black_24dp.xml index 21eed7c287..93b80b38c6 100644 --- a/app/src/main/res/drawable/ic_keyboard_black_24dp.xml +++ b/app/src/main/res/drawable/ic_keyboard_black_24dp.xml @@ -6,7 +6,7 @@ android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_reaction_24dp.xml b/app/src/main/res/drawable/ic_reaction_24dp.xml index 5e8dd5558c..462e11e3c3 100644 --- a/app/src/main/res/drawable/ic_reaction_24dp.xml +++ b/app/src/main/res/drawable/ic_reaction_24dp.xml @@ -5,21 +5,21 @@ android:viewportWidth="20.0"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_send_24dp.xml b/app/src/main/res/drawable/ic_send_24dp.xml index ab820d67a6..97c955be93 100644 --- a/app/src/main/res/drawable/ic_send_24dp.xml +++ b/app/src/main/res/drawable/ic_send_24dp.xml @@ -6,7 +6,7 @@ android:viewportWidth="22.0"> \ No newline at end of file diff --git a/app/src/main/res/layout/item_detail_option.xml b/app/src/main/res/layout/item_detail_option.xml index c3836f4f11..1e4505bd2c 100644 --- a/app/src/main/res/layout/item_detail_option.xml +++ b/app/src/main/res/layout/item_detail_option.xml @@ -7,7 +7,6 @@ android:focusable="true" android:background="?android:colorBackground" android:padding="20dp"> - #F9EFE9 #41464E #F8BE9C + #E89768 #EEDFD8 #D9CBC5 diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 37f292ddf6..ff603e70c9 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -68,6 +68,7 @@ @color/colorSettingsSecondaryBackground @color/colorControlText @color/colorControlText + @color/colorControlText \ No newline at end of file diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml index ab65935717..33d169a4ff 100644 --- a/themelibrary/src/main/res/values/themes.xml +++ b/themelibrary/src/main/res/values/themes.xml @@ -91,6 +91,7 @@ @color/Charcoal @color/blackColorPrimaryDark @color/blackColorAuxiliaryTint + @color/blackColorAuxiliaryTint \ No newline at end of file From 6e77e0d70018b5d7fbf1e7fe26bf1e1a9e925d52 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Thu, 1 Aug 2019 12:37:18 +0500 Subject: [PATCH 55/89] [Improvement] Updated Message Composer to use applied custom accent. --- .../main/res/layout/fragment_chat_room.xml | 27 ++++++++++++------- app/src/main/res/layout/item_message.xml | 1 - app/src/main/res/layout/message_composer.xml | 1 - app/src/main/res/values/attrs.xml | 1 + app/src/main/res/values/styles.xml | 21 +++++++++++++++ app/src/main/res/values/themes.xml | 3 --- themelibrary/src/main/res/values/attrs.xml | 1 + themelibrary/src/main/res/values/themes.xml | 10 ------- 8 files changed, 40 insertions(+), 25 deletions(-) diff --git a/app/src/main/res/layout/fragment_chat_room.xml b/app/src/main/res/layout/fragment_chat_room.xml index 82475dd064..a2786af3b8 100644 --- a/app/src/main/res/layout/fragment_chat_room.xml +++ b/app/src/main/res/layout/fragment_chat_room.xml @@ -59,7 +59,7 @@ android:textAlignment="center" android:textColor="?colorTimestampText" android:textSize="16sp" - app:layout_constraintBottom_toTopOf="@id/layout_message_composer" + app:layout_constraintBottom_toTopOf="@id/layout_message_composer_container" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/text_chat_title" /> @@ -79,7 +79,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:background="?android:colorBackground" - app:layout_constraintBottom_toTopOf="@id/layout_message_composer" + app:layout_constraintBottom_toTopOf="@id/layout_message_composer_container" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> @@ -93,17 +93,24 @@ android:layout_marginBottom="5dp" android:maxLines="2" android:visibility="gone" - app:layout_constraintBottom_toTopOf="@id/layout_message_composer" + app:layout_constraintBottom_toTopOf="@id/layout_message_composer_container" app:layout_constraintEnd_toStartOf="parent" /> - + app:layout_constraintStart_toStartOf="parent"> + + @@ -123,7 +130,7 @@ android:layout_height="wrap_content" android:layout_margin="5dp" android:visibility="gone" - app:layout_constraintBottom_toTopOf="@id/layout_message_composer" + app:layout_constraintBottom_toTopOf="@id/layout_message_composer_container" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> diff --git a/app/src/main/res/layout/item_message.xml b/app/src/main/res/layout/item_message.xml index 0cfb14d825..f18ccbd447 100644 --- a/app/src/main/res/layout/item_message.xml +++ b/app/src/main/res/layout/item_message.xml @@ -11,7 +11,6 @@ android:paddingTop="@dimen/message_item_top_and_bottom_padding" android:paddingEnd="@dimen/screen_edge_left_and_right_padding" android:paddingBottom="@dimen/message_item_top_and_bottom_padding"> - + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index d8267b061f..4b1ad72ea0 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -377,86 +377,107 @@ \ No newline at end of file diff --git a/themelibrary/src/main/res/values/attrs.xml b/themelibrary/src/main/res/values/attrs.xml index e943c8215e..6ecd954570 100644 --- a/themelibrary/src/main/res/values/attrs.xml +++ b/themelibrary/src/main/res/values/attrs.xml @@ -33,4 +33,5 @@ + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml index 33d169a4ff..ab65935717 100644 --- a/themelibrary/src/main/res/values/themes.xml +++ b/themelibrary/src/main/res/values/themes.xml @@ -91,7 +91,6 @@ @color/Charcoal @color/blackColorPrimaryDark @color/blackColorAuxiliaryTint - @color/blackColorAuxiliaryTint \ No newline at end of file From c42d78ebd2b0a26698a3fd5358f741df9bac7e57 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Thu, 1 Aug 2019 12:44:56 +0500 Subject: [PATCH 56/89] [FIX] Updated Chat Rooms Fragment to show custom accent for URLS and URL previews. --- .../chat/rocket/android/chatroom/adapter/MessageViewHolder.kt | 1 + .../rocket/android/chatroom/adapter/UrlPreviewViewHolder.kt | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt b/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt index 33806dbd64..c3ff373d75 100644 --- a/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt +++ b/app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt @@ -54,6 +54,7 @@ class MessageViewHolder( } text_content.text_content.text = data.content + text_content.setLinkTextColor(ThemeUtil.getThemeColor(R.attr.colorAccent)) button_join_video_call.isVisible = data.message.type is MessageType.JitsiCallStarted button_join_video_call.setOnClickListener { joinVideoCallListener(it) } diff --git a/app/src/main/java/chat/rocket/android/chatroom/adapter/UrlPreviewViewHolder.kt b/app/src/main/java/chat/rocket/android/chatroom/adapter/UrlPreviewViewHolder.kt index 16aaac7dd1..cf0c8c6400 100644 --- a/app/src/main/java/chat/rocket/android/chatroom/adapter/UrlPreviewViewHolder.kt +++ b/app/src/main/java/chat/rocket/android/chatroom/adapter/UrlPreviewViewHolder.kt @@ -2,8 +2,10 @@ package chat.rocket.android.chatroom.adapter import android.view.View import androidx.core.view.isVisible +import chat.rocket.android.R import chat.rocket.android.chatroom.uimodel.UrlPreviewUiModel import chat.rocket.android.emoji.EmojiReactionListener +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extensions.content import chat.rocket.android.util.extensions.openTabbedUrl import kotlinx.android.synthetic.main.message_url_preview.view.* @@ -30,6 +32,8 @@ class UrlPreviewViewHolder( text_title.content = data.title text_description.content = data.description ?: "" + text_title.setTextColor(ThemeUtil.getThemeColor(R.attr.colorAccent)) + url_preview_layout.setOnClickListener(onClickListener) text_host.setOnClickListener(onClickListener) text_title.setOnClickListener(onClickListener) From 3bebb331541063cc61f8a0f08142551ee03a870c Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Thu, 1 Aug 2019 17:22:56 +0500 Subject: [PATCH 57/89] [FIX] Updated FloatingActionButton in ChatRoomsFragment to show custom color accent. --- app/src/main/res/layout/message_list.xml | 27 ++++++++++++------------ app/src/main/res/values/themes.xml | 4 ++-- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app/src/main/res/layout/message_list.xml b/app/src/main/res/layout/message_list.xml index 51021f7083..b748426a4e 100644 --- a/app/src/main/res/layout/message_list.xml +++ b/app/src/main/res/layout/message_list.xml @@ -1,10 +1,10 @@ + android:background="?android:colorBackground"> + android:visibility="invisible" + app:backgroundTint="?colorFloatingActionButtonBorder" + tools:visibility="visible" /> + app:layout_anchorGravity="end" + tools:text="1" + tools:visibility="visible" /> \ 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 37f292ddf6..d1bcf39570 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -38,8 +38,8 @@ @color/colorPrimaryText @color/colorReactionBackground @color/colorReactionBorder - @color/colorFloatingActionButtonBackground - @color/colorFloatingActionButtonBorder + ?android:colorBackground + ?android:colorBackground @style/CustomBottomSheetDialogStyle @style/CustomAlertDialogTheme ?colorPrimaryDark From 47a996088fc2c236aadcf57c3ce35e109e7cf670 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Thu, 1 Aug 2019 17:30:15 +0500 Subject: [PATCH 58/89] [FIX] Updated unread messages icon over FloatingActionButton to show custom theme accent. --- app/src/main/res/layout/message_list.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/layout/message_list.xml b/app/src/main/res/layout/message_list.xml index b748426a4e..66931e1501 100644 --- a/app/src/main/res/layout/message_list.xml +++ b/app/src/main/res/layout/message_list.xml @@ -36,6 +36,7 @@ android:gravity="center" android:textColor="@color/colorWhite" android:textSize="@dimen/message_time_text_size" + android:theme="?appAccentStyle" android:visibility="invisible" app:layout_anchor="@id/button_fab" app:layout_anchorGravity="end" From 374cc29afa049cfba6c0728a1b7f4d6432e65cba Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Fri, 2 Aug 2019 11:30:35 +0500 Subject: [PATCH 59/89] [FIX] Custom theme accent applied to view in ChatRoomsFragment. --- .../chat/rocket/android/chatroom/adapter/AttachmentViewHolder.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/chat/rocket/android/chatroom/adapter/AttachmentViewHolder.kt b/app/src/main/java/chat/rocket/android/chatroom/adapter/AttachmentViewHolder.kt index eec6e38e03..ad4e21c3e6 100644 --- a/app/src/main/java/chat/rocket/android/chatroom/adapter/AttachmentViewHolder.kt +++ b/app/src/main/java/chat/rocket/android/chatroom/adapter/AttachmentViewHolder.kt @@ -81,6 +81,7 @@ class AttachmentViewHolder( text_author_name.isVisible = data.hasAuthorLink && data.hasAuthorName if (data.hasAuthorLink && data.hasAuthorName) { bindAuthorLink(data) + text_author_name.setTextColor(ThemeUtil.getThemeColor(R.attr.colorAccent)) } // If not media or message, show the text with quote bar From af2e48b153714b4d0991b25463f19c7ad4d99831 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Fri, 2 Aug 2019 11:49:21 +0500 Subject: [PATCH 60/89] [FIX] Modified colorControlText to work with all theme background colors and updated reaction count custom attribute. --- app/src/main/res/layout/item_reaction.xml | 2 +- app/src/main/res/values/colors.xml | 2 +- themelibrary/src/main/res/values/colors.xml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/layout/item_reaction.xml b/app/src/main/res/layout/item_reaction.xml index e7dcf9186c..09431833c9 100644 --- a/app/src/main/res/layout/item_reaction.xml +++ b/app/src/main/res/layout/item_reaction.xml @@ -50,7 +50,7 @@ android:paddingEnd="4dp" android:paddingRight="4dp" android:paddingBottom="4dp" - android:textColor="?colorAccent" + android:textColor="?colorControlText" android:textSize="16sp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 09db0d9c94..5b96a02033 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -25,7 +25,7 @@ #FF9DA2A9 #FF5699FF #FF0C0D0F - #54585e + #99000000 #FFCBCED1 #88000000 #54585e diff --git a/themelibrary/src/main/res/values/colors.xml b/themelibrary/src/main/res/values/colors.xml index b5adfd4ce5..3c8aadb7c3 100644 --- a/themelibrary/src/main/res/values/colors.xml +++ b/themelibrary/src/main/res/values/colors.xml @@ -46,7 +46,7 @@ #1d74f5 #030c1b #99ffffff - #dadee6 + #99ffffff #07101e #cdcdcd @@ -97,7 +97,7 @@ #1d74f5 #000000 #99ffffff - #dadee6 + #99ffffff #090909 #cdcdcd From c0f2983dc96c58b2ef8358b4b863769f25141e84 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Fri, 2 Aug 2019 14:37:28 +0500 Subject: [PATCH 61/89] [IMPROVEMENT] Added transparency to timestamp text to make it work with all color backgrounds. --- app/src/main/res/values/colors.xml | 2 +- themelibrary/src/main/res/values/colors.xml | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 5b96a02033..0e4d379b4d 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -22,7 +22,7 @@ #DE000000 #FF787878 - #FF9DA2A9 + #88000000 #FF5699FF #FF0C0D0F #99000000 diff --git a/themelibrary/src/main/res/values/colors.xml b/themelibrary/src/main/res/values/colors.xml index 3c8aadb7c3..f742eea025 100644 --- a/themelibrary/src/main/res/values/colors.xml +++ b/themelibrary/src/main/res/values/colors.xml @@ -10,9 +10,8 @@ #0b182c #77ffffff - #70FFFFFF + #70FFFFFF #77ffffff - #FF9297a3 #FF9297a3 #FF9297a3 @@ -29,7 +28,7 @@ #ffffff #ffffff - #FFb2b8c6 + #99FFFFFF #FFb2b8c6 #1a2232 @@ -62,8 +61,7 @@ #FF0e0d0d #77ffffff - #70FFFFFF - + #70FFFFFF #77ffffff #FF9297a3 #FF9297a3 @@ -82,7 +80,7 @@ #FFFAFAFA #FFFAFAFA - #9297a3 + #99FFFFFF #17181a #17181a From cf3ef10572658cffe0cdbfd3760635669955acc2 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Fri, 2 Aug 2019 15:44:37 +0500 Subject: [PATCH 62/89] [FIX] Tinted drawable in MessageActionsBottomSheet.kt and fragment_pinned_messages.xml --- .../ui/bottomsheet/MessageActionsBottomSheet.kt | 16 ++++++++++++++++ .../ui/SortingAndGroupingBottomSheetFragment.kt | 2 -- .../main/res/drawable/circle_background_grey.xml | 1 - app/src/main/res/drawable/ic_add_reaction.xml | 12 +++++------- .../main/res/layout/fragment_pinned_messages.xml | 1 + app/src/main/res/layout/item_add_reaction.xml | 1 + 6 files changed, 23 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/chatroom/ui/bottomsheet/MessageActionsBottomSheet.kt b/app/src/main/java/chat/rocket/android/chatroom/ui/bottomsheet/MessageActionsBottomSheet.kt index 4f51f1d6da..896f0dbf4e 100644 --- a/app/src/main/java/chat/rocket/android/chatroom/ui/bottomsheet/MessageActionsBottomSheet.kt +++ b/app/src/main/java/chat/rocket/android/chatroom/ui/bottomsheet/MessageActionsBottomSheet.kt @@ -1,5 +1,6 @@ package chat.rocket.android.chatroom.ui.bottomsheet +import android.graphics.drawable.Drawable import android.os.Bundle import android.view.LayoutInflater import android.view.MenuItem @@ -8,6 +9,7 @@ import android.view.ViewGroup import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import chat.rocket.android.R +import chat.rocket.android.thememanager.util.ThemeUtil import com.google.android.material.bottomsheet.BottomSheetDialogFragment import kotlinx.android.synthetic.main.message_action_item.view.* import kotlinx.android.synthetic.main.message_bottomsheet.* @@ -15,8 +17,15 @@ import kotlinx.android.synthetic.main.message_bottomsheet.* class MessageActionsBottomSheet : BottomSheetDialogFragment() { private val adapter = MessageActionAdapter() + private val addReactionDrawable by lazy { + DrawableHelper.getDrawableFromId(R.drawable.ic_add_reaction, requireContext()) + } + private val pinDrawable by lazy { + DrawableHelper.getDrawableFromId(R.drawable.ic_action_message_pin_24dp, requireContext()) + } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { + tintDrawable() return inflater.inflate(R.layout.message_bottomsheet, container, false) } @@ -73,4 +82,11 @@ class MessageActionsBottomSheet : BottomSheetDialogFragment() { } } } + + private fun tintDrawable() { + context?.let { + val drawables = arrayOf(addReactionDrawable, pinDrawable) + DrawableHelper.tintDrawables(drawables, it, ThemeUtil.getThemeColorResource(R.attr.colorDescriptiveText)) + } + } } diff --git a/app/src/main/java/chat/rocket/android/sortingandgrouping/ui/SortingAndGroupingBottomSheetFragment.kt b/app/src/main/java/chat/rocket/android/sortingandgrouping/ui/SortingAndGroupingBottomSheetFragment.kt index 82e51d6bf0..bad2d64436 100644 --- a/app/src/main/java/chat/rocket/android/sortingandgrouping/ui/SortingAndGroupingBottomSheetFragment.kt +++ b/app/src/main/java/chat/rocket/android/sortingandgrouping/ui/SortingAndGroupingBottomSheetFragment.kt @@ -174,8 +174,6 @@ class SortingAndGroupingBottomSheetFragment : BottomSheetDialogFragment(), Sorti private fun checkSelection(textView: TextView, startDrawable: Drawable) { context?.let { -// val checkDrawable = DrawableHelper.getDrawableFromId(R.drawable.ic_check, it) -// DrawableHelper.tintDrawable(checkDrawable, it, ThemeUtil.getThemeColorResource(R.attr.colorAccent)) DrawableHelper.compoundStartAndEndDrawable( textView, startDrawable, diff --git a/app/src/main/res/drawable/circle_background_grey.xml b/app/src/main/res/drawable/circle_background_grey.xml index 9d8e59907f..9ef1eb602f 100644 --- a/app/src/main/res/drawable/circle_background_grey.xml +++ b/app/src/main/res/drawable/circle_background_grey.xml @@ -3,6 +3,5 @@ android:shape="oval"> - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_add_reaction.xml b/app/src/main/res/drawable/ic_add_reaction.xml index 39be0b6d4b..5e223f7b11 100644 --- a/app/src/main/res/drawable/ic_add_reaction.xml +++ b/app/src/main/res/drawable/ic_add_reaction.xml @@ -4,24 +4,22 @@ android:viewportHeight="20.0" android:viewportWidth="20.0"> - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_pinned_messages.xml b/app/src/main/res/layout/fragment_pinned_messages.xml index e03f5bf41e..1639f0f62b 100644 --- a/app/src/main/res/layout/fragment_pinned_messages.xml +++ b/app/src/main/res/layout/fragment_pinned_messages.xml @@ -38,6 +38,7 @@ android:layout_width="100dp" android:layout_height="100dp" android:src="@drawable/ic_action_message_pin_24dp" + android:tint="?colorDescriptiveText" app:layout_constraintBottom_toTopOf="@id/tv_pin_title" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/item_add_reaction.xml b/app/src/main/res/layout/item_add_reaction.xml index 1c6d79b91b..b88a0f039e 100644 --- a/app/src/main/res/layout/item_add_reaction.xml +++ b/app/src/main/res/layout/item_add_reaction.xml @@ -9,4 +9,5 @@ android:background="?android:colorBackground" android:paddingStart="4dp" android:paddingTop="2dp" + android:tint="?colorDescriptiveText" android:src="@drawable/ic_add_reaction" /> \ No newline at end of file From b0cffbe4b51270aa9867f15fe6a892fe46258a89 Mon Sep 17 00:00:00 2001 From: Noor Binte Amir Date: Fri, 2 Aug 2019 15:58:58 +0500 Subject: [PATCH 63/89] [IMPROVEMENT] Minor styling changes. --- app/src/main/res/drawable/ic_check.xml | 2 +- app/src/main/res/drawable/ic_check_unread_24dp.xml | 1 - app/src/main/res/drawable/ic_server.xml | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/drawable/ic_check.xml b/app/src/main/res/drawable/ic_check.xml index 25fb3fac14..6046365a41 100644 --- a/app/src/main/res/drawable/ic_check.xml +++ b/app/src/main/res/drawable/ic_check.xml @@ -9,5 +9,5 @@ android:fillType="nonZero" android:pathData="M5.5875,9.7331L14.7078,0.6128C15.0463,0.2744 15.595,0.2744 15.9335,0.6128L15.9335,0.6128C16.2719,0.9513 16.2719,1.5 15.9335,1.8385L6.2225,11.5494C5.832,11.9399 5.1989,11.9399 4.8083,11.5494L0.6489,7.39C0.2905,7.0316 0.2905,6.4506 0.6489,6.0922L0.6489,6.0922C1.0072,5.7338 1.5883,5.7338 1.9466,6.0922L5.5875,9.7331Z" android:strokeWidth="1" - android:strokeColor="?colorAccent" /> + android:strokeColor="#00000000" /> diff --git a/app/src/main/res/drawable/ic_check_unread_24dp.xml b/app/src/main/res/drawable/ic_check_unread_24dp.xml index b0a80e8521..ea9fd4ab4f 100644 --- a/app/src/main/res/drawable/ic_check_unread_24dp.xml +++ b/app/src/main/res/drawable/ic_check_unread_24dp.xml @@ -6,6 +6,5 @@ - diff --git a/app/src/main/res/drawable/ic_server.xml b/app/src/main/res/drawable/ic_server.xml index d488810a0e..e9aa13ea52 100644 --- a/app/src/main/res/drawable/ic_server.xml +++ b/app/src/main/res/drawable/ic_server.xml @@ -6,7 +6,7 @@ android:viewportHeight="171"> Date: Sun, 4 Aug 2019 21:53:30 +0500 Subject: [PATCH 64/89] [IMPROVEMENT] Fixed styling to support custom themes. --- .../chat/rocket/android/chatrooms/adapter/RoomViewHolder.kt | 5 ++++- app/src/main/res/layout/item_chat.xml | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/chatrooms/adapter/RoomViewHolder.kt b/app/src/main/java/chat/rocket/android/chatrooms/adapter/RoomViewHolder.kt index 9a4da09a36..5a50717a16 100644 --- a/app/src/main/java/chat/rocket/android/chatrooms/adapter/RoomViewHolder.kt +++ b/app/src/main/java/chat/rocket/android/chatrooms/adapter/RoomViewHolder.kt @@ -9,6 +9,7 @@ import androidx.core.view.isInvisible import androidx.core.view.isVisible import chat.rocket.android.R import chat.rocket.android.chatrooms.adapter.model.RoomUiModel +import chat.rocket.android.thememanager.util.ThemeUtil import chat.rocket.android.util.extension.setTextViewAppearance import chat.rocket.common.model.RoomType import chat.rocket.common.model.UserStatus @@ -43,7 +44,9 @@ class RoomViewHolder(itemView: View, private val listener: (RoomUiModel) -> Unit } else if (room.status != null && room.type is RoomType.DirectMessage) { image_chat_icon.setImageDrawable(getStatusDrawable(room.status)) } else { - image_chat_icon.setImageDrawable(getRoomDrawable(room.type)) + val drawable = getRoomDrawable(room.type) + DrawableHelper.tintDrawable(drawable!!, context, ThemeUtil.getThemeColorResource(R.attr.colorDescriptiveText)) + image_chat_icon.setImageDrawable(drawable) } if (room.lastMessage != null) { diff --git a/app/src/main/res/layout/item_chat.xml b/app/src/main/res/layout/item_chat.xml index 14bf4bf432..92fdc0115d 100644 --- a/app/src/main/res/layout/item_chat.xml +++ b/app/src/main/res/layout/item_chat.xml @@ -27,7 +27,6 @@ app:layout_constraintBottom_toBottomOf="@+id/text_chat_name" app:layout_constraintStart_toEndOf="@+id/image_avatar" app:layout_constraintTop_toTopOf="@+id/text_chat_name" - android:tint="?colorDescriptiveText" tools:src="@drawable/ic_hashtag_12dp" /> Date: Sun, 4 Aug 2019 21:54:48 +0500 Subject: [PATCH 65/89] [IMRPOVEMENT] Merged ThemesActivity and CustomThemesActivity. --- .../android/dagger/module/ActivityBuilder.kt | 5 - .../thememanager/ui/CreateThemesActivity.kt | 173 ------------------ .../android/thememanager/ui/ThemesActivity.kt | 164 ++++++++++++++++- .../thememanager/viewmodel/ThemesViewModel.kt | 1 + .../ic_action_message_info_outline_24dp.xml | 2 +- .../res/layout/activity_create_themes.xml | 86 --------- app/src/main/res/layout/activity_themes.xml | 138 +++++++------- app/src/main/res/layout/item_add_theme.xml | 2 +- .../main/res/layout/item_custom_theme_row.xml | 6 +- .../layout/item_custom_themes_recycler.xml | 16 ++ app/src/main/res/layout/item_theme_info.xml | 46 +++++ app/src/main/res/layout/item_theme_row.xml | 10 +- .../main/res/layout/item_theme_row_small.xml | 22 +-- .../main/res/layout/item_themes_recycler.xml | 16 ++ app/src/main/res/values-ar/strings.xml | 2 +- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-fa/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-hi-rIN/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-ja/strings.xml | 2 +- app/src/main/res/values-pt-rBR/strings.xml | 2 +- app/src/main/res/values-pt-rPT/strings.xml | 2 +- app/src/main/res/values-ru-rRU/strings.xml | 2 +- app/src/main/res/values-tr/strings.xml | 2 +- app/src/main/res/values-uk/strings.xml | 2 +- app/src/main/res/values-zh-rCN/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 2 +- app/src/main/res/values/dimens.xml | 1 + app/src/main/res/values/strings.xml | 2 +- app/src/main/res/values/styles.xml | 8 +- 32 files changed, 352 insertions(+), 376 deletions(-) delete mode 100644 app/src/main/java/chat/rocket/android/thememanager/ui/CreateThemesActivity.kt delete mode 100644 app/src/main/res/layout/activity_create_themes.xml create mode 100644 app/src/main/res/layout/item_custom_themes_recycler.xml create mode 100644 app/src/main/res/layout/item_theme_info.xml create mode 100644 app/src/main/res/layout/item_themes_recycler.xml diff --git a/app/src/main/java/chat/rocket/android/dagger/module/ActivityBuilder.kt b/app/src/main/java/chat/rocket/android/dagger/module/ActivityBuilder.kt index bf4d0be589..41efbbb89c 100644 --- a/app/src/main/java/chat/rocket/android/dagger/module/ActivityBuilder.kt +++ b/app/src/main/java/chat/rocket/android/dagger/module/ActivityBuilder.kt @@ -39,7 +39,6 @@ import chat.rocket.android.settings.password.ui.PasswordActivity import chat.rocket.android.sortingandgrouping.di.SortingAndGroupingBottomSheetFragmentProvider import chat.rocket.android.thememanager.BaseActivity import chat.rocket.android.thememanager.di.BaseActivityModule -import chat.rocket.android.thememanager.ui.CreateThemesActivity import chat.rocket.android.thememanager.ui.ThemesActivity import chat.rocket.android.userdetails.di.UserDetailsFragmentProvider import chat.rocket.android.videoconference.di.VideoConferenceModule @@ -109,10 +108,6 @@ abstract class ActivityBuilder { @ContributesAndroidInjector(modules = [(BaseActivityModule::class)]) abstract fun bindThemesActivity(): ThemesActivity - @PerActivity - @ContributesAndroidInjector(modules = [(BaseActivityModule::class)]) - abstract fun bindCreateThemesActivity(): CreateThemesActivity - @PerActivity @ContributesAndroidInjector(modules = [(BaseActivityModule::class)]) abstract fun OauthWebViewActivity(): OauthWebViewActivity diff --git a/app/src/main/java/chat/rocket/android/thememanager/ui/CreateThemesActivity.kt b/app/src/main/java/chat/rocket/android/thememanager/ui/CreateThemesActivity.kt deleted file mode 100644 index a27070c6ce..0000000000 --- a/app/src/main/java/chat/rocket/android/thememanager/ui/CreateThemesActivity.kt +++ /dev/null @@ -1,173 +0,0 @@ -package chat.rocket.android.thememanager.ui - -import android.content.Intent -import android.os.Build -import androidx.appcompat.app.AppCompatActivity -import android.os.Bundle -import android.view.LayoutInflater -import android.widget.ArrayAdapter -import android.widget.EditText -import android.widget.ListView -import androidx.appcompat.app.AlertDialog -import androidx.lifecycle.Observer -import androidx.recyclerview.widget.ItemTouchHelper -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView -import chat.rocket.android.R -import chat.rocket.android.thememanager.BaseActivity -import chat.rocket.android.thememanager.adapter.CustomThemesAdapter -import chat.rocket.android.thememanager.model.Theme -import chat.rocket.android.thememanager.util.ThemeUtil -import kotlinx.android.synthetic.main.activity_create_themes.* -import kotlinx.android.synthetic.main.app_bar.* - -class CreateThemesActivity : BaseActivity() { - private lateinit var adapter: CustomThemesAdapter - private lateinit var baseThemesAdapter: ArrayAdapter - private var baseThemeIndex: Int = 0 - private var baseThemesArray = arrayListOf() - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_create_themes) - baseThemesArray = viewModel.getThemeNames() - baseThemesAdapter = ArrayAdapter( - this, R.layout.item_alert_dialog_single_choice, baseThemesArray) - setupToolbar() - subscribeUi() - setupListeners() - setupRecyclerViewSwipeListener() - } - - private fun setupListeners() { - layout_item_add_theme.setOnClickListener { - let { - val view = LayoutInflater.from(it).inflate(R.layout.dialog_add_theme, null) - val listView = view.findViewById(R.id.lv_items) - listView?.adapter = baseThemesAdapter - listView?.choiceMode = ListView.CHOICE_MODE_SINGLE - listView?.setItemChecked(0, true) - listView?.setOnItemClickListener { _, _, position, _ -> - baseThemeIndex = position - } - val editText = view.findViewById(R.id.edit_text_theme_name) - val dialog = AlertDialog.Builder(it) - .setTitle("Add Theme") - .setView(view) - .setNegativeButton(android.R.string.no) { dialog, _ -> dialog.cancel() } - .setPositiveButton(android.R.string.yes) { _, _ -> addCustomTheme(baseThemeIndex, editText.text.toString()) } - .create() - dialog.show() - dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(ThemeUtil.getThemeColor(R.attr.colorAccent)) - dialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(ThemeUtil.getThemeColor(R.attr.colorAccent)) - } - } - } - - private fun addCustomTheme(baseThemeIndex: Int, customName: String) { - val saved = viewModel.addCustomTheme(baseThemeIndex, customName) - if (!saved) { - let { - AlertDialog.Builder(it) - .setTitle("Invalid Name") - .setMessage(ThemeUtil.getTintedString("Custom theme \"$customName\" already exists. Please choose a different name for your theme.", R.attr.colorPrimaryText)) - .setPositiveButton(android.R.string.yes) { dialog, _ -> dialog.dismiss() } - .create() - .show() - } - } - } - - private fun subscribeUi() { - viewModel.getCustomThemes().observe(this, Observer { customThemes -> - setupRecyclerView(customThemes) - }) - } - - private fun setupRecyclerView(customThemes: List) { - adapter = CustomThemesAdapter(customThemes, - listener = { themeIndex: Int, baseThemeName -> saveCustomTheme(themeIndex, baseThemeName) }, - colorListener = { themeIndex: Int, title: String, isDark: Boolean -> launchColorPicker(themeIndex, title, isDark) }) - custom_themes_recycler_view.layoutManager = LinearLayoutManager(this) - custom_themes_recycler_view.adapter = adapter - } - - private fun setupRecyclerViewSwipeListener() { - val simpleItemTouchCallback = object : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT or ItemTouchHelper.RIGHT) { - - override fun onMove(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder): Boolean { - return false - } - - override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) { - val position = viewHolder.adapterPosition - val isCurrent = viewModel.removeCustomTheme(position) - if (isCurrent) { - reloadActivity() - } - } - } - val itemTouchHelper = ItemTouchHelper(simpleItemTouchCallback) - itemTouchHelper.attachToRecyclerView(custom_themes_recycler_view) - } - - private fun launchColorPicker(themeIndex: Int, title: String, isDark: Boolean) { - var customColorsArray = arrayOf() - when (title) { - "Custom Accent" -> customColorsArray = resources.getStringArray(R.array.CustomAccent) - "Custom Toolbar" -> if (isDark) customColorsArray = resources.getStringArray(R.array.DarkCustomToolbar) - else customColorsArray = resources.getStringArray(R.array.LightCustomToolbar) - "Custom Background" -> if (isDark) customColorsArray = resources.getStringArray(R.array.DarkCustomBackground) - else customColorsArray = resources.getStringArray(R.array.LightCustomBackground) - } - val adapter = ArrayAdapter( - this, R.layout.item_alert_dialog_single_choice, customColorsArray) - let { - AlertDialog.Builder(it) - .setTitle(title) - .setSingleChoiceItems( - adapter, 0 - ) { dialog, option -> - editCustomTheme(themeIndex, option, title, customColorsArray) - dialog.dismiss() - } - .setNegativeButton(android.R.string.cancel) { dialog, _ -> dialog.cancel() } - .create() - .show() - } - } - - private fun editCustomTheme(themeIndex: Int, option: Int, colorType: String, customColorsArray: Array) { - val isCurrent = viewModel.editCustomTheme(colorType, themeIndex, resources.getIdentifier(customColorsArray[option], "color", - this.packageName)) - if (isCurrent) { - saveCustomTheme(themeIndex, viewModel.getCurrentTheme().name) - } - } - - private fun saveCustomTheme(themeIndex: Int, baseThemeName: String) { - viewModel.saveCustomTheme(themeIndex, baseThemeName) - reloadActivity() - } - - private fun setupToolbar() { - with((this as AppCompatActivity)) { - with(toolbar) { - setSupportActionBar(this) - title = getString(R.string.create_custom_theme) - setNavigationIcon(R.drawable.ic_arrow_back_white_24dp) - setNavigationOnClickListener { onBackPressed() } - } - } - } - - private fun reloadActivity() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - startActivity(Intent(this, CreateThemesActivity::class.java)) - overridePendingTransition(R.anim.fade_in, R.anim.fade_out) - finish() - } else { - recreate() - } - } -} diff --git a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt index 904788b4ab..1765f41237 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/ui/ThemesActivity.kt @@ -3,29 +3,65 @@ package chat.rocket.android.thememanager.ui import android.content.Intent import android.os.Build import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.widget.ArrayAdapter +import android.widget.EditText +import android.widget.ListView +import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity +import androidx.appcompat.widget.TooltipCompat import androidx.lifecycle.Observer +import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import chat.rocket.android.R import chat.rocket.android.thememanager.BaseActivity +import chat.rocket.android.thememanager.adapter.CustomThemesAdapter import chat.rocket.android.thememanager.adapter.ThemesAdapter -import kotlinx.android.synthetic.main.app_bar.* -import kotlinx.android.synthetic.main.activity_themes.* import chat.rocket.android.thememanager.model.Theme +import chat.rocket.android.thememanager.util.ThemeUtil +import kotlinx.android.synthetic.main.activity_themes.* +import kotlinx.android.synthetic.main.app_bar.* +import kotlinx.android.synthetic.main.item_custom_themes_recycler.* +import kotlinx.android.synthetic.main.item_theme_info.* +import kotlinx.android.synthetic.main.item_themes_recycler.* + fun newInstance() = ThemesActivity() class ThemesActivity : BaseActivity() { private lateinit var adapter: ThemesAdapter + private lateinit var customThemesAdapter: CustomThemesAdapter + private lateinit var baseThemesAdapter: ArrayAdapter + private var baseThemeIndex: Int = 0 + private var baseThemesArray = arrayListOf() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_themes) + + baseThemesArray = viewModel.getThemeNames() + baseThemesAdapter = ArrayAdapter( + this, R.layout.item_alert_dialog_single_choice, baseThemesArray) + setupToolbar() setDate() setCurrentTheme() subscribeUi() setupListeners() + setupRecyclerViewSwipeListener() + setupExpandedRecyclerViews() + } + + private fun setupExpandedRecyclerViews() { + if (viewModel.getIsCustom()) { + custom_themes_recycler_view.visibility = View.VISIBLE + recycler_view.visibility = View.GONE + } else { + custom_themes_recycler_view.visibility = View.GONE + recycler_view.visibility = View.VISIBLE + } } private fun setDate() { @@ -40,6 +76,9 @@ class ThemesActivity : BaseActivity() { viewModel.getThemes().observe(this, Observer { themes -> setupRecyclerView(themes) }) + viewModel.getCustomThemes().observe(this, Observer { customThemes -> + setupCustomRecyclerView(customThemes) + }) } private fun saveTheme(theme: Theme) { @@ -74,13 +113,130 @@ class ThemesActivity : BaseActivity() { recycler_view.adapter = adapter } + private fun setupCustomRecyclerView(customThemes: List) { + customThemesAdapter = CustomThemesAdapter(customThemes, + listener = { themeIndex: Int, baseThemeName -> saveCustomTheme(themeIndex, baseThemeName) }, + colorListener = { themeIndex: Int, title: String, isDark: Boolean -> launchColorPicker(themeIndex, title, isDark) }) + custom_themes_recycler_view.layoutManager = LinearLayoutManager(this) + custom_themes_recycler_view.adapter = customThemesAdapter + } + private fun setupListeners() { revert_to_default.setOnClickListener { viewModel.saveTheme("AppTheme") reloadActivity() } - create_custom_theme.setOnClickListener { - startActivity(Intent(this, CreateThemesActivity::class.java)) + layout_item_add_theme.setOnClickListener { + let { + val view = LayoutInflater.from(it).inflate(R.layout.dialog_add_theme, null) + val listView = view.findViewById(R.id.lv_items) + listView?.adapter = baseThemesAdapter + listView?.choiceMode = ListView.CHOICE_MODE_SINGLE + listView?.setItemChecked(0, true) + listView?.setOnItemClickListener { _, _, position, _ -> + baseThemeIndex = position + } + val editText = view.findViewById(R.id.edit_text_theme_name) + val dialog = AlertDialog.Builder(it) + .setTitle("Add Theme") + .setView(view) + .setNegativeButton(android.R.string.no) { dialog, _ -> dialog.cancel() } + .setPositiveButton(android.R.string.yes) { _, _ -> addCustomTheme(baseThemeIndex, editText.text.toString()) } + .create() + dialog.show() + dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(ThemeUtil.getThemeColor(R.attr.colorAccent)) + dialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(ThemeUtil.getThemeColor(R.attr.colorAccent)) + } + } + text_app_themes.setOnClickListener { + if (recycler_view.visibility == View.VISIBLE) { + recycler_view.visibility = View.GONE + } else { + recycler_view.visibility = View.VISIBLE + custom_themes_recycler_view.visibility = View.GONE + } + } + text_custom_themes.setOnClickListener { + if (custom_themes_recycler_view.visibility == View.VISIBLE) { + custom_themes_recycler_view.visibility = View.GONE + } else { + custom_themes_recycler_view.visibility = View.VISIBLE + recycler_view.visibility = View.GONE + } + } + TooltipCompat.setTooltipText(tooltip, "Tap a theme name to apply.\nTap a palette color to edit.\nSwipe to remove palette.") + } + + private fun setupRecyclerViewSwipeListener() { + val simpleItemTouchCallback = object : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT or ItemTouchHelper.RIGHT) { + + override fun onMove(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder): Boolean { + return false + } + + override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) { + val position = viewHolder.adapterPosition + val isCurrent = viewModel.removeCustomTheme(position) + if (isCurrent) { + reloadActivity() + } + } + } + val itemTouchHelper = ItemTouchHelper(simpleItemTouchCallback) + itemTouchHelper.attachToRecyclerView(custom_themes_recycler_view) + } + + private fun addCustomTheme(baseThemeIndex: Int, customName: String) { + val saved = viewModel.addCustomTheme(baseThemeIndex, customName) + if (!saved) { + let { + AlertDialog.Builder(it) + .setTitle("Invalid Name") + .setMessage(ThemeUtil.getTintedString("Custom theme \"$customName\" already exists. Please choose a different name for your theme.", R.attr.colorPrimaryText)) + .setPositiveButton(android.R.string.yes) { dialog, _ -> dialog.dismiss() } + .create() + .show() + } } + custom_themes_recycler_view.visibility = View.VISIBLE + } + + private fun launchColorPicker(themeIndex: Int, title: String, isDark: Boolean) { + var customColorsArray = arrayOf() + when (title) { + "Custom Accent" -> customColorsArray = resources.getStringArray(R.array.CustomAccent) + "Custom Toolbar" -> if (isDark) customColorsArray = resources.getStringArray(R.array.DarkCustomToolbar) + else customColorsArray = resources.getStringArray(R.array.LightCustomToolbar) + "Custom Background" -> if (isDark) customColorsArray = resources.getStringArray(R.array.DarkCustomBackground) + else customColorsArray = resources.getStringArray(R.array.LightCustomBackground) + } + val adapter = ArrayAdapter( + this, R.layout.item_alert_dialog_single_choice, customColorsArray) + let { + AlertDialog.Builder(it) + .setTitle(title) + .setSingleChoiceItems( + adapter, 0 + ) { dialog, option -> + editCustomTheme(themeIndex, option, title, customColorsArray) + dialog.dismiss() + } + .setNegativeButton(android.R.string.cancel) { dialog, _ -> dialog.cancel() } + .create() + .show() + } + } + + private fun editCustomTheme(themeIndex: Int, option: Int, colorType: String, customColorsArray: Array) { + val isCurrent = viewModel.editCustomTheme(colorType, themeIndex, resources.getIdentifier(customColorsArray[option], "color", + this.packageName)) + if (isCurrent) { + saveCustomTheme(themeIndex, viewModel.getCurrentTheme().name) + } + } + + private fun saveCustomTheme(themeIndex: Int, baseThemeName: String) { + viewModel.saveCustomTheme(themeIndex, baseThemeName) + reloadActivity() } } diff --git a/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt b/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt index 7b30cce7b6..b7d19f2745 100644 --- a/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt +++ b/app/src/main/java/chat/rocket/android/thememanager/viewmodel/ThemesViewModel.kt @@ -18,4 +18,5 @@ class ThemesViewModel @Inject constructor(private val themesRepository: ThemesRe fun removeCustomTheme(position: Int) = themesRepository.removeCustomTheme(position) fun editCustomTheme(colorType: String, themeIndex: Int, color: Int) = themesRepository.editCustomTheme(colorType, themeIndex, color) fun getCurrentThemeName() = themesRepository.getCurrentThemeName() + fun getIsCustom() = themesRepository.getIsCustom() } diff --git a/app/src/main/res/drawable/ic_action_message_info_outline_24dp.xml b/app/src/main/res/drawable/ic_action_message_info_outline_24dp.xml index 71cd425ecf..d8d93fa92f 100644 --- a/app/src/main/res/drawable/ic_action_message_info_outline_24dp.xml +++ b/app/src/main/res/drawable/ic_action_message_info_outline_24dp.xml @@ -4,6 +4,6 @@ android:viewportHeight="24.0" android:viewportWidth="24.0"> diff --git a/app/src/main/res/layout/activity_create_themes.xml b/app/src/main/res/layout/activity_create_themes.xml deleted file mode 100644 index 2b68ba45b9..0000000000 --- a/app/src/main/res/layout/activity_create_themes.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/activity_themes.xml b/app/src/main/res/layout/activity_themes.xml index d93872068f..e0203d0c3b 100644 --- a/app/src/main/res/layout/activity_themes.xml +++ b/app/src/main/res/layout/activity_themes.xml @@ -11,44 +11,13 @@ layout="@layout/app_bar" app:layout_constraintTop_toTopOf="parent" /> - - - - - - + app:layout_constraintTop_toBottomOf="@+id/layout_app_bar" /> + app:layout_constraintTop_toBottomOf="@+id/item_theme_info" /> - + - + - + + + + + + + - + + + + + + - + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintLeft_toLeftOf="parent" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/item_add_theme.xml b/app/src/main/res/layout/item_add_theme.xml index 4ce1b46537..d7379e0313 100644 --- a/app/src/main/res/layout/item_add_theme.xml +++ b/app/src/main/res/layout/item_add_theme.xml @@ -1,9 +1,9 @@ @@ -63,7 +63,7 @@ android:layout_width="65dp" android:layout_height="40dp" android:layout_marginLeft="10dp" - android:layout_marginTop="20dp" + android:layout_marginTop="10dp" android:src="@drawable/theme_preview" app:layout_constraintLeft_toRightOf="@+id/item_theme_preview_color_primary" app:layout_constraintTop_toBottomOf="@+id/text_theme_name" /> diff --git a/app/src/main/res/layout/item_custom_themes_recycler.xml b/app/src/main/res/layout/item_custom_themes_recycler.xml new file mode 100644 index 0000000000..11e527911b --- /dev/null +++ b/app/src/main/res/layout/item_custom_themes_recycler.xml @@ -0,0 +1,16 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_theme_info.xml b/app/src/main/res/layout/item_theme_info.xml new file mode 100644 index 0000000000..3dd992309b --- /dev/null +++ b/app/src/main/res/layout/item_theme_info.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_theme_row.xml b/app/src/main/res/layout/item_theme_row.xml index aa01a2e450..97e9359fb7 100644 --- a/app/src/main/res/layout/item_theme_row.xml +++ b/app/src/main/res/layout/item_theme_row.xml @@ -24,7 +24,7 @@ android:id="@+id/item_theme_preview_color_accent" android:layout_width="65dp" android:layout_height="40dp" - android:layout_marginTop="20dp" + android:layout_marginTop="10dp" android:src="@drawable/theme_preview" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -44,7 +44,7 @@ android:layout_width="65dp" android:layout_height="40dp" android:layout_marginLeft="10dp" - android:layout_marginTop="20dp" + android:layout_marginTop="10dp" android:src="@drawable/theme_preview" app:layout_constraintLeft_toRightOf="@+id/item_theme_preview_color_accent" app:layout_constraintTop_toBottomOf="@+id/text_theme_name" /> @@ -63,7 +63,7 @@ android:layout_width="65dp" android:layout_height="40dp" android:layout_marginLeft="10dp" - android:layout_marginTop="20dp" + android:layout_marginTop="10dp" android:src="@drawable/theme_preview" app:layout_constraintLeft_toRightOf="@+id/item_theme_preview_primary_text" app:layout_constraintTop_toBottomOf="@+id/text_theme_name" /> @@ -82,7 +82,7 @@ android:layout_width="65dp" android:layout_height="40dp" android:layout_marginLeft="10dp" - android:layout_marginTop="20dp" + android:layout_marginTop="10dp" android:src="@drawable/theme_preview" app:layout_constraintLeft_toRightOf="@+id/item_theme_preview_color_primary" app:layout_constraintTop_toBottomOf="@+id/text_theme_name" /> @@ -101,7 +101,7 @@ android:layout_width="65dp" android:layout_height="40dp" android:layout_marginLeft="10dp" - android:layout_marginTop="20dp" + android:layout_marginTop="10dp" android:src="@drawable/theme_preview" app:layout_constraintLeft_toRightOf="@+id/item_theme_preview_color_descriptive_text" app:layout_constraintTop_toBottomOf="@+id/text_theme_name" /> diff --git a/app/src/main/res/layout/item_theme_row_small.xml b/app/src/main/res/layout/item_theme_row_small.xml index 7456a8e69e..3d458e8f19 100644 --- a/app/src/main/res/layout/item_theme_row_small.xml +++ b/app/src/main/res/layout/item_theme_row_small.xml @@ -18,47 +18,47 @@ app:layout_constraintTop_toTopOf="parent" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_themes_recycler.xml b/app/src/main/res/layout/item_themes_recycler.xml new file mode 100644 index 0000000000..b9067bdeab --- /dev/null +++ b/app/src/main/res/layout/item_themes_recycler.xml @@ -0,0 +1,16 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index fa80b230f1..9bdc089c83 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -376,7 +376,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e13299ea73..b1c2669163 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -375,7 +375,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index a1c28b9359..1db6b8b843 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -378,7 +378,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index df3ba9cfc8..be1c42d2fb 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -377,7 +377,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 66dc2ba398..16cbac10d2 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -375,7 +375,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index edd016419b..c343cef7e2 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -379,7 +379,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 418ad00af3..526c433436 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -374,7 +374,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index f5454b5937..ac5a9c7721 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -378,7 +378,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme \ No newline at end of file diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 7ef443028b..1fa0f09f3e 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -378,7 +378,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 179ac3b8c3..902e3305f2 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -376,7 +376,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 148bf0c288..0605e59a3b 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -375,7 +375,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 6b64397e20..e6b66eba13 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -378,7 +378,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 9135979f22..365eadfbd1 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -375,7 +375,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index f4b981fde6..9f7472ab12 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -374,7 +374,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 6f43e6642e..cb25488dab 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -355,7 +355,7 @@ Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 6b1864c209..a542f31784 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -51,6 +51,7 @@ 20dp 25dp + 20dp \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c1848bd214..9038b5552b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -398,7 +398,7 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin Last Changed %s Revert to Default Create Custom Theme - Other Themes + App Themes Custom Themes Add Theme \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 4b1ad72ea0..36fc210834 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -248,7 +248,7 @@ + + + + - - - - - + + - - - - + + - - - - - + + + + + + + + + + + + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index a8d3c9b15b..4e79b18ee4 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -88,4 +88,24 @@ @color/Linen @color/Taupe + + + + \ No newline at end of file diff --git a/themelibrary/src/main/res/values/colors.xml b/themelibrary/src/main/res/values/colors.xml index bf0176afc7..d8d6f1db4f 100644 --- a/themelibrary/src/main/res/values/colors.xml +++ b/themelibrary/src/main/res/values/colors.xml @@ -7,7 +7,8 @@ #0b182c #0b182c #0b182c - #0b182c + + #071223 #77ffffff #77FFFFFF @@ -134,12 +135,17 @@ #21231A #686C5D + #19071D + #2E123B + #27172B + Default Charcoal + DarkBlue Jet DarkJungle EerieGreen - DarkBlue + Plum \ No newline at end of file diff --git a/themelibrary/src/main/res/values/themes.xml b/themelibrary/src/main/res/values/themes.xml index ba74ce5142..f43e7ad199 100644 --- a/themelibrary/src/main/res/values/themes.xml +++ b/themelibrary/src/main/res/values/themes.xml @@ -127,6 +127,15 @@ @color/darkColorAuxiliaryTint + + + + \ No newline at end of file