Rearranged some of the control sets in the edit page, fixed the dialog popup widths

pull/14/head
Sam Bosley 13 years ago
parent 418b3cf9f3
commit 016ef6b5f8

@ -3,7 +3,7 @@
android:id="@+id/edit_dlg_ok" android:id="@+id/edit_dlg_ok"
android:layout_width="150dip" android:layout_width="150dip"
android:layout_height="45dip" android:layout_height="45dip"
android:layout_marginTop="10dip" android:layout_marginTop="5dip"
android:layout_marginBottom="5dip" android:layout_marginBottom="5dip"
android:layout_weight="1" android:layout_weight="1"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"

@ -13,12 +13,12 @@
android:gravity="center_vertical"> android:gravity="center_vertical">
<ImageView <ImageView
style="@style/EditRowImage" style="@style/EditRowImage"
android:src="@drawable/icn_edit_reminders"/> android:src="@drawable/icn_edit_when"/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginRight="15dip" android:layout_marginRight="15dip"
android:text="@string/TEA_date_and_time" android:text="@string/TEA_when_header_label"
style="@style/TextAppearance.GEN_EditLabel.DLG_EditLabel" /> style="@style/TextAppearance.GEN_EditLabel.DLG_EditLabel" />
<TextView <TextView
android:id="@+id/deadline_display" android:id="@+id/deadline_display"

@ -3,13 +3,13 @@
<ScrollView <ScrollView
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:minWidth="320dip" android:layout_weight="100"
android:paddingLeft="10dip" android:paddingLeft="10dip"
android:paddingRight="10dip" android:paddingRight="10dip"
android:paddingTop="5dip" android:paddingTop="5dip"
android:paddingBottom="5dip"> android:paddingBottom="5dip">
<LinearLayout <LinearLayout
android:id="@+id/reminders_body" android:id="@+id/datetime_body"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent"> android:layout_height="fill_parent">
@ -21,6 +21,7 @@
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="10dip"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_weight="1"> android:layout_weight="1">
<LinearLayout <LinearLayout
@ -39,7 +40,13 @@
android:layout_marginLeft="5dip" android:layout_marginLeft="5dip"
android:layout_weight="1" android:layout_weight="1"
android:orientation="vertical"/> android:orientation="vertical"/>
</LinearLayout> </LinearLayout>
<View
android:layout_width="fill_parent"
android:layout_height="1px"
android:padding="5dip"
style="@style/TEA_Separator" />
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>
</merge> </merge>

@ -121,52 +121,6 @@
android:orientation="vertical"> android:orientation="vertical">
</LinearLayout> </LinearLayout>
<LinearLayout
android:id="@+id/when_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/when_header"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:gravity="center_vertical">
<LinearLayout
android:id="@+id/when_shortcut_container"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:gravity="center_vertical">
<ImageView
android:id="@+id/when_image"
style="@style/EditRowImage"
android:src="@drawable/icn_edit_when"/>
<TextView
android:id="@+id/when_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/TextAppearance.GEN_EditLabel"
android:text="@string/TEA_when_header_label"/>
</LinearLayout>
<TextView
android:id="@+id/aux_date"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="100"
android:gravity="right"
style="@style/TextAppearance.EditRowDisplay"/>
<include layout="@layout/task_edit_arrow"/>
</LinearLayout>
<View
android:layout_width="fill_parent"
android:layout_height="1px"
android:padding="5dip"
style="@style/TEA_Separator" />
</LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

