From ff7c2b1708903d00df0fe83ee7c3024ff00cf428 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 1 Jul 2016 15:17:52 +0200 Subject: [PATCH] show a Rate us button to returning users --- .../com/simplemobiletools/notes/Config.java | 24 +++++++++++++++++++ .../simplemobiletools/notes/Constants.java | 5 +++- .../notes/MyWidgetProvider.java | 2 +- .../notes/activities/AboutActivity.java | 21 ++++++++++++++++ .../notes/activities/MainActivity.java | 9 ++++++- .../activities/WidgetConfigureActivity.java | 4 ++-- app/src/main/res/layout/activity_about.xml | 14 +++++++++-- app/src/main/res/values/strings.xml | 1 + 8 files changed, 73 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/com/simplemobiletools/notes/Config.java diff --git a/app/src/main/java/com/simplemobiletools/notes/Config.java b/app/src/main/java/com/simplemobiletools/notes/Config.java new file mode 100644 index 00000000..670d7862 --- /dev/null +++ b/app/src/main/java/com/simplemobiletools/notes/Config.java @@ -0,0 +1,24 @@ +package com.simplemobiletools.notes; + +import android.content.Context; +import android.content.SharedPreferences; + +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/notes/Constants.java b/app/src/main/java/com/simplemobiletools/notes/Constants.java index 1b7261f0..dd95c340 100644 --- a/app/src/main/java/com/simplemobiletools/notes/Constants.java +++ b/app/src/main/java/com/simplemobiletools/notes/Constants.java @@ -1,8 +1,11 @@ package com.simplemobiletools.notes; public class Constants { - public static final String PREFS = "prefs"; public static final String TEXT = "text"; + + // shared preferences + public static final String PREFS_KEY = "Notes"; + public static final String IS_FIRST_RUN = "is_first_run"; public static final String WIDGET_BG_COLOR = "widget_bg_color"; public static final String WIDGET_TEXT_COLOR = "widget_text_color"; } diff --git a/app/src/main/java/com/simplemobiletools/notes/MyWidgetProvider.java b/app/src/main/java/com/simplemobiletools/notes/MyWidgetProvider.java index a9603d3c..29a2d1e1 100644 --- a/app/src/main/java/com/simplemobiletools/notes/MyWidgetProvider.java +++ b/app/src/main/java/com/simplemobiletools/notes/MyWidgetProvider.java @@ -31,7 +31,7 @@ public class MyWidgetProvider extends AppWidgetProvider { } private void initVariables(Context context) { - mPrefs = context.getSharedPreferences(Constants.PREFS, Context.MODE_PRIVATE); + mPrefs = context.getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE); mRemoteViews = new RemoteViews(context.getPackageName(), R.layout.widget); setupAppOpenIntent(R.id.notes_holder, context); } diff --git a/app/src/main/java/com/simplemobiletools/notes/activities/AboutActivity.java b/app/src/main/java/com/simplemobiletools/notes/activities/AboutActivity.java index 23d9d3e2..b25875dd 100644 --- a/app/src/main/java/com/simplemobiletools/notes/activities/AboutActivity.java +++ b/app/src/main/java/com/simplemobiletools/notes/activities/AboutActivity.java @@ -1,5 +1,6 @@ package com.simplemobiletools.notes.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.notes.BuildConfig; +import com.simplemobiletools.notes.Config; import com.simplemobiletools.notes.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/notes/activities/MainActivity.java b/app/src/main/java/com/simplemobiletools/notes/activities/MainActivity.java index 3727e954..22436114 100644 --- a/app/src/main/java/com/simplemobiletools/notes/activities/MainActivity.java +++ b/app/src/main/java/com/simplemobiletools/notes/activities/MainActivity.java @@ -14,6 +14,7 @@ import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.Toast; +import com.simplemobiletools.notes.Config; import com.simplemobiletools.notes.Constants; import com.simplemobiletools.notes.MyWidgetProvider; import com.simplemobiletools.notes.R; @@ -33,11 +34,17 @@ public class MainActivity extends AppCompatActivity { setContentView(R.layout.activity_main); ButterKnife.bind(this); - mPrefs = getSharedPreferences(Constants.PREFS, Context.MODE_PRIVATE); + mPrefs = getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE); final String text = mPrefs.getString(Constants.TEXT, ""); mNotesView.setText(text); } + @Override + protected void onDestroy() { + super.onDestroy(); + Config.newInstance(getApplicationContext()).setIsFirstRun(false); + } + @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu, menu); diff --git a/app/src/main/java/com/simplemobiletools/notes/activities/WidgetConfigureActivity.java b/app/src/main/java/com/simplemobiletools/notes/activities/WidgetConfigureActivity.java index bd0f08d3..e0bae5ae 100644 --- a/app/src/main/java/com/simplemobiletools/notes/activities/WidgetConfigureActivity.java +++ b/app/src/main/java/com/simplemobiletools/notes/activities/WidgetConfigureActivity.java @@ -53,7 +53,7 @@ public class WidgetConfigureActivity extends AppCompatActivity { } private void initVariables() { - final SharedPreferences prefs = getSharedPreferences(Constants.PREFS, Context.MODE_PRIVATE); + final SharedPreferences prefs = getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE); mBgColor = prefs.getInt(Constants.WIDGET_BG_COLOR, 1); if (mBgColor == 1) { mBgColor = Color.BLACK; @@ -88,7 +88,7 @@ public class WidgetConfigureActivity extends AppCompatActivity { } private void storeWidgetBackground() { - final SharedPreferences prefs = getSharedPreferences(Constants.PREFS, Context.MODE_PRIVATE); + final SharedPreferences prefs = getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE); prefs.edit().putInt(Constants.WIDGET_BG_COLOR, mBgColor).apply(); prefs.edit().putInt(Constants.WIDGET_TEXT_COLOR, mTextColor).apply(); } diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index 344a5a0d..152f60e2 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 7d0987cf..59ebc24c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -14,6 +14,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