[merge] Fix various crashes
Change-Id: I0e10d09e84771d79b8d54cd9b1239162cc19ceda
This commit is contained in:
parent
f1b4db73e4
commit
e314922280
@ -101,8 +101,8 @@ class HomeDetailFragment :
|
||||
private lateinit var sharedCallActionViewModel: SharedKnownCallsViewModel
|
||||
|
||||
// When this changes, restart the activity for changes to apply
|
||||
private val shouldShowUnimportantCounterBadge = vectorPreferences.shouldShowUnimportantCounterBadge()
|
||||
private val useAggregateCounts = vectorPreferences.aggregateUnreadRoomCounts()
|
||||
private val shouldShowUnimportantCounterBadge: Boolean by lazy { vectorPreferences.shouldShowUnimportantCounterBadge() }
|
||||
private val useAggregateCounts: Boolean by lazy { vectorPreferences.aggregateUnreadRoomCounts() }
|
||||
|
||||
private var hasUnreadRooms = false
|
||||
set(value) {
|
||||
|
@ -1611,43 +1611,45 @@ class TimelineFragment :
|
||||
}
|
||||
}
|
||||
|
||||
private val stickyHeaderItemDecoration = object : StickyHeaderItemDecoration(timelineEventController, reverse = true) {
|
||||
override fun isHeader(model: EpoxyModel<*>?): Boolean {
|
||||
return model is DaySeparatorItem
|
||||
}
|
||||
|
||||
override fun preventOverlay(model: EpoxyModel<*>?): Boolean {
|
||||
return model is TimelineReadMarkerItem
|
||||
}
|
||||
|
||||
override fun getHeaderViewHolderForItem(headerPosition: Int, parent: RecyclerView): EpoxyViewHolder {
|
||||
// Same as super
|
||||
val viewHolder = timelineEventController.adapter.onCreateViewHolder(
|
||||
parent,
|
||||
timelineEventController.adapter.getItemViewType(headerPosition)
|
||||
)
|
||||
timelineEventController.adapter.onBindViewHolder(viewHolder, headerPosition)
|
||||
// Same as super -- end
|
||||
|
||||
// We want to hide the separator line for floating dates
|
||||
(viewHolder.holder as? DaySeparatorItem.Holder)?.let { DaySeparatorItem.asFloatingDate(it) }
|
||||
|
||||
return viewHolder
|
||||
}
|
||||
|
||||
// While the header has a sticky overlay, only hide its text, not the separator lines
|
||||
override fun updateOverlaidHeader(parent: RecyclerView, position: Int, isCurrentlyOverlaid: Boolean): Boolean {
|
||||
val model = tryOrNull { timelineEventController.adapter.getModelAtPosition(position) as? DaySeparatorItem }
|
||||
if (model != null) {
|
||||
val viewHolder = ((parent.findViewHolderForAdapterPosition(position) as? EpoxyViewHolder)?.holder) as? DaySeparatorItem.Holder
|
||||
model.shouldBeVisible(!isCurrentlyOverlaid, viewHolder)
|
||||
return true
|
||||
private val stickyHeaderItemDecoration: StickyHeaderItemDecoration by lazy {
|
||||
object : StickyHeaderItemDecoration(timelineEventController, reverse = true) {
|
||||
override fun isHeader(model: EpoxyModel<*>?): Boolean {
|
||||
return model is DaySeparatorItem
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
override fun getViewForFadeAnimation(holder: EpoxyViewHolder): View {
|
||||
return (holder.holder as? DaySeparatorItem.Holder)?.dayTextView ?: super.getViewForFadeAnimation(holder)
|
||||
override fun preventOverlay(model: EpoxyModel<*>?): Boolean {
|
||||
return model is TimelineReadMarkerItem
|
||||
}
|
||||
|
||||
override fun getHeaderViewHolderForItem(headerPosition: Int, parent: RecyclerView): EpoxyViewHolder {
|
||||
// Same as super
|
||||
val viewHolder = timelineEventController.adapter.onCreateViewHolder(
|
||||
parent,
|
||||
timelineEventController.adapter.getItemViewType(headerPosition)
|
||||
)
|
||||
timelineEventController.adapter.onBindViewHolder(viewHolder, headerPosition)
|
||||
// Same as super -- end
|
||||
|
||||
// We want to hide the separator line for floating dates
|
||||
(viewHolder.holder as? DaySeparatorItem.Holder)?.let { DaySeparatorItem.asFloatingDate(it) }
|
||||
|
||||
return viewHolder
|
||||
}
|
||||
|
||||
// While the header has a sticky overlay, only hide its text, not the separator lines
|
||||
override fun updateOverlaidHeader(parent: RecyclerView, position: Int, isCurrentlyOverlaid: Boolean): Boolean {
|
||||
val model = tryOrNull { timelineEventController.adapter.getModelAtPosition(position) as? DaySeparatorItem }
|
||||
if (model != null) {
|
||||
val viewHolder = ((parent.findViewHolderForAdapterPosition(position) as? EpoxyViewHolder)?.holder) as? DaySeparatorItem.Holder
|
||||
model.shouldBeVisible(!isCurrentlyOverlaid, viewHolder)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
override fun getViewForFadeAnimation(holder: EpoxyViewHolder): View {
|
||||
return (holder.holder as? DaySeparatorItem.Holder)?.dayTextView ?: super.getViewForFadeAnimation(holder)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1416,6 +1416,8 @@ class VectorPreferences @Inject constructor(
|
||||
* Indicates whether or not new app layout is enabled.
|
||||
*/
|
||||
fun isNewAppLayoutEnabled(): Boolean {
|
||||
// SC: disabled for now (only crashes either way)
|
||||
if (true) return false
|
||||
return vectorFeatures.isNewAppLayoutFeatureEnabled() &&
|
||||
defaultPrefs.getBoolean(SETTINGS_LABS_NEW_APP_LAYOUT_KEY, getDefault(R.bool.settings_labs_new_app_layout_default))
|
||||
}
|
||||
|
@ -154,11 +154,13 @@
|
||||
android:summary="@string/labs_enable_element_call_permission_shortcuts_summary"
|
||||
android:title="@string/labs_enable_element_call_permission_shortcuts" />
|
||||
|
||||
<!--
|
||||
<im.vector.app.core.preference.VectorSwitchPreference
|
||||
android:defaultValue="@bool/settings_labs_new_app_layout_default"
|
||||
android:key="SETTINGS_LABS_NEW_APP_LAYOUT_KEY"
|
||||
android:summary="@string/labs_enable_new_app_layout_summary"
|
||||
android:title="@string/labs_enable_new_app_layout_title" />
|
||||
-->
|
||||
|
||||
</im.vector.app.core.preference.VectorPreferenceCategory>
|
||||
</androidx.preference.PreferenceScreen>
|
||||
|
Loading…
x
Reference in New Issue
Block a user