show a Rate us button to returning users

This commit is contained in:
tibbi 2016-07-01 14:43:50 +02:00
parent 7e2dcb76cc
commit f295ea3ca5
8 changed files with 70 additions and 7 deletions

View File

@ -0,0 +1,24 @@
package com.simplemobiletools.calendar;
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();
}
}

View File

@ -4,7 +4,8 @@ public class Constants {
public static final float LOW_ALPHA = .2f; public static final float LOW_ALPHA = .2f;
public static final float HIGH_ALPHA = .8f; public static final float HIGH_ALPHA = .8f;
public static final String PREFS = "prefs"; public static final String PREFS_KEY = "Calendar";
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_BG_COLOR = "widget_bg_color";
public static final String WIDGET_TEXT_COLOR = "widget_text_color"; public static final String WIDGET_TEXT_COLOR = "widget_text_color";
} }

View File

@ -96,7 +96,7 @@ public class MyWidgetProvider extends AppWidgetProvider implements Calendar {
} }
private SharedPreferences initPrefs(Context context) { private SharedPreferences initPrefs(Context context) {
return context.getSharedPreferences(Constants.PREFS, Context.MODE_PRIVATE); return context.getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE);
} }
@Override @Override

View File

@ -1,5 +1,6 @@
package com.simplemobiletools.calendar.activities; package com.simplemobiletools.calendar.activities;
import android.content.ActivityNotFoundException;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
import android.net.Uri; import android.net.Uri;
@ -7,9 +8,11 @@ import android.os.Bundle;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.text.Html; import android.text.Html;
import android.text.method.LinkMovementMethod; import android.text.method.LinkMovementMethod;
import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import com.simplemobiletools.calendar.BuildConfig; import com.simplemobiletools.calendar.BuildConfig;
import com.simplemobiletools.calendar.Config;
import com.simplemobiletools.calendar.R; import com.simplemobiletools.calendar.R;
import java.util.Calendar; import java.util.Calendar;
@ -22,7 +25,7 @@ public class AboutActivity extends AppCompatActivity {
@BindView(R.id.about_copyright) TextView mCopyright; @BindView(R.id.about_copyright) TextView mCopyright;
@BindView(R.id.about_version) TextView mVersion; @BindView(R.id.about_version) TextView mVersion;
@BindView(R.id.about_email) TextView mEmailTV; @BindView(R.id.about_email) TextView mEmailTV;
@BindView(R.id.about_rate_us) View mRateUs;
private static Resources mRes; private static Resources mRes;
@Override @Override
@ -35,6 +38,7 @@ public class AboutActivity extends AppCompatActivity {
setupEmail(); setupEmail();
setupVersion(); setupVersion();
setupCopyright(); setupCopyright();
setupRateUs();
} }
private void setupEmail() { private void setupEmail() {
@ -57,6 +61,22 @@ public class AboutActivity extends AppCompatActivity {
mCopyright.setText(copyrightText); 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) @OnClick(R.id.about_license)
public void licenseClicked() { public void licenseClicked() {
final Intent intent = new Intent(getApplicationContext(), LicenseActivity.class); final Intent intent = new Intent(getApplicationContext(), LicenseActivity.class);

View File

@ -19,6 +19,7 @@ import android.widget.TextView;
import com.simplemobiletools.calendar.Calendar; import com.simplemobiletools.calendar.Calendar;
import com.simplemobiletools.calendar.CalendarImpl; import com.simplemobiletools.calendar.CalendarImpl;
import com.simplemobiletools.calendar.Config;
import com.simplemobiletools.calendar.Constants; import com.simplemobiletools.calendar.Constants;
import com.simplemobiletools.calendar.Day; import com.simplemobiletools.calendar.Day;
import com.simplemobiletools.calendar.Helpers; import com.simplemobiletools.calendar.Helpers;
@ -76,6 +77,12 @@ public class MainActivity extends AppCompatActivity implements Calendar {
mCalendar.updateCalendar(new DateTime()); mCalendar.updateCalendar(new DateTime());
} }
@Override
protected void onDestroy() {
super.onDestroy();
Config.newInstance(getApplicationContext()).setIsFirstRun(false);
}
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu); getMenuInflater().inflate(R.menu.menu, menu);

View File

@ -104,7 +104,7 @@ public class WidgetConfigureActivity extends AppCompatActivity implements Calend
} }
private SharedPreferences initPrefs(Context context) { private SharedPreferences initPrefs(Context context) {
return context.getSharedPreferences(Constants.PREFS, Context.MODE_PRIVATE); return context.getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE);
} }
@OnClick(R.id.config_save) @OnClick(R.id.config_save)
@ -119,7 +119,7 @@ public class WidgetConfigureActivity extends AppCompatActivity implements Calend
} }
private void storeWidgetColors() { private void storeWidgetColors() {
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_BG_COLOR, mBgColor).apply();
prefs.edit().putInt(Constants.WIDGET_TEXT_COLOR, mTextColorWithoutTransparency).apply(); prefs.edit().putInt(Constants.WIDGET_TEXT_COLOR, mTextColorWithoutTransparency).apply();
} }

View File

@ -29,11 +29,21 @@
android:text="@string/email"/> android:text="@string/email"/>
<TextView <TextView
android:id="@+id/about_license" android:id="@+id/about_rate_us"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/about_email" android:layout_below="@+id/about_email"
android:layout_marginTop="@dimen/activity_margin" android:layout_marginTop="@dimen/activity_margin"
android:paddingTop="@dimen/activity_margin"
android:text="@string/rate_us_underlined"
android:textColor="@color/colorPrimary"/>
<TextView
android:id="@+id/about_license"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/about_rate_us"
android:layout_marginTop="@dimen/activity_margin"
android:paddingBottom="@dimen/activity_margin" android:paddingBottom="@dimen/activity_margin"
android:paddingTop="@dimen/activity_margin" android:paddingTop="@dimen/activity_margin"
android:text="@string/third_party_licences_underlined" android:text="@string/third_party_licences_underlined"
@ -78,6 +88,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:text="Copyright © Simple Mobile Tools 2000"/> android:text="Copyright © Simple Mobile Tools 2016"/>
</RelativeLayout> </RelativeLayout>

View File

@ -7,6 +7,7 @@
<string name="email_label">Send your feedback or suggestions at:</string> <string name="email_label">Send your feedback or suggestions at:</string>
<string name="email">hello@simplemobiletools.com</string> <string name="email">hello@simplemobiletools.com</string>
<string name="third_party_licences_underlined"><u>Third party licences</u></string> <string name="third_party_licences_underlined"><u>Third party licences</u></string>
<string name="rate_us_underlined"><u>Rate us in the Play Store</u></string>
<string name="follow_us">Follow us at:</string> <string name="follow_us">Follow us at:</string>
<string name="version">v %1$s</string> <string name="version">v %1$s</string>
<string name="copyright">Copyright © Simple Mobile Tools %1$d</string> <string name="copyright">Copyright © Simple Mobile Tools %1$d</string>