All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.mle.android.ui.ActivityUtils.scala Maven / Gradle / Ivy

The newest version!
package com.mle.android.ui

import android.app.Activity
import android.preference.PreferenceManager
import android.content.Intent
import android.widget.Toast
import com.mle.util.Utils
import android.support.v4.app.DialogFragment

/**
 *
 * @author mle
 */
trait ActivityUtils {
  def activity: Activity

  def findActivity = Option(activity)

  def prefs = PreferenceManager.getDefaultSharedPreferences(activity)

  def findPrefs = findActivity.map(PreferenceManager.getDefaultSharedPreferences)

  def tryFindView[A](id: Int): Option[A] =
    for {
      a <- findActivity
      view <- Option(a findViewById id)
    } yield view.asInstanceOf[A]

  def navigate[T <: Activity](destActivity: Class[T], parameters: (String, String)*) {
    val intent = new Intent(activity, destActivity)
    parameters foreach {
      case (key, value) => intent.putExtra(key, value)
    }
    activity startActivity intent
  }

  def navigateForResult[T <: Activity](destActivity: Class[T], requestCode: Int) {
    val intent = new Intent(activity, destActivity)
    activity startActivityForResult(intent, requestCode)
  }

  def onUiThread(f: => Any): Unit = activity.runOnUiThread(Utils.runnable(f))

  def showToast(text: String, duration: Int = Toast.LENGTH_LONG): Unit =
    onUiThread(Toast.makeText(activity, text, duration).show())

  def showToast(stringRes: Int): Unit = findActivity
    .map(_.getResources.getString(stringRes))
    .foreach(str => showToast(str))
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy