mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-02-27 19:19:25 +03:00
Room summary preview / unread kind depending on DMs vs groups
Closes https://github.com/SchildiChat/SchildiChat-android/issues/32 Change-Id: I4f4e3078e940dc80046d5d08628a1bdbed4fd55e
This commit is contained in:
parent
a365850516
commit
0c37405278
7 changed files with 58 additions and 12 deletions
|
@ -88,7 +88,7 @@ data class RoomSummary constructor(
|
||||||
// Fallback to default
|
// Fallback to default
|
||||||
return hasUnreadMessages
|
return hasUnreadMessages
|
||||||
}
|
}
|
||||||
return when(preferenceProvider.getUnreadKind()) {
|
return when(preferenceProvider.getUnreadKind(isDirect)) {
|
||||||
UNREAD_KIND_ORIGINAL_CONTENT -> hasUnreadOriginalContentMessages
|
UNREAD_KIND_ORIGINAL_CONTENT -> hasUnreadOriginalContentMessages
|
||||||
UNREAD_KIND_CONTENT -> hasUnreadContentMessages
|
UNREAD_KIND_CONTENT -> hasUnreadContentMessages
|
||||||
// UNREAD_KIND_DEFAULT
|
// UNREAD_KIND_DEFAULT
|
||||||
|
@ -101,7 +101,7 @@ data class RoomSummary constructor(
|
||||||
// Fallback to default
|
// Fallback to default
|
||||||
return latestPreviewableEvent
|
return latestPreviewableEvent
|
||||||
}
|
}
|
||||||
return when(preferenceProvider.getUnreadKind()) {
|
return when(preferenceProvider.getUnreadKind(isDirect)) {
|
||||||
UNREAD_KIND_ORIGINAL_CONTENT -> latestPreviewableOriginalContentEvent
|
UNREAD_KIND_ORIGINAL_CONTENT -> latestPreviewableOriginalContentEvent
|
||||||
UNREAD_KIND_CONTENT -> latestPreviewableContentEvent
|
UNREAD_KIND_CONTENT -> latestPreviewableContentEvent
|
||||||
// UNREAD_KIND_DEFAULT
|
// UNREAD_KIND_DEFAULT
|
||||||
|
@ -119,6 +119,6 @@ data class RoomSummary constructor(
|
||||||
|
|
||||||
// SC addition
|
// SC addition
|
||||||
interface RoomSummaryPreferenceProvider {
|
interface RoomSummaryPreferenceProvider {
|
||||||
fun getUnreadKind(): Int
|
fun getUnreadKind(isDirect: Boolean): Int
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,6 +117,9 @@ class HomeDrawerFragment @Inject constructor(
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
// SC: settings migration
|
||||||
|
vectorPreferences.scPreferenceUpdate()
|
||||||
|
// SC-Easy mode prompt
|
||||||
PromptSimplifiedModeActivity.showIfRequired(requireContext(), vectorPreferences)
|
PromptSimplifiedModeActivity.showIfRequired(requireContext(), vectorPreferences)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ class ScSdkPreferences @Inject constructor(private val vectorPreferences: Vector
|
||||||
|
|
||||||
constructor(context: Context?) : this(vectorPreferences = context?.let { VectorPreferences(it) })
|
constructor(context: Context?) : this(vectorPreferences = context?.let { VectorPreferences(it) })
|
||||||
|
|
||||||
override fun getUnreadKind(): Int {
|
override fun getUnreadKind(isDirect: Boolean): Int {
|
||||||
return vectorPreferences?.roomUnreadKind() ?: RoomSummary.UNREAD_KIND_DEFAULT
|
return vectorPreferences?.roomUnreadKind(isDirect) ?: RoomSummary.UNREAD_KIND_DEFAULT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@ import im.vector.app.core.di.DefaultSharedPreferences
|
||||||
import im.vector.app.features.disclaimer.SHARED_PREF_KEY
|
import im.vector.app.features.disclaimer.SHARED_PREF_KEY
|
||||||
import im.vector.app.features.homeserver.ServerUrlsRepository
|
import im.vector.app.features.homeserver.ServerUrlsRepository
|
||||||
import im.vector.app.features.themes.ThemeUtils
|
import im.vector.app.features.themes.ThemeUtils
|
||||||
|
import io.realm.annotations.Ignore
|
||||||
import org.matrix.android.sdk.api.extensions.tryOrNull
|
import org.matrix.android.sdk.api.extensions.tryOrNull
|
||||||
import org.matrix.android.sdk.api.session.room.model.RoomSummary
|
import org.matrix.android.sdk.api.session.room.model.RoomSummary
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
@ -182,7 +183,10 @@ class VectorPreferences @Inject constructor(private val context: Context) {
|
||||||
|
|
||||||
// SC additions
|
// SC additions
|
||||||
private const val SETTINGS_SINGLE_OVERVIEW = "SETTINGS_SINGLE_OVERVIEW"
|
private const val SETTINGS_SINGLE_OVERVIEW = "SETTINGS_SINGLE_OVERVIEW"
|
||||||
|
@Deprecated("Please append _DM or _GROUP")
|
||||||
private const val SETTINGS_ROOM_UNREAD_KIND = "SETTINGS_ROOM_UNREAD_KIND"
|
private const val SETTINGS_ROOM_UNREAD_KIND = "SETTINGS_ROOM_UNREAD_KIND"
|
||||||
|
private const val SETTINGS_ROOM_UNREAD_KIND_DM = "SETTINGS_ROOM_UNREAD_KIND_DM"
|
||||||
|
private const val SETTINGS_ROOM_UNREAD_KIND_GROUP = "SETTINGS_ROOM_UNREAD_KIND_GROUP"
|
||||||
private const val SETTINGS_UNIMPORTANT_COUNTER_BADGE = "SETTINGS_UNIMPORTANT_COUNTER_BADGE"
|
private const val SETTINGS_UNIMPORTANT_COUNTER_BADGE = "SETTINGS_UNIMPORTANT_COUNTER_BADGE"
|
||||||
private const val SETTINGS_SIMPLIFIED_MODE = "SETTINGS_SIMPLIFIED_MODE"
|
private const val SETTINGS_SIMPLIFIED_MODE = "SETTINGS_SIMPLIFIED_MODE"
|
||||||
private const val SETTINGS_LABS_ALLOW_MARK_UNREAD = "SETTINGS_LABS_ALLOW_MARK_UNREAD"
|
private const val SETTINGS_LABS_ALLOW_MARK_UNREAD = "SETTINGS_LABS_ALLOW_MARK_UNREAD"
|
||||||
|
@ -878,14 +882,28 @@ class VectorPreferences @Inject constructor(private val context: Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// SC addition
|
// SC addition
|
||||||
fun roomUnreadKind(): Int {
|
private fun roomUnreadKind(key: String): Int {
|
||||||
val kind = defaultPrefs.getString(SETTINGS_ROOM_UNREAD_KIND, RoomSummary.UNREAD_KIND_CONTENT.toString())
|
val default = RoomSummary.UNREAD_KIND_CONTENT
|
||||||
|
val kind = defaultPrefs.getString(key, default.toString())
|
||||||
return try {
|
return try {
|
||||||
Integer.parseInt(kind!!)
|
Integer.parseInt(kind!!)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
RoomSummary.UNREAD_KIND_CONTENT
|
default
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fun roomUnreadKind(isDirect: Boolean): Int {
|
||||||
|
return if (isDirect) {
|
||||||
|
roomUnreadKindDm()
|
||||||
|
} else {
|
||||||
|
roomUnreadKindGroup()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fun roomUnreadKindDm(): Int {
|
||||||
|
return roomUnreadKind(SETTINGS_ROOM_UNREAD_KIND_DM)
|
||||||
|
}
|
||||||
|
fun roomUnreadKindGroup(): Int {
|
||||||
|
return roomUnreadKind(SETTINGS_ROOM_UNREAD_KIND_GROUP)
|
||||||
|
}
|
||||||
|
|
||||||
// SC addition
|
// SC addition
|
||||||
fun shouldShowUnimportantCounterBadge(): Boolean {
|
fun shouldShowUnimportantCounterBadge(): Boolean {
|
||||||
|
@ -911,6 +929,21 @@ class VectorPreferences @Inject constructor(private val context: Context) {
|
||||||
return defaultPrefs.getBoolean(SETTINGS_LABS_ALLOW_MARK_UNREAD, false)
|
return defaultPrefs.getBoolean(SETTINGS_LABS_ALLOW_MARK_UNREAD, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SC addition
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
|
fun scPreferenceUpdate() {
|
||||||
|
if (defaultPrefs.contains(SETTINGS_ROOM_UNREAD_KIND)) {
|
||||||
|
// Migrate to split setting for DMs and groups
|
||||||
|
val unreadKindSetting = roomUnreadKind(SETTINGS_ROOM_UNREAD_KIND).toString()
|
||||||
|
defaultPrefs
|
||||||
|
.edit()
|
||||||
|
.putString(SETTINGS_ROOM_UNREAD_KIND_DM, unreadKindSetting)
|
||||||
|
.putString(SETTINGS_ROOM_UNREAD_KIND_GROUP, unreadKindSetting)
|
||||||
|
.remove(SETTINGS_ROOM_UNREAD_KIND)
|
||||||
|
.apply()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The user enable protecting app access with pin code.
|
* The user enable protecting app access with pin code.
|
||||||
* Currently we use the pin code store to know if the pin is enabled, so this is not used
|
* Currently we use the pin code store to know if the pin is enabled, so this is not used
|
||||||
|
|
|
@ -8,7 +8,8 @@
|
||||||
<string name="settings_single_overview">Vereinte Chat-Übersicht</string>
|
<string name="settings_single_overview">Vereinte Chat-Übersicht</string>
|
||||||
<string name="settings_single_overview_summary">Zeige sowohl Direktnachrichten als auch Gruppenchats in einer gemeinsamen Übersicht</string>
|
<string name="settings_single_overview_summary">Zeige sowohl Direktnachrichten als auch Gruppenchats in einer gemeinsamen Übersicht</string>
|
||||||
|
|
||||||
<string name="settings_room_unread_kind">Chat-Vorschau</string>
|
<string name="settings_room_unread_kind_dm">Direktchat-Vorschau</string>
|
||||||
|
<string name="settings_room_unread_kind_group">Gruppenchat-Vorschau</string>
|
||||||
<string name="settings_room_unread_kind_default">Alle Ereignisse</string>
|
<string name="settings_room_unread_kind_default">Alle Ereignisse</string>
|
||||||
<string name="settings_room_unread_kind_content">Verstecke Teilnehmerveränderungen</string>
|
<string name="settings_room_unread_kind_content">Verstecke Teilnehmerveränderungen</string>
|
||||||
<string name="settings_room_unread_kind_original_content">Verstecke Teilnehmerveränderungen und Reaktionen</string>
|
<string name="settings_room_unread_kind_original_content">Verstecke Teilnehmerveränderungen und Reaktionen</string>
|
||||||
|
|
|
@ -8,7 +8,8 @@
|
||||||
<string name="settings_single_overview">Combined chat overview</string>
|
<string name="settings_single_overview">Combined chat overview</string>
|
||||||
<string name="settings_single_overview_summary">View both direct messages and rooms on one page</string>
|
<string name="settings_single_overview_summary">View both direct messages and rooms on one page</string>
|
||||||
|
|
||||||
<string name="settings_room_unread_kind">Chat preview content</string>
|
<string name="settings_room_unread_kind_dm">Direct chat preview content</string>
|
||||||
|
<string name="settings_room_unread_kind_group">Group chat preview content</string>
|
||||||
<string name="settings_room_unread_kind_default">Show all events</string>
|
<string name="settings_room_unread_kind_default">Show all events</string>
|
||||||
<string name="settings_room_unread_kind_content">Hide member changes</string>
|
<string name="settings_room_unread_kind_content">Hide member changes</string>
|
||||||
<string name="settings_room_unread_kind_original_content">Hide member changes and reactions</string>
|
<string name="settings_room_unread_kind_original_content">Hide member changes and reactions</string>
|
||||||
|
|
|
@ -77,9 +77,17 @@
|
||||||
android:defaultValue="1"
|
android:defaultValue="1"
|
||||||
android:entries="@array/room_unread_kind_entries"
|
android:entries="@array/room_unread_kind_entries"
|
||||||
android:entryValues="@array/room_unread_kind_values"
|
android:entryValues="@array/room_unread_kind_values"
|
||||||
android:key="SETTINGS_ROOM_UNREAD_KIND"
|
android:key="SETTINGS_ROOM_UNREAD_KIND_DM"
|
||||||
android:summary="%s"
|
android:summary="%s"
|
||||||
android:title="@string/settings_room_unread_kind" />
|
android:title="@string/settings_room_unread_kind_dm" />
|
||||||
|
|
||||||
|
<im.vector.app.core.preference.VectorListPreference
|
||||||
|
android:defaultValue="1"
|
||||||
|
android:entries="@array/room_unread_kind_entries"
|
||||||
|
android:entryValues="@array/room_unread_kind_values"
|
||||||
|
android:key="SETTINGS_ROOM_UNREAD_KIND_GROUP"
|
||||||
|
android:summary="%s"
|
||||||
|
android:title="@string/settings_room_unread_kind_group" />
|
||||||
|
|
||||||
<im.vector.app.core.preference.VectorSwitchPreference
|
<im.vector.app.core.preference.VectorSwitchPreference
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
|
|
Loading…
Add table
Reference in a new issue