Started working on sync upgrade prompts

pull/14/head
Sam Bosley 11 years ago
parent 3aac9f082b
commit 074d6f678a

@ -0,0 +1,82 @@
package com.todoroo.astrid.actfm.sync;
import android.app.Activity;
import android.app.Dialog;
import android.util.TypedValue;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import com.timsu.astrid.R;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.core.PluginServices;
public class SyncUpgradePrompt {
private static final String P_SYNC_UPGRADE_PROMPT = "p_sync_upgr_prompt"; //$NON-NLS-1$
private static long lastPromptDate = -1;
public static void showSyncUpgradePrompt(Activity activity) {
if (lastPromptDate == -1)
lastPromptDate = Preferences.getLong(P_SYNC_UPGRADE_PROMPT, 0L);
if (DateUtilities.now() - lastPromptDate > DateUtilities.ONE_WEEK * 3) {
if (!PluginServices.getActFmPreferenceService().isLoggedIn()) {
if (PluginServices.getGtasksPreferenceService().isLoggedIn()) {
// Logged into google but not astrid
// TODO: Show prompt
} else {
// Logged into neither
// TODO: Show prompt
}
setLastPromptDate(DateUtilities.now());
} else if (PluginServices.getGtasksPreferenceService().isLoggedIn()) {
// Logged into both
// TODO: Show prompt
setLastPromptDate(Long.MAX_VALUE);
} else {
// Logged into just astrid--don't need to show prompts anymore
setLastPromptDate(Long.MAX_VALUE);
}
}
}
private static void setLastPromptDate(long date) {
lastPromptDate = date;
Preferences.setLong(P_SYNC_UPGRADE_PROMPT, lastPromptDate);
}
private static Dialog getDialog(Activity activity, int title, int body, Object... buttonsAndListeners) {
Dialog d = new Dialog(activity, R.style.ReminderDialog);
d.setContentView(R.layout.astrid_reminder_view);
((TextView) d.findViewById(R.id.reminder_title)).setText(title);
((TextView) d.findViewById(R.id.reminder_message)).setText(body);
d.findViewById(R.id.reminder_complete).setVisibility(View.GONE);
TypedValue tv = new TypedValue();
activity.getTheme().resolveAttribute(R.attr.asThemeTextColor, tv, false);
int button1 = (Integer) buttonsAndListeners[0];
OnClickListener listener1 = (OnClickListener) buttonsAndListeners[1];
Button b1 = (Button) d.findViewById(R.id.reminder_edit);
b1.setText(button1);
b1.setOnClickListener(listener1);
b1.setTextColor(activity.getResources().getColor(tv.data));
if (buttonsAndListeners.length < 3) {
d.findViewById(R.id.reminder_snooze).setVisibility(View.GONE);
} else {
int button2 = (Integer) buttonsAndListeners[2];
OnClickListener listener2 = (OnClickListener) buttonsAndListeners[3];
Button b2 = (Button) d.findViewById(R.id.reminder_snooze);
b2.setText(button2);
b2.setOnClickListener(listener2);
b2.setTextColor(activity.getResources().getColor(tv.data));
}
return d;
}
}

@ -28,6 +28,7 @@ import com.todoroo.astrid.dao.UserActivityDao;
import com.todoroo.astrid.dao.UserActivityOutstandingDao;
import com.todoroo.astrid.dao.UserDao;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import com.todoroo.astrid.service.AddOnService;
import com.todoroo.astrid.service.AstridDependencyInjector;
import com.todoroo.astrid.service.MetadataService;
@ -105,6 +106,9 @@ public final class PluginServices {
@Autowired
ActFmPreferenceService actFmPreferenceService;
@Autowired
GtasksPreferenceService gtasksPreferenceService;
private static volatile PluginServices instance;
static {
@ -212,6 +216,10 @@ public final class PluginServices {
return getInstance().actFmPreferenceService;
}
public static GtasksPreferenceService getGtasksPreferenceService() {
return getInstance().gtasksPreferenceService;
}
// -- helpers
/**

@ -45,6 +45,7 @@ import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.actfm.CommentsFragment;
import com.todoroo.astrid.actfm.TagSettingsActivity;
import com.todoroo.astrid.actfm.TagViewFragment;
import com.todoroo.astrid.actfm.sync.SyncUpgradePrompt;
import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.adapter.TaskListFragmentPagerAdapter;
import com.todoroo.astrid.api.AstridApiConstants;
@ -240,6 +241,8 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener
trackActivitySource();
}
SyncUpgradePrompt.showSyncUpgradePrompt(this);
// Have to call this here because sometimes StartupService
// isn't called (i.e. if the app was silently alive in the background)
abTestEventReportingService.trackUserRetention(this);

Loading…
Cancel
Save