Skip to content

Commit ff7c2b1

Browse files
committed
show a Rate us button to returning users
1 parent 37faea3 commit ff7c2b1

File tree

8 files changed

+73
-7
lines changed

8 files changed

+73
-7
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.simplemobiletools.notes;
2+
3+
import android.content.Context;
4+
import android.content.SharedPreferences;
5+
6+
public class Config {
7+
private SharedPreferences mPrefs;
8+
9+
public static Config newInstance(Context context) {
10+
return new Config(context);
11+
}
12+
13+
public Config(Context context) {
14+
mPrefs = context.getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE);
15+
}
16+
17+
public boolean getIsFirstRun() {
18+
return mPrefs.getBoolean(Constants.IS_FIRST_RUN, true);
19+
}
20+
21+
public void setIsFirstRun(boolean firstRun) {
22+
mPrefs.edit().putBoolean(Constants.IS_FIRST_RUN, firstRun).apply();
23+
}
24+
}
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.simplemobiletools.notes;
22

33
public class Constants {
4-
public static final String PREFS = "prefs";
54
public static final String TEXT = "text";
5+
6+
// shared preferences
7+
public static final String PREFS_KEY = "Notes";
8+
public static final String IS_FIRST_RUN = "is_first_run";
69
public static final String WIDGET_BG_COLOR = "widget_bg_color";
710
public static final String WIDGET_TEXT_COLOR = "widget_text_color";
811
}

app/src/main/java/com/simplemobiletools/notes/MyWidgetProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] a
3131
}
3232

3333
private void initVariables(Context context) {
34-
mPrefs = context.getSharedPreferences(Constants.PREFS, Context.MODE_PRIVATE);
34+
mPrefs = context.getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE);
3535
mRemoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
3636
setupAppOpenIntent(R.id.notes_holder, context);
3737
}

app/src/main/java/com/simplemobiletools/notes/activities/AboutActivity.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
package com.simplemobiletools.notes.activities;
22

3+
import android.content.ActivityNotFoundException;
34
import android.content.Intent;
45
import android.content.res.Resources;
56
import android.net.Uri;
67
import android.os.Bundle;
78
import android.support.v7.app.AppCompatActivity;
89
import android.text.Html;
910
import android.text.method.LinkMovementMethod;
11+
import android.view.View;
1012
import android.widget.TextView;
1113

1214
import com.simplemobiletools.notes.BuildConfig;
15+
import com.simplemobiletools.notes.Config;
1316
import com.simplemobiletools.notes.R;
1417

1518
import java.util.Calendar;
@@ -22,6 +25,7 @@ public class AboutActivity extends AppCompatActivity {
2225
@BindView(R.id.about_copyright) TextView mCopyright;
2326
@BindView(R.id.about_version) TextView mVersion;
2427
@BindView(R.id.about_email) TextView mEmailTV;
28+
@BindView(R.id.about_rate_us) View mRateUs;
2529

2630
private static Resources mRes;
2731

@@ -35,6 +39,7 @@ protected void onCreate(Bundle savedInstanceState) {
3539
setupEmail();
3640
setupVersion();
3741
setupCopyright();
42+
setupRateUs();
3843
}
3944

4045
private void setupEmail() {
@@ -57,6 +62,22 @@ private void setupCopyright() {
5762
mCopyright.setText(copyrightText);
5863
}
5964

65+
private void setupRateUs() {
66+
if (Config.newInstance(getApplicationContext()).getIsFirstRun()) {
67+
mRateUs.setVisibility(View.GONE);
68+
}
69+
}
70+
71+
@OnClick(R.id.about_rate_us)
72+
public void rateUsClicked() {
73+
final Uri uri = Uri.parse("market://details?id=" + getPackageName());
74+
try {
75+
startActivity(new Intent(Intent.ACTION_VIEW, uri));
76+
} catch (ActivityNotFoundException ignored) {
77+
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + getPackageName())));
78+
}
79+
}
80+
6081
@OnClick(R.id.about_license)
6182
public void licenseClicked() {
6283
final Intent intent = new Intent(getApplicationContext(), LicenseActivity.class);

app/src/main/java/com/simplemobiletools/notes/activities/MainActivity.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import android.widget.EditText;
1515
import android.widget.Toast;
1616

17+
import com.simplemobiletools.notes.Config;
1718
import com.simplemobiletools.notes.Constants;
1819
import com.simplemobiletools.notes.MyWidgetProvider;
1920
import com.simplemobiletools.notes.R;
@@ -33,11 +34,17 @@ protected void onCreate(Bundle savedInstanceState) {
3334
setContentView(R.layout.activity_main);
3435
ButterKnife.bind(this);
3536

36-
mPrefs = getSharedPreferences(Constants.PREFS, Context.MODE_PRIVATE);
37+
mPrefs = getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE);
3738
final String text = mPrefs.getString(Constants.TEXT, "");
3839
mNotesView.setText(text);
3940
}
4041

