Powerpack by default, expiration in september, fixed alert dialog so it wouldn't crash

pull/14/head
Tim Su 14 years ago
parent 8ecde7feb4
commit 375bc26423

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.timsu.astrid"
android:versionName="3.0.5" android:versionCode="144"
android:versionName="3.0.6" android:versionCode="145"
android:installLocation="auto">
<!-- ================================================== Used Permissions = -->

@ -41,7 +41,7 @@ public class DialogUtilities {
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(android.R.string.ok, okListener)
.setNegativeButton(android.R.string.cancel, cancelListener)
.show();
.show().setOwnerActivity(activity);
}
});
}
@ -62,7 +62,7 @@ public class DialogUtilities {
.setMessage(text)
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(android.R.string.ok, okListener)
.show();
.show().setOwnerActivity(activity);
}
});
}
@ -83,7 +83,7 @@ public class DialogUtilities {
.setMessage(text)
.setIcon(icon)
.setPositiveButton(android.R.string.ok, okListener)
.show();
.show().setOwnerActivity(activity);
}
});
}
@ -108,7 +108,7 @@ public class DialogUtilities {
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(android.R.string.ok, okListener)
.setNegativeButton(android.R.string.cancel, cancelListener)
.show();
.show().setOwnerActivity(activity);
}
});
}
@ -132,7 +132,7 @@ public class DialogUtilities {
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(android.R.string.ok, okListener)
.setNegativeButton(android.R.string.cancel, cancelListener)
.show();
.show().setOwnerActivity(activity);
}
});
}
@ -149,6 +149,7 @@ public class DialogUtilities {
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dialog.setMessage(text);
dialog.show();
dialog.setOwnerActivity((Activity)context);
return dialog;
}

