Fix tab resetting behaviour
This commit is contained in:
parent
0f1c44ced1
commit
76cd8f6c06
|
@ -77,16 +77,10 @@ import com.keylesspalace.tusky.fragment.NotificationsFragment
|
|||
import com.keylesspalace.tusky.interfaces.AccountSelectionListener
|
||||
import com.keylesspalace.tusky.interfaces.ActionButtonActivity
|
||||
import com.keylesspalace.tusky.interfaces.ReselectableFragment
|
||||
import com.keylesspalace.tusky.interfaces.ResettableFragment
|
||||
import com.keylesspalace.tusky.pager.MainPagerAdapter
|
||||
import com.keylesspalace.tusky.settings.PrefKeys
|
||||
import com.keylesspalace.tusky.util.ThemeUtils
|
||||
import com.keylesspalace.tusky.util.deleteStaleCachedMedia
|
||||
import com.keylesspalace.tusky.util.emojify
|
||||
import com.keylesspalace.tusky.util.hide
|
||||
import com.keylesspalace.tusky.util.removeShortcut
|
||||
import com.keylesspalace.tusky.util.updateShortcut
|
||||
import com.keylesspalace.tusky.util.viewBinding
|
||||
import com.keylesspalace.tusky.util.visible
|
||||
import com.keylesspalace.tusky.util.*
|
||||
import com.mikepenz.iconics.IconicsDrawable
|
||||
import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial
|
||||
import com.mikepenz.iconics.utils.colorInt
|
||||
|
@ -95,19 +89,8 @@ import com.mikepenz.materialdrawer.holder.BadgeStyle
|
|||
import com.mikepenz.materialdrawer.holder.ColorHolder
|
||||
import com.mikepenz.materialdrawer.holder.StringHolder
|
||||
import com.mikepenz.materialdrawer.iconics.iconicsIcon
|
||||
import com.mikepenz.materialdrawer.model.AbstractDrawerItem
|
||||
import com.mikepenz.materialdrawer.model.DividerDrawerItem
|
||||
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem
|
||||
import com.mikepenz.materialdrawer.model.ProfileDrawerItem
|
||||
import com.mikepenz.materialdrawer.model.ProfileSettingDrawerItem
|
||||
import com.mikepenz.materialdrawer.model.SecondaryDrawerItem
|
||||
import com.mikepenz.materialdrawer.model.interfaces.IProfile
|
||||
import com.mikepenz.materialdrawer.model.interfaces.descriptionRes
|
||||
import com.mikepenz.materialdrawer.model.interfaces.descriptionText
|
||||
import com.mikepenz.materialdrawer.model.interfaces.iconRes
|
||||
import com.mikepenz.materialdrawer.model.interfaces.iconUrl
|
||||
import com.mikepenz.materialdrawer.model.interfaces.nameRes
|
||||
import com.mikepenz.materialdrawer.model.interfaces.nameText
|
||||
import com.mikepenz.materialdrawer.model.*
|
||||
import com.mikepenz.materialdrawer.model.interfaces.*
|
||||
import com.mikepenz.materialdrawer.util.*
|
||||
import com.mikepenz.materialdrawer.widget.AccountHeaderView
|
||||
import dagger.android.DispatchingAndroidInjector
|
||||
|
@ -638,6 +621,9 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje
|
|||
if (popup.menu is MenuBuilder) {
|
||||
val menuBuilder = popup.menu as MenuBuilder
|
||||
|
||||
if (tabs[i].id in arrayOf(HOME, LOCAL, FEDERATED, HASHTAG, LIST)) {
|
||||
menuBuilder.findItem(R.id.tabReset).isVisible = true
|
||||
}
|
||||
if (tabs[i].id == LIST) {
|
||||
menuBuilder.findItem(R.id.tabEditList).isVisible = true
|
||||
}
|
||||
|
@ -679,6 +665,11 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje
|
|||
(fragment as ReselectableFragment).onReselect()
|
||||
}
|
||||
}
|
||||
R.id.tabReset -> {
|
||||
if (fragment is ResettableFragment) {
|
||||
fragment.onReset()
|
||||
}
|
||||
}
|
||||
R.id.tabEditList -> {
|
||||
AccountsInListFragment.newInstance(
|
||||
tabs[i].arguments.getOrNull(0).orEmpty(),
|
||||
|
|
|
@ -25,14 +25,7 @@ import androidx.core.content.ContextCompat
|
|||
import androidx.fragment.app.viewModels
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.recyclerview.widget.AsyncDifferConfig
|
||||
import androidx.recyclerview.widget.AsyncListDiffer
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.DividerItemDecoration
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.ListUpdateCallback
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.recyclerview.widget.SimpleItemAnimator
|
||||
import androidx.recyclerview.widget.*
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnRefreshListener
|
||||
import at.connyduck.sparkbutton.helpers.Utils
|
||||
import autodispose2.androidx.lifecycle.autoDispose
|
||||
|
@ -50,18 +43,9 @@ import com.keylesspalace.tusky.db.AccountManager
|
|||
import com.keylesspalace.tusky.di.Injectable
|
||||
import com.keylesspalace.tusky.di.ViewModelFactory
|
||||
import com.keylesspalace.tusky.fragment.SFragment
|
||||
import com.keylesspalace.tusky.interfaces.ActionButtonActivity
|
||||
import com.keylesspalace.tusky.interfaces.RefreshableFragment
|
||||
import com.keylesspalace.tusky.interfaces.ReselectableFragment
|
||||
import com.keylesspalace.tusky.interfaces.StatusActionListener
|
||||
import com.keylesspalace.tusky.interfaces.*
|
||||
import com.keylesspalace.tusky.settings.PrefKeys
|
||||
import com.keylesspalace.tusky.util.CardViewMode
|
||||
import com.keylesspalace.tusky.util.ListStatusAccessibilityDelegate
|
||||
import com.keylesspalace.tusky.util.StatusDisplayOptions
|
||||
import com.keylesspalace.tusky.util.hide
|
||||
import com.keylesspalace.tusky.util.show
|
||||
import com.keylesspalace.tusky.util.viewBinding
|
||||
import com.keylesspalace.tusky.util.visible
|
||||
import com.keylesspalace.tusky.util.*
|
||||
import com.keylesspalace.tusky.view.EndlessOnScrollListener
|
||||
import com.keylesspalace.tusky.viewdata.AttachmentViewData
|
||||
import com.keylesspalace.tusky.viewdata.StatusViewData
|
||||
|
@ -76,6 +60,7 @@ class TimelineFragment :
|
|||
StatusActionListener,
|
||||
Injectable,
|
||||
ReselectableFragment,
|
||||
ResettableFragment,
|
||||
RefreshableFragment {
|
||||
|
||||
@Inject
|
||||
|
@ -281,7 +266,7 @@ class TimelineFragment :
|
|||
binding.swipeRefreshLayout.isEnabled = isSwipeToRefreshEnabled
|
||||
binding.statusView.hide()
|
||||
|
||||
viewModel.fullyRefresh()
|
||||
viewModel.refresh()
|
||||
}
|
||||
|
||||
override fun onReply(position: Int) {
|
||||
|
@ -550,6 +535,10 @@ class TimelineFragment :
|
|||
}
|
||||
}
|
||||
|
||||
override fun onReset() {
|
||||
viewModel.fullyRefresh()
|
||||
}
|
||||
|
||||
override fun refreshContent() {
|
||||
onRefresh()
|
||||
}
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
package com.keylesspalace.tusky.interfaces
|
||||
|
||||
interface ResettableFragment {
|
||||
fun onReset()
|
||||
}
|
|
@ -5,6 +5,11 @@
|
|||
android:icon="@drawable/ic_arrow_upward"
|
||||
android:title="@string/action_tab_jump_to_top" />
|
||||
|
||||
<item android:id="@+id/tabReset"
|
||||
android:icon="@drawable/ic_reject_24dp"
|
||||
android:title="@string/action_tab_reset"
|
||||
android:visible="false" />
|
||||
|
||||
<item android:id="@+id/tabEditList"
|
||||
android:icon="@drawable/ic_list"
|
||||
android:title="@string/action_tab_edit_list"
|
||||
|
|
|
@ -150,6 +150,7 @@
|
|||
<string name="action_quote">Quote</string>
|
||||
<string name="action_authorize">Authorize Now!</string>
|
||||
<string name="action_tab_jump_to_top">Jump to top</string>
|
||||
<string name="action_tab_reset">Reset tab</string>
|
||||
<string name="action_tab_edit_list">Edit this list</string>
|
||||
<string name="action_tab_toggle_streaming">Use streaming in this tab</string>
|
||||
<string name="action_tab_toggle_notifications_filter">Toggle notifications filter</string>
|
||||
|
|
Loading…
Reference in New Issue