Fixed up locale plugin to check for add on:

pull/14/head
Tim Su 16 years ago
parent 1a67dd3a3d
commit 1624c8547d

@ -7,20 +7,11 @@
<classpathentry excluding="com/todoroo/astrid/rmilk/EditOperationExposer.java|com/todoroo/astrid/rmilk/MilkEditActivity.java" kind="src" path="plugin-src"/> <classpathentry excluding="com/todoroo/astrid/rmilk/EditOperationExposer.java|com/todoroo/astrid/rmilk/MilkEditActivity.java" kind="src" path="plugin-src"/>
<classpathentry kind="src" path="gen"/> <classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="lib" path="lib/commons-codec-1.3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/locale_platform.jar"/>
<classpathentry exported="true" kind="lib" path="lib/FlurryAgent.jar"/>
<classpathentry exported="true" kind="lib" path="lib/rfc2445-no-joda.jar" sourcepath="lib/rfc2445-source.zip">
<attributes>
<attribute name="javadoc_location" value="http://google-rfc-2445.googlecode.com/svn/trunk/snapshot/docs"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="lib/annotations.jar"/>
<classpathentry kind="lib" path="lib/jsr305.jar"/>
<classpathentry kind="lib" path="libs/annotations.jar"/> <classpathentry kind="lib" path="libs/annotations.jar"/>
<classpathentry kind="lib" path="libs/commons-codec-1.3.jar"/> <classpathentry kind="lib" path="libs/commons-codec-1.3.jar"/>
<classpathentry kind="lib" path="libs/FlurryAgent.jar"/> <classpathentry kind="lib" path="libs/FlurryAgent.jar"/>
<classpathentry kind="lib" path="libs/jsr305.jar"/> <classpathentry kind="lib" path="libs/jsr305.jar"/>
<classpathentry kind="lib" path="libs/rfc2445-no-joda.jar"/> <classpathentry kind="lib" path="libs/rfc2445-no-joda.jar"/>
<classpathentry kind="lib" path="libs/locale_platform.jar"/>
<classpathentry kind="output" path="ecbuild"/> <classpathentry kind="output" path="ecbuild"/>
</classpath> </classpath>

@ -226,7 +226,7 @@
<activity android:name="com.todoroo.astrid.locale.LocaleEditAlerts" <activity android:name="com.todoroo.astrid.locale.LocaleEditAlerts"
android:label="@string/locale_edit_alerts_title" android:label="@string/locale_edit_alerts_title"
android:icon="@drawable/icon_32" android:icon="@drawable/icon_32"
android:exported="true" > android:exported="true">
<intent-filter> <intent-filter>
<action android:name="com.twofortyfouram.locale.intent.action.EDIT_SETTING" /> <action android:name="com.twofortyfouram.locale.intent.action.EDIT_SETTING" />
</intent-filter> </intent-filter>

Binary file not shown.

@ -2,8 +2,6 @@ package com.todoroo.astrid.backup;
import java.util.Date; import java.util.Date;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.Color; import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
@ -71,15 +69,7 @@ public class BackupPreferences extends TodorooPreferences {
dialogUtilities.okCancelDialog(BackupPreferences.this, dialogUtilities.okCancelDialog(BackupPreferences.this,
getString(R.string.DLG_information_title), getString(R.string.DLG_information_title),
getString(R.string.backup_BPr_how_to_restore_dialog), getString(R.string.backup_BPr_how_to_restore_dialog),
new DialogInterface.OnClickListener() { AddOnActivity.createAddOnClicker(BackupPreferences.this, false), null);
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(BackupPreferences.this,
AddOnActivity.class);
intent.putExtra(AddOnActivity.TOKEN_START_WITH_AVAILABLE, true);
startActivity(intent);
}
}, null);
return false; return false;
} }
}); });

@ -3,6 +3,7 @@ package com.todoroo.astrid.core;
import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.service.AddOnService; import com.todoroo.astrid.service.AddOnService;
import com.todoroo.astrid.service.MetadataService; import com.todoroo.astrid.service.MetadataService;
@ -28,6 +29,9 @@ public final class PluginServices {
@Autowired @Autowired
MetadataService metadataService; MetadataService metadataService;
@Autowired
DialogUtilities dialogUtilities;
@Autowired @Autowired
AddOnService addOnService; AddOnService addOnService;
@ -60,4 +64,8 @@ public final class PluginServices {
public static AddOnService getAddOnService() { public static AddOnService getAddOnService() {
return getInstance().addOnService; return getInstance().addOnService;
} }
public static DialogUtilities getDialogUtilities() {
return getInstance().dialogUtilities;
}
} }

