From 8afe71ce27852365787a7788ddd930964528a446 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 7 Aug 2016 15:20:45 +0200 Subject: [PATCH] add a couple more click listeners to About section --- .../applauncher/activities/AboutActivity.kt | 46 +++++++++++++++++++ .../applauncher/activities/MainActivity.kt | 7 +++ .../applauncher/extensions/preferences.kt | 21 +++++++++ 3 files changed, 74 insertions(+) create mode 100644 app/src/main/kotlin/com/simplemobiletools/applauncher/extensions/preferences.kt diff --git a/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/AboutActivity.kt b/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/AboutActivity.kt index 697e99c..68edf0c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/AboutActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/AboutActivity.kt @@ -1,11 +1,17 @@ package com.simplemobiletools.applauncher.activities +import android.content.ActivityNotFoundException +import android.content.Intent +import android.net.Uri import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.text.Html import android.text.method.LinkMovementMethod +import android.view.View import com.simplemobiletools.applauncher.BuildConfig import com.simplemobiletools.applauncher.R +import com.simplemobiletools.applauncher.extensions.isFirstRun +import com.simplemobiletools.applauncher.extensions.preferences import kotlinx.android.synthetic.main.activity_about.* import java.util.* @@ -17,6 +23,8 @@ class AboutActivity : AppCompatActivity() { setupEmail() setupCopyright() + setupRateUs() + setupSocial() } private fun setupEmail() { @@ -32,4 +40,42 @@ class AboutActivity : AppCompatActivity() { val year = Calendar.getInstance().get(Calendar.YEAR) about_copyright.text = String.format(getString(R.string.copyright), versionName, year) } + + private fun setupRateUs() { + if (preferences().isFirstRun) { + about_rate_us.visibility = View.GONE + } + + about_rate_us.setOnClickListener { + startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(getRateUsUrl()))) + } + } + + private fun setupSocial() { + about_facebook.setOnClickListener { + startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(getFacebookUrl()))) + } + + about_gplus.setOnClickListener { + val link = "https://plus.google.com/communities/104880861558693868382" + startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(link))) + } + } + + private fun getFacebookUrl(): String { + try { + packageManager.getPackageInfo("com.facebook.katana", 0) + return "fb://page/150270895341774" + } catch (ignored: Exception) { + return "https://www.facebook.com/simplemobiletools" + } + } + + private fun getRateUsUrl(): String { + try { + return "market://details?id=" + packageName + } catch (ignored: ActivityNotFoundException) { + return "http://play.google.com/store/apps/details?id=" + packageName + } + } } diff --git a/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/MainActivity.kt index 4b3b1ab..86fb1c2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/MainActivity.kt @@ -6,6 +6,8 @@ import android.support.v7.app.AppCompatActivity import android.view.Menu import android.view.MenuItem import com.simplemobiletools.applauncher.R +import com.simplemobiletools.applauncher.extensions.isFirstRun +import com.simplemobiletools.applauncher.extensions.preferences class MainActivity : AppCompatActivity() { @@ -28,4 +30,9 @@ class MainActivity : AppCompatActivity() { } return super.onOptionsItemSelected(item) } + + override fun onDestroy() { + super.onDestroy() + preferences().isFirstRun(false) + } } diff --git a/app/src/main/kotlin/com/simplemobiletools/applauncher/extensions/preferences.kt b/app/src/main/kotlin/com/simplemobiletools/applauncher/extensions/preferences.kt new file mode 100644 index 0000000..126bb51 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/applauncher/extensions/preferences.kt @@ -0,0 +1,21 @@ +package com.simplemobiletools.applauncher.extensions + +import android.content.Context +import android.content.SharedPreferences + +val PREFS_KEY = "App Launcher" +val IS_FIRST_RUN = "is_first_run" + +private val defaultInit: Any.() -> Unit = {} + +fun Context.preferences(init: SharedPreferences.() -> Unit = defaultInit): SharedPreferences { + val defaultPreferences = getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE) + defaultPreferences.init() + return defaultPreferences +} + +val SharedPreferences.isFirstRun: Boolean get() = getBoolean(IS_FIRST_RUN, true) + +fun SharedPreferences.isFirstRun(isFirstRun: Boolean) { + edit().putBoolean(IS_FIRST_RUN, isFirstRun).apply() +}