Set MinSdk to Ice Cream Sandwich

pull/384/head
Alex Baker 9 years ago
parent 06375cb0b7
commit 7590a075e6

@ -29,7 +29,7 @@ android {
defaultConfig {
versionCode 381
versionName "4.8.1"
minSdkVersion 9
minSdkVersion 14
targetSdkVersion 23
}

@ -259,8 +259,6 @@
<!-- ======================================================== Services = -->
<service android:name="com.todoroo.astrid.widget.WidgetUpdateService" />
<service
android:name=".widget.ScrollableWidgetUpdateService"
android:permission="android.permission.BIND_REMOTEVIEWS"/>
@ -470,18 +468,7 @@
<receiver android:name=".receivers.FirstLaunchReceiver"/>
<receiver android:name=".receivers.CompleteTaskReceiver"/>
<receiver
android:name=".receivers.PackageReplacedReceiver"
android:enabled="@bool/at_most_honeycomb">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
<receiver
android:name=".receivers.MyPackageReplacedReceiver"
android:enabled="@bool/at_least_honeycomb_mr1">
<receiver android:name=".receivers.MyPackageReplacedReceiver">
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
</intent-filter>

@ -331,18 +331,6 @@ public class AndroidUtilities {
}
}
public static boolean preGingerbreadMR1() {
return !atLeastGingerbreadMR1();
}
public static boolean preIceCreamSandwich() {
return !atLeastIceCreamSandwich();
}
public static boolean preHoneycomb() {
return !atLeastHoneycomb();
}
public static boolean preJellybean() {
return !atLeastJellybean();
}
@ -351,18 +339,6 @@ public class AndroidUtilities {
return !atLeastLollipop();
}
public static boolean atLeastGingerbreadMR1() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD_MR1;
}
public static boolean atLeastHoneycomb() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB;
}
public static boolean atLeastIceCreamSandwich() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
}
public static boolean atLeastJellybean() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
}

