summaryrefslogtreecommitdiff
path: root/src/org/fox/ttrss/OnlineActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/fox/ttrss/OnlineActivity.java')
-rw-r--r--src/org/fox/ttrss/OnlineActivity.java97
1 files changed, 80 insertions, 17 deletions
diff --git a/src/org/fox/ttrss/OnlineActivity.java b/src/org/fox/ttrss/OnlineActivity.java
index 13f92a3f..36c46461 100644
--- a/src/org/fox/ttrss/OnlineActivity.java
+++ b/src/org/fox/ttrss/OnlineActivity.java
@@ -48,6 +48,8 @@ import com.google.gson.reflect.TypeToken;
public class OnlineActivity extends CommonActivity {
private final String TAG = this.getClass().getSimpleName();
+
+ private final static int TRIAL_DAYS = 8;
protected SharedPreferences m_prefs;
protected Menu m_menu;
@@ -160,6 +162,7 @@ public class OnlineActivity extends CommonActivity {
if (isOffline) {
switchOfflineSuccess();
} else {
+ checkTrial(false);
/* if (getIntent().getExtras() != null) {
Intent i = getIntent();
@@ -440,17 +443,90 @@ public class OnlineActivity extends CommonActivity {
if (hasPendingOfflineData())
syncOfflineData();
+ finish();
+ }
+
+ public void checkTrial(boolean notify) {
List<PackageInfo> pkgs = getPackageManager()
.getInstalledPackages(0);
+ boolean isTrial = true;
+
for (PackageInfo p : pkgs) {
if ("org.fox.ttrss.key".equals(p.packageName)) {
- toast(R.string.donate_thanks);
+ //toast(R.string.donate_thanks);
+ isTrial = false;
break;
}
}
+
+ if (isTrial) {
+ long firstStart = m_prefs.getLong("date_firstlaunch_trial", -1);
+
+ if (firstStart == -1) {
+ firstStart = System.currentTimeMillis();
+
+ SharedPreferences.Editor editor = m_prefs.edit();
+ editor.putLong("date_firstlaunch_trial", firstStart);
+ editor.commit();
+ }
+
+ if (!notify && System.currentTimeMillis() > firstStart + (TRIAL_DAYS * 24 * 60 * 60 * 1000)) {
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(this)
+ .setTitle(R.string.trial_expired)
+ .setMessage(R.string.trial_expired_message)
+ .setCancelable(false)
+ .setPositiveButton(getString(R.string.trial_purchase),
+ new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ openUnlockUrl();
+ finish();
+
+ }
+ })
+ .setNegativeButton(getString(R.string.cancel),
+ new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ finish();
+
+ }
+ });
- finish();
+ AlertDialog dialog = builder.create();
+ dialog.show();
+
+ } else {
+ long daysLeft = Math.round((firstStart + (TRIAL_DAYS * 24 * 60 * 60 * 1000) - System.currentTimeMillis()) / (24 * 60 * 60 * 1000));
+
+ if (notify) {
+ toast(getString(R.string.trial_mode_prompt, Long.valueOf(daysLeft)));
+ }
+ }
+ }
+ }
+
+ private void openUnlockUrl() {
+ try {
+ Intent intent = new Intent(Intent.ACTION_VIEW,
+ Uri.parse("market://details?id=org.fox.ttrss.key"));
+ startActivity(intent);
+ } catch (ActivityNotFoundException ae) {
+ try {
+ Intent intent = new Intent(Intent.ACTION_VIEW,
+ Uri.parse("https://play.google.com/store/apps/details?id=org.fox.ttrss.key"));
+ startActivity(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ toast(R.string.error_other_error);
+ }
+ }
}
@Override
@@ -464,20 +540,7 @@ public class OnlineActivity extends CommonActivity {
return true;
case R.id.donate:
if (true) {
- try {
- Intent intent = new Intent(Intent.ACTION_VIEW,
- Uri.parse("market://details?id=org.fox.ttrss.key"));
- startActivity(intent);
- } catch (ActivityNotFoundException ae) {
- try {
- Intent intent = new Intent(Intent.ACTION_VIEW,
- Uri.parse("https://play.google.com/store/apps/details?id=org.fox.ttrss.key"));
- startActivity(intent);
- } catch (Exception e) {
- e.printStackTrace();
- toast(R.string.error_other_error);
- }
- }
+ openUnlockUrl();
}
return true;
case R.id.logout:
@@ -1275,7 +1338,7 @@ public class OnlineActivity extends CommonActivity {
GlobalState.getInstance().m_canUseProgress = m_canUseProgress;
Log.d(TAG, "Authenticated! canUseProgress=" + m_canUseProgress);
-
+
if (apiLevel != null) {
setApiLevel(apiLevel.getAsInt());
Log.d(TAG, "Received API level: " + getApiLevel());