summaryrefslogtreecommitdiff
path: root/org.fox.ttcomics/src
diff options
context:
space:
mode:
Diffstat (limited to 'org.fox.ttcomics/src')
-rw-r--r--org.fox.ttcomics/src/main/AndroidManifest.xml4
-rw-r--r--org.fox.ttcomics/src/main/java/org/fox/ttcomics/MainActivity.java80
-rw-r--r--org.fox.ttcomics/src/main/res/values/strings.xml7
3 files changed, 86 insertions, 5 deletions
diff --git a/org.fox.ttcomics/src/main/AndroidManifest.xml b/org.fox.ttcomics/src/main/AndroidManifest.xml
index bb68e84..4bcf0f5 100644
--- a/org.fox.ttcomics/src/main/AndroidManifest.xml
+++ b/org.fox.ttcomics/src/main/AndroidManifest.xml
@@ -1,7 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.fox.ttcomics"
- android:versionCode="47"
- android:versionName="1.13" >
+ android:versionCode="48"
+ android:versionName="1.14" >
<uses-sdk
android:minSdkVersion="8"
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics/MainActivity.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics/MainActivity.java
index 0e589fa..88ef55a 100644
--- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics/MainActivity.java
+++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics/MainActivity.java
@@ -8,9 +8,12 @@ import java.lang.reflect.Method;
import android.animation.LayoutTransition;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
+import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.content.pm.PackageManager;
+import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.SwipeRefreshLayout;
@@ -25,12 +28,13 @@ import android.widget.ShareActionProvider;
public class MainActivity extends CommonActivity {
private final String TAG = this.getClass().getSimpleName();
+ private final static int TRIAL_DAYS = 7;
private TabListener m_tabListener;
private int m_selectedTab;
private String m_baseDirectory = "";
private String m_fileName = "";
-
+
@SuppressLint("NewApi")
private class TabListener implements ActionBar.TabListener {
@@ -81,6 +85,8 @@ public class MainActivity extends CommonActivity {
setSmallScreen(findViewById(R.id.tablet_layout_hack) == null);
if (savedInstanceState == null) {
+ checkTrial();
+
m_selectedTab = getIntent().getIntExtra("selectedTab", 0);
Log.d(TAG, "selTab=" + m_selectedTab);
@@ -233,7 +239,77 @@ public class MainActivity extends CommonActivity {
}
}
-
+ public void checkTrial() {
+ boolean isTrial = getPackageManager().checkSignatures(
+ getPackageName(), "org.fox.ttcomics.donation") != PackageManager.SIGNATURE_MATCH;
+
+ 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 (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 DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ openUnlockUrl();
+ finish();
+
+ }
+ })
+ .setNegativeButton(getString(R.string.cancel),
+ new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ 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));
+
+ 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.ttcomics.donation"));
+ 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.ttcomics.donation"));
+ startActivity(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ toast(R.string.error_other_error);
+ }
+ }
+ }
+
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == REQUEST_VIEWCOMIC) {
diff --git a/org.fox.ttcomics/src/main/res/values/strings.xml b/org.fox.ttcomics/src/main/res/values/strings.xml
index 7ef7de2..ca0ca6d 100644
--- a/org.fox.ttcomics/src/main/res/values/strings.xml
+++ b/org.fox.ttcomics/src/main/res/values/strings.xml
@@ -63,5 +63,10 @@
<string name="sync_running_in_test_mode">Sync running in test mode.</string>
<string name="reset_remove_synced_progress">Would you like to remove synced progress too?</string>
<string name="error_cant_open_file">Can\'t open file: %1$s</string>
- <string name="prefs_prevent_screen_sleep">Keep screen awake</string>
+ <string name="prefs_prevent_screen_sleep">Keep screen awake</string>
+ <string name="trial_mode_prompt">Trial mode, %1$d day(s) left.</string>
+ <string name="trial_purchase">Unlock full version</string>
+ <string name="trial_expired">Trial expired</string>
+ <string name="trial_expired_message">To continue using Pow! Comics Reader please unlock the full version by purchasing the key.</string>
+ <string name="error_other_error">Error: unknown error (see log)</string>
</resources> \ No newline at end of file