@ -94,8 +94,6 @@ import butterknife.Bind;
import butterknife.ButterKnife;
import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.preGingerbreadMR1;
/**
* This activity is responsible for creating new tasks and editing existing
* ones. It saves a task when it is paused (screen rotated, back button pressed)
@ -761,11 +759,6 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
menu.clear();
inflater.inflate(R.menu.task_edit_fragment, menu);
MenuColorizer.colorMenu(getActivity(), menu, getResources().getColor(android.R.color.white));
if (preGingerbreadMR1()) {
// media recorder aac support requires api level 10
// approximately 1% of current installs are using api level 7-9
menu.findItem(R.id.menu_record_note).setVisible(false);
}
if (preferences.useTabletLayout()) {
menu.findItem(R.id.menu_save).setVisible(true);
}

@ -8,12 +8,8 @@ package com.todoroo.astrid.gcal;
import android.net.Uri;
import android.provider.CalendarContract;
import com.todoroo.andlib.utility.AndroidUtilities;
import javax.inject.Singleton;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastIceCreamSandwich;
@Singleton
public class Calendars {
@ -21,17 +17,15 @@ public class Calendars {
public static final String CALENDAR_CONTENT_EVENTS = "events";
public static final String CALENDAR_CONTENT_ATTENDEES = "attendees";
private static final boolean USE_ICS_NAMES = AndroidUtilities.atLeastIceCreamSandwich();
public static final String ID_COLUMN_NAME = "_id";
public static final String CALENDARS_DISPLAY_COL = (USE_ICS_NAMES ? CalendarContract.Calendars.CALENDAR_DISPLAY_NAME : "displayName");
public static final String CALENDARS_ACCESS_LEVEL_COL = (USE_ICS_NAMES ? CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL : "access_level");
public static final String EVENTS_DTSTART_COL = (USE_ICS_NAMES ? CalendarContract.Events.DTSTART : "dtstart");
public static final String EVENTS_DTEND_COL = (USE_ICS_NAMES ? CalendarContract.Events.DTEND : "dtend");
public static final String EVENTS_NAME_COL = (USE_ICS_NAMES ? CalendarContract.Events.TITLE : "title");
public static final String ATTENDEES_EVENT_ID_COL = (USE_ICS_NAMES ? CalendarContract.Attendees.EVENT_ID : "event_id");
public static final String ATTENDEES_NAME_COL = (USE_ICS_NAMES ? CalendarContract.Attendees.ATTENDEE_NAME : "attendeeName");
public static final String ATTENDEES_EMAIL_COL = (USE_ICS_NAMES ? CalendarContract.Attendees.ATTENDEE_EMAIL: "attendeeEmail");
public static final String CALENDARS_DISPLAY_COL = CalendarContract.Calendars.CALENDAR_DISPLAY_NAME;
public static final String CALENDARS_ACCESS_LEVEL_COL = CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL;
public static final String EVENTS_DTSTART_COL = CalendarContract.Events.DTSTART;
public static final String EVENTS_DTEND_COL = CalendarContract.Events.DTEND;
public static final String EVENTS_NAME_COL = CalendarContract.Events.TITLE;
public static final String ATTENDEES_EVENT_ID_COL = CalendarContract.Attendees.EVENT_ID;
public static final String ATTENDEES_NAME_COL = CalendarContract.Attendees.ATTENDEE_NAME;
public static final String ATTENDEES_EMAIL_COL = CalendarContract.Attendees.ATTENDEE_EMAIL;
public static final String[] CALENDARS_PROJECTION = new String[] {
ID_COLUMN_NAME,
@ -50,15 +44,7 @@ public class Calendars {
* @param table provider table, something like calendars, events
*/
public static Uri getCalendarContentUri(String table) {
if (atLeastIceCreamSandwich()) {
return getIcsUri(table);
}
return Uri.parse("content://com.android.calendar/" + table);
}
private static Uri getIcsUri(String table) {
switch (table) {
switch (table) {
case CALENDAR_CONTENT_CALENDARS:
return CalendarContract.Calendars.CONTENT_URI;
case CALENDAR_CONTENT_EVENTS:
@ -66,6 +52,6 @@ public class Calendars {
case CALENDAR_CONTENT_ATTENDEES:
return CalendarContract.Attendees.CONTENT_URI;
}
return null;
return null;
}
}

@ -30,8 +30,6 @@ import javax.inject.Inject;
import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastIceCreamSandwich;
import static com.todoroo.andlib.utility.AndroidUtilities.preIceCreamSandwich;
import static com.todoroo.astrid.gcal.Calendars.getCalendarContentUri;
public class GCalHelper {
@ -100,10 +98,6 @@ public class GCalHelper {
values.put("title", task.getTitle());
values.put("description", task.getNotes());
values.put("hasAlarm", 0);
if (preIceCreamSandwich()) {
values.put("transparency", 0);
values.put("visibility", 0);
}
boolean valuesContainCalendarId = (values.containsKey(CALENDAR_ID_COLUMN) &&
!TextUtils.isEmpty(values.getAsString(CALENDAR_ID_COLUMN)));
if (!valuesContainCalendarId) {
@ -231,16 +225,10 @@ public class GCalHelper {
values.put("dtend", tzCorrectedDueDateNow);
values.put("allDay", "1");
}
adjustDateForIcs(values);
}
private static void adjustDateForIcs(ContentValues values) {
if (atLeastIceCreamSandwich()) {
if ("1".equals(values.get("allDay"))) {
values.put("eventTimezone", Time.TIMEZONE_UTC);
} else {
values.put("eventTimezone", TimeZone.getDefault().getID());
}
if ("1".equals(values.get("allDay"))) {
values.put("eventTimezone", Time.TIMEZONE_UTC);
} else {
values.put("eventTimezone", TimeZone.getDefault().getID());
}
}

@ -26,7 +26,6 @@ import javax.inject.Inject;
import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.preIceCreamSandwich;
import static com.todoroo.astrid.api.AstridApiConstants.BROADCAST_EVENT_REFRESH;
import static org.tasks.intents.TaskIntents.getEditTaskStack;
@ -67,15 +66,10 @@ public class TasksWidget extends InjectingAppWidgetProvider {
try {
super.onUpdate(context, appWidgetManager, appWidgetIds);
if (preIceCreamSandwich()) {
// Start in service to prevent Application Not Responding timeout
updateWidgets(context);
} else {
ComponentName thisWidget = new ComponentName(context, TasksWidget.class);
int[] ids = appWidgetManager.getAppWidgetIds(thisWidget);
for (int id : ids) {
appWidgetManager.updateAppWidget(id, widgetHelper.createScrollableWidget(context, id));
}
ComponentName thisWidget = new ComponentName(context, TasksWidget.class);
int[] ids = appWidgetManager.getAppWidgetIds(thisWidget);
for (int id : ids) {
appWidgetManager.updateAppWidget(id, widgetHelper.createScrollableWidget(context, id));
}
} catch (Exception e) {
Timber.e(e, e.getMessage());
@ -88,11 +82,7 @@ public class TasksWidget extends InjectingAppWidgetProvider {
}
suppressUpdateFlag = 0;
if (preIceCreamSandwich()) {
context.startService(new Intent(context, WidgetUpdateService.class));
} else {
updateScrollableWidgets(context, null);
}
updateScrollableWidgets(context, null);
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)

@ -30,9 +30,6 @@ import org.tasks.widget.WidgetHelper;
import javax.inject.Inject;
import static com.todoroo.andlib.utility.AndroidUtilities.preHoneycomb;
import static com.todoroo.andlib.utility.AndroidUtilities.preIceCreamSandwich;
public class WidgetConfigActivity extends InjectingListActivity {
public static final String PREF_TITLE = "widget-title-";
@ -57,15 +54,9 @@ public class WidgetConfigActivity extends InjectingListActivity {
@Inject FilterProvider filterProvider;
private void updateWidget() {
if (preIceCreamSandwich()) {
Intent intent = new Intent(this, WidgetUpdateService.class);
intent.putExtra(WidgetUpdateService.EXTRA_WIDGET_ID, mAppWidgetId);
startService(intent);
} else {
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
appWidgetManager.updateAppWidget(mAppWidgetId, widgetHelper.createScrollableWidget(this, mAppWidgetId));
TasksWidget.updateScrollableWidgets(this, new int[]{mAppWidgetId});
}
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
appWidgetManager.updateAppWidget(mAppWidgetId, widgetHelper.createScrollableWidget(this, mAppWidgetId));
TasksWidget.updateScrollableWidgets(this, new int[]{mAppWidgetId});
}
@Override
@ -75,10 +66,6 @@ public class WidgetConfigActivity extends InjectingListActivity {
// Set the view layout resource to use.
setContentView(R.layout.widget_config_activity);
if (preHoneycomb()) {
findViewById(R.id.hideCheckboxes).setVisibility(View.GONE);
}
setTitle(R.string.WCA_title);
// Find the widget id from the intent.

@ -1,192 +0,0 @@
package com.todoroo.astrid.widget;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.os.IBinder;
import android.view.View;
import android.widget.RemoteViews;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.astrid.actfm.TagViewFragment;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.SubtasksHelper;
import com.todoroo.astrid.utility.Constants;
import org.tasks.R;
import org.tasks.injection.InjectingService;
import org.tasks.preferences.Preferences;
import org.tasks.widget.DueDateFormatter;
import org.tasks.widget.WidgetHelper;
import javax.inject.Inject;
import timber.log.Timber;
public class WidgetUpdateService extends InjectingService {
private static final int NUM_VISIBLE_TASKS = 25;
public static final String EXTRA_WIDGET_ID = "widget_id"; //$NON-NLS-1$
@Inject Database database;
@Inject TaskService taskService;
@Inject WidgetHelper widgetHelper;
@Inject Preferences preferences;
@Inject SubtasksHelper subtasksHelper;
@Inject DueDateFormatter dueDateFormatter;
@Override
public void onStart(final Intent intent, int startId) {
new Thread(new Runnable() {
@Override
public void run() {
startServiceInBackgroundThread(intent);
}
}).start();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
private void startServiceInBackgroundThread(Intent intent) {
ComponentName thisWidget = new ComponentName(this,
TasksWidget.class);
AppWidgetManager manager = AppWidgetManager.getInstance(this);
int extrasId = AppWidgetManager.INVALID_APPWIDGET_ID;
if(intent != null) {
extrasId = intent.getIntExtra(EXTRA_WIDGET_ID, extrasId);
}
if(extrasId == AppWidgetManager.INVALID_APPWIDGET_ID) {
int[] ids;
try {
ids = manager.getAppWidgetIds(thisWidget);
for(int id : ids) {
RemoteViews updateViews = buildUpdate(this, id);
manager.updateAppWidget(id, updateViews);
}
} catch (RuntimeException e) {
// "System server dead" was sometimes thrown here by the OS. Abort if that happens
Timber.e(e, e.getMessage());
}
} else {
RemoteViews updateViews = buildUpdate(this, extrasId);
manager.updateAppWidget(extrasId, updateViews);
}
stopSelf();
}
private RemoteViews buildUpdate(Context context, int widgetId) {
boolean darkTheme = preferences.useDarkWidgetTheme(widgetId);
/**
* The reason we use a bunch of different but almost identical layouts is that there is a bug with
* Android 2.1 (level 7) that doesn't allow setting backgrounds on remote views. I know it's lame,
* but I didn't see a better solution. Alternatively, we could disallow theming widgets on
* Android 2.1.
*/
RemoteViews views = new RemoteViews(context.getPackageName(), darkTheme
? R.layout.widget_initialized_dark
: R.layout.widget_initialized);
if (preferences.getBoolean(WidgetConfigActivity.PREF_HIDE_HEADER + widgetId, false)) {
views.setViewVisibility(R.id.widget_header, View.GONE);
}
if (preferences.getBoolean(WidgetConfigActivity.PREF_WIDGET_TRANSPARENT + widgetId, false)) {
views.setInt(R.id.widget_header, "setBackgroundColor", android.R.color.transparent);
views.setInt(R.id.taskbody, "setBackgroundColor", android.R.color.transparent);
}
int numberOfTasks = NUM_VISIBLE_TASKS;
TodorooCursor<Task> cursor = null;
Filter filter = null;
try {
filter = widgetHelper.getFilter(context, widgetId);
if (filter.isTagFilter()) {
((FilterWithCustomIntent) filter).customTaskList = new ComponentName(context, TagViewFragment.class); // In case legacy widget was created with subtasks fragment
}
views.setTextViewText(R.id.widget_title, filter.listingTitle);
views.removeAllViews(R.id.taskbody);
int sort = preferences.getSortMode();
String query = SortHelper.adjustQueryForFlagsAndSort(preferences,
filter.getSqlQuery(), sort).replaceAll("LIMIT \\d+", "") + " LIMIT " + numberOfTasks;
String tagName = preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId);
boolean showDueDates = preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_DUE_DATE + widgetId, false);
query = subtasksHelper.applySubtasksToWidgetFilter(filter, query, tagName, numberOfTasks);
database.openForReading();
cursor = taskService.fetchFiltered(query, null, Task.ID, Task.TITLE, Task.DUE_DATE, Task.COMPLETION_DATE);
int i;
Resources r = context.getResources();
for (i = 0; i < cursor.getCount() && i < numberOfTasks; i++) {
cursor.moveToPosition(i);
Task task = new Task(cursor);
String textContent = task.getTitle();
int textColor = r.getColor(darkTheme
? R.color.widget_text_color_dark
: R.color.widget_text_color_light);
if(task.isCompleted()) {
textColor = r.getColor(R.color.task_list_done);
}
RemoteViews row = new RemoteViews(Constants.PACKAGE, R.layout.widget_row);
if (showDueDates) {
dueDateFormatter.formatDueDate(row, task, textColor);
} else if(task.hasDueDate() && task.isOverdue()) {
textColor = r.getColor(R.color.overdue);
}
row.setTextViewText(R.id.text, textContent);
row.setTextColor(R.id.text, textColor);
views.addView(R.id.taskbody, row);
RemoteViews separator = new RemoteViews(Constants.PACKAGE, R.layout.widget_separator);
boolean isLastRow = (i == cursor.getCount() - 1) || (i == numberOfTasks - 1);
if (!isLastRow) {
views.addView(R.id.taskbody, separator);
}
}
for (; i < numberOfTasks; i++) {
RemoteViews row = new RemoteViews(Constants.PACKAGE, R.layout.widget_row);
row.setViewVisibility(R.id.text, View.INVISIBLE);
views.addView(R.id.taskbody, row);
}
} catch (Exception e) {
Timber.e(e, e.getMessage());
} finally {
if(cursor != null) {
cursor.close();
}
}
PendingIntent pListIntent = widgetHelper.getListIntent(context, filter, widgetId);
if (pListIntent != null) {
views.setOnClickPendingIntent(R.id.taskbody, pListIntent);
}
PendingIntent pEditIntent = widgetHelper.getNewTaskIntent(context, filter, widgetId);
if (pEditIntent != null) {
views.setOnClickPendingIntent(R.id.widget_button, pEditIntent);
views.setOnClickPendingIntent(R.id.widget_title, pEditIntent);
}
return views;
}
}

@ -13,7 +13,6 @@ import org.tasks.receivers.CompleteTaskReceiver;
import org.tasks.receivers.FirstLaunchReceiver;
import org.tasks.receivers.ListNotificationReceiver;
import org.tasks.receivers.MyPackageReplacedReceiver;
import org.tasks.receivers.PackageReplacedReceiver;
import org.tasks.receivers.RefreshReceiver;
import org.tasks.receivers.RepeatConfirmationReceiver;
import org.tasks.receivers.TaskNotificationReceiver;
@ -34,7 +33,6 @@ import dagger.Module;
BootCompletedReceiver.class,
FirstLaunchReceiver.class,
MyPackageReplacedReceiver.class,
PackageReplacedReceiver.class,
RefreshReceiver.class,
CompleteTaskReceiver.class,
RepeatConfirmationReceiver.class

@ -1,15 +1,12 @@
package org.tasks.injection;
import com.todoroo.astrid.widget.WidgetUpdateService;
import org.tasks.widget.ScrollableWidgetUpdateService;
import dagger.Module;
@Module(addsTo = TasksModule.class,
injects = {
ScrollableWidgetUpdateService.class,
WidgetUpdateService.class
ScrollableWidgetUpdateService.class
})
public class ServiceModule {
}

@ -1,28 +0,0 @@
package org.tasks.receivers;
import android.content.Context;
import android.content.Intent;
import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.scheduling.BackgroundScheduler;
import javax.inject.Inject;
import timber.log.Timber;
public class PackageReplacedReceiver extends InjectingBroadcastReceiver {
@Inject BackgroundScheduler backgroundScheduler;
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if (intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED) && context.getPackageName().equals(intent.getData().getSchemeSpecificPart())) {
Timber.d("onReceive(context, %s)", intent);
backgroundScheduler.scheduleEverything();
} else {
Timber.d("ignoring %s", intent);
}
}
}

@ -30,7 +30,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastHoneycomb;
import static java.util.Arrays.asList;
import static org.tasks.date.DateTimeUtils.newDateTime;
@ -181,25 +180,12 @@ public class DeadlineControlSet extends TaskEditControlSetBase {
}
TextView tv = (TextView) LayoutInflater.from(activity).inflate(android.R.layout.simple_spinner_item, parent, false);
tv.setText(dueDateOptions.get(selectedItemPosition));
if (atLeastHoneycomb()) {
if (date == 0) {
dueDateSpinner.setAlpha(0.5f);
dueDateSpinner.setBackgroundDrawable(getThemedUnderline());
} else {
dueDateSpinner.setAlpha(1.0f);
if (date < newDateTime().startOfDay().getMillis()) {
dueDateSpinner.setBackgroundDrawable(getRedUnderline());
tv.setTextColor(activity.getResources().getColor(R.color.overdue));
} else {
dueDateSpinner.setBackgroundDrawable(getThemedUnderline());
tv.setTextColor(themeColor);
}
}
if (date == 0) {
dueDateSpinner.setAlpha(0.5f);
dueDateSpinner.setBackgroundDrawable(getThemedUnderline());
} else {
if (date == 0) {
dueDateSpinner.setBackgroundDrawable(getThemedUnderline());
tv.setTextColor(unsetColor);
} else if (date < newDateTime().startOfDay().getMillis()) {
dueDateSpinner.setAlpha(1.0f);
if (date < newDateTime().startOfDay().getMillis()) {
dueDateSpinner.setBackgroundDrawable(getRedUnderline());
tv.setTextColor(activity.getResources().getColor(R.color.overdue));
} else {
@ -242,25 +228,12 @@ public class DeadlineControlSet extends TaskEditControlSetBase {
}
TextView tv = (TextView) LayoutInflater.from(activity).inflate(android.R.layout.simple_spinner_item, parent, false);
tv.setText(dueTimeOptions.get(selectedItemPosition));
if (atLeastHoneycomb()) {
if (time == -1) {
dueTimeSpinner.setAlpha(0.5f);
dueTimeSpinner.setBackgroundDrawable(getThemedUnderline());
} else {
dueTimeSpinner.setAlpha(1.0f);
if (newDateTime(date).withMillisOfDay(time).isBeforeNow()) {
dueTimeSpinner.setBackgroundDrawable(getRedUnderline());
tv.setTextColor(activity.getResources().getColor(R.color.overdue));
} else {
dueTimeSpinner.setBackgroundDrawable(getThemedUnderline());
tv.setTextColor(themeColor);
}
}
if (time == -1) {
dueTimeSpinner.setAlpha(0.5f);
dueTimeSpinner.setBackgroundDrawable(getThemedUnderline());
} else {
if (time == -1) {
dueTimeSpinner.setBackgroundDrawable(getThemedUnderline());
tv.setTextColor(unsetColor);
} else if (newDateTime(date).withMillisOfDay(time).isBeforeNow()) {
dueTimeSpinner.setAlpha(1.0f);
if (newDateTime(date).withMillisOfDay(time).isBeforeNow()) {
dueTimeSpinner.setBackgroundDrawable(getRedUnderline());
tv.setTextColor(activity.getResources().getColor(R.color.overdue));
} else {

@ -1,34 +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.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/widget_margin"
android:background="@android:color/transparent">
<LinearLayout
android:id="@+id/widget_header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/primary">
<include layout="@layout/widget_toolbar"/>
</LinearLayout>
<LinearLayout
android:id="@+id/taskbody"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/widget_body_light"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>

@ -1,40 +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.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/widget_margin"
android:background="@android:color/transparent">
<LinearLayout
android:id="@+id/widget_header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/widget_header_dark">
<include layout="@layout/widget_toolbar"/>
<ImageView
android:id="@+id/widget_header_separator"
android:layout_width="fill_parent"
android:layout_height="1px"
android:background="@android:color/white"/>
</LinearLayout>
<LinearLayout
android:id="@+id/taskbody"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/widget_body_dark"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>

@ -1,13 +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.
-->
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="1px"
android:layout_marginLeft="5dip"
android:layout_marginRight="5dip"
android:background="#ddbababa" >
</ImageView>

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="TaskListView" parent="ListView" />
</resources>

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="at_most_honeycomb">false</bool>
<bool name="at_least_honeycomb_mr1">true</bool>
</resources>

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="edit_text_style">
<item name="android:textCursorDrawable">@null</item>
</style>
</resources>

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="widget_margin">0dp</dimen>
</resources>

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="TextBoxText">
<item name="android:textColor">?attr/asTextColor</item>
</style>
</resources>

@ -1,8 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="two_pane_layout">false</bool>
<bool name="at_most_honeycomb">true</bool>
<bool name="at_least_honeycomb_mr1">false</bool>
<bool name="sync_enabled">false</bool>
<bool name="location_enabled">false</bool>
<bool name="google_play_store_available">false</bool>

@ -2,7 +2,7 @@
<resources>
<dimen name="navigation_drawer_width">260dp</dimen>
<dimen name="navigation_drawer_horizontal_margins">16dp</dimen>
<dimen name="widget_margin">8dp</dimen>
<dimen name="widget_margin">0dp</dimen>
<dimen name="task_list_footer_height">88dp</dimen>
<dimen name="task_list_fab_margin">16dp</dimen>

@ -21,7 +21,7 @@
</style>
<style name="TextBoxText">
<item name="android:textColor">@android:color/black</item>
<item name="android:textColor">?attr/asTextColor</item>
</style>
<style name="ActionBarThemeOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
@ -37,6 +37,7 @@
</style>
<style name="edit_text_style">
<item name="android:textCursorDrawable">@null</item>
</style>
<!--================================================== Custom Dialogs == -->
@ -58,9 +59,7 @@
<item name="android:smoothScrollbar">true</item>
</style>
<style name="TaskListView" parent="ListView">
<item name="android:scrollingCache">false</item>
</style>
<style name="TaskListView" parent="ListView" />
<!-- ==================================================== TaskAdapter == -->

Loading…
Cancel
Save