aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/prefs/sections/FeedPrefs.kt
blob: f60470f08318f7e61387f056534ce28ca1f526a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/*
 * Copyright 2020 Allan Wang
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package com.pitchedapps.frost.prefs.sections

import ca.allanwang.kau.kpref.KPref
import ca.allanwang.kau.kpref.KPrefFactory
import com.pitchedapps.frost.BuildConfig
import com.pitchedapps.frost.enums.MainActivityLayout
import com.pitchedapps.frost.prefs.OldPrefs
import com.pitchedapps.frost.prefs.PrefsBase
import javax.inject.Inject

interface FeedPrefs : PrefsBase {
    var webTextScaling: Int

    var feedSort: Int

    var aggressiveRecents: Boolean

    var showComposer: Boolean

    var showSuggestedFriends: Boolean

    var showSuggestedGroups: Boolean

    var showSuggestedPosts: Boolean

    var showFacebookAds: Boolean

    var showStories: Boolean

    var mainActivityLayoutType: Int

    val mainActivityLayout: MainActivityLayout

    var showPostActions: Boolean

    var showPostReactions: Boolean
}

class FeedPrefsImpl @Inject internal constructor(
    factory: KPrefFactory,
    oldPrefs: OldPrefs
) : KPref("${BuildConfig.APPLICATION_ID}.prefs.feed", factory), FeedPrefs {

    override var webTextScaling: Int by kpref("web_text_scaling", oldPrefs.webTextScaling /* 100 */)

    override var feedSort: Int by kpref(
        "feed_sort",
        oldPrefs.feedSort /* FeedSort.DEFAULT.ordinal */
    )

    override var aggressiveRecents: Boolean by kpref(
        "aggressive_recents",
        oldPrefs.aggressiveRecents /* false */
    )

    override var showComposer: Boolean by kpref(
        "status_composer_feed",
        oldPrefs.showComposer /* true */
    )

    override var showSuggestedFriends: Boolean by kpref(
        "suggested_friends_feed",
        oldPrefs.showSuggestedFriends /* true */
    )

    override var showSuggestedGroups: Boolean by kpref(
        "suggested_groups_feed",
        oldPrefs.showSuggestedGroups /* true */
    )

    override var showSuggestedPosts: Boolean by kpref(
        "suggested_groups_posts",
        oldPrefs.showSuggestedPosts /* true */
    )

    override var showFacebookAds: Boolean by kpref(
        "facebook_ads",
        oldPrefs.showFacebookAds /* false */
    )

    override var showStories: Boolean by kpref("show_stories", oldPrefs.showStories /* true */)

    override var mainActivityLayoutType: Int by kpref(
        "main_activity_layout_type",
        oldPrefs.mainActivityLayoutType /* 0 */
    )

    override val mainActivityLayout: MainActivityLayout
        get() = MainActivityLayout(mainActivityLayoutType)

    override var showPostActions: Boolean by kpref("show_post_actions", true)

    override var showPostReactions: Boolean by kpref("show_post_reactions", true)
}