42+
@Override
43+
protected void onDestroy() {
44+
super.onDestroy();
45+
Config.newInstance(getApplicationContext()).setIsFirstRun(false);
46+
}
47+
4148
@Override
4249
public boolean onCreateOptionsMenu(Menu menu) {
4350
getMenuInflater().inflate(R.menu.menu, menu);

app/src/main/java/com/simplemobiletools/notes/activities/WidgetConfigureActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public void onCreate(Bundle savedInstanceState) {
5353
}
5454

5555
private void initVariables() {
56-
final SharedPreferences prefs = getSharedPreferences(Constants.PREFS, Context.MODE_PRIVATE);
56+
final SharedPreferences prefs = getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE);
5757
mBgColor = prefs.getInt(Constants.WIDGET_BG_COLOR, 1);
5858
if (mBgColor == 1) {
5959
mBgColor = Color.BLACK;
@@ -88,7 +88,7 @@ public void saveConfig() {
8888
}
8989

9090
private void storeWidgetBackground() {
91-
final SharedPreferences prefs = getSharedPreferences(Constants.PREFS, Context.MODE_PRIVATE);
91+
final SharedPreferences prefs = getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE);
9292
prefs.edit().putInt(Constants.WIDGET_BG_COLOR, mBgColor).apply();
9393
prefs.edit().putInt(Constants.WIDGET_TEXT_COLOR, mTextColor).apply();
9494
}

app/src/main/res/layout/activity_about.xml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,21 @@
2929
android:text="@string/email"/>
3030

3131
<TextView
32-
android:id="@+id/about_license"
32+
android:id="@+id/about_rate_us"
3333
android:layout_width="match_parent"
3434
android:layout_height="wrap_content"
3535
android:layout_below="@+id/about_email"
3636
android:layout_marginTop="@dimen/activity_margin"
37+
android:paddingTop="@dimen/activity_margin"
38+
android:text="@string/rate_us_underlined"
39+
android:textColor="@color/colorPrimary"/>
40+
41+
<TextView
42+
android:id="@+id/about_license"
43+
android:layout_width="match_parent"
44+
android:layout_height="wrap_content"
45+
android:layout_below="@+id/about_rate_us"
46+
android:layout_marginTop="@dimen/activity_margin"
3747
android:paddingBottom="@dimen/activity_margin"
3848
android:paddingTop="@dimen/activity_margin"
3949
android:text="@string/third_party_licences_underlined"
@@ -78,6 +88,6 @@
7888
android:layout_height="wrap_content"
7989
android:layout_alignParentBottom="true"
8090
android:gravity="center_horizontal"
81-
android:text="Copyright © Simple Mobile Tools 2000"/>
91+
android:text="Copyright © Simple Mobile Tools 2016"/>
8292

8393
</RelativeLayout>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
<string name="email_label">Send your feedback or suggestions at:</string>
1515
<string name="email">[email protected]</string>
1616
<string name="third_party_licences_underlined"><u>Third party licences</u></string>
17+
<string name="rate_us_underlined"><u>Rate us in the Play Store</u></string>
1718
<string name="follow_us">Follow us at:</string>
1819
<string name="version">v %1$s</string>
1920
<string name="copyright">Copyright © Simple Mobile Tools %1$d</string>

0 commit comments

Comments
 (0)