add notPlugin to update message service

pull/14/head
Tim Su 15 years ago
parent e1ba346364
commit c44a99d8c4

@ -16,8 +16,8 @@ import android.content.pm.PackageManager.NameNotFoundException;
import android.text.TextUtils; import android.text.TextUtils;
import com.timsu.astrid.R; import com.timsu.astrid.R;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.data.Property.StringProperty; import com.todoroo.andlib.data.Property.StringProperty;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.DependencyInjectionService;
@ -111,27 +111,18 @@ public class UpdateMessageService {
String date = update.optString("date", null); String date = update.optString("date", null);
String message = update.optString("message", null); String message = update.optString("message", null);
String plugin = update.optString("plugin", null); String plugin = update.optString("plugin", null);
String notPlugin = update.optString("notplugin", null);
if(message == null) if(message == null)
continue; continue;
if(plugin != null) { if(plugin != null) {
// handle internal plugin specially if(pluginConditionMatches(plugin))
if(PLUGIN_PDV.equals(plugin)) {
if(!ProducteevUtilities.INSTANCE.isLoggedIn())
continue;
}
else if(PLUGIN_GTASKS.equals(plugin)) {
if(!gtasksPreferenceService.isLoggedIn())
continue;
}
else if(PLUGIN_RMILK.equals(plugin)) {
if(!MilkUtilities.INSTANCE.isLoggedIn())
continue; continue;
} }
else if(!addOnService.isInstalled(plugin)) { if(notPlugin != null) {
if(!pluginConditionMatches(notPlugin))
continue; continue;
} }
}
if(messageAlreadySeen(date, message)) if(messageAlreadySeen(date, message))
continue; continue;
@ -144,6 +135,21 @@ public class UpdateMessageService {
return builder; return builder;
} }
private boolean pluginConditionMatches(String plugin) {
// handle internal plugin specially
if(PLUGIN_PDV.equals(plugin)) {
return ProducteevUtilities.INSTANCE.isLoggedIn();
}
else if(PLUGIN_GTASKS.equals(plugin)) {
return gtasksPreferenceService.isLoggedIn();
}
else if(PLUGIN_RMILK.equals(plugin)) {
return !MilkUtilities.INSTANCE.isLoggedIn();
}
else
return addOnService.isInstalled(plugin);
}
private boolean messageAlreadySeen(String date, String message) { private boolean messageAlreadySeen(String date, String message) {
if(date != null) if(date != null)
message = date + message; message = date + message;

Loading…
Cancel
Save