@ -1,6 +1,7 @@
package com.todoroo.astrid.locale; package com.todoroo.astrid.locale;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog;
import android.app.ExpandableListActivity; import android.app.ExpandableListActivity;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
@ -15,10 +16,12 @@ import android.widget.Spinner;
import com.flurry.android.FlurryAgent; import com.flurry.android.FlurryAgent;
import com.timsu.astrid.R; import com.timsu.astrid.R;
import com.todoroo.astrid.activity.AddOnActivity;
import com.todoroo.astrid.adapter.FilterAdapter; import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterCategory; import com.todoroo.astrid.api.FilterCategory;
import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.utility.Constants; import com.todoroo.astrid.utility.Constants;
import com.twofortyfouram.SharedResources; import com.twofortyfouram.SharedResources;
@ -85,6 +88,7 @@ public final class LocaleEditAlerts extends ExpandableListActivity {
* There is no need to save/restore this field's state when the {@code Activity} is paused. * There is no need to save/restore this field's state when the {@code Activity} is paused.
*/ */
private boolean isCancelled = false; private boolean isCancelled = false;
private boolean isRemoved = false;
/** Called when the activity is first created. */ /** Called when the activity is first created. */
@Override @Override
@ -168,6 +172,18 @@ public final class LocaleEditAlerts extends ExpandableListActivity {
adapter.headerStyle = R.style.TextAppearance_LEA_Header; adapter.headerStyle = R.style.TextAppearance_LEA_Header;
adapter.categoryStyle = R.style.TextAppearance_LEA_Category; adapter.categoryStyle = R.style.TextAppearance_LEA_Category;
setListAdapter(adapter); setListAdapter(adapter);
// check for plugin
if(!PluginServices.getAddOnService().hasLocalePlugin()) {
isRemoved = true;
new AlertDialog.Builder(this)
.setTitle(R.string.DLG_information_title)
.setMessage(R.string.locale_plugin_required)
.setCancelable(false)
.setPositiveButton(android.R.string.ok,
AddOnActivity.createAddOnClicker(LocaleEditAlerts.this, true))
.show();
}
} }
@Override @Override
@ -206,7 +222,9 @@ public final class LocaleEditAlerts extends ExpandableListActivity {
@Override @Override
public void finish() public void finish()
{ {
if (isCancelled) if(isRemoved)
setResult(com.twofortyfouram.Intent.RESULT_REMOVE);
else if (isCancelled)
setResult(RESULT_CANCELED); setResult(RESULT_CANCELED);
else else
{ {

@ -14,6 +14,7 @@ import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.activity.ShortcutActivity; import com.todoroo.astrid.activity.ShortcutActivity;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.model.Task; import com.todoroo.astrid.model.Task;
import com.todoroo.astrid.reminders.Notifications; import com.todoroo.astrid.reminders.Notifications;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
@ -47,6 +48,9 @@ public class LocaleReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
try { try {
if (com.twofortyfouram.Intent.ACTION_FIRE_SETTING.equals(intent.getAction())) { if (com.twofortyfouram.Intent.ACTION_FIRE_SETTING.equals(intent.getAction())) {
if(!PluginServices.getAddOnService().hasLocalePlugin())
return;
final String title = intent.getStringExtra(LocaleEditAlerts.KEY_FILTER_TITLE); final String title = intent.getStringExtra(LocaleEditAlerts.KEY_FILTER_TITLE);
final String sql = intent.getStringExtra(LocaleEditAlerts.KEY_SQL); final String sql = intent.getStringExtra(LocaleEditAlerts.KEY_SQL);
final int interval = intent.getIntExtra(LocaleEditAlerts.KEY_INTERVAL, 24*3600); final int interval = intent.getIntExtra(LocaleEditAlerts.KEY_INTERVAL, 24*3600);

@ -29,5 +29,8 @@
<!-- Locale Notification text --> <!-- Locale Notification text -->
<string name="locale_notification">You have $NUM matching: $FILTER</string> <string name="locale_notification">You have $NUM matching: $FILTER</string>
<!-- Locale Plugin was not found, it is required -->
<string name="locale_plugin_required">Please install the Astrid Locale plugin!</string>
</resources> </resources>

@ -3,7 +3,10 @@ package com.todoroo.astrid.activity;
import java.util.ArrayList; import java.util.ArrayList;
import android.app.Activity;
import android.app.TabActivity; import android.app.TabActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -87,6 +90,25 @@ public class AddOnActivity extends TabActivity {
findViewById(R.id.empty_available).setVisibility(View.GONE); findViewById(R.id.empty_available).setVisibility(View.GONE);
} }
/**
* Creates an on click listener
* @param activity
* @param finish whether to finish activity
* @return
*/
public static DialogInterface.OnClickListener createAddOnClicker(final Activity activity,
final boolean finish) {
return new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(activity,
AddOnActivity.class);
intent.putExtra(AddOnActivity.TOKEN_START_WITH_AVAILABLE, true);
activity.startActivity(intent);
if(finish)
activity.finish();
}
};
}
} }

@ -59,6 +59,19 @@ public class AddOnService {
return isPowerPack; return isPowerPack;
} }
/** Checks whether locale plugin should be enabled */
public boolean hasLocalePlugin() {
if (isPowerPack == null) {
isPowerPack = false;
if (Preferences.getBoolean(PREF_OEM, false))
isPowerPack = true;
else if(isInstalled(LOCALE_PACKAGE, true))
isPowerPack = true;
}
return isPowerPack;
}
/** /**
* Takes users to the market * Takes users to the market
* *

Loading…
Cancel
Save