Replace QuickAddBar with FloatingActionButton

pull/253/head
Alex Baker 10 years ago
parent b9920fd85d
commit cd50942141

@ -0,0 +1,99 @@
package com.faizmalkani.floatingactionbutton;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.util.AttributeSet;
import android.view.Display;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import org.tasks.R;
public class FloatingActionButton extends View {
private final Paint mButtonPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private final Paint mDrawablePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private Bitmap mBitmap;
private int mColor;
public FloatingActionButton(Context context) {
this(context, null);
}
public FloatingActionButton(Context context, AttributeSet attributeSet) {
this(context, attributeSet, 0);
}
public FloatingActionButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.FloatingActionButton);
mColor = a.getColor(R.styleable.FloatingActionButton_tint, Color.WHITE);
mButtonPaint.setStyle(Paint.Style.FILL);
mButtonPaint.setColor(mColor);
float radius, dx, dy;
radius = a.getFloat(R.styleable.FloatingActionButton_shadowRadius, 10.0f);
dx = a.getFloat(R.styleable.FloatingActionButton_shadowDx, 0.0f);
dy = a.getFloat(R.styleable.FloatingActionButton_shadowDy, 3.5f);
int color = a.getInteger(R.styleable.FloatingActionButton_shadowColor, Color.argb(100, 0, 0, 0));
mButtonPaint.setShadowLayer(radius, dx, dy, color);
Drawable drawable = a.getDrawable(R.styleable.FloatingActionButton_drawable);
if (null != drawable) {
mBitmap = ((BitmapDrawable) drawable).getBitmap();
}
setWillNotDraw(false);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
}
public static int darkenColor(int color) {
float[] hsv = new float[3];
Color.colorToHSV(color, hsv);
hsv[2] *= 0.8f;
return Color.HSVToColor(hsv);
}
public void setColor(int color) {
mColor = color;
mButtonPaint.setColor(mColor);
invalidate();
}
public void setDrawable(Drawable drawable) {
mBitmap = ((BitmapDrawable) drawable).getBitmap();
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawCircle(getWidth() / 2, getHeight() / 2, (float) (getWidth() / 2.6), mButtonPaint);
if (null != mBitmap) {
canvas.drawBitmap(mBitmap, (getWidth() - mBitmap.getWidth()) / 2,
(getHeight() - mBitmap.getHeight()) / 2, mDrawablePaint);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
int color;
if (event.getAction() == MotionEvent.ACTION_UP) {
color = mColor;
} else {
color = darkenColor(mColor);
}
mButtonPaint.setColor(color);
invalidate();
return super.onTouchEvent(event);
}
}

@ -9,10 +9,7 @@ import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.TextView;
import com.todoroo.andlib.utility.DateUtilities;
@ -62,17 +59,6 @@ public class TagViewFragment extends TaskListFragment {
super.onActivityCreated(savedInstanceState);
getListView().setOnKeyListener(null);
// allow for text field entry, needed for android bug #2516
OnTouchListener onTouch = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
v.requestFocusFromTouch();
return false;
}
};
getView().findViewById(R.id.quickAddText).setOnTouchListener(onTouch);
}
// --- data loading

