From c5b4d6e88d2de4b8db9bba1061f87c8d366f309f Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 1 Jul 2016 14:57:43 +0200 Subject: [PATCH] show a Rate us button to returning users --- .../simplemobiletools/flashlight/Config.java | 26 +++++++++++++++++++ .../flashlight/activities/AboutActivity.java | 21 +++++++++++++++ .../flashlight/activities/Constants.java | 7 +++++ .../flashlight/activities/MainActivity.java | 8 ++++-- app/src/main/res/layout/activity_about.xml | 14 ++++++++-- app/src/main/res/values/strings.xml | 1 + 6 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/com/simplemobiletools/flashlight/Config.java create mode 100644 app/src/main/java/com/simplemobiletools/flashlight/activities/Constants.java diff --git a/app/src/main/java/com/simplemobiletools/flashlight/Config.java b/app/src/main/java/com/simplemobiletools/flashlight/Config.java new file mode 100644 index 0000000..9dd6934 --- /dev/null +++ b/app/src/main/java/com/simplemobiletools/flashlight/Config.java @@ -0,0 +1,26 @@ +package com.simplemobiletools.flashlight; + +import android.content.Context; +import android.content.SharedPreferences; + +import com.simplemobiletools.flashlight.activities.Constants; + +public class Config { + private SharedPreferences mPrefs; + + public static Config newInstance(Context context) { + return new Config(context); + } + + public Config(Context context) { + mPrefs = context.getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE); + } + + public boolean getIsFirstRun() { + return mPrefs.getBoolean(Constants.IS_FIRST_RUN, true); + } + + public void setIsFirstRun(boolean firstRun) { + mPrefs.edit().putBoolean(Constants.IS_FIRST_RUN, firstRun).apply(); + } +} diff --git a/app/src/main/java/com/simplemobiletools/flashlight/activities/AboutActivity.java b/app/src/main/java/com/simplemobiletools/flashlight/activities/AboutActivity.java index 7e651a0..05b94a8 100644 --- a/app/src/main/java/com/simplemobiletools/flashlight/activities/AboutActivity.java +++ b/app/src/main/java/com/simplemobiletools/flashlight/activities/AboutActivity.java @@ -1,5 +1,6 @@ package com.simplemobiletools.flashlight.activities; +import android.content.ActivityNotFoundException; import android.content.Intent; import android.content.res.Resources; import android.net.Uri; @@ -7,9 +8,11 @@ import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.Html; import android.text.method.LinkMovementMethod; +import android.view.View; import android.widget.TextView; import com.simplemobiletools.flashlight.BuildConfig; +import com.simplemobiletools.flashlight.Config; import com.simplemobiletools.flashlight.R; import java.util.Calendar; @@ -22,6 +25,7 @@ public class AboutActivity extends AppCompatActivity { @BindView(R.id.about_copyright) TextView mCopyright; @BindView(R.id.about_version) TextView mVersion; @BindView(R.id.about_email) TextView mEmailTV; + @BindView(R.id.about_rate_us) View mRateUs; private static Resources mRes; @@ -35,6 +39,7 @@ public class AboutActivity extends AppCompatActivity { setupEmail(); setupVersion(); setupCopyright(); + setupRateUs(); } private void setupEmail() { @@ -57,6 +62,22 @@ public class AboutActivity extends AppCompatActivity { mCopyright.setText(copyrightText); } + private void setupRateUs() { + if (Config.newInstance(getApplicationContext()).getIsFirstRun()) { + mRateUs.setVisibility(View.GONE); + } + } + + @OnClick(R.id.about_rate_us) + public void rateUsClicked() { + final Uri uri = Uri.parse("market://details?id=" + getPackageName()); + try { + startActivity(new Intent(Intent.ACTION_VIEW, uri)); + } catch (ActivityNotFoundException ignored) { + startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + getPackageName()))); + } + } + @OnClick(R.id.about_license) public void licenseClicked() { final Intent intent = new Intent(getApplicationContext(), LicenseActivity.class); diff --git a/app/src/main/java/com/simplemobiletools/flashlight/activities/Constants.java b/app/src/main/java/com/simplemobiletools/flashlight/activities/Constants.java new file mode 100644 index 0000000..be1747c --- /dev/null +++ b/app/src/main/java/com/simplemobiletools/flashlight/activities/Constants.java @@ -0,0 +1,7 @@ +package com.simplemobiletools.flashlight.activities; + +public class Constants { + // shared preferences + public static final String PREFS_KEY = "Flashlight"; + public static final String IS_FIRST_RUN = "is_first_run"; +} diff --git a/app/src/main/java/com/simplemobiletools/flashlight/activities/MainActivity.java b/app/src/main/java/com/simplemobiletools/flashlight/activities/MainActivity.java index 9973ca2..a957472 100644 --- a/app/src/main/java/com/simplemobiletools/flashlight/activities/MainActivity.java +++ b/app/src/main/java/com/simplemobiletools/flashlight/activities/MainActivity.java @@ -10,6 +10,7 @@ import android.view.WindowManager; import android.widget.ImageView; import com.simplemobiletools.flashlight.BusProvider; +import com.simplemobiletools.flashlight.Config; import com.simplemobiletools.flashlight.Events; import com.simplemobiletools.flashlight.MyCameraImpl; import com.simplemobiletools.flashlight.R; @@ -90,8 +91,11 @@ public class MainActivity extends AppCompatActivity { @Override protected void onDestroy() { super.onDestroy(); - mCameraImpl.releaseCamera(); - mCameraImpl = null; + Config.newInstance(getApplicationContext()).setIsFirstRun(false); + if (mCameraImpl != null) { + mCameraImpl.releaseCamera(); + mCameraImpl = null; + } } @Subscribe diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index 344a5a0..152f60e 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -29,11 +29,21 @@ android:text="@string/email"/> + + + android:text="Copyright © Simple Mobile Tools 2016"/> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4be9c34..19cba6a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8,6 +8,7 @@ Send your feedback or suggestions at: hello@simplemobiletools.com Third party licences + Rate us in the Play Store Follow us at: v %1$s Copyright © Simple Mobile Tools %1$d