add more options to default reply visibility setting (#4568)

This adds `direct` and `match_default_post_visibility` as options to the
default reply visibility setting. `match_default_post_visibility` will
be the default for new accounts.

closes https://github.com/tuskyapp/Tusky/issues/4555

<img
src="https://github.com/user-attachments/assets/b256ff32-cd49-4274-903b-96da96451e0e"
width="320"/>
This commit is contained in:
Konrad Pozniak 2024-08-02 17:15:10 +02:00 committed by GitHub
commit 892801b83a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 135 additions and 35 deletions

View file

@ -846,7 +846,7 @@ public abstract class AppDatabase extends RoomDatabase {
public static final Migration MIGRATION_60_62 = new Migration(60, 62) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
database.execSQL("ALTER TABLE `AccountEntity` ADD COLUMN `defaultReplyPrivacy` INTEGER NOT NULL DEFAULT 2");
database.execSQL("ALTER TABLE `AccountEntity` ADD COLUMN `defaultReplyPrivacy` INTEGER NOT NULL DEFAULT 0");
}
};
}

View file

@ -29,6 +29,7 @@ import com.keylesspalace.tusky.entity.HashTag
import com.keylesspalace.tusky.entity.NewPoll
import com.keylesspalace.tusky.entity.Poll
import com.keylesspalace.tusky.entity.Status
import com.keylesspalace.tusky.settings.DefaultReplyVisibility
import com.squareup.moshi.Moshi
import com.squareup.moshi.adapter
import java.net.URLDecoder
@ -56,12 +57,22 @@ class Converters @Inject constructor(
@TypeConverter
fun visibilityToInt(visibility: Status.Visibility?): Int {
return visibility?.num ?: Status.Visibility.UNKNOWN.num
return visibility?.int ?: Status.Visibility.UNKNOWN.int
}
@TypeConverter
fun intToVisibility(visibility: Int): Status.Visibility {
return Status.Visibility.byNum(visibility)
return Status.Visibility.fromInt(visibility)
}
@TypeConverter
fun defaultReplyVisibilityToInt(visibility: DefaultReplyVisibility?): Int {
return visibility?.int ?: DefaultReplyVisibility.MATCH_DEFAULT_POST_VISIBILITY.int
}
@TypeConverter
fun intToDefaultReplyVisibility(visibility: Int): DefaultReplyVisibility {
return DefaultReplyVisibility.fromInt(visibility)
}
@TypeConverter

View file

@ -25,6 +25,7 @@ import com.keylesspalace.tusky.db.Converters
import com.keylesspalace.tusky.defaultTabs
import com.keylesspalace.tusky.entity.Emoji
import com.keylesspalace.tusky.entity.Status
import com.keylesspalace.tusky.settings.DefaultReplyVisibility
@Entity(
indices = [
@ -63,7 +64,7 @@ data class AccountEntity(
var notificationVibration: Boolean = true,
var notificationLight: Boolean = true,
var defaultPostPrivacy: Status.Visibility = Status.Visibility.PUBLIC,
var defaultReplyPrivacy: Status.Visibility = Status.Visibility.UNLISTED,
var defaultReplyPrivacy: DefaultReplyVisibility = DefaultReplyVisibility.MATCH_DEFAULT_POST_VISIBILITY,
var defaultMediaSensitivity: Boolean = false,
var defaultPostLanguage: String = "",
var alwaysShowSensitiveMedia: Boolean = false,