Labs: setting to clear highlighted message on scroll
Change-Id: If07012f29159bb10cbd90f410955b49684891945
This commit is contained in:
parent
0cc0a191bc
commit
aa34c108b5
|
@ -229,6 +229,9 @@
|
||||||
|
|
||||||
<string name="action_send_as_sticker">Send as sticker</string>
|
<string name="action_send_as_sticker">Send as sticker</string>
|
||||||
|
|
||||||
|
<string name="settings_clear_highlight_on_scroll">Clear highlight on scroll</string>
|
||||||
|
<string name="settings_clear_highlight_on_scroll_summary">Remove highlight from messages when you scroll</string>
|
||||||
|
|
||||||
<!-- SC-TMP, until merged upstream: https://github.com/vector-im/element-android/pull/5781 -->
|
<!-- SC-TMP, until merged upstream: https://github.com/vector-im/element-android/pull/5781 -->
|
||||||
<string name="settings_call_ringtone_use_default_stun_title">Allow fallback call assist server</string>
|
<string name="settings_call_ringtone_use_default_stun_title">Allow fallback call assist server</string>
|
||||||
<string name="settings_call_ringtone_use_default_stun_summary">Will use %s as assist when your homeserver does not offer one (your IP address will be seen by the stun server during a call
|
<string name="settings_call_ringtone_use_default_stun_summary">Will use %s as assist when your homeserver does not offer one (your IP address will be seen by the stun server during a call
|
||||||
|
|
|
@ -323,6 +323,8 @@ class TimelineFragment :
|
||||||
|
|
||||||
private val lazyLoadedViews = RoomDetailLazyLoadedViews()
|
private val lazyLoadedViews = RoomDetailLazyLoadedViews()
|
||||||
|
|
||||||
|
private val clearHighlightOnScroll by lazy { vectorPreferences.clearHighlightOnScroll() }
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
analyticsScreenName = MobileScreen.ScreenName.Room
|
analyticsScreenName = MobileScreen.ScreenName.Room
|
||||||
|
@ -1335,6 +1337,9 @@ class TimelineFragment :
|
||||||
// If we do not clear the focus manually, it will keep it forever?
|
// If we do not clear the focus manually, it will keep it forever?
|
||||||
// We want to listen to new focus events to re-enable the stickToBottom though.
|
// We want to listen to new focus events to re-enable the stickToBottom though.
|
||||||
messageComposerViewModel.handle(MessageComposerAction.ClearFocus)
|
messageComposerViewModel.handle(MessageComposerAction.ClearFocus)
|
||||||
|
if (clearHighlightOnScroll) {
|
||||||
|
timelineViewModel.clearHighlight()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
super.onScrolled(recyclerView, dx, dy)
|
super.onScrolled(recyclerView, dx, dy)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1153,6 +1153,12 @@ class TimelineViewModel @AssistedInject constructor(
|
||||||
_viewEvents.post(RoomDetailViewEvents.NavigateToEvent(targetEventId, action.isFirstUnreadEvent))
|
_viewEvents.post(RoomDetailViewEvents.NavigateToEvent(targetEventId, action.isFirstUnreadEvent))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun clearHighlight() = withState { state ->
|
||||||
|
if (state.highlightedEventId != null) {
|
||||||
|
setState { copy(highlightedEventId = null) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun handleResendEvent(action: RoomDetailAction.ResendMessage) {
|
private fun handleResendEvent(action: RoomDetailAction.ResendMessage) {
|
||||||
if (room == null) return
|
if (room == null) return
|
||||||
val targetEventId = action.eventId
|
val targetEventId = action.eventId
|
||||||
|
|
|
@ -263,6 +263,7 @@ class VectorPreferences @Inject constructor(
|
||||||
const val SETTINGS_ROOM_SORT_ORDER_NULL = "SETTINGS_ROOM_SORT_ORDER_NULL"
|
const val SETTINGS_ROOM_SORT_ORDER_NULL = "SETTINGS_ROOM_SORT_ORDER_NULL"
|
||||||
const val SETTINGS_ROOM_SORT_ORDER_NON_NULL = "SETTINGS_ROOM_SORT_ORDER_NON_NULL"
|
const val SETTINGS_ROOM_SORT_ORDER_NON_NULL = "SETTINGS_ROOM_SORT_ORDER_NON_NULL"
|
||||||
private const val SETTINGS_ENABLE_MEMBER_NAME_CLICK = "SETTINGS_ENABLE_MEMBER_NAME_CLICK"
|
private const val SETTINGS_ENABLE_MEMBER_NAME_CLICK = "SETTINGS_ENABLE_MEMBER_NAME_CLICK"
|
||||||
|
private const val SETTINGS_CLEAR_HIGHLIGHT_ON_SCROLL = "SETTINGS_CLEAR_HIGHLIGHT_ON_SCROLL"
|
||||||
|
|
||||||
private const val DID_ASK_TO_ENABLE_SESSION_PUSH = "DID_ASK_TO_ENABLE_SESSION_PUSH"
|
private const val DID_ASK_TO_ENABLE_SESSION_PUSH = "DID_ASK_TO_ENABLE_SESSION_PUSH"
|
||||||
|
|
||||||
|
@ -1258,6 +1259,11 @@ class VectorPreferences @Inject constructor(
|
||||||
return defaultPrefs.getBoolean(SETTINGS_ENABLE_MEMBER_NAME_CLICK, true)
|
return defaultPrefs.getBoolean(SETTINGS_ENABLE_MEMBER_NAME_CLICK, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SC addition
|
||||||
|
fun clearHighlightOnScroll(): Boolean {
|
||||||
|
return defaultPrefs.getBoolean(SETTINGS_CLEAR_HIGHLIGHT_ON_SCROLL, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* I likely do more fresh installs of the app than anyone else, so a shortcut to change some of the default settings to
|
* I likely do more fresh installs of the app than anyone else, so a shortcut to change some of the default settings to
|
||||||
|
@ -1286,6 +1292,7 @@ class VectorPreferences @Inject constructor(
|
||||||
.putBoolean(SETTINGS_FLOATING_DATE, true)
|
.putBoolean(SETTINGS_FLOATING_DATE, true)
|
||||||
.putBoolean(SETTINGS_FOLLOW_SYSTEM_LOCALE, true)
|
.putBoolean(SETTINGS_FOLLOW_SYSTEM_LOCALE, true)
|
||||||
.putBoolean(SETTINGS_ENABLE_MEMBER_NAME_CLICK, false)
|
.putBoolean(SETTINGS_ENABLE_MEMBER_NAME_CLICK, false)
|
||||||
|
.putBoolean(SETTINGS_CLEAR_HIGHLIGHT_ON_SCROLL, true)
|
||||||
.apply()
|
.apply()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,12 @@
|
||||||
android:title="@string/settings_read_receipt_follows_read_marker"
|
android:title="@string/settings_read_receipt_follows_read_marker"
|
||||||
android:summary="@string/settings_read_receipt_follows_read_marker_summary" />
|
android:summary="@string/settings_read_receipt_follows_read_marker_summary" />
|
||||||
|
|
||||||
|
<im.vector.app.core.preference.VectorSwitchPreference
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:key="SETTINGS_CLEAR_HIGHLIGHT_ON_SCROLL"
|
||||||
|
android:title="@string/settings_clear_highlight_on_scroll"
|
||||||
|
android:summary="@string/settings_clear_highlight_on_scroll_summary" />
|
||||||
|
|
||||||
<im.vector.app.core.preference.VectorSwitchPreference
|
<im.vector.app.core.preference.VectorSwitchPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="SETTINGS_ALLOW_URL_PREVIEW_IN_ENCRYPTED_ROOM_KEY"
|
android:key="SETTINGS_ALLOW_URL_PREVIEW_IN_ENCRYPTED_ROOM_KEY"
|
||||||
|
|
Loading…
Reference in New Issue