diff options
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.kt | 74 |
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 |