@ -9,19 +9,14 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.speech.SpeechRecognizer;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.view.WindowManager.BadTokenException;
import android.widget.EditText;
import android.widget.Toast;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem;
@ -33,10 +28,6 @@ import com.todoroo.astrid.service.StartupService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.SubtasksHelper;
import com.todoroo.astrid.ui.DateChangedAlerts;
import com.todoroo.astrid.ui.QuickAddBar;
import com.todoroo.astrid.utility.Flags;
import com.todoroo.astrid.voice.RecognizerApi.RecognizerApiListener;
import com.todoroo.astrid.voice.VoiceRecognizer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -260,13 +251,6 @@ public class AstridActivity extends InjectingActionBarActivity
super.onActivityResult(requestCode, resultCode, data);
}
/**
* @return LAYOUT_SINGLE or LAYOUT_DOUBLE
*/
public int getFragmentLayout() {
return fragmentLayout;
}
private class RepeatConfirmationReceiver extends BroadcastReceiver {
private final Property<?>[] REPEAT_RESCHEDULED_PROPERTIES =
new Property<?>[] {

@ -5,14 +5,11 @@
*/
package com.todoroo.astrid.activity;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
@ -24,7 +21,6 @@ import android.text.TextUtils;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.data.TaskAttachment;
import com.todoroo.astrid.files.FileExplore;
@ -33,12 +29,9 @@ import com.todoroo.astrid.gtasks.GtasksPreferences;
import com.todoroo.astrid.helper.MetadataHelper;
import com.todoroo.astrid.service.MarketStrategy.AmazonMarketStrategy;
import com.todoroo.astrid.service.StartupService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.utility.Constants;
import com.todoroo.astrid.utility.TodorooPreferenceActivity;
import com.todoroo.astrid.voice.VoiceInputAssistant;
import com.todoroo.astrid.voice.VoiceOutputAssistant;
import com.todoroo.astrid.voice.VoiceRecognizer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -73,13 +66,10 @@ public class EditPreferences extends TodorooPreferenceActivity {
// --- instance variables
@Inject StartupService startupService;
@Inject TaskService taskService;
@Inject Preferences preferences;
@Inject CalendarAlarmScheduler calendarAlarmScheduler;
@Inject VoiceOutputAssistant voiceOutputAssistant;
private VoiceInputAssistant voiceInputAssistant;
private class SetResultOnPreferenceChangeListener implements OnPreferenceChangeListener {
private final int resultCode;
public SetResultOnPreferenceChangeListener(int resultCode) {
@ -106,7 +96,6 @@ public class EditPreferences extends TodorooPreferenceActivity {
ContextManager.setContext(this);
PreferenceScreen screen = getPreferenceScreen();
voiceInputAssistant = new VoiceInputAssistant(this);
addPluginPreferences(screen);
@ -359,8 +348,6 @@ public class EditPreferences extends TodorooPreferenceActivity {
findPreference(getString(R.string.p_fontSize)).setOnPreferenceChangeListener(new SetResultOnPreferenceChangeListener(RESULT_CODE_PERFORMANCE_PREF_CHANGED));
findPreference(getString(R.string.p_hide_plus_button)).setOnPreferenceChangeListener(new SetResultOnPreferenceChangeListener(RESULT_CODE_PERFORMANCE_PREF_CHANGED));
findPreference(getString(R.string.p_use_dark_theme_widget)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {

@ -147,7 +147,6 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
// --- request codes
private static final int REQUEST_VOICE_RECOG = 10;
public static final int REQUEST_CODE_CONTACT = 20;
public static final int REQUEST_CODE_RECORD = 30;
public static final int REQUEST_CODE_ATTACH_FILE = 40;
public static final int REQUEST_CODE_BEAST_MODE = 50;

@ -513,17 +513,6 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
}
}
public void hideKeyboard() {
TaskListFragment tlf = getTaskListFragment();
if (tlf == null)
return;
InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
QuickAddBar qab = tlf.quickAddBar;
if (qab != null)
imm.hideSoftInputFromWindow(qab.getQuickAddBox().getWindowToken(), 0);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {

@ -25,17 +25,16 @@ import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import com.faizmalkani.floatingactionbutton.FloatingActionButton;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.sql.Criterion;
@ -151,7 +150,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
protected Filter filter;
protected int sortFlags;
protected int sortSort;
protected QuickAddBar quickAddBar;
protected QuickAddBar quickAddBar = new QuickAddBar();
private Timer backgroundTimer;
protected Bundle extras;
@ -281,6 +280,14 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
Bundle savedInstanceState) {
ViewGroup parent = (ViewGroup) getActivity().getLayoutInflater().inflate(
R.layout.task_list_activity, container, false);
FloatingActionButton fab = (FloatingActionButton) parent.findViewById(R.id.fab);
fab.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Task task = quickAddBar.quickAddTask("", true);
}
});
View body = getListBody(parent);
listView = (SwipeRefreshLayout) body.findViewById(R.id.swipe_layout);
emptyView = (SwipeRefreshLayout) body.findViewById(R.id.swipe_layout_empty);
@ -309,7 +316,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
syncActionHelper = new SyncActionHelper(gtasksPreferenceService, syncService, getActivity(), preferences);
setUpUiComponents();
initializeData();
setupQuickAddBar();
quickAddBar.initialize(injector, (TaskListActivity) getActivity(), this);
Fragment filterlistFrame = getFragmentManager().findFragmentById(
NavigationDrawerFragment.FRAGMENT_NAVIGATION_DRAWER);
@ -453,27 +460,6 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
sortFlags = SortHelper.setManualSort(sortFlags, isDraggable());
}
protected void setupQuickAddBar() {
quickAddBar = (QuickAddBar) getView().findViewById(R.id.taskListFooter);
quickAddBar.initialize(injector, (TaskListActivity) getActivity(), this, mListener);
// set listener for astrid icon
emptyView.findViewById(R.id.empty_text).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
quickAddBar.performButtonClick();
}
});
getListView().setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
quickAddBar.clearFocus();
return false;
}
});
}
public void transitionForTaskEdit() {
AndroidUtilities.callOverridePendingTransition(getActivity(),
R.anim.slide_left_in, R.anim.slide_left_out);
@ -645,10 +631,6 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(quickAddBar.onActivityResult(requestCode, resultCode, data)) {
return;
}
if (requestCode == ACTIVITY_SETTINGS) {
if (resultCode == EditPreferences.RESULT_CODE_THEME_CHANGED || resultCode == EditPreferences.RESULT_CODE_PERFORMANCE_PREF_CHANGED) {
getActivity().finish();

@ -45,9 +45,6 @@ public class NotificationFragment extends TaskListFragment {
* Set up the UI for this activity
*/
private void displayNotificationPopup() {
// hide quick add
getView().findViewById(R.id.taskListFooter).setVisibility(View.GONE);
String title = extras.getString(Notifications.EXTRAS_TEXT);
long taskId = extras.getLong(TOKEN_ID);
new ReminderDialog(preferences, taskService, (AstridActivity) getActivity(), taskId, title).show();

@ -5,35 +5,14 @@
*/
package com.todoroo.astrid.ui;
import android.content.Context;
import android.content.Intent;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.activity.AstridActivity;
import com.todoroo.astrid.activity.TaskEditFragment;
import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.activity.TaskListFragment.OnTaskListItemClickedListener;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gcal.GCalControlSet;
import com.todoroo.astrid.gcal.GCalHelper;
import com.todoroo.astrid.repeats.RepeatControlSet;
import com.todoroo.astrid.service.TaskCreator;
import com.todoroo.astrid.service.TaskService;
@ -53,150 +32,23 @@ import javax.inject.Inject;
* @author Tim Su <tim@astrid.com>
*
*/
public class QuickAddBar extends LinearLayout {
public class QuickAddBar {
private static final Logger log = LoggerFactory.getLogger(QuickAddBar.class);
private ImageButton quickAddButton;
private EditText quickAddBox;
private LinearLayout quickAddControls;
private View quickAddControlsContainer;
private DeadlineControlSet deadlineControl;
private RepeatControlSet repeatControl;
private GCalControlSet gcalControl;
@Inject TaskService taskService;
@Inject TaskCreator taskCreator;
@Inject GCalHelper gcalHelper;
@Inject ActivityPreferences preferences;
@Inject DateChangedAlerts dateChangedAlerts;
private TaskListActivity activity;
private TaskListFragment fragment;
public QuickAddBar(Context context) {
super(context);
}
public QuickAddBar(Context context, AttributeSet attrs) {
super(context, attrs);
}
public QuickAddBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public void initialize(Injector injector, TaskListActivity myActivity, TaskListFragment myFragment,
final OnTaskListItemClickedListener mListener) {
public void initialize(Injector injector, TaskListActivity myActivity, TaskListFragment myFragment) {
injector.inject(this); // TODO: get rid of this
activity = myActivity;
fragment = myFragment;
LayoutInflater.from(activity).inflate(R.layout.quick_add_bar, this);
quickAddControls = (LinearLayout) findViewById(R.id.taskListQuickaddControls);
quickAddControlsContainer = findViewById(R.id.taskListQuickaddControlsContainer);
// set listener for pressing enter in quick-add box
quickAddBox = (EditText) findViewById(R.id.quickAddText);
quickAddBox.setOnEditorActionListener(new OnEditorActionListener() {
/**
* When user presses enter, quick-add the task
*/
@Override
public boolean onEditorAction(TextView view, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_NULL
&& !TextUtils.isEmpty(quickAddBox.getText().toString().trim())) {
quickAddTask(quickAddBox.getText().toString(), true);
return true;
}
return false;
}
});
quickAddBox.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
final boolean controlsVisible = !TextUtils.isEmpty(s) && quickAddBox.hasFocus();
final boolean showControls = preferences.getBoolean(R.string.p_show_quickadd_controls, true);
final boolean plusVisible = !TextUtils.isEmpty(s);
final boolean hidePlus = preferences.getBoolean(R.string.p_hide_plus_button, false);
quickAddControlsContainer.postDelayed(new Runnable() {
@Override
public void run() {
quickAddButton.setVisibility((plusVisible || !hidePlus) ? View.VISIBLE : View.GONE);
quickAddControlsContainer.setVisibility((showControls && controlsVisible) ? View.VISIBLE : View.GONE);
}
}, 10);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {/**/}
@Override
public void afterTextChanged(Editable s) {/**/}
});
int fontSize = preferences.getIntegerFromString(R.string.p_fontSize, 18);
quickAddBox.setTextSize(Math.min(fontSize, 22));
quickAddButton = ((ImageButton) findViewById(
R.id.quickAddButton));
quickAddButton.setVisibility(preferences.getBoolean(R.string.p_hide_plus_button, false) ? View.GONE : View.VISIBLE);
// set listener for quick add button
quickAddButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Task task = quickAddTask(quickAddBox.getText().toString(), true);
if (task != null && task.getTitle().length() == 0) {
mListener.onTaskListItemClicked(task.getId());
}
}
});
// set listener for extended addbutton
quickAddButton.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Task task = quickAddTask(quickAddBox.getText().toString(),
false);
if (task == null) {
return true;
}
mListener.onTaskListItemClicked(task.getId());
return true;
}
});
setUpQuickAddControlSets();
}
private void setUpQuickAddControlSets() {
repeatControl = new RepeatControlSet(preferences, activity);
gcalControl = new GCalControlSet(preferences, gcalHelper, activity);
deadlineControl = new DeadlineControlSet(preferences, activity,
R.layout.control_set_default_display, null,
repeatControl.getDisplayView(), gcalControl.getDisplayView());
deadlineControl.setIsQuickadd();
resetControlSets();
LayoutParams lp = new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 1.0f);
View deadlineDisplay = deadlineControl.getDisplayView();
quickAddControls.addView(deadlineDisplay, 0, lp);
TextView tv = (TextView) deadlineDisplay.findViewById(R.id.display_row_edit);
tv.setGravity(Gravity.LEFT);
}
private void resetControlSets() {
@ -207,10 +59,6 @@ public class QuickAddBar extends LinearLayout {
tagsTransitory.add(tagData.getName());
empty.putTransitory(TaskService.TRANS_TAGS, tagsTransitory);
}
repeatControl.readFromTask(empty);
gcalControl.readFromTask(empty);
gcalControl.resetCalendarSelector();
deadlineControl.readFromTask(empty);
}
// --- quick add task logic
@ -236,25 +84,12 @@ public class QuickAddBar extends LinearLayout {
task.setTitle(title); // need this for calendar
}
if (repeatControl.isRecurrenceSet()) {
repeatControl.writeToModel(task);
}
if (deadlineControl.isDeadlineSet()) {
task.clearValue(Task.HIDE_UNTIL);
deadlineControl.writeToModel(task);
TaskDao.createDefaultHideUntil(preferences, task);
}
gcalControl.writeToModel(task);
taskService.createWithValues(task, fragment.getFilter().valuesForNewTasks, title);
resetControlSets();
taskCreator.addToCalendar(task, title);
TextView quickAdd = (TextView) findViewById(R.id.quickAddText);
quickAdd.setText(""); //$NON-NLS-1$
if (selectNewTask) {
fragment.loadTaskListContent();
fragment.selectCustomId(task.getId());
@ -263,6 +98,7 @@ public class QuickAddBar extends LinearLayout {
} else if (!TextUtils.isEmpty(task.getRecurrence())) {
showAlertForRepeatingTask(activity, task);
}
activity.onTaskListItemClicked(task.getId());
}
fragment.onTaskCreated(task);
@ -281,28 +117,4 @@ public class QuickAddBar extends LinearLayout {
private void showAlertForRepeatingTask(AstridActivity activity, Task task) {
dateChangedAlerts.showRepeatChangedDialog(activity, task);
}
// --- instance methods
public EditText getQuickAddBox() {
return quickAddBox;
}
@Override
public void clearFocus() {
super.clearFocus();
quickAddBox.clearFocus();
}
public void performButtonClick() {
quickAddButton.performClick();
}
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == TaskEditFragment.REQUEST_CODE_CONTACT) {
return true;
}
return false;
}
}