@ -275,7 +275,7 @@
<string name="TEA_title_label">Title</string> <string name="TEA_title_label">Title</string>
<!-- Task when label (note the <u> tags - be sure to leave those in when localizing! --> <!-- Task when label (note the <u> tags - be sure to leave those in when localizing! -->
<string name="TEA_when_header_label"><u>When</u></string> <string name="TEA_when_header_label">When</string>
<!-- Task title hint (displayed when edit box is empty) --> <!-- Task title hint (displayed when edit box is empty) -->
<string name="TEA_title_hint">Task Summary</string> <string name="TEA_title_hint">Task Summary</string>

@ -93,7 +93,6 @@ import com.todoroo.astrid.ui.HideUntilControlSet;
import com.todoroo.astrid.ui.ImportanceControlSet; import com.todoroo.astrid.ui.ImportanceControlSet;
import com.todoroo.astrid.ui.ReminderControlSet; import com.todoroo.astrid.ui.ReminderControlSet;
import com.todoroo.astrid.voice.VoiceInputAssistant; import com.todoroo.astrid.voice.VoiceInputAssistant;
import com.todoroo.astrid.welcome.HelpInfoPopover;
/** /**
* This activity is responsible for creating new tasks and editing existing * 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 basicControls = (LinearLayout) findViewById(R.id.basic_controls);
LinearLayout whenDialogView = (LinearLayout) LayoutInflater.from(this).inflate( LinearLayout whenDialogView = (LinearLayout) LayoutInflater.from(this).inflate(
R.layout.task_edit_when_controls, null); 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); LinearLayout moreControls = (LinearLayout) findViewById(R.id.more_controls);
constructWhenDialog(whenDialogView); constructWhenDialog(whenDialogView);
@ -282,31 +279,21 @@ public final class TaskEditActivity extends Activity {
controlSetMap.put(getString(R.string.TEA_ctrl_who_pref), controlSetMap.put(getString(R.string.TEA_ctrl_who_pref),
peopleControlSet); 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( RepeatControlSet repeatControls = new RepeatControlSet(
TaskEditActivity.this, R.layout.control_set_repeat, TaskEditActivity.this, R.layout.control_set_repeat,
R.layout.control_set_repeat_display, R.string.repeat_enabled); R.layout.control_set_repeat_display, R.string.repeat_enabled);
controls.add(repeatControls); controls.add(repeatControls);
whenControls.addView(repeatControls.getDisplayView());
GCalControlSet gcalControl = new GCalControlSet(TaskEditActivity.this, GCalControlSet gcalControl = new GCalControlSet(TaskEditActivity.this,
R.layout.control_set_gcal, R.layout.control_set_gcal_display, R.layout.control_set_gcal, R.layout.control_set_gcal_display,
R.string.gcal_TEA_addToCalendar_label); R.string.gcal_TEA_addToCalendar_label);
controls.add(gcalControl); controls.add(gcalControl);
whenControls.addView(gcalControl.getDisplayView());
hideUntilControls = new HideUntilControlSet(TaskEditActivity.this, DeadlineControlSet deadlineControl = new DeadlineControlSet(
R.layout.control_set_hide, R.layout.control_set_hide_display, TaskEditActivity.this, R.layout.control_set_deadline,
R.string.hide_until_prompt); R.layout.control_set_deadline_display, repeatControls.getDisplayView(), gcalControl.getDisplayView());
controls.add(hideUntilControls); controls.add(deadlineControl);
whenControls.addView(hideUntilControls.getDisplayView()); controlSetMap.put(getString(R.string.TEA_ctrl_when_pref), deadlineControl);
ImportanceControlSet importanceControl = new ImportanceControlSet( ImportanceControlSet importanceControl = new ImportanceControlSet(
TaskEditActivity.this, R.layout.control_set_importance); 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), controlSetMap.put(getString(R.string.TEA_ctrl_reminders_pref),
reminderControl); 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( TimerControlSet timerControl = new TimerControlSet(
TaskEditActivity.this, R.layout.control_set_timers, TaskEditActivity.this, R.layout.control_set_timers,
R.layout.control_set_timers_extras_display, R.layout.control_set_timers_extras_display,
@ -375,8 +368,6 @@ public final class TaskEditActivity extends Activity {
else else
itemOrder = getResources().getStringArray(R.array.TEA_control_sets_prefs); itemOrder = getResources().getStringArray(R.array.TEA_control_sets_prefs);
String moreSectionTrigger = getString(R.string.TEA_ctrl_more_pref); 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); String shareViewDescriptor = getString(R.string.TEA_ctrl_share_pref);
LinearLayout section = basicControls; LinearLayout section = basicControls;
for (int i = 0; i < itemOrder.length; i++) { for (int i = 0; i < itemOrder.length; i++) {
@ -387,11 +378,7 @@ public final class TaskEditActivity extends Activity {
TaskEditControlSet curr = controlSetMap.get(item); TaskEditControlSet curr = controlSetMap.get(item);
if (item.equals(shareViewDescriptor)) if (item.equals(shareViewDescriptor))
section.addView(peopleControlSet.getSharedWithRow()); section.addView(peopleControlSet.getSharedWithRow());
else if (item.equals(whenViewDescriptor)) { else if (curr != null)
LinearLayout parent = (LinearLayout) whenView.getParent();
parent.removeView(whenView);
section.addView(whenView);
} else if (curr != null)
section.addView(curr.getDisplayView()); section.addView(curr.getDisplayView());
} }
} }
@ -450,8 +437,6 @@ public final class TaskEditActivity extends Activity {
Button discardButtonGeneral = (Button) findViewById(R.id.discard); Button discardButtonGeneral = (Button) findViewById(R.id.discard);
discardButtonGeneral.setOnClickListener(mDiscardListener); discardButtonGeneral.setOnClickListener(mDiscardListener);
findViewById(R.id.when_header).setOnClickListener(mExpandWhenListener);
findViewById(R.id.more_header).setOnClickListener(mExpandMoreListener); findViewById(R.id.more_header).setOnClickListener(mExpandMoreListener);
findViewById(R.id.activity).setOnClickListener(new View.OnClickListener() { findViewById(R.id.activity).setOnClickListener(new View.OnClickListener() {
@ -475,32 +460,16 @@ public final class TaskEditActivity extends Activity {
dismissDialogButton.setOnClickListener(new View.OnClickListener() { dismissDialogButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
showWhenShortcutHelp();
DialogUtilities.dismissDialog(TaskEditActivity.this, whenDialog); DialogUtilities.dismissDialog(TaskEditActivity.this, whenDialog);
} }
}); });
whenDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
showWhenShortcutHelp();
}
});
DisplayMetrics metrics = new DisplayMetrics(); DisplayMetrics metrics = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(metrics); this.getWindowManager().getDefaultDisplay().getMetrics(metrics);
whenDialog.setTitle(R.string.TEA_when_dialog_title); whenDialog.setTitle(R.string.TEA_when_dialog_title);
whenDialog.addContentView(whenDialogView, new LayoutParams(metrics.widthPixels - (int)(30 * metrics.density), LayoutParams.WRAP_CONTENT)); 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 * Initialize task edit page in the background
* *

@ -1,53 +1,39 @@
package com.todoroo.astrid.ui; package com.todoroo.astrid.ui;
import android.app.Activity; import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.timsu.astrid.R; 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.data.Task;
import com.todoroo.astrid.ui.DateAndTimePicker.OnDateChangedListener;
import com.todoroo.astrid.welcome.HelpInfoPopover;
public class DeadlineControlSet extends PopupControlSet { public class DeadlineControlSet extends PopupControlSet {
private final DateAndTimePicker dateAndTimePicker; 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); super(activity, viewLayout, displayViewLayout, 0);
dateAndTimePicker = (DateAndTimePicker) getView().findViewById(R.id.date_and_time); dateAndTimePicker = (DateAndTimePicker) getView().findViewById(R.id.date_and_time);
auxDisplay = (TextView) extensionView.findViewById(auxDisplayId); LinearLayout body = (LinearLayout) getView().findViewById(R.id.datetime_body);
setUpListeners(dateShortcutViews); for (View v : extraViews) {
body.addView(v);
} }
private void setUpListeners(int[] dateShortcutViews) { Button okButton = (Button) LayoutInflater.from(activity).inflate(R.layout.control_dialog_ok, null);
okButton.setOnClickListener(new OnClickListener() {
dateAndTimePicker.setOnDateChangedListener(new OnDateChangedListener() {
@Override
public void onDateChanged() {
refreshDisplayView();
}
});
View.OnClickListener dateShortcutListener = new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
dialog.show(); onOkClick();
Preferences.setBoolean(R.string.p_showed_when_shortcut, true); 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 @Override
@ -55,7 +41,6 @@ public class DeadlineControlSet extends PopupControlSet {
TextView dateDisplay = (TextView) getDisplayView().findViewById(R.id.deadline_display); TextView dateDisplay = (TextView) getDisplayView().findViewById(R.id.deadline_display);
String toDisplay = dateAndTimePicker.getDisplayString(activity); String toDisplay = dateAndTimePicker.getDisplayString(activity);
dateDisplay.setText(toDisplay); dateDisplay.setText(toDisplay);
auxDisplay.setText(toDisplay);
} }
@Override @Override
@ -71,35 +56,4 @@ public class DeadlineControlSet extends PopupControlSet {
task.setValue(Task.DUE_DATE, dueDate); task.setValue(Task.DUE_DATE, dueDate);
return null; 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);
}
}
}
} }

@ -3,7 +3,6 @@ package com.todoroo.astrid.ui;
import android.app.Activity; import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.util.DisplayMetrics;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
@ -67,9 +66,7 @@ public abstract class PopupControlSet extends TaskEditControlSet {
else else
d.setTitle(title); d.setTitle(title);
View v = getView(); View v = getView();
DisplayMetrics metrics = new DisplayMetrics(); d.setContentView(v, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
d.setContentView(v, new LayoutParams(metrics.widthPixels - (int)(30 * metrics.density), LayoutParams.WRAP_CONTENT));
Button dismiss = (Button) v.findViewById(R.id.edit_dlg_ok); Button dismiss = (Button) v.findViewById(R.id.edit_dlg_ok);
if (dismiss != null) { if (dismiss != null) {
dismiss.setOnClickListener(new OnClickListener() { 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.setOnCancelListener(cancelListener);
d.setOwnerActivity(PopupControlSet.this.activity); d.setOwnerActivity(PopupControlSet.this.activity);
return d; return d;

@ -1,6 +1,7 @@
package com.todoroo.astrid.ui; package com.todoroo.astrid.ui;
import android.app.Activity; import android.app.Activity;
import android.view.View;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.LinearLayout; import android.widget.LinearLayout;
@ -19,6 +20,7 @@ import com.todoroo.astrid.data.Task;
public class ReminderControlSet extends PopupControlSet { public class ReminderControlSet extends PopupControlSet {
private final CheckBox during, after; private final CheckBox during, after;
private final Spinner mode; private final Spinner mode;
private final LinearLayout remindersBody;
private final RandomReminderControlSet randomControlSet; private final RandomReminderControlSet randomControlSet;
private final AlarmControlSet alarmControl; private final AlarmControlSet alarmControl;
@ -32,8 +34,8 @@ public class ReminderControlSet extends PopupControlSet {
randomControlSet = new RandomReminderControlSet(activity, getView(), -1); randomControlSet = new RandomReminderControlSet(activity, getView(), -1);
alarmControl = new AlarmControlSet(activity, R.layout.control_set_alarms); alarmControl = new AlarmControlSet(activity, R.layout.control_set_alarms);
LinearLayout body = (LinearLayout) getView().findViewById(R.id.reminders_body); remindersBody = (LinearLayout) getView().findViewById(R.id.reminders_body);
body.addView(alarmControl.getView()); remindersBody.addView(alarmControl.getView());
String[] list = new String[] { String[] list = new String[] {
activity.getString(R.string.TEA_reminder_mode_once), 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) { public void setValue(int flags) {
during.setChecked((flags & Task.NOTIFY_AT_DEADLINE) > 0); during.setChecked((flags & Task.NOTIFY_AT_DEADLINE) > 0);
after.setChecked((flags & after.setChecked((flags &

Loading…
Cancel
Save