-
Notifications
You must be signed in to change notification settings - Fork 44
Expand file tree
/
Copy pathTabSettings.kt
More file actions
80 lines (76 loc) · 4.53 KB
/
TabSettings.kt
File metadata and controls
80 lines (76 loc) · 4.53 KB
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
package dev.dimension.flare.data.model
import android.content.Context
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.datastore.core.DataStore
import androidx.datastore.core.handlers.ReplaceFileCorruptionHandler
import androidx.datastore.dataStore
import compose.icons.FontAwesomeIcons
import compose.icons.fontawesomeicons.Brands
import compose.icons.fontawesomeicons.Solid
import compose.icons.fontawesomeicons.brands.Bluesky
import compose.icons.fontawesomeicons.brands.Mastodon
import compose.icons.fontawesomeicons.brands.Twitter
import compose.icons.fontawesomeicons.solid.Bell
import compose.icons.fontawesomeicons.solid.BookBookmark
import compose.icons.fontawesomeicons.solid.CircleUser
import compose.icons.fontawesomeicons.solid.Gear
import compose.icons.fontawesomeicons.solid.Globe
import compose.icons.fontawesomeicons.solid.House
import compose.icons.fontawesomeicons.solid.List
import compose.icons.fontawesomeicons.solid.MagnifyingGlass
import compose.icons.fontawesomeicons.solid.Message
import compose.icons.fontawesomeicons.solid.RectangleList
import compose.icons.fontawesomeicons.solid.SquareRss
import compose.icons.fontawesomeicons.solid.Star
import compose.icons.fontawesomeicons.solid.Users
import dev.dimension.flare.R
import dev.dimension.flare.ui.icons.Misskey
internal val TitleType.Localized.resId: Int
get() =
when (key) {
TitleType.Localized.LocalizedKey.Home -> R.string.home_tab_home_title
TitleType.Localized.LocalizedKey.Notifications -> R.string.home_tab_notifications_title
TitleType.Localized.LocalizedKey.Discover -> R.string.home_tab_discover_title
TitleType.Localized.LocalizedKey.Me -> R.string.home_tab_me_title
TitleType.Localized.LocalizedKey.Settings -> R.string.settings_title
TitleType.Localized.LocalizedKey.MastodonLocal -> R.string.mastodon_tab_local_title
TitleType.Localized.LocalizedKey.MastodonPublic -> R.string.mastodon_tab_public_title
TitleType.Localized.LocalizedKey.Featured -> R.string.home_tab_featured_title
TitleType.Localized.LocalizedKey.Bookmark -> R.string.home_tab_bookmarks_title
TitleType.Localized.LocalizedKey.Favourite -> R.string.home_tab_favorite_title
TitleType.Localized.LocalizedKey.List -> R.string.home_tab_list_title
TitleType.Localized.LocalizedKey.Feeds -> R.string.home_tab_feeds_title
TitleType.Localized.LocalizedKey.DirectMessage -> R.string.dm_list_title
TitleType.Localized.LocalizedKey.Rss -> R.string.rss_title
TitleType.Localized.LocalizedKey.Antenna -> R.string.home_tab_antennas_title
TitleType.Localized.LocalizedKey.MixedTimeline -> R.string.home_tab_mixed_timeline_title
}
internal fun IconType.Material.MaterialIcon.toIcon(): ImageVector =
when (this) {
IconType.Material.MaterialIcon.Home -> FontAwesomeIcons.Solid.House
IconType.Material.MaterialIcon.Notification -> FontAwesomeIcons.Solid.Bell
IconType.Material.MaterialIcon.Search -> FontAwesomeIcons.Solid.MagnifyingGlass
IconType.Material.MaterialIcon.Profile -> FontAwesomeIcons.Solid.CircleUser
IconType.Material.MaterialIcon.Settings -> FontAwesomeIcons.Solid.Gear
IconType.Material.MaterialIcon.Local -> FontAwesomeIcons.Solid.Users
IconType.Material.MaterialIcon.World -> FontAwesomeIcons.Solid.Globe
IconType.Material.MaterialIcon.Featured -> FontAwesomeIcons.Solid.RectangleList
IconType.Material.MaterialIcon.Bookmark -> FontAwesomeIcons.Solid.BookBookmark
IconType.Material.MaterialIcon.Heart -> FontAwesomeIcons.Solid.Star
IconType.Material.MaterialIcon.Twitter -> FontAwesomeIcons.Brands.Twitter
IconType.Material.MaterialIcon.Mastodon -> FontAwesomeIcons.Brands.Mastodon
IconType.Material.MaterialIcon.Misskey -> FontAwesomeIcons.Brands.Misskey
IconType.Material.MaterialIcon.Bluesky -> FontAwesomeIcons.Brands.Bluesky
IconType.Material.MaterialIcon.List -> FontAwesomeIcons.Solid.List
IconType.Material.MaterialIcon.Feeds -> FontAwesomeIcons.Solid.SquareRss
IconType.Material.MaterialIcon.Messages -> FontAwesomeIcons.Solid.Message
IconType.Material.MaterialIcon.Rss -> FontAwesomeIcons.Solid.SquareRss
}
internal val Context.tabSettings: DataStore<TabSettings> by dataStore(
fileName = "tab_settings.pb",
serializer = TabSettingsSerializer,
corruptionHandler =
ReplaceFileCorruptionHandler {
TabSettingsSerializer.defaultValue
},
)