@ -60,7 +60,7 @@ public class BackupPreferences extends TodorooPreferences {
}
});
if(!PluginServices.getAddOnService().isPowerPack()) {
if(!PluginServices.getAddOnService().hasPowerPack()) {
Preference restorePreference = new Preference(this);
restorePreference.setTitle(R.string.backup_BPr_how_to_restore);
restorePreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

@ -31,7 +31,7 @@ public class TimerActionExposer extends BroadcastReceiver {
if(taskId == -1)
return;
if(!PluginServices.getAddOnService().isPowerPack())
if(!PluginServices.getAddOnService().hasPowerPack())
return;
Task task = PluginServices.getTaskService().fetchById(taskId, Task.ID, Task.TIMER_START,

@ -215,7 +215,7 @@ public final class TaskEditActivity extends TabActivity {
controls.add(new RepeatControlSet(this, extrasAddons));
LinearLayout addonsAddons = (LinearLayout) findViewById(R.id.tab_addons_addons);
if(addOnService.isPowerPack()) {
if(addOnService.hasPowerPack()) {
controls.add(new GCalControlSet(this, addonsAddons));
separator(addonsAddons);
controls.add(new TimerControlSet(this, addonsAddons));

@ -56,6 +56,7 @@ import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.TaskAction;
import com.todoroo.astrid.api.TaskDecoration;
import com.todoroo.astrid.backup.BackupActivity;
import com.todoroo.astrid.core.CoreFilterExposer;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
@ -213,9 +214,9 @@ public class TaskListActivity extends ListActivity implements OnScrollListener {
if(!Constants.SYNC &&
MilkPreferences.class.getName().equals(resolveInfo.activityInfo.name))
continue;
/*if(!addOnService.isPowerPack() &&
if(!addOnService.hasPowerPack() &&
BackupActivity.class.getName().equals(resolveInfo.activityInfo.name))
continue;*/
continue;
item = menu.add(Menu.NONE, MENU_ADDON_INTENT_ID, Menu.NONE,
resolveInfo.loadLabel(pm));

@ -6,6 +6,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@ -14,6 +15,7 @@ import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.widget.Button;
import com.timsu.astrid.R;
import com.todoroo.andlib.service.ContextManager;
@ -44,7 +46,7 @@ public class AddOnService {
public static final String POWER_PACK_LABEL = "Astrid Power Pack";
/** Checks whether power pack should be enabled */
public boolean isPowerPack() {
public boolean hasPowerPack() {
if (Preferences.getBoolean(PREF_OEM, false))
return true;
else if(isInstalled(POWER_PACK_PACKAGE, true))
@ -87,38 +89,48 @@ public class AddOnService {
};
public static void checkForUpgrades(final Activity activity) {
final AtomicInteger countdown = new AtomicInteger(10);
if(DateUtilities.now() > Constants.UPGRADE.getTime()) {
final AtomicInteger countdown = new AtomicInteger(10);
final AlertDialog dialog = new AlertDialog.Builder(activity)
.setTitle(R.string.DLG_information_title)
.setMessage(R.string.DLG_please_update)
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(R.string.DLG_to_market,
new MarketClickListener(activity, activity.getPackageName()))
.setNegativeButton(countdown.toString(), null)
.setNegativeButton(countdown.toString(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface myDialog, int which) {
// do nothing!
}
})
.setCancelable(false)
.show();
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setEnabled(false);
dialog.setOwnerActivity(activity);
dialog.getButton(Dialog.BUTTON_NEGATIVE).setEnabled(false);
final Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
final int number = countdown.addAndGet(-1);
if(number == 0)
timer.cancel();
activity.runOnUiThread(new Runnable() {
public void run() {
Button negativeButton =
dialog.getButton(AlertDialog.BUTTON_NEGATIVE);
if(negativeButton == null)
return;
if(number == 0)
timer.cancel();
if(number == 0) {
dialog.setCancelable(true);
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setText(
negativeButton.setText(
android.R.string.ok);
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setEnabled(true);
negativeButton.setEnabled(true);
} else {
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setText(
Integer.toString(number));
negativeButton.setEnabled(false);
negativeButton.setText(Integer.toString(number));
}
}
});
@ -149,6 +161,11 @@ public class AddOnService {
* @return
*/
private boolean isInstalled(String packageName, boolean internal) {
if(POWER_PACK_PACKAGE.equals(packageName))
return true;
if(LOCALE_PACKAGE.equals(packageName))
return true;
Context context = ContextManager.getContext();
PackageInfo packageInfo;
try {
@ -162,6 +179,7 @@ public class AddOnService {
return false;
if(!internal)
return true;
return "30820265308201cea00302010202044954bd9c300d06092a864886f70d01010505003076310b3009060355040613025553310b3009060355040813024341311230100603550407130950616c6f20416c746f31183016060355040a130f6173747269642e6c7632352e636f6d311b3019060355040b131241737472696420446576656c6f706d656e74310f300d0603550403130654696d2053753020170d3038313232363131313835325a180f32303633303932393131313835325a3076310b3009060355040613025553310b3009060355040813024341311230100603550407130950616c6f20416c746f31183016060355040a130f6173747269642e6c7632352e636f6d311b3019060355040b131241737472696420446576656c6f706d656e74310f300d0603550403130654696d20537530819f300d06092a864886f70d010101050003818d00308189028181008b8f39e02a50e5f50723bb71208e99bd72dd3cb6266054809cce0dc33a38ebf79c2a1ab74264cc6c88d44a5092e34f45fc28c53188ebe5b7511f0e14862598a82e1a84b0c99e62b0603737c09501b92f723d9e561a0eedbc16ab494e93a513d170135e0e55af6bb40a9af1186df4cfe53ec3a6144336f9f8a338341656c5a3bd0203010001300d06092a864886f70d01010505000381810016352860629e5e17d2d747943170ddb8c01f014932cb4462f52295c2f764970e93fa461c73b44a678ecf8ab8480702fb746221a98ade8ab7562cae151be78973dfa47144d70b8d0b73220dd741755f62cc9230264f570ec21a4ab1f11b0528d799d3662d06354b56d0d7d28d05c260876a98151fb4e89b6ce2a5010c52b3e365".equals(packageInfo.signatures[0].toCharsString());
}

@ -1,6 +1,5 @@
package com.todoroo.astrid.service;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.StringTokenizer;
@ -118,11 +117,15 @@ public class Astrid2To3UpgradeHelper {
public void upgrade2To3(final Context context, final UpgradeService upgradeService, final int from) {
// if from < 1 (we don't know what version, and database exists, leave it alone)
if(from < 1 && Arrays.asList(context.databaseList()).contains(database.getName()))
if(from < 1 && checkIfDatabaseExists(context, database.getName()))
return;
// if you don't have a legacy task table, skip this step
if(!checkIfDatabaseExists(context, tasksTable))
return;
// else, if there's already a database table, clear it out (!!!)
if(Arrays.asList(context.databaseList()).contains(database.getName()))
if(checkIfDatabaseExists(context, database.getName()))
context.deleteDatabase(database.getName());
database.openForWriting();

@ -40,7 +40,7 @@ public final class Constants {
/**
* Upgrade time
*/
public static final Date UPGRADE = new Date(110, 10, 1);
public static final Date UPGRADE = new Date(110, 8, 1);
// --- notification id's

@ -31,6 +31,7 @@ import com.todoroo.astrid.model.Metadata;
import com.todoroo.astrid.model.Task;
import com.todoroo.astrid.rmilk.data.MilkTask;
import com.todoroo.astrid.service.Astrid2To3UpgradeHelper;
import com.todoroo.astrid.service.UpgradeService;
import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.tags.TagService.Tag;
import com.todoroo.astrid.test.DatabaseTestCase;
@ -88,7 +89,7 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
// --- helper methods
public void upgrade2To3() {
new Astrid2To3UpgradeHelper().upgrade2To3(125);
new Astrid2To3UpgradeHelper().upgrade2To3(getContext(), new UpgradeService(), 125);
}
public static void assertDatesEqual(Date old, long newDate) {

Loading…
Cancel
Save