New user experience improved with more help popovers, updated copy, feedback when saved task will be hidden

pull/14/head
Sam Bosley 13 years ago
parent b060c099a5
commit 79d5bf9dd5

@ -661,11 +661,19 @@ public class EditPeopleControlSet extends PopupControlSet {
task.setValue(Task.DETAILS_DATE, 0L);
readTagData(result.getJSONArray("tags"));
JsonHelper.readUser(result.getJSONObject("assignee"),
JSONObject assignee = result.getJSONObject("assignee");
JsonHelper.readUser(assignee,
task, Task.USER_ID, Task.USER);
Flags.set(Flags.ACTFM_SUPPRESS_SYNC);
taskService.save(task);
String assignedName = assignee.optString("name");
long id = assignee.optLong("id", -2);
if (!(id == -2 || id == ActFmPreferenceService.userId() || assignedName == null)) {
saveToast += "\n" +
activity.getString(R.string.actfm_EPA_assigned_toast, assignedName);
}
int count = result.optInt("shared", 0);
if(count > 0) {
saveToast += "\n" +

@ -103,7 +103,7 @@ public class TagSettingsActivity extends Activity {
private void showCollaboratorsPopover() {
if (!Preferences.getBoolean(R.string.p_showed_collaborators_help, false)) {
View members = findViewById(R.id.members_container);
HelpInfoPopover.showPopover(this, members, R.string.help_popover_collaborators);
HelpInfoPopover.showPopover(this, members, R.string.help_popover_collaborators, null);
Preferences.setBoolean(R.string.p_showed_collaborators_help, true);
}
}

@ -166,7 +166,7 @@ public class TagViewActivity extends TaskListActivity {
private void showListSettingsPopover() {
if (!Preferences.getBoolean(R.string.p_showed_list_settings_help, false)) {
View tabView = findViewById(R.id.members_edit);
HelpInfoPopover.showPopover(this, tabView, R.string.help_popover_list_settings);
HelpInfoPopover.showPopover(this, tabView, R.string.help_popover_list_settings, null);
Preferences.setBoolean(R.string.p_showed_list_settings_help, true);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -11,20 +11,26 @@
android:layout_below="@+id/gdi_arrow_up"
android:gravity="center"
android:textColor="@android:color/white"
android:background="@drawable/welcome_body"
android:textSize="18sp"
android:textStyle="bold"
android:background="@drawable/popover_bg"
android:fadingEdgeLength="0dp"/>
<ImageView
android:id="@+id/gdi_arrow_up"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/welcome_up" />
android:layout_marginBottom="-13dip"
android:layout_width="27dip"
android:layout_height="27dip"
android:scaleType="fitCenter"
android:src="@drawable/popover_arrow_up" />
<ImageView
android:id="@+id/gdi_arrow_down"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="27dip"
android:layout_height="27dip"
android:scaleType="fitCenter"
android:layout_below="@id/gdi_message"
android:src="@drawable/welcome_down" />
android:layout_marginTop="-13dip"
android:src="@drawable/popover_arrow_down" />
</RelativeLayout>

@ -17,12 +17,16 @@
android:orientation="vertical">
</LinearLayout>
</ScrollView>
<Button
<Button
android:id="@+id/when_dismiss"
android:layout_width="150dip"
android:layout_height="50dip"
android:layout_marginTop="15dip"
android:layout_height="45dip"
android:layout_marginTop="10dip"
android:layout_marginBottom="5dip"
android:layout_weight="1"
android:layout_gravity="center_horizontal"
android:background="@drawable/footer_editbutton"
android:textStyle="bold"
android:layout_alignParentBottom="true"
android:text="@string/DLG_ok"/>
</LinearLayout>

@ -1256,7 +1256,7 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1246,7 +1246,7 @@
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1246,7 +1246,7 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1243,7 +1243,7 @@
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1250,7 +1250,7 @@ File %1$s contained %2$s.\n\n
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1243,7 +1243,7 @@
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1267,7 +1267,7 @@ you get stuff done. It features reminders, tags, sync, Locale plug-in, a widget
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1244,7 +1244,7 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1252,7 +1252,7 @@ you get stuff done. It features reminders, tags, sync, Locale plug-in, a widget
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1251,7 +1251,7 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1247,7 +1247,7 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1243,7 +1243,7 @@
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1257,7 +1257,7 @@ Astrid might not let you know when your tasks are due.\n
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1243,7 +1243,7 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1243,7 +1243,7 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1267,7 +1267,7 @@ you get stuff done. It features reminders, tags, sync, Locale plug-in, a widget
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1231,7 +1231,7 @@
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -1244,7 +1244,7 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">Collaborators can help you build your list or finish tasks</string>

@ -323,8 +323,11 @@
<!-- Preference Keys (do not translate) -->
<string name="p_showed_add_task_help">showed_add_task_help</string>
<string name="p_showed_tap_task_help">showed_tap_task_help</string>
<string name="p_showed_lists_help">showed_lists_help</string>
<string name="p_showed_list_settings_help">showed_list_settings_help</string>
<string name="p_showed_collaborators_help">showed_collaborators_help</string>
<string name="p_showed_when_shortcut">showed_when_shortcut</string>
<string name="p_showed_when_row">showed_when_row</string>
<!-- ============================================================ OTHER == -->

@ -105,6 +105,9 @@
<!-- task sharing dialog: shared with label -->
<string name="actfm_EPA_share_with">Share with:</string>
<!-- Toast when assigning a task -->
<string name="actfm_EPA_assigned_toast">Sent to %2$s (you can see on a new shared list between you and %2$s).</string>
<!-- task sharing dialog: shared with label -->
<string name="actfm_EPA_collaborators_header">Share with Friends</string>

@ -292,6 +292,9 @@
<!-- Task hide until label -->
<string name="TEA_hideUntil_label">Show Task</string>
<!-- Task hide until toast -->
<string name="TEA_hideUntil_message">Task will be hidden until %s</string>
<!-- Task editing data being loaded label -->
<string-array name="TEA_loading"><item>Loading...</item></string-array>

@ -48,11 +48,18 @@
<string name="help_popover_tap_task">Tap task to edit and share</string>
<!-- Shown the first time a user sees the list activity -->
<string name="help_popover_list_settings">Tap list settings to share the entire list</string>
<string name="help_popover_list_settings">Tap to edit or share this list</string>
<!-- Shown the first time a user sees the list settings tab -->
<string name="help_popover_collaborators">People you share with can help you build your list or finish tasks</string>
<!-- Shown after user adds a task -->
<string name="help_popover_lists">Tap to edit or share lists</string>
<string name="help_popover_when_shortcut">Tap this shortcut to quick select date and time</string>
<string name="help_popover_when_row">Tap anywhere on this row to access options like repeat</string>
<!-- Login activity -->
<string name="welcome_login_title">Welcome to Astrid!</string>

@ -95,6 +95,7 @@ import com.todoroo.astrid.ui.HideUntilControlSet;
import com.todoroo.astrid.ui.ImportanceControlSet;
import com.todoroo.astrid.ui.ReminderControlSet;
import com.todoroo.astrid.voice.VoiceInputAssistant;
import com.todoroo.astrid.welcome.HelpInfoPopover;
/**
* This activity is responsible for creating new tasks and editing existing
@ -390,6 +391,7 @@ public final class TaskEditActivity extends Activity {
public void onClick(View v) {
if (whenDialog != null)
whenDialog.show();
Preferences.setBoolean(R.string.p_showed_when_row, true);
}
};
final View.OnClickListener mExpandMoreListener = new View.OnClickListener() {
@ -443,16 +445,32 @@ public final class TaskEditActivity extends Activity {
dismissDialogButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showWhenShortcutHelp();
DialogUtilities.dismissDialog(TaskEditActivity.this, whenDialog);
}
});
whenDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
showWhenShortcutHelp();
}
});
DisplayMetrics metrics = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(metrics);
whenDialog.setTitle(R.string.TEA_when_dialog_title);
whenDialog.addContentView(whenDialogView, new LayoutParams(metrics.widthPixels - (int)(30 * metrics.density), LayoutParams.WRAP_CONTENT));
}
private void showWhenShortcutHelp() {
if (!Preferences.getBoolean(R.string.p_showed_when_shortcut, false)) {
Preferences.setBoolean(R.string.p_showed_when_shortcut, true);
Preferences.setBoolean(R.string.p_showed_when_row, true);
HelpInfoPopover.showPopover(this, findViewById(R.id.when_shortcut_container), R.string.help_popover_when_shortcut, null);
}
}
/**
* Initialize task edit page in the background
*

@ -52,6 +52,7 @@ import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.PopupWindow.OnDismissListener;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android.widget.Toast;
@ -246,11 +247,6 @@ public class TaskListActivity extends ListActivity implements OnScrollListener,
if(Preferences.getInt(AstridPreferences.P_UPGRADE_FROM, -1) > -1)
upgradeService.showChangeLog(this, Preferences.getInt(AstridPreferences.P_UPGRADE_FROM, -1));
if (!Preferences.getBoolean(R.string.p_showed_add_task_help, false)) {
HelpInfoPopover.showPopover(TaskListActivity.this, quickAddBox, R.string.help_popover_add_task);
Preferences.setBoolean(R.string.p_showed_add_task_help, true);
}
if(getIntent().hasExtra(TOKEN_SOURCE)) {
switch(getIntent().getIntExtra(TOKEN_SOURCE, Constants.SOURCE_DEFAULT)) {
case Constants.SOURCE_NOTIFICATION:
@ -384,6 +380,7 @@ public class TaskListActivity extends ListActivity implements OnScrollListener,
private void setUpUiComponents() {
((ImageView)findViewById(R.id.back)).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Preferences.setBoolean(R.string.p_showed_lists_help, true);
showFilterListActivity();
}
});
@ -591,6 +588,11 @@ public class TaskListActivity extends ListActivity implements OnScrollListener,
return;
}
if (!Preferences.getBoolean(R.string.p_showed_add_task_help, false)) {
HelpInfoPopover.showPopover(TaskListActivity.this, quickAddBox, R.string.help_popover_add_task, null);
Preferences.setBoolean(R.string.p_showed_add_task_help, true);
}
if (filter.title.equals(getString(R.string.BFE_Active))) {
initiateAutomaticSync();
}
@ -725,6 +727,11 @@ public class TaskListActivity extends ListActivity implements OnScrollListener,
super.onActivityResult(requestCode, resultCode, data);
if (!Preferences.getBoolean(R.string.p_showed_add_task_help, false)) {
HelpInfoPopover.showPopover(TaskListActivity.this, quickAddBox, R.string.help_popover_add_task, null);
Preferences.setBoolean(R.string.p_showed_add_task_help, true);
}
if(resultCode != RESULT_CANCELED) {
taskAdapter.flushCaches();
loadTaskListContent(true);
@ -886,7 +893,16 @@ public class TaskListActivity extends ListActivity implements OnScrollListener,
public void run() {
final View view = getListView().getChildAt(getListView().getChildCount() - 1);
if (view != null) {
HelpInfoPopover.showPopover(TaskListActivity.this, view, R.string.help_popover_tap_task);
OnDismissListener onDismiss = new OnDismissListener() {
@Override
public void onDismiss() {
if (!Preferences.getBoolean(R.string.p_showed_lists_help, false)) {
Preferences.setBoolean(R.string.p_showed_lists_help, true);
HelpInfoPopover.showPopover(TaskListActivity.this, findViewById(R.id.back), R.string.help_popover_lists, null);
}
}
};
HelpInfoPopover.showPopover(TaskListActivity.this, view, R.string.help_popover_tap_task, onDismiss);
}
}
}, 1000L);

@ -5,13 +5,16 @@ import android.view.View;
import android.widget.TextView;
import com.timsu.astrid.R;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.ui.DateAndTimePicker.OnDateChangedListener;
import com.todoroo.astrid.welcome.HelpInfoPopover;
public class DeadlineControlSet extends PopupControlSet {
private final DateAndTimePicker dateAndTimePicker;
private final TextView auxDisplay;
private View shortcutView;
public DeadlineControlSet(Activity activity, int viewLayout, int displayViewLayout, View extensionView, int auxDisplayId, int...dateShortcutViews) {
super(activity, viewLayout, displayViewLayout, 0);
@ -34,13 +37,16 @@ public class DeadlineControlSet extends PopupControlSet {
@Override
public void onClick(View v) {
dialog.show();
Preferences.setBoolean(R.string.p_showed_when_shortcut, true);
}
};
for (int i : dateShortcutViews) {
View v = activity.findViewById(i);
if (v != null)
if (v != null) {
shortcutView = v;
v.setOnClickListener(dateShortcutListener);
}
}
}
@ -66,4 +72,34 @@ public class DeadlineControlSet extends PopupControlSet {
return null;
}
@Override
protected void onOkClick() {
super.onOkClick();
showHelp();
}
@Override
protected void onCancelClick() {
super.onCancelClick();
showHelp();
}
private void showHelp() {
if (!Preferences.getBoolean(R.string.p_showed_when_shortcut, false)) {
if (shortcutView != null) {
Preferences.setBoolean(R.string.p_showed_when_shortcut, true);
Preferences.setBoolean(R.string.p_showed_when_row, true);
HelpInfoPopover.showPopover(activity, shortcutView, R.string.help_popover_when_shortcut, null);
}
}
if (!Preferences.getBoolean(R.string.p_showed_when_row, false)) {
if (displayView != null) {
Preferences.setBoolean(R.string.p_showed_when_shortcut, true);
Preferences.setBoolean(R.string.p_showed_when_row, true);
HelpInfoPopover.showPopover(activity, activity.findViewById(R.id.when_container), R.string.help_popover_when_row, null);
}
}
}
}

@ -251,7 +251,9 @@ public class HideUntilControlSet extends PopupControlSet implements OnItemSelect
return null;
long value = task.createHideUntil(item.setting, item.date);
task.setValue(Task.HIDE_UNTIL, value);
return null;
String message = activity.getString(R.string.TEA_hideUntil_message, DateAndTimePicker.getDisplayString(activity, value));
return message;
}
}

@ -18,7 +18,7 @@ import com.todoroo.astrid.service.ThemeService;
public abstract class PopupControlSet extends TaskEditControlSet {
private final View displayView;
protected final View displayView;
protected final Activity activity;
protected final Dialog dialog;

@ -25,8 +25,11 @@ import com.timsu.astrid.R;
public class HelpInfoPopover extends QuickActionWidget {
public static HelpInfoPopover showPopover(final Activity activity, final View parent,
final int textId) {
final int textId, OnDismissListener dismissListener) {
final HelpInfoPopover toShow = new HelpInfoPopover(activity, textId);
if (dismissListener != null) {
toShow.setOnDismissListener(dismissListener);
}
parent.post(new Runnable() {
@Override
public void run() {
@ -36,7 +39,7 @@ public class HelpInfoPopover extends QuickActionWidget {
return toShow;
}
public HelpInfoPopover(Context context, int textId) {
private HelpInfoPopover(Context context, int textId) {
super(context);
setContentView(R.layout.help_popover);
TextView message = (TextView)getContentView().findViewById(R.id.gdi_message);

Loading…
Cancel
Save