From 016ef6b5f841b4893eb17777113b3e64f0e5bdfd Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Mon, 9 Jan 2012 16:27:39 -0800 Subject: [PATCH] Rearranged some of the control sets in the edit page, fixed the dialog popup widths --- astrid/res/layout/control_dialog_ok.xml | 2 +- .../layout/control_set_deadline_display.xml | 4 +- astrid/res/layout/date_time_picker.xml | 11 ++- astrid/res/layout/task_edit_activity.xml | 46 ----------- astrid/res/values/strings-core.xml | 2 +- .../astrid/activity/TaskEditActivity.java | 55 +++---------- .../todoroo/astrid/ui/DeadlineControlSet.java | 78 ++++--------------- .../todoroo/astrid/ui/PopupControlSet.java | 10 ++- .../todoroo/astrid/ui/ReminderControlSet.java | 10 ++- 9 files changed, 55 insertions(+), 163 deletions(-) diff --git a/astrid/res/layout/control_dialog_ok.xml b/astrid/res/layout/control_dialog_ok.xml index 7f7e7a881..55b1dc07a 100644 --- a/astrid/res/layout/control_dialog_ok.xml +++ b/astrid/res/layout/control_dialog_ok.xml @@ -3,7 +3,7 @@ android:id="@+id/edit_dlg_ok" android:layout_width="150dip" android:layout_height="45dip" - android:layout_marginTop="10dip" + android:layout_marginTop="5dip" android:layout_marginBottom="5dip" android:layout_weight="1" android:layout_gravity="center_horizontal" diff --git a/astrid/res/layout/control_set_deadline_display.xml b/astrid/res/layout/control_set_deadline_display.xml index e6c73ba89..7838ba6a9 100644 --- a/astrid/res/layout/control_set_deadline_display.xml +++ b/astrid/res/layout/control_set_deadline_display.xml @@ -13,12 +13,12 @@ android:gravity="center_vertical"> + android:src="@drawable/icn_edit_when"/> @@ -21,6 +21,7 @@ + + \ No newline at end of file diff --git a/astrid/res/layout/task_edit_activity.xml b/astrid/res/layout/task_edit_activity.xml index e2a56bf12..3cc573f81 100644 --- a/astrid/res/layout/task_edit_activity.xml +++ b/astrid/res/layout/task_edit_activity.xml @@ -120,52 +120,6 @@ android:layout_height="fill_parent" android:orientation="vertical"> - - - - - - - - - - - - - - - Title - When + When Task Summary diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java index ae0651525..5a58200d3 100755 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java @@ -93,7 +93,6 @@ 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 @@ -256,8 +255,6 @@ public final class TaskEditActivity extends Activity { LinearLayout basicControls = (LinearLayout) findViewById(R.id.basic_controls); LinearLayout whenDialogView = (LinearLayout) LayoutInflater.from(this).inflate( R.layout.task_edit_when_controls, null); - LinearLayout whenControls = (LinearLayout) whenDialogView.findViewById(R.id.when_controls); - LinearLayout whenHeader = (LinearLayout) findViewById(R.id.when_header); LinearLayout moreControls = (LinearLayout) findViewById(R.id.more_controls); constructWhenDialog(whenDialogView); @@ -282,31 +279,21 @@ public final class TaskEditActivity extends Activity { controlSetMap.put(getString(R.string.TEA_ctrl_who_pref), peopleControlSet); - DeadlineControlSet deadlineControl = new DeadlineControlSet( - TaskEditActivity.this, R.layout.control_set_deadline, - R.layout.control_set_deadline_display, whenHeader, - R.id.aux_date, R.id.when_shortcut_container, R.id.when_label, - R.id.when_image); - controls.add(deadlineControl); - whenControls.addView(deadlineControl.getDisplayView()); - RepeatControlSet repeatControls = new RepeatControlSet( TaskEditActivity.this, R.layout.control_set_repeat, R.layout.control_set_repeat_display, R.string.repeat_enabled); controls.add(repeatControls); - whenControls.addView(repeatControls.getDisplayView()); GCalControlSet gcalControl = new GCalControlSet(TaskEditActivity.this, R.layout.control_set_gcal, R.layout.control_set_gcal_display, R.string.gcal_TEA_addToCalendar_label); controls.add(gcalControl); - whenControls.addView(gcalControl.getDisplayView()); - hideUntilControls = new HideUntilControlSet(TaskEditActivity.this, - R.layout.control_set_hide, R.layout.control_set_hide_display, - R.string.hide_until_prompt); - controls.add(hideUntilControls); - whenControls.addView(hideUntilControls.getDisplayView()); + DeadlineControlSet deadlineControl = new DeadlineControlSet( + TaskEditActivity.this, R.layout.control_set_deadline, + R.layout.control_set_deadline_display, repeatControls.getDisplayView(), gcalControl.getDisplayView()); + controls.add(deadlineControl); + controlSetMap.put(getString(R.string.TEA_ctrl_when_pref), deadlineControl); ImportanceControlSet importanceControl = new ImportanceControlSet( TaskEditActivity.this, R.layout.control_set_importance); @@ -337,6 +324,12 @@ public final class TaskEditActivity extends Activity { controlSetMap.put(getString(R.string.TEA_ctrl_reminders_pref), reminderControl); + hideUntilControls = new HideUntilControlSet(TaskEditActivity.this, + R.layout.control_set_hide, R.layout.control_set_hide_display, + R.string.hide_until_prompt); + controls.add(hideUntilControls); + reminderControl.addViewToBody(hideUntilControls.getDisplayView()); + TimerControlSet timerControl = new TimerControlSet( TaskEditActivity.this, R.layout.control_set_timers, R.layout.control_set_timers_extras_display, @@ -375,8 +368,6 @@ public final class TaskEditActivity extends Activity { else itemOrder = getResources().getStringArray(R.array.TEA_control_sets_prefs); String moreSectionTrigger = getString(R.string.TEA_ctrl_more_pref); - String whenViewDescriptor = getString(R.string.TEA_ctrl_when_pref); - View whenView = findViewById(R.id.when_container); String shareViewDescriptor = getString(R.string.TEA_ctrl_share_pref); LinearLayout section = basicControls; for (int i = 0; i < itemOrder.length; i++) { @@ -387,11 +378,7 @@ public final class TaskEditActivity extends Activity { TaskEditControlSet curr = controlSetMap.get(item); if (item.equals(shareViewDescriptor)) section.addView(peopleControlSet.getSharedWithRow()); - else if (item.equals(whenViewDescriptor)) { - LinearLayout parent = (LinearLayout) whenView.getParent(); - parent.removeView(whenView); - section.addView(whenView); - } else if (curr != null) + else if (curr != null) section.addView(curr.getDisplayView()); } } @@ -450,8 +437,6 @@ public final class TaskEditActivity extends Activity { Button discardButtonGeneral = (Button) findViewById(R.id.discard); discardButtonGeneral.setOnClickListener(mDiscardListener); - findViewById(R.id.when_header).setOnClickListener(mExpandWhenListener); - findViewById(R.id.more_header).setOnClickListener(mExpandMoreListener); findViewById(R.id.activity).setOnClickListener(new View.OnClickListener() { @@ -475,32 +460,16 @@ 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 * diff --git a/astrid/src/com/todoroo/astrid/ui/DeadlineControlSet.java b/astrid/src/com/todoroo/astrid/ui/DeadlineControlSet.java index 5f3c207fb..c5f1bb89d 100644 --- a/astrid/src/com/todoroo/astrid/ui/DeadlineControlSet.java +++ b/astrid/src/com/todoroo/astrid/ui/DeadlineControlSet.java @@ -1,53 +1,39 @@ package com.todoroo.astrid.ui; import android.app.Activity; +import android.view.LayoutInflater; import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; +import android.widget.LinearLayout; import android.widget.TextView; import com.timsu.astrid.R; -import com.todoroo.andlib.utility.Preferences; +import com.todoroo.andlib.utility.DialogUtilities; 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) { + public DeadlineControlSet(Activity activity, int viewLayout, int displayViewLayout, View...extraViews) { super(activity, viewLayout, displayViewLayout, 0); dateAndTimePicker = (DateAndTimePicker) getView().findViewById(R.id.date_and_time); - auxDisplay = (TextView) extensionView.findViewById(auxDisplayId); - setUpListeners(dateShortcutViews); - } - - private void setUpListeners(int[] dateShortcutViews) { - - dateAndTimePicker.setOnDateChangedListener(new OnDateChangedListener() { - @Override - public void onDateChanged() { - refreshDisplayView(); - } - }); + LinearLayout body = (LinearLayout) getView().findViewById(R.id.datetime_body); + for (View v : extraViews) { + body.addView(v); + } - View.OnClickListener dateShortcutListener = new View.OnClickListener() { + Button okButton = (Button) LayoutInflater.from(activity).inflate(R.layout.control_dialog_ok, null); + okButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - dialog.show(); - Preferences.setBoolean(R.string.p_showed_when_shortcut, true); + onOkClick(); + DialogUtilities.dismissDialog(DeadlineControlSet.this.activity, DeadlineControlSet.this.dialog); } - }; - - for (int i : dateShortcutViews) { - View v = activity.findViewById(i); - if (v != null) { - shortcutView = v; - v.setOnClickListener(dateShortcutListener); - } - } + }); + body.addView(okButton); } @Override @@ -55,7 +41,6 @@ public class DeadlineControlSet extends PopupControlSet { TextView dateDisplay = (TextView) getDisplayView().findViewById(R.id.deadline_display); String toDisplay = dateAndTimePicker.getDisplayString(activity); dateDisplay.setText(toDisplay); - auxDisplay.setText(toDisplay); } @Override @@ -71,35 +56,4 @@ public class DeadlineControlSet extends PopupControlSet { task.setValue(Task.DUE_DATE, dueDate); 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); - } - } - } - } diff --git a/astrid/src/com/todoroo/astrid/ui/PopupControlSet.java b/astrid/src/com/todoroo/astrid/ui/PopupControlSet.java index 973899363..e0cb54b48 100644 --- a/astrid/src/com/todoroo/astrid/ui/PopupControlSet.java +++ b/astrid/src/com/todoroo/astrid/ui/PopupControlSet.java @@ -3,7 +3,6 @@ package com.todoroo.astrid.ui; import android.app.Activity; import android.app.Dialog; import android.content.DialogInterface; -import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; @@ -67,9 +66,7 @@ public abstract class PopupControlSet extends TaskEditControlSet { else d.setTitle(title); View v = getView(); - DisplayMetrics metrics = new DisplayMetrics(); - activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); - d.setContentView(v, new LayoutParams(metrics.widthPixels - (int)(30 * metrics.density), LayoutParams.WRAP_CONTENT)); + d.setContentView(v, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); Button dismiss = (Button) v.findViewById(R.id.edit_dlg_ok); if (dismiss != null) { dismiss.setOnClickListener(new OnClickListener() { @@ -80,6 +77,11 @@ public abstract class PopupControlSet extends TaskEditControlSet { } }); } + LayoutParams params = d.getWindow().getAttributes(); + params.width = LayoutParams.FILL_PARENT; + params.height = LayoutParams.WRAP_CONTENT; + d.getWindow().setAttributes((android.view.WindowManager.LayoutParams) params); + d.setOnCancelListener(cancelListener); d.setOwnerActivity(PopupControlSet.this.activity); return d; diff --git a/astrid/src/com/todoroo/astrid/ui/ReminderControlSet.java b/astrid/src/com/todoroo/astrid/ui/ReminderControlSet.java index 47fc32675..c71d5137b 100644 --- a/astrid/src/com/todoroo/astrid/ui/ReminderControlSet.java +++ b/astrid/src/com/todoroo/astrid/ui/ReminderControlSet.java @@ -1,6 +1,7 @@ package com.todoroo.astrid.ui; import android.app.Activity; +import android.view.View; import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.LinearLayout; @@ -19,6 +20,7 @@ import com.todoroo.astrid.data.Task; public class ReminderControlSet extends PopupControlSet { private final CheckBox during, after; private final Spinner mode; + private final LinearLayout remindersBody; private final RandomReminderControlSet randomControlSet; private final AlarmControlSet alarmControl; @@ -32,8 +34,8 @@ public class ReminderControlSet extends PopupControlSet { randomControlSet = new RandomReminderControlSet(activity, getView(), -1); alarmControl = new AlarmControlSet(activity, R.layout.control_set_alarms); - LinearLayout body = (LinearLayout) getView().findViewById(R.id.reminders_body); - body.addView(alarmControl.getView()); + remindersBody = (LinearLayout) getView().findViewById(R.id.reminders_body); + remindersBody.addView(alarmControl.getView()); String[] list = new String[] { activity.getString(R.string.TEA_reminder_mode_once), @@ -51,6 +53,10 @@ public class ReminderControlSet extends PopupControlSet { }); } + public void addViewToBody(View v) { + remindersBody.addView(v, 0); + } + public void setValue(int flags) { during.setChecked((flags & Task.NOTIFY_AT_DEADLINE) > 0); after.setChecked((flags &