diff --git a/app/build.gradle b/app/build.gradle index 8bee5c83..35ea4744 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -62,7 +62,7 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:4da0ee0cf4' + implementation 'com.github.SimpleMobileTools:Simple-Commons:d82297ad77' implementation 'com.github.tibbi:IndicatorFastScroll:4524cd0b61' implementation 'me.grantland:autofittextview:0.2.1' } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt index 36a1ae3a..529a3405 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt @@ -53,11 +53,13 @@ class MainActivity : SimpleActivity() { var cachedContacts = ArrayList() override fun onCreate(savedInstanceState: Bundle?) { + isMaterialActivity = true super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) appLaunched(BuildConfig.APPLICATION_ID) setupOptionsMenu() refreshMenuItems() + updateMaterialActivityViews(main_coordinator, main_holder, false) launchedDialer = savedInstanceState?.getBoolean(OPEN_DIAL_PAD_AT_LAUNCH) ?: false @@ -95,13 +97,19 @@ class MainActivity : SimpleActivity() { override fun onResume() { super.onResume() + val statusBarColor = if (getCurrentFragment()?.getScrollingView() == null) { + getProperBackgroundColor() + } else { + window.statusBarColor + } + val properPrimaryColor = getProperPrimaryColor() val dialpadIcon = resources.getColoredDrawableWithColor(R.drawable.ic_dialpad_vector, properPrimaryColor.getContrastColor()) main_dialpad_button.setImageDrawable(dialpadIcon) - setupTabColors() - setupToolbar(main_toolbar, searchMenuItem = mSearchMenuItem) + setupToolbar(main_toolbar, statusBarColor = statusBarColor, searchMenuItem = mSearchMenuItem) updateTextColors(main_holder) + setupTabColors() getAllFragments().forEach { it?.setupColors(getProperTextColor(), getProperPrimaryColor(), getProperPrimaryColor()) @@ -268,6 +276,11 @@ class MainActivity : SimpleActivity() { .build() } + private fun updateStatusBarChanger() { + setupMaterialScrollListener(getCurrentFragment()?.getScrollingView(), main_toolbar) + updateStatusBarOnPageChange() + } + private fun setupTabColors() { val activeView = main_tabs_holder.getTabAt(view_pager.currentItem)?.customView updateBottomTabItemColors(activeView, true) @@ -297,6 +310,7 @@ class MainActivity : SimpleActivity() { it?.finishActMode() } refreshMenuItems() + updateStatusBarChanger() } }) @@ -359,6 +373,9 @@ class MainActivity : SimpleActivity() { ) main_tabs_holder.beGoneIf(main_tabs_holder.tabCount == 1) + main_tabs_holder.onGlobalLayout { + updateStatusBarChanger() + } storedShowTabs = config.showTabs } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt index f0a2bb9f..033347dd 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt @@ -157,4 +157,6 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag } } } + + override fun getScrollingView() = fragment_list } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt index 8c6dc263..6f2a1ad4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt @@ -190,4 +190,6 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa (fragment_list.adapter as? ContactsAdapter)?.updateItems(contacts, text) setupLetterFastscroller(contacts) } + + override fun getScrollingView() = fragment_list } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/MyViewPagerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/MyViewPagerFragment.kt index d18a0a0f..9ae15372 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/MyViewPagerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/MyViewPagerFragment.kt @@ -3,6 +3,7 @@ package com.simplemobiletools.dialer.fragments import android.content.Context import android.util.AttributeSet import android.widget.RelativeLayout +import androidx.core.view.ScrollingView import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter import com.simplemobiletools.commons.extensions.getProperPrimaryColor import com.simplemobiletools.commons.extensions.getProperTextColor @@ -39,4 +40,6 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) abstract fun onSearchClosed() abstract fun onSearchQueryChanged(text: String) + + abstract fun getScrollingView(): ScrollingView? } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/RecentsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/RecentsFragment.kt index e7c59c32..2528c95e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/RecentsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/RecentsFragment.kt @@ -143,4 +143,6 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage recents_placeholder.beVisibleIf(recentCalls.isEmpty()) (recents_list.adapter as? RecentCallsAdapter)?.updateItems(recentCalls, text) } + + override fun getScrollingView() = recents_list } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 82d64f64..79b0eea5 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -5,27 +5,21 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - - - + android:layout_height="?attr/actionBarSize" + android:background="@color/color_primary" + app:menu="@menu/menu" + app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" /> + android:layout_marginTop="?attr/actionBarSize" + android:fillViewport="true" + android:scrollbars="none">