aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/facebook/UrlData.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/facebook/UrlData.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/facebook/UrlData.kt65
1 files changed, 65 insertions, 0 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/facebook/UrlData.kt b/app/src/main/kotlin/com/pitchedapps/frost/facebook/UrlData.kt
new file mode 100644
index 00000000..80972050
--- /dev/null
+++ b/app/src/main/kotlin/com/pitchedapps/frost/facebook/UrlData.kt
@@ -0,0 +1,65 @@
+package com.pitchedapps.frost.facebook
+
+import android.content.Context
+import android.support.annotation.StringRes
+import com.mikepenz.community_material_typeface_library.CommunityMaterial
+import com.mikepenz.google_material_typeface_library.GoogleMaterial
+import com.mikepenz.iconics.typeface.IIcon
+import com.mikepenz.material_design_iconic_typeface_library.MaterialDesignIconic
+import com.pitchedapps.frost.R
+import com.pitchedapps.frost.utils.RealmFiles
+import com.pitchedapps.frost.utils.realm
+import io.realm.Realm
+import io.realm.RealmList
+import io.realm.RealmObject
+import io.realm.annotations.PrimaryKey
+
+/**
+ * Created by Allan Wang on 2017-05-29.
+ */
+enum class FbUrl(@StringRes val titleId: Int, val icon: IIcon, val url: String) {
+ FEED(R.string.feed, CommunityMaterial.Icon.cmd_newspaper, "https://touch.facebook.com/"),
+ PROFILE(R.string.profile, CommunityMaterial.Icon.cmd_account, "https://touch.facebook.com/me/"),
+ EVENTS(R.string.events, GoogleMaterial.Icon.gmd_event, "https://touch.facebook.com/events/upcoming"),
+ FRIENDS(R.string.friends, GoogleMaterial.Icon.gmd_people, "https://touch.facebook.com/friends/center/requests/"),
+ MESSAGES(R.string.messages, MaterialDesignIconic.Icon.gmi_comments, "https://touch.facebook.com/messages"),
+ NOTIFICATIONS(R.string.notifications, MaterialDesignIconic.Icon.gmi_globe, "https://touch.facebook.com/notifications");
+
+ fun tabInfo(c: Context) = FbTab(c.getString(titleId), icon, url)
+}
+
+//BOOKMARKS("https://touch.facebook.com/bookmarks"),
+//SEARCH("https://touch.facebook.com/search"),
+
+class FbTab(var title: String, var icon: IIcon, var url: String) {
+ constructor(realm: FbTabRealm) : this(realm.title, when (realm.iconCategory) {
+ 0 -> GoogleMaterial.Icon.valueOf(realm.iconString)
+ 1 -> CommunityMaterial.Icon.valueOf(realm.iconString)
+ 2 -> MaterialDesignIconic.Icon.valueOf(realm.iconString)
+ else -> GoogleMaterial.Icon.gmd_error
+ }, realm.url)
+}
+
+open class FbTabRealm(var title: String, var iconCategory: Int, var iconString: String, @PrimaryKey var url: String) : RealmObject() {
+ constructor(tab: FbTab) : this(tab.title, when (tab.icon.typeface) {
+ is GoogleMaterial -> 0
+ is CommunityMaterial -> 1
+ is MaterialDesignIconic -> 2
+ else -> -1
+ }, tab.icon.toString(), tab.url)
+
+ constructor() : this("", -1, "", "")
+}
+
+fun List<FbTab>.save() {
+ val list = RealmList(*this.map { FbTabRealm(it) }.toTypedArray())
+ realm(RealmFiles.TABS, Realm.Transaction { it.copyToRealmOrUpdate(list) })
+}
+
+fun loadFbTab(c: Context): List<FbTab> {
+ val realmList = mutableListOf<FbTabRealm>()
+ realm(RealmFiles.TABS, Realm.Transaction { it.copyFromRealm(realmList) })
+ if (realmList.isNotEmpty()) return realmList.map { FbTab(it) }
+ return FbUrl.values().map { it.tabInfo(c) }
+}
+