add setting to hide top toolbar
This commit is contained in:
parent
8e80b249f8
commit
dd3d372b80
|
@ -59,6 +59,7 @@ import com.keylesspalace.tusky.interfaces.AccountSelectionListener
|
||||||
import com.keylesspalace.tusky.interfaces.ActionButtonActivity
|
import com.keylesspalace.tusky.interfaces.ActionButtonActivity
|
||||||
import com.keylesspalace.tusky.interfaces.ReselectableFragment
|
import com.keylesspalace.tusky.interfaces.ReselectableFragment
|
||||||
import com.keylesspalace.tusky.pager.MainPagerAdapter
|
import com.keylesspalace.tusky.pager.MainPagerAdapter
|
||||||
|
import com.keylesspalace.tusky.settings.PrefKeys
|
||||||
import com.keylesspalace.tusky.util.*
|
import com.keylesspalace.tusky.util.*
|
||||||
import com.mikepenz.iconics.IconicsDrawable
|
import com.mikepenz.iconics.IconicsDrawable
|
||||||
import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial
|
import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial
|
||||||
|
@ -95,6 +96,8 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje
|
||||||
private var notificationTabPosition = 0
|
private var notificationTabPosition = 0
|
||||||
private var onTabSelectedListener: OnTabSelectedListener? = null
|
private var onTabSelectedListener: OnTabSelectedListener? = null
|
||||||
|
|
||||||
|
private val preferences by lazy { PreferenceManager.getDefaultSharedPreferences(this) }
|
||||||
|
|
||||||
private val emojiInitCallback = object : InitCallback() {
|
private val emojiInitCallback = object : InitCallback() {
|
||||||
override fun onInitialized() {
|
override fun onInitialized() {
|
||||||
if (!isDestroyed) {
|
if (!isDestroyed) {
|
||||||
|
@ -163,6 +166,9 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje
|
||||||
startActivity(composeIntent)
|
startActivity(composeIntent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val hideTopToolbar = preferences.getBoolean(PrefKeys.HIDE_TOP_TOOLBAR, false)
|
||||||
|
mainToolbar.visible(!hideTopToolbar)
|
||||||
|
|
||||||
mainToolbar.menu.add(R.string.action_search).apply {
|
mainToolbar.menu.add(R.string.action_search).apply {
|
||||||
setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM)
|
setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM)
|
||||||
icon = IconicsDrawable(this@MainActivity, GoogleMaterial.Icon.gmd_search).apply {
|
icon = IconicsDrawable(this@MainActivity, GoogleMaterial.Icon.gmd_search).apply {
|
||||||
|
@ -175,7 +181,7 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setupDrawer(savedInstanceState)
|
setupDrawer(savedInstanceState, addSearchButton = hideTopToolbar)
|
||||||
|
|
||||||
/* Fetch user info while we're doing other things. This has to be done after setting up the
|
/* Fetch user info while we're doing other things. This has to be done after setting up the
|
||||||
* drawer, though, because its callback touches the header in the drawer. */
|
* drawer, though, because its callback touches the header in the drawer. */
|
||||||
|
@ -280,7 +286,7 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupDrawer(savedInstanceState: Bundle?) {
|
private fun setupDrawer(savedInstanceState: Bundle?, addSearchButton: Boolean) {
|
||||||
|
|
||||||
drawerToggle = ActionBarDrawerToggle(this, mainDrawerLayout, mainToolbar, com.mikepenz.materialdrawer.R.string.material_drawer_open, com.mikepenz.materialdrawer.R.string.material_drawer_close)
|
drawerToggle = ActionBarDrawerToggle(this, mainDrawerLayout, mainToolbar, com.mikepenz.materialdrawer.R.string.material_drawer_open, com.mikepenz.materialdrawer.R.string.material_drawer_close)
|
||||||
|
|
||||||
|
@ -301,8 +307,7 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje
|
||||||
|
|
||||||
header.accountHeaderBackground.setColorFilter(ContextCompat.getColor(this, R.color.headerBackgroundFilter))
|
header.accountHeaderBackground.setColorFilter(ContextCompat.getColor(this, R.color.headerBackgroundFilter))
|
||||||
header.accountHeaderBackground.setBackgroundColor(ThemeUtils.getColor(this, R.attr.colorBackgroundAccent))
|
header.accountHeaderBackground.setBackgroundColor(ThemeUtils.getColor(this, R.attr.colorBackgroundAccent))
|
||||||
val animateAvatars = PreferenceManager.getDefaultSharedPreferences(this)
|
val animateAvatars = preferences.getBoolean("animateGifAvatars", false)
|
||||||
.getBoolean("animateGifAvatars", false)
|
|
||||||
|
|
||||||
DrawerImageLoader.init(object : AbstractDrawerImageLoader() {
|
DrawerImageLoader.init(object : AbstractDrawerImageLoader() {
|
||||||
override fun set(imageView: ImageView, uri: Uri, placeholder: Drawable, tag: String?) {
|
override fun set(imageView: ImageView, uri: Uri, placeholder: Drawable, tag: String?) {
|
||||||
|
@ -414,6 +419,18 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje
|
||||||
onClick = ::logout
|
onClick = ::logout
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(addSearchButton) {
|
||||||
|
mainDrawer.addItemsAtPosition(4,
|
||||||
|
primaryDrawerItem {
|
||||||
|
nameRes = R.string.action_search
|
||||||
|
iconicsIcon = GoogleMaterial.Icon.gmd_search
|
||||||
|
onClick = {
|
||||||
|
startActivityWithSlideInAnimation(SearchActivity.getIntent(context))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
setSavedInstance(savedInstanceState)
|
setSavedInstance(savedInstanceState)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -446,7 +463,6 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupTabs(selectNotificationTab: Boolean) {
|
private fun setupTabs(selectNotificationTab: Boolean) {
|
||||||
val preferences = PreferenceManager.getDefaultSharedPreferences(this)
|
|
||||||
|
|
||||||
val activeTabLayout = if(preferences.getString("mainNavPosition", "top") == "bottom") {
|
val activeTabLayout = if(preferences.getString("mainNavPosition", "top") == "bottom") {
|
||||||
val actionBarSize = ThemeUtils.getDimension(this, R.attr.actionBarSize)
|
val actionBarSize = ThemeUtils.getDimension(this, R.attr.actionBarSize)
|
||||||
|
|
|
@ -26,6 +26,7 @@ import androidx.preference.PreferenceManager
|
||||||
import com.keylesspalace.tusky.appstore.EventHub
|
import com.keylesspalace.tusky.appstore.EventHub
|
||||||
import com.keylesspalace.tusky.appstore.PreferenceChangedEvent
|
import com.keylesspalace.tusky.appstore.PreferenceChangedEvent
|
||||||
import com.keylesspalace.tusky.fragment.preference.*
|
import com.keylesspalace.tusky.fragment.preference.*
|
||||||
|
import com.keylesspalace.tusky.settings.PrefKeys
|
||||||
import com.keylesspalace.tusky.util.ThemeUtils
|
import com.keylesspalace.tusky.util.ThemeUtils
|
||||||
import com.keylesspalace.tusky.util.getNonNullString
|
import com.keylesspalace.tusky.util.getNonNullString
|
||||||
import dagger.android.DispatchingAndroidInjector
|
import dagger.android.DispatchingAndroidInjector
|
||||||
|
@ -129,7 +130,7 @@ class PreferencesActivity : BaseActivity(), SharedPreferences.OnSharedPreference
|
||||||
|
|
||||||
}
|
}
|
||||||
"statusTextSize", "absoluteTimeView", "showBotOverlay", "animateGifAvatars",
|
"statusTextSize", "absoluteTimeView", "showBotOverlay", "animateGifAvatars",
|
||||||
"useBlurhash", "showCardsInTimelines", "confirmReblogs", "enableSwipeForTabs", "mainNavPosition" -> {
|
"useBlurhash", "showCardsInTimelines", "confirmReblogs", "enableSwipeForTabs", "mainNavPosition", PrefKeys.HIDE_TOP_TOOLBAR -> {
|
||||||
restartActivitiesOnExit = true
|
restartActivitiesOnExit = true
|
||||||
}
|
}
|
||||||
"language" -> {
|
"language" -> {
|
||||||
|
|
|
@ -85,6 +85,12 @@ class PreferencesFragment : PreferenceFragmentCompat() {
|
||||||
setTitle(R.string.pref_main_nav_position)
|
setTitle(R.string.pref_main_nav_position)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switchPreference {
|
||||||
|
setDefaultValue(false)
|
||||||
|
key = PrefKeys.HIDE_TOP_TOOLBAR
|
||||||
|
setTitle(R.string.pref_title_hide_top_toolbar)
|
||||||
|
}
|
||||||
|
|
||||||
switchPreference {
|
switchPreference {
|
||||||
setDefaultValue(false)
|
setDefaultValue(false)
|
||||||
key = PrefKeys.FAB_HIDE
|
key = PrefKeys.FAB_HIDE
|
||||||
|
|
|
@ -22,6 +22,7 @@ object PrefKeys {
|
||||||
const val LANGUAGE = "language"
|
const val LANGUAGE = "language"
|
||||||
const val STATUS_TEXT_SIZE = "statusTextSize"
|
const val STATUS_TEXT_SIZE = "statusTextSize"
|
||||||
const val MAIN_NAV_POSITION = "mainNavPosition"
|
const val MAIN_NAV_POSITION = "mainNavPosition"
|
||||||
|
const val HIDE_TOP_TOOLBAR = "hideTopToolbar"
|
||||||
const val ABSOLUTE_TIME_VIEW = "absoluteTimeView"
|
const val ABSOLUTE_TIME_VIEW = "absoluteTimeView"
|
||||||
const val SHOW_BOT_OVERLAY = "showBotOverlay"
|
const val SHOW_BOT_OVERLAY = "showBotOverlay"
|
||||||
const val ANIMATE_GIF_AVATARS = "animateGifAvatars"
|
const val ANIMATE_GIF_AVATARS = "animateGifAvatars"
|
||||||
|
|
|
@ -573,5 +573,6 @@
|
||||||
<string name="warning_scheduling_interval">Mastodon has a minimum scheduling interval of 5 minutes.</string>
|
<string name="warning_scheduling_interval">Mastodon has a minimum scheduling interval of 5 minutes.</string>
|
||||||
<string name="pref_title_show_cards_in_timelines">Show link previews in timelines</string>
|
<string name="pref_title_show_cards_in_timelines">Show link previews in timelines</string>
|
||||||
<string name="pref_title_confirm_reblogs">Show confirmation dialog before boosting</string>
|
<string name="pref_title_confirm_reblogs">Show confirmation dialog before boosting</string>
|
||||||
|
<string name="pref_title_hide_top_toolbar">Hide the title of the top toolbar</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in New Issue