@ -48,14 +48,10 @@ public class AstridDefaultPreferenceSpec {
setPreference(prefs, editor, r, R.string.p_use_dark_theme, false);
setPreference(prefs, editor, r, R.string.p_show_quickadd_controls, true);
setPreference(prefs, editor, r, R.string.p_show_task_edit_comments, true);
setPreference(prefs, editor, r, R.string.p_use_date_shortcuts, false);
setPreference(prefs, editor, r, R.string.p_hide_plus_button, true);
setPreference(prefs, editor, r, R.string.p_rmd_quietStart_old, 22); // enable quiet hours by default
setIntIfUnset(prefs, editor, r, R.string.p_rmd_quietStart, r.getInteger(R.integer.default_quiet_hours_start));

@ -195,11 +195,11 @@ public class WidgetUpdateService extends InjectingService {
if (preferences.isDarkWidgetTheme()) {
layout = R.layout.widget_initialized_dark;
titleColor = r.getColor(R.color.widget_text_color_dark);
buttonDrawable = R.drawable.ic_action_new_light;
buttonDrawable = R.drawable.ic_action_add_light;
} else {
layout = R.layout.widget_initialized;
titleColor = r.getColor(R.color.widget_text_color_light);
buttonDrawable = R.drawable.ic_action_new;
buttonDrawable = R.drawable.ic_action_add;
}
views = new RemoteViews(packageName, layout);

@ -263,7 +263,6 @@ public class NavigationDrawerFragment extends InjectingFragment {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerToggle.onOptionsItemSelected(item)) {
((TaskListActivity) getActivity()).hideKeyboard();
return true;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 B

@ -1,87 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
** Copyright (c) 2012 Todoroo Inc
**
** See the file "LICENSE" for the full license governing this code.
-->
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="?attr/asQuickaddBackgroundColor"
android:orientation="vertical">
<View
android:layout_width="fill_parent"
android:layout_height="1px"
android:background="?attr/asThemeTextColor"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="49dip"
android:padding="3dip"
android:paddingBottom="0dip"
android:gravity="center_vertical"
android:orientation="horizontal">
<!-- Quick Add Task -->
<EditText android:id="@+id/quickAddText"
android:layout_width="wrap_content"
android:layout_height="39dip"
android:layout_marginRight="8dip"
android:layout_marginLeft="5dip"
android:layout_marginBottom="2dip"
android:layout_marginTop="2dip"
android:layout_weight="100"
android:paddingLeft="5dip"
android:background="?attr/asEditTextBackground"
android:textColor="?attr/asTextColor"
android:hint="@string/TLA_quick_add_hint"
android:textSize="16sp"
android:autoText="true"
android:capitalize="sentences"/>
<!-- Extended Add Button -->
<ImageButton android:id="@+id/quickAddButton"
android:layout_width="39dip"
android:layout_height="39dip"
android:layout_marginRight="5dip"
android:layout_weight="1"
android:background="@android:color/transparent"
android:src="?attr/ic_action_new"
android:scaleType="center"/>
</LinearLayout>
<LinearLayout
android:id="@+id/taskListQuickaddControlsContainer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="5dip"
android:background="#22000000"
android:visibility="gone">
<View
android:layout_width="fill_parent"
android:layout_height="1px"
android:background="?attr/asSeparatorBackground"/>
<LinearLayout
android:id="@+id/taskListQuickaddControls"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:orientation="horizontal">
<View
android:layout_height="fill_parent"
android:layout_width="1px"
android:background="?attr/asSeparatorBackground"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</merge>

@ -41,7 +41,7 @@
android:layout_height="39dip"
android:layout_gravity="right|center_vertical"
android:background="@android:color/transparent"
android:src="@drawable/ic_action_new_light"
android:src="@drawable/ic_action_add_light"
android:scaleType="fitCenter"/>
</LinearLayout>

@ -41,7 +41,7 @@
android:layout_height="39dip"
android:layout_gravity="right|center_vertical"
android:background="@android:color/transparent"
android:src="@drawable/ic_action_new"
android:src="@drawable/ic_action_add"
android:scaleType="fitCenter"/>
</LinearLayout>

@ -151,7 +151,7 @@
android:layout_marginLeft="3dip"
android:layout_weight="1"
android:background="@android:color/transparent"
android:src="?attr/ic_action_new"
android:src="?attr/ic_action_add"
android:scaleType="center"
android:visibility="gone" />
</LinearLayout>

@ -1,27 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<?xml version="1.0" encoding="utf-8"?><!--
** Copyright (c) 2012 Todoroo Inc
**
** See the file "LICENSE" for the full license governing this code.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tasks="http://schemas.android.com/apk/res-auto"
android:id="@+id/taskListParent"
android:layout_width="fill_parent"
style="@style/Content"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:descendantFocusability="beforeDescendants"
android:focusable="true"
android:focusableInTouchMode="true"
android:descendantFocusability="beforeDescendants"
style="@style/Content"
android:orientation="vertical">
<!-- Body goes here -->
<!-- Footer -->
<com.todoroo.astrid.ui.QuickAddBar
android:id="@+id/taskListFooter"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
style="@style/Content" />
</LinearLayout>
<com.faizmalkani.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_gravity="end|bottom"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp"
tasks:drawable="?attr/ic_action_add"
tasks:tint="?attr/asAbBackgroundColor"/>
</FrameLayout>

@ -12,7 +12,9 @@
android:id="@android:id/list"
style="@style/ListView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
android:layout_height="fill_parent"
android:paddingBottom="104dp"
android:clipToPadding="false"/>
</android.support.v4.widget.SwipeRefreshLayout>

@ -13,7 +13,9 @@
style="@style/ListView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false" />
android:drawSelectorOnTop="false"
android:paddingBottom="104dp"
android:clipToPadding="false" />
</android.support.v4.widget.SwipeRefreshLayout>

@ -41,7 +41,7 @@
android:layout_height="39dip"
android:layout_gravity="right|center_vertical"
android:background="@android:color/transparent"
android:src="@drawable/ic_action_new"
android:src="@drawable/ic_action_add"
android:scaleType="fitCenter"/>
</LinearLayout>

@ -41,7 +41,7 @@
android:layout_height="39dip"
android:layout_gravity="right|center_vertical"
android:background="@android:color/transparent"
android:src="@drawable/ic_action_new"
android:src="@drawable/ic_action_add"
android:scaleType="fitCenter"/>
</LinearLayout>

@ -39,7 +39,7 @@
android:layout_height="39dip"
android:layout_gravity="right|center_vertical"
android:background="@android:color/transparent"
android:src="@drawable/ic_action_new"
android:src="@drawable/ic_action_add"
android:scaleType="fitCenter"/>
</LinearLayout>

@ -21,15 +21,14 @@
<attr name="asThemeTextColor" format="color"/>
<attr name="asEditTextBackground" format="reference"/>
<attr name="asAbBackgroundColor" format="color"/>
<attr name="asQuickaddBackgroundColor" format="color" />
<attr name="asFilterSelectedIcon" format="reference"/>
<attr name="asTaskRowSelector" format="reference" />
<attr name="ic_action_add" format="reference" />
<attr name="ic_action_new_attachment" format="reference"/>
<attr name="ic_action_discard" format="reference"/>
<attr name="ic_action_save" format="reference"/>
<attr name="ic_action_cancel" format="reference"/>
<attr name="ic_action_camera" format="reference"/>
<attr name="ic_action_new" format="reference"/>
<attr name="ic_action_mic" format="reference" />
<attr name="ic_action_search" format="reference"/>
<attr name="ic_drawer" format="reference"/>
@ -52,4 +51,12 @@
<attr name="shortcutLabels" format="reference"/>
</declare-styleable>
<declare-styleable name="FloatingActionButton">
<attr name="drawable" format="integer"/>
<attr name="tint" format="color"/>
<attr name="shadowRadius" format="float"/>
<attr name="shadowDx" format="float"/>
<attr name="shadowDy" format="float"/>
<attr name="shadowColor" format="integer"/>
</declare-styleable>
</resources>

@ -60,9 +60,6 @@
<!-- calendar reminders preference -->
<string name="p_calendar_reminders">p_calendar_reminder</string>
<!-- list view section key -->
<string name="p_list_view">p_list_view</string>
<!-- filters to show -->
<string name="p_filters_to_show">p_filters_to_show</string>
<string name="p_show_my_tasks_filter">p_show_my_tasks_f</string>
@ -70,9 +67,6 @@
<string name="p_show_recently_modified_filter">p_show_recently_modified_f</string>
<string name="p_show_not_in_list_filter">p_show_no_list_f</string>
<!-- show quickadd controls -->
<string name="p_show_quickadd_controls">p_show_quickadd_controls</string>
<!-- show comments in task edit -->
<string name="p_show_task_edit_comments">p_show_task_edit_comments</string>
@ -135,8 +129,6 @@
<string name="p_use_date_shortcuts">p_use_date_shortcuts</string>
<string name="p_hide_plus_button">p_hide_plus_button</string>
<string name="p_show_timer_shortcut">p_show_timer_shortcut</string>
<!-- ========================================================= DEFAULTS == -->

@ -66,9 +66,6 @@
<!-- Window title for displaying Custom Filter -->
<string name="TLA_custom">Custom</string>
<!-- slide 8d: Quick Add Edit Box Hint-->
<string name="TLA_quick_add_hint">Add a task</string>
<!-- Notification Volumne notification-->
<string name="TLA_notification_volume_low">Notifications are muted. You won\'t be able to hear Tasks!</string>
@ -475,12 +472,6 @@
<!-- slide 34h -->
<string name="EPr_fullTask_desc_disabled">First two lines of task title will be shown</string>
<!-- Preference: simple input box style -->
<string name="EPr_show_quickadd_controls">Advanced quickadd controls</string>
<!-- Preference: don't show plus button until input present -->
<string name="EPr_hide_plus_button">Hide plus button</string>
<!-- Preference: list view -->
<string name="EPr_list_view">List view</string>

@ -24,16 +24,15 @@
<item name="asEditRowBackground">@drawable/task_edit_background</item>
<item name="asThemeTextColor">@color/blue_theme_color</item>
<item name="asAbBackgroundColor">#000000</item>
<item name="asQuickaddBackgroundColor">?attr/asAbBackgroundColor</item>
<item name="asFilterSelectedIcon">@drawable/filter_selected_icon</item>
<item name="asTaskRowSelector">@drawable/task_row_bg_dark</item>
<item name="ic_action_add">@drawable/ic_action_add_light</item>
<item name="ic_action_new_attachment">@drawable/ic_action_new_attachment_light</item>
<item name="ic_action_discard">@drawable/ic_action_discard_light</item>
<item name="ic_action_save">@drawable/ic_action_save_light</item>
<item name="ic_action_cancel">@drawable/ic_action_cancel_light</item>
<item name="ic_action_camera">@drawable/ic_action_camera_light</item>
<item name="ic_action_mic">@drawable/ic_action_mic_light</item>
<item name="ic_action_new">@drawable/ic_action_new_light</item>
<item name="ic_action_search">@drawable/ic_action_search_light</item>
<item name="ic_drawer">@drawable/ic_drawer_light</item>
<item name="task_edit_theme_color">@color/blue_theme_color</item>
@ -84,13 +83,13 @@
<item name="asTaskRowSelector">@drawable/task_row_bg_white</item>
<item name="asThemeTextColor">@color/dark_blue_theme_color</item>
<item name="asAbBackgroundColor">#e9e9e9</item>
<item name="ic_action_add">@drawable/ic_action_add</item>
<item name="ic_action_new_attachment">@drawable/ic_action_new_attachment</item>
<item name="ic_action_discard">@drawable/ic_action_discard</item>
<item name="ic_action_save">@drawable/ic_action_save</item>
<item name="ic_action_cancel">@drawable/ic_action_cancel</item>
<item name="ic_action_camera">@drawable/ic_action_camera</item>
<item name="ic_action_mic">@drawable/ic_action_mic</item>
<item name="ic_action_new">@drawable/ic_action_new</item>
<item name="ic_action_search">@drawable/ic_action_search</item>
<item name="ic_drawer">@drawable/ic_drawer</item>
<item name="task_edit_theme_color">@color/task_edit_selected</item>

@ -66,38 +66,26 @@
</PreferenceScreen>
<PreferenceScreen android:title="@string/EPr_list_view" android:key="@string/p_list_view">
<PreferenceScreen android:title="@string/EPr_filters_to_show_title" android:key="@string/p_filters_to_show">
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_my_tasks_filter"
android:title="@string/BFE_Active"
android:defaultValue="true"
android:enabled="false" />
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_today_filter"
android:title="@string/today"
android:defaultValue="true"/>
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_recently_modified_filter"
android:title="@string/BFE_Recent"
android:defaultValue="true"/>
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_not_in_list_filter"
android:title="@string/tag_FEx_untagged"
android:defaultValue="true"/>
</PreferenceScreen>
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_quickadd_controls"
android:title="@string/EPr_show_quickadd_controls"
android:defaultValue="true" />
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_hide_plus_button"
android:title="@string/EPr_hide_plus_button"
android:defaultValue="false"/>
<PreferenceScreen android:title="@string/EPr_filters_to_show_title" android:key="@string/p_filters_to_show">
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_my_tasks_filter"
android:title="@string/BFE_Active"
android:defaultValue="true"
android:enabled="false" />
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_today_filter"
android:title="@string/today"
android:defaultValue="true"/>
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_recently_modified_filter"
android:title="@string/BFE_Recent"
android:defaultValue="true"/>
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_not_in_list_filter"
android:title="@string/tag_FEx_untagged"
android:defaultValue="true"/>
</PreferenceScreen>
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_showSmartConfirmation_key"
android:title="@string/EPr_showSmartConfirmation_title"

Loading…
Cancel
Save