avoid always showing "Go to today" menu item at the list view
This commit is contained in:
parent
53b78ec0a9
commit
8e586b47af
2 changed files with 19 additions and 2 deletions
|
@ -168,10 +168,11 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
|
||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||||
menuInflater.inflate(R.menu.menu_main, menu)
|
menuInflater.inflate(R.menu.menu_main, menu)
|
||||||
|
shouldGoToTodayBeVisible = currentFragments.last().shouldGoToTodayBeVisible()
|
||||||
menu.apply {
|
menu.apply {
|
||||||
goToTodayButton = findItem(R.id.go_to_today)
|
goToTodayButton = findItem(R.id.go_to_today)
|
||||||
findItem(R.id.filter).isVisible = mShouldFilterBeVisible
|
findItem(R.id.filter).isVisible = mShouldFilterBeVisible
|
||||||
findItem(R.id.go_to_today).isVisible = (shouldGoToTodayBeVisible || config.storedView == EVENTS_LIST_VIEW) && !mIsSearchOpen
|
findItem(R.id.go_to_today).isVisible = shouldGoToTodayBeVisible && !mIsSearchOpen
|
||||||
findItem(R.id.go_to_date).isVisible = config.storedView != EVENTS_LIST_VIEW
|
findItem(R.id.go_to_date).isVisible = config.storedView != EVENTS_LIST_VIEW
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.simplemobiletools.calendar.pro.R
|
import com.simplemobiletools.calendar.pro.R
|
||||||
import com.simplemobiletools.calendar.pro.activities.EventActivity
|
import com.simplemobiletools.calendar.pro.activities.EventActivity
|
||||||
import com.simplemobiletools.calendar.pro.activities.MainActivity
|
import com.simplemobiletools.calendar.pro.activities.MainActivity
|
||||||
|
@ -42,6 +43,7 @@ class EventListFragment : MyFragmentHolder(), RefreshRecyclerViewListener {
|
||||||
private var minFetchedTS = 0L
|
private var minFetchedTS = 0L
|
||||||
private var maxFetchedTS = 0L
|
private var maxFetchedTS = 0L
|
||||||
private var wereInitialEventsAdded = false
|
private var wereInitialEventsAdded = false
|
||||||
|
private var hasBeenScrolled = false
|
||||||
private var bottomItemAtRefresh: ListItem? = null
|
private var bottomItemAtRefresh: ListItem? = null
|
||||||
|
|
||||||
private var use24HourFormat = false
|
private var use24HourFormat = false
|
||||||
|
@ -134,6 +136,16 @@ class EventListFragment : MyFragmentHolder(), RefreshRecyclerViewListener {
|
||||||
fetchNextPeriod()
|
fetchNextPeriod()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mView.calendar_events_list.addOnScrollListener(object : RecyclerView.OnScrollListener() {
|
||||||
|
override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
|
||||||
|
super.onScrollStateChanged(recyclerView, newState)
|
||||||
|
if (!hasBeenScrolled) {
|
||||||
|
hasBeenScrolled = true
|
||||||
|
activity?.invalidateOptionsMenu()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
(currAdapter as EventListAdapter).updateListItems(listItems)
|
(currAdapter as EventListAdapter).updateListItems(listItems)
|
||||||
if (updateStatus == UPDATE_TOP) {
|
if (updateStatus == UPDATE_TOP) {
|
||||||
|
@ -195,6 +207,10 @@ class EventListFragment : MyFragmentHolder(), RefreshRecyclerViewListener {
|
||||||
val firstNonPastSectionIndex = listItems.indexOfFirst { it is ListSection && !it.isPastSection }
|
val firstNonPastSectionIndex = listItems.indexOfFirst { it is ListSection && !it.isPastSection }
|
||||||
if (firstNonPastSectionIndex != -1) {
|
if (firstNonPastSectionIndex != -1) {
|
||||||
(mView.calendar_events_list.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(firstNonPastSectionIndex, 0)
|
(mView.calendar_events_list.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(firstNonPastSectionIndex, 0)
|
||||||
|
mView.calendar_events_list.onGlobalLayout {
|
||||||
|
hasBeenScrolled = false
|
||||||
|
activity?.invalidateOptionsMenu()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,7 +220,7 @@ class EventListFragment : MyFragmentHolder(), RefreshRecyclerViewListener {
|
||||||
checkEvents()
|
checkEvents()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun shouldGoToTodayBeVisible() = false
|
override fun shouldGoToTodayBeVisible() = hasBeenScrolled
|
||||||
|
|
||||||
override fun updateActionBarTitle() {
|
override fun updateActionBarTitle() {
|
||||||
(activity as? MainActivity)?.updateActionBarTitle(getString(R.string.app_launcher_name))
|
(activity as? MainActivity)?.updateActionBarTitle(getString(R.string.app_launcher_name))
|
||||||
|
|
Loading…
Reference in a new issue