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";
|
||||
@ExportablePreference(STRING)
|
||||
String KEY_YANDEX_KEY = "yandex_key";
|
||||
@ExportablePreference(BOOLEAN)
|
||||
String KEY_AUTO_HIDE_TABS = "auto_hide_tabs";
|
||||
|
||||
// Internal preferences
|
||||
|
||||
|
|
|
@ -392,7 +392,7 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
|||
|
||||
override fun getSystemWindowInsets(caller: Fragment, insets: Rect): Boolean {
|
||||
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
|
||||
if (preferences[tabPositionKey] == SharedPreferenceConstants.VALUE_TAB_POSITION_TOP) {
|
||||
if (height != 0) {
|
||||
|
@ -589,7 +589,7 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
|||
|
||||
override var controlBarOffset: Float
|
||||
get() {
|
||||
if (mainTabs.columns > 1) {
|
||||
if (mainTabs.columns > 1 || !toolbar.isVisible) {
|
||||
val lp = actionsButton.layoutParams
|
||||
val total: Float
|
||||
total = if (lp is MarginLayoutParams) {
|
||||
|
@ -608,7 +608,7 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
|||
}
|
||||
set(offset) {
|
||||
if (preferences[tabPositionKey] == SharedPreferenceConstants.VALUE_TAB_POSITION_TOP) {
|
||||
val translationY = if (mainTabs.columns > 1) {
|
||||
val translationY = if (mainTabs.columns > 1 || !toolbar.isVisible) {
|
||||
0
|
||||
} else {
|
||||
(controlBarHeight * (offset - 1)).toInt()
|
||||
|
@ -623,7 +623,7 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
|||
}
|
||||
notifyControlBarOffsetChanged()
|
||||
} else {
|
||||
val translationY = if (mainTabs.columns > 1) {
|
||||
val translationY = if (mainTabs.columns > 1 || !toolbar.isVisible) {
|
||||
0
|
||||
} else {
|
||||
(toolbar.height * (offset - 1)).toInt()
|
||||
|
@ -855,7 +855,12 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
|||
pagerAdapter.hasMultipleColumns = false
|
||||
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> {
|
||||
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 tabPositionKey = KStringKey(KEY_TAB_POSITION, SharedPreferenceConstants.DEFAULT_TAB_POSITION)
|
||||
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) {
|
||||
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_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_auto_hide_tabs">Hide Tab when there\'s only one tab</string>
|
||||
<string name="preference_title_accounts">Accounts</string>
|
||||
<string name="preference_title_advanced">Advanced</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_navbar_style">Navbar style</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_ringtone">Ringtone</string>
|
||||
<string name="preference_title_override_language">App language</string>
|
||||
|
|
|
@ -77,10 +77,17 @@
|
|||
<extra
|
||||
android:name="should_recreate"
|
||||
android:value="true"/>
|
||||
<extra
|
||||
android:name="recreate_activity"
|
||||
android:value="true"/>
|
||||
</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>
|
Loading…
Reference in New Issue