show a Rate us button to returning users

This commit is contained in:
tibbi
2016-07-01 14:57:43 +02:00
parent c9bcd2ec5a
commit c5b4d6e88d
6 changed files with 73 additions and 4 deletions

View File

@ -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();
}
}

View File

@ -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);

View File

@ -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";
}

View File

@ -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