Hide the more tab when there are no extra controls to be shown in the task edit page

pull/14/head
Sam Bosley 14 years ago
parent c9e8efc82a
commit 47903ef9ca

@ -257,12 +257,9 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
private WebServicesView webServices = null;
public static final int TAB_STYLE_NONE = 0;
public static final int TAB_STYLE_ACTIVITY = 1;
public static final int TAB_STYLE_ACTIVITY_WEB = 2;
public static final int TAB_STYLE_WEB = 3;
private int tabStyle = 0;
private int tabStyle = TAB_STYLE_NONE;
private boolean moreSectionHasControls;
/*
* ======================================================================
@ -372,9 +369,12 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
boolean hasTitle = !TextUtils.isEmpty(model.getValue(Task.TITLE));
if(hasTitle && Preferences.getBoolean(R.string.p_ideas_tab_enabled, false) && Constants.MARKET_STRATEGY.allowIdeasTab())
tabStyle = TAB_STYLE_ACTIVITY_WEB;
tabStyle = (TaskEditViewPager.TAB_SHOW_ACTIVITY | TaskEditViewPager.TAB_SHOW_WEB);
else
tabStyle = TAB_STYLE_ACTIVITY;
tabStyle = TaskEditViewPager.TAB_SHOW_ACTIVITY;
if (moreSectionHasControls)
tabStyle |= TaskEditViewPager.TAB_SHOW_MORE;
if (editNotes == null) {
instantiateEditNotes();
@ -590,12 +590,17 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
String[] itemOrder = controlOrder.toArray(new String[controlOrder.size()]);
String moreSectionTrigger = getString(R.string.TEA_ctrl_more_pref);
String hideAlwaysTrigger = getString(R.string.TEA_ctrl_hide_section_pref);
String shareViewDescriptor = getString(R.string.TEA_ctrl_share_pref);
LinearLayout section = basicControls;
moreSectionHasControls = false;
for (int i = 0; i < itemOrder.length; i++) {
String item = itemOrder[i];
if (item.equals(moreSectionTrigger)) {
if (item.equals(hideAlwaysTrigger)) {
break; // As soon as we hit the hide section, we're done
} else if (item.equals(moreSectionTrigger)) {
section = moreControls;
if (taskRabbitControl != null) {
taskRabbitControl.getDisplayView().setVisibility(View.GONE);
@ -603,19 +608,21 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
}
} else {
View control_set = null;
View controlSet = null;
TaskEditControlSet curr = controlSetMap.get(item);
if (item.equals(shareViewDescriptor))
control_set = peopleControlSet.getSharedWithRow();
controlSet = peopleControlSet.getSharedWithRow();
else if (curr != null)
control_set = (LinearLayout) curr.getDisplayView();
controlSet = (LinearLayout) curr.getDisplayView();
if (control_set != null) {
if (controlSet != null) {
if ((i + 1 >= itemOrder.length || itemOrder[i + 1].equals(moreSectionTrigger))) {
removeTeaSeparator(control_set);
removeTeaSeparator(controlSet);
}
section.addView(control_set);
section.addView(controlSet);
if (section == moreControls)
moreSectionHasControls = true;
}
}
}
@ -1250,15 +1257,13 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
*/
public int getTabForPosition(int position) {
if ((tabStyle == TAB_STYLE_WEB && position == 0) ||
(tabStyle != TAB_STYLE_WEB && position == 1))
return TAB_VIEW_MORE;
else if (tabStyle != TAB_STYLE_WEB && position == 0)
Activity activity = getActivity();
String pageTitle = mAdapter.getTitle(position);
if (pageTitle.equals(activity.getString(R.string.TEA_tab_activity)))
return TAB_VIEW_UPDATES;
else if((tabStyle == TAB_STYLE_WEB && position == 1) ||
(tabStyle == TAB_STYLE_ACTIVITY_WEB && position == 2))
else if (pageTitle.equals(activity.getString(R.string.TEA_tab_more)))
return TAB_VIEW_MORE;
else if (pageTitle.equals(activity.getString(R.string.TEA_tab_web)))
return TAB_VIEW_WEB_SERVICES;
// error experienced
@ -1352,10 +1357,8 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
setPagerHeightForPosition(position);
NestableScrollView scrollView = (NestableScrollView)getView().findViewById(R.id.edit_scroll);
if((tabStyle == TAB_STYLE_WEB && position == 1) ||
(tabStyle == TAB_STYLE_ACTIVITY_WEB && position == 2))
scrollView.
setScrollabelViews(webServices.getScrollableViews());
if(getTabForPosition(position) == TAB_VIEW_WEB_SERVICES)
scrollView.setScrollabelViews(webServices.getScrollableViews());
else
scrollView.setScrollabelViews(null);
}

