diff options
Diffstat (limited to 'org.fox.ttcomics/src')
-rw-r--r-- | org.fox.ttcomics/src/main/AndroidManifest.xml | 4 | ||||
-rw-r--r-- | org.fox.ttcomics/src/main/java/org/fox/ttcomics/MainActivity.java | 80 | ||||
-rw-r--r-- | org.fox.ttcomics/src/main/res/values/strings.xml | 7 |
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 |