aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-06-15 20:41:55 -0700
committerAllan Wang <me@allanwang.ca>2017-06-15 20:41:55 -0700
commitf84a05f8aeb73ce63f77b7cc779845c31427b2b2 (patch)
treeb11309b4649c5e7e1f4666e9a07e60da56b1c307 /app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt
parentc8f76b5aa406f84f49789a50871c68a1a95a232d (diff)
downloadfrost-f84a05f8aeb73ce63f77b7cc779845c31427b2b2.tar.gz
frost-f84a05f8aeb73ce63f77b7cc779845c31427b2b2.tar.bz2
frost-f84a05f8aeb73ce63f77b7cc779845c31427b2b2.zip
Reorganize observables and clean up
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt74
1 files changed, 63 insertions, 11 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt
index c754f6ff..8dfceaad 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt
@@ -1,18 +1,70 @@
package com.pitchedapps.frost.utils
+import android.app.Activity
import android.content.Context
-import android.net.ConnectivityManager
+import android.content.Intent
+import android.graphics.Color
+import android.support.v4.app.ActivityOptionsCompat
+import android.support.v4.content.ContextCompat
+import ca.allanwang.kau.utils.*
+import com.afollestad.materialdialogs.MaterialDialog
+import com.pitchedapps.frost.LoginActivity
+import com.pitchedapps.frost.R
+import com.pitchedapps.frost.WebOverlayActivity
+import com.pitchedapps.frost.dbflow.CookieModel
+import com.pitchedapps.frost.facebook.FbTab
/**
- * Created by Allan Wang on 2017-05-28.
+ * Created by Allan Wang on 2017-06-03.
*/
-object Utils {
- fun dpToPx(dp: Int) = (dp * android.content.res.Resources.getSystem().displayMetrics.density).toInt()
- fun pxToDp(px:Int) = (px / android.content.res.Resources.getSystem().displayMetrics.density).toInt()
-
- fun isNetworkAvailable(context: Context): Boolean {
- val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
- val activeNetworkInfo = connectivityManager.activeNetworkInfo
- return activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting
- }
+internal const val EXTRA_COOKIES = "extra_cookies"
+internal const val ARG_URL = "arg_url"
+
+fun Context.launchNewTask(clazz: Class<out Activity>, cookieList: ArrayList<CookieModel> = arrayListOf(), clearStack: Boolean = clazz != LoginActivity::class.java) {
+ startActivity(clazz, clearStack, {
+ putParcelableArrayListExtra(EXTRA_COOKIES, cookieList)
+ })
+}
+
+fun Activity.cookies(): ArrayList<CookieModel> {
+ return intent?.extras?.getParcelableArrayList<CookieModel>(EXTRA_COOKIES) ?: arrayListOf()
+}
+
+fun Context.launchWebOverlay(url: String) {
+ val intent = Intent(this, WebOverlayActivity::class.java)
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_NEW_TASK)
+ intent.putExtra(ARG_URL, url)
+ val bundle = ActivityOptionsCompat.makeCustomAnimation(this, R.anim.slide_in_right, R.anim.slide_out_right).toBundle()
+ ContextCompat.startActivity(this, intent, bundle)
+}
+
+fun WebOverlayActivity.url(): String {
+ return intent.extras?.getString(ARG_URL) ?: FbTab.FEED.url
+}
+
+
+fun Activity.materialDialogThemed(action: MaterialDialog.Builder.() -> Unit): MaterialDialog {
+ val builder = MaterialDialog.Builder(this).theme()
+ builder.action()
+ return builder.show()
+}
+
+fun MaterialDialog.Builder.theme(): MaterialDialog.Builder {
+ val dimmerTextColor = Prefs.textColor.adjustAlpha(0.8f)
+ titleColor(Prefs.textColor)
+ contentColor(dimmerTextColor)
+ widgetColor(dimmerTextColor)
+ backgroundColor(Prefs.bgColor.lighten(0.1f).withMinAlpha(200))
+ positiveColor(Prefs.textColor)
+ negativeColor(Prefs.textColor)
+ neutralColor(Prefs.textColor)
+ return this
+}
+
+fun Activity.setFrostTheme() {
+ val isTransparent = Color.alpha(Prefs.bgColor) != 255
+ if (Prefs.bgColor.isColorDark())
+ setTheme(if (isTransparent) R.style.FrostTheme_Transparent else R.style.FrostTheme)
+ else
+ setTheme(if (isTransparent) R.style.FrostTheme_Light_Transparent else R.style.FrostTheme_Light)
} \ No newline at end of file