@ -5,6 +5,8 @@
*/
package com.todoroo.astrid.activity;
import java.util.ArrayList;
import android.content.Context;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
@ -16,31 +18,23 @@ import com.viewpagerindicator.TitleProvider;
public class TaskEditViewPager extends PagerAdapter implements TitleProvider {
private static String[] titles;
private final String[] titles;
public TaskEditFragment parent;
public TaskEditViewPager(Context context, int tabStyle) {
switch(tabStyle) {
case TaskEditFragment.TAB_STYLE_ACTIVITY_WEB:
titles = new String[] {
context.getString(R.string.TEA_tab_activity),
context.getString(R.string.TEA_tab_more),
context.getString(R.string.TEA_tab_web),
};
break;
case TaskEditFragment.TAB_STYLE_ACTIVITY:
titles = new String[] {
context.getString(R.string.TEA_tab_activity),
context.getString(R.string.TEA_tab_more),
};
break;
case TaskEditFragment.TAB_STYLE_WEB:
titles = new String[] {
context.getString(R.string.TEA_tab_more),
context.getString(R.string.TEA_tab_web),
};
break;
}
public static final int TAB_SHOW_ACTIVITY = 1 << 0;
public static final int TAB_SHOW_MORE = 1 << 1;
public static final int TAB_SHOW_WEB = 1 << 2;
public TaskEditViewPager(Context context, int tabStyleMask) {
ArrayList<String> titleList = new ArrayList<String>();
if ((tabStyleMask & TAB_SHOW_ACTIVITY) > 0)
titleList.add(context.getString(R.string.TEA_tab_activity));
if ((tabStyleMask & TAB_SHOW_MORE) > 0)
titleList.add(context.getString(R.string.TEA_tab_more));
if ((tabStyleMask & TAB_SHOW_WEB) > 0)
titleList.add(context.getString(R.string.TEA_tab_web));
titles = titleList.toArray(new String[titleList.size()]);
}
@Override

@ -29,7 +29,7 @@ import com.todoroo.astrid.producteev.ProducteevUtilities;
*/
public class ImportanceControlSet extends TaskEditControlSet {
private final List<CompoundButton> buttons = new LinkedList<CompoundButton>();
private int[] colors;
private final int[] colors;
//private final int grayColor;
private final List<ImportanceChangedListener> listeners = new LinkedList<ImportanceChangedListener>();
@ -39,6 +39,7 @@ public class ImportanceControlSet extends TaskEditControlSet {
public ImportanceControlSet(Activity activity, int layout) {
super(activity, layout);
colors = Task.getImportanceColors(activity.getResources());
}
public void setImportance(Integer i) {
@ -88,7 +89,6 @@ public class ImportanceControlSet extends TaskEditControlSet {
@Override
protected void afterInflate() {
LinearLayout container = (LinearLayout) getView().findViewById(R.id.importance_container);
colors = Task.getImportanceColors(activity.getResources());
int min = Task.IMPORTANCE_MOST;
int max = Task.IMPORTANCE_LEAST;
@ -149,6 +149,14 @@ public class ImportanceControlSet extends TaskEditControlSet {
}
}
@Override
public void readFromTask(Task task) {
super.readFromTask(task);
setImportance(model.getValue(Task.IMPORTANCE));
}
// Same as above because we need the setImportance listeners to fire even in
// the case when the UI hasn't been created yet
@Override
protected void readFromTaskOnInitialize() {
setImportance(model.getValue(Task.IMPORTANCE));

Loading…
Cancel
Save