Add auto hide tabs support
This commit is contained in:
parent
478a7dd1ae
commit
fd237ee188
|
@ -287,6 +287,8 @@ public interface SharedPreferenceConstants {
|
||||||
String KEY_TAB_POSITION = "tab_position";
|
String KEY_TAB_POSITION = "tab_position";
|
||||||
@ExportablePreference(STRING)
|
@ExportablePreference(STRING)
|
||||||
String KEY_YANDEX_KEY = "yandex_key";
|
String KEY_YANDEX_KEY = "yandex_key";
|
||||||
|
@ExportablePreference(BOOLEAN)
|
||||||
|
String KEY_AUTO_HIDE_TABS = "auto_hide_tabs";
|
||||||
|
|
||||||
// Internal preferences
|
// Internal preferences
|
||||||
|
|
||||||
|
|
|
@ -392,7 +392,7 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
||||||
|
|
||||||
override fun getSystemWindowInsets(caller: Fragment, insets: Rect): Boolean {
|
override fun getSystemWindowInsets(caller: Fragment, insets: Rect): Boolean {
|
||||||
if (caller === leftDrawerFragment) return super.getSystemWindowInsets(caller, insets)
|
if (caller === leftDrawerFragment) return super.getSystemWindowInsets(caller, insets)
|
||||||
if (mainTabs == null || homeContent == null) return false
|
if (mainTabs == null || homeContent == null || toolbar == null || !toolbar.isVisible) return false
|
||||||
val height = mainTabs.height
|
val height = mainTabs.height
|
||||||
if (preferences[tabPositionKey] == SharedPreferenceConstants.VALUE_TAB_POSITION_TOP) {
|
if (preferences[tabPositionKey] == SharedPreferenceConstants.VALUE_TAB_POSITION_TOP) {
|
||||||
if (height != 0) {
|
if (height != 0) {
|
||||||
|
@ -589,7 +589,7 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
||||||
|
|
||||||
override var controlBarOffset: Float
|
override var controlBarOffset: Float
|
||||||
get() {
|
get() {
|
||||||
if (mainTabs.columns > 1) {
|
if (mainTabs.columns > 1 || !toolbar.isVisible) {
|
||||||
val lp = actionsButton.layoutParams
|
val lp = actionsButton.layoutParams
|
||||||
val total: Float
|
val total: Float
|
||||||
total = if (lp is MarginLayoutParams) {
|
total = if (lp is MarginLayoutParams) {
|
||||||
|
@ -608,7 +608,7 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
||||||
}
|
}
|
||||||
set(offset) {
|
set(offset) {
|
||||||
if (preferences[tabPositionKey] == SharedPreferenceConstants.VALUE_TAB_POSITION_TOP) {
|
if (preferences[tabPositionKey] == SharedPreferenceConstants.VALUE_TAB_POSITION_TOP) {
|
||||||
val translationY = if (mainTabs.columns > 1) {
|
val translationY = if (mainTabs.columns > 1 || !toolbar.isVisible) {
|
||||||
0
|
0
|
||||||
} else {
|
} else {
|
||||||
(controlBarHeight * (offset - 1)).toInt()
|
(controlBarHeight * (offset - 1)).toInt()
|
||||||
|
@ -623,7 +623,7 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
||||||
}
|
}
|
||||||
notifyControlBarOffsetChanged()
|
notifyControlBarOffsetChanged()
|
||||||
} else {
|
} else {
|
||||||
val translationY = if (mainTabs.columns > 1) {
|
val translationY = if (mainTabs.columns > 1 || !toolbar.isVisible) {
|
||||||
0
|
0
|
||||||
} else {
|
} else {
|
||||||
(toolbar.height * (offset - 1)).toInt()
|
(toolbar.height * (offset - 1)).toInt()
|
||||||
|
@ -855,7 +855,12 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
||||||
pagerAdapter.hasMultipleColumns = false
|
pagerAdapter.hasMultipleColumns = false
|
||||||
mainTabs.columns = 1
|
mainTabs.columns = 1
|
||||||
}
|
}
|
||||||
if (preferences[tabPositionKey] == SharedPreferenceConstants.VALUE_TAB_POSITION_TOP) {
|
if (pagerAdapter.count == 1 && preferences[autoHideTabs]) {
|
||||||
|
toolbar.isVisible = false
|
||||||
|
actionsButton.updateLayoutParams<RelativeLayout.LayoutParams> {
|
||||||
|
addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE)
|
||||||
|
}
|
||||||
|
} else if (preferences[tabPositionKey] == SharedPreferenceConstants.VALUE_TAB_POSITION_TOP) {
|
||||||
toolbar.updateLayoutParams<RelativeLayout.LayoutParams> {
|
toolbar.updateLayoutParams<RelativeLayout.LayoutParams> {
|
||||||
addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE)
|
addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE)
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,6 +88,7 @@ val promotionsEnabledKey = KBooleanKey("promotions_enabled", false)
|
||||||
val translationDestinationKey = KNullableStringKey(KEY_TRANSLATION_DESTINATION, null)
|
val translationDestinationKey = KNullableStringKey(KEY_TRANSLATION_DESTINATION, null)
|
||||||
val tabPositionKey = KStringKey(KEY_TAB_POSITION, SharedPreferenceConstants.DEFAULT_TAB_POSITION)
|
val tabPositionKey = KStringKey(KEY_TAB_POSITION, SharedPreferenceConstants.DEFAULT_TAB_POSITION)
|
||||||
val yandexKeyKey = KStringKey(SharedPreferenceConstants.KEY_YANDEX_KEY, TwidereConstants.YANDEX_KEY)
|
val yandexKeyKey = KStringKey(SharedPreferenceConstants.KEY_YANDEX_KEY, TwidereConstants.YANDEX_KEY)
|
||||||
|
val autoHideTabs = KBooleanKey(SharedPreferenceConstants.KEY_AUTO_HIDE_TABS, true)
|
||||||
|
|
||||||
object cacheSizeLimitKey : KSimpleKey<Int>(KEY_CACHE_SIZE_LIMIT, 300) {
|
object cacheSizeLimitKey : KSimpleKey<Int>(KEY_CACHE_SIZE_LIMIT, 300) {
|
||||||
override fun read(preferences: SharedPreferences) = preferences.getInt(key, def).coerceIn(100,
|
override fun read(preferences: SharedPreferences) = preferences.getInt(key, def).coerceIn(100,
|
||||||
|
|
|
@ -890,6 +890,7 @@
|
||||||
<string name="preference_summary_media_preload_non_metered_network">Preload media only on free networks like Wi-Fi</string>
|
<string name="preference_summary_media_preload_non_metered_network">Preload media only on free networks like Wi-Fi</string>
|
||||||
<string name="preference_summary_sync_timeline_positions">When \"Remember position\" enabled</string>
|
<string name="preference_summary_sync_timeline_positions">When \"Remember position\" enabled</string>
|
||||||
<string name="preference_summary_trends_location">Now you can set location separately in tab settings.</string>
|
<string name="preference_summary_trends_location">Now you can set location separately in tab settings.</string>
|
||||||
|
<string name="preference_summary_auto_hide_tabs">Hide Tab when there\'s only one tab</string>
|
||||||
<string name="preference_title_accounts">Accounts</string>
|
<string name="preference_title_accounts">Accounts</string>
|
||||||
<string name="preference_title_advanced">Advanced</string>
|
<string name="preference_title_advanced">Advanced</string>
|
||||||
<string name="preference_title_auto_refresh_compatibility_mode">Compatibility mode</string>
|
<string name="preference_title_auto_refresh_compatibility_mode">Compatibility mode</string>
|
||||||
|
@ -908,6 +909,7 @@
|
||||||
<string name="preference_title_multi_column_tabs">Multi column tabs</string>
|
<string name="preference_title_multi_column_tabs">Multi column tabs</string>
|
||||||
<string name="preference_title_navbar_style">Navbar style</string>
|
<string name="preference_title_navbar_style">Navbar style</string>
|
||||||
<string name="preference_title_tab_position">Tab position</string>
|
<string name="preference_title_tab_position">Tab position</string>
|
||||||
|
<string name="preference_title_auto_hide_tab">Auto hide Tab</string>
|
||||||
<string name="preference_title_notification_channels">Channels</string>
|
<string name="preference_title_notification_channels">Channels</string>
|
||||||
<string name="preference_title_notification_ringtone">Ringtone</string>
|
<string name="preference_title_notification_ringtone">Ringtone</string>
|
||||||
<string name="preference_title_override_language">App language</string>
|
<string name="preference_title_override_language">App language</string>
|
||||||
|
|
|
@ -77,10 +77,17 @@
|
||||||
<extra
|
<extra
|
||||||
android:name="should_recreate"
|
android:name="should_recreate"
|
||||||
android:value="true"/>
|
android:value="true"/>
|
||||||
<extra
|
|
||||||
android:name="recreate_activity"
|
|
||||||
android:value="true"/>
|
|
||||||
</org.mariotaku.twidere.preference.EntrySummaryListPreference>
|
</org.mariotaku.twidere.preference.EntrySummaryListPreference>
|
||||||
|
|
||||||
|
<SwitchPreferenceCompat
|
||||||
|
android:order="27"
|
||||||
|
android:defaultValue="true"
|
||||||
|
android:key="auto_hide_tabs"
|
||||||
|
android:summary="@string/preference_summary_auto_hide_tabs"
|
||||||
|
android:title="@string/preference_title_auto_hide_tab">
|
||||||
|
<extra
|
||||||
|
android:name="should_recreate"
|
||||||
|
android:value="true"/>
|
||||||
|
</SwitchPreferenceCompat>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
Loading…
Reference in New Issue