diff --git a/opentasks-provider/src/main/java/org/dmfs/provider/tasks/FTSDatabaseHelper.java b/opentasks-provider/src/main/java/org/dmfs/provider/tasks/FTSDatabaseHelper.java
index 849c303a3..a27516c4f 100644
--- a/opentasks-provider/src/main/java/org/dmfs/provider/tasks/FTSDatabaseHelper.java
+++ b/opentasks-provider/src/main/java/org/dmfs/provider/tasks/FTSDatabaseHelper.java
@@ -399,8 +399,6 @@ private static void updateEntry(SQLiteDatabase db, long taskId, long propertyId,
      *         The row id of the task.
      * @param propertyId
      *         The row id of the property.
-     * @param The
-     *         entry type of the relation (title, description, property).
      */
     private static void insertNGramRelations(SQLiteDatabase db, Set<Long> ngramIds, long taskId, Long propertyId, int contentType)
     {
diff --git a/opentasks-provider/src/main/java/org/dmfs/provider/tasks/SQLiteContentProvider.java b/opentasks-provider/src/main/java/org/dmfs/provider/tasks/SQLiteContentProvider.java
index 336b256ab..7df6979d8 100644
--- a/opentasks-provider/src/main/java/org/dmfs/provider/tasks/SQLiteContentProvider.java
+++ b/opentasks-provider/src/main/java/org/dmfs/provider/tasks/SQLiteContentProvider.java
@@ -142,7 +142,7 @@ private boolean applyingBatch()
     @Override
     public Uri insert(Uri uri, ContentValues values)
     {
-        Uri result = null;
+        Uri result;
         boolean callerIsSyncAdapter = isCallerSyncAdapter(uri);
         boolean applyingBatch = applyingBatch();
         SQLiteDatabase db = mOpenHelper.getWritableDatabase();
@@ -198,7 +198,7 @@ public int bulkInsert(Uri uri, ContentValues[] values)
     @Override
     public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)
     {
-        int count = 0;
+        int count;
         boolean callerIsSyncAdapter = isCallerSyncAdapter(uri);
         boolean applyingBatch = applyingBatch();
         SQLiteDatabase db = mOpenHelper.getWritableDatabase();
@@ -229,7 +229,7 @@ public int update(Uri uri, ContentValues values, String selection, String[] sele
     @Override
     public int delete(Uri uri, String selection, String[] selectionArgs)
     {
-        int count = 0;
+        int count;
         boolean callerIsSyncAdapter = isCallerSyncAdapter(uri);
         boolean applyingBatch = applyingBatch();
         SQLiteDatabase db = mOpenHelper.getWritableDatabase();
diff --git a/opentasks-provider/src/main/java/org/dmfs/provider/tasks/TaskProvider.java b/opentasks-provider/src/main/java/org/dmfs/provider/tasks/TaskProvider.java
index 7f9d5882c..481714174 100644
--- a/opentasks-provider/src/main/java/org/dmfs/provider/tasks/TaskProvider.java
+++ b/opentasks-provider/src/main/java/org/dmfs/provider/tasks/TaskProvider.java
@@ -875,8 +875,8 @@ public int deleteInTransaction(final SQLiteDatabase db, Uri uri, String selectio
     @Override
     public Uri insertInTransaction(final SQLiteDatabase db, Uri uri, final ContentValues values, final boolean isSyncAdapter)
     {
-        long rowId = 0;
-        Uri result_uri = null;
+        long rowId;
+        Uri result_uri;
 
         String accountName = getAccountName(uri);
         String accountType = getAccountType(uri);
diff --git a/opentasks-provider/src/main/java/org/dmfs/provider/tasks/handler/RelationHandler.java b/opentasks-provider/src/main/java/org/dmfs/provider/tasks/handler/RelationHandler.java
index 2e6c6a75e..ef0b72b69 100644
--- a/opentasks-provider/src/main/java/org/dmfs/provider/tasks/handler/RelationHandler.java
+++ b/opentasks-provider/src/main/java/org/dmfs/provider/tasks/handler/RelationHandler.java
@@ -248,13 +248,13 @@ else if (type == Relation.RELTYPE_CHILD)
                 db.update(TaskDatabaseHelper.Tables.TASKS, taskValues, Tasks._ID + "=" + oldValues.getLong(relIdCol), null);
             }
         }
-        else if (type == Relation.RELTYPE_SIBLING)
-        {
+        // else if (type == Relation.RELTYPE_SIBLING)
+        // {
             /*
              * This was a link to a sibling, since it's no longer our sibling either it or we're orphaned now We won't know unless we check all relations.
              *
              * FIXME: properly handle this case
              */
-        }
+        // }
     }
 }
diff --git a/opentasks/lint.xml b/opentasks/lint.xml
index c70207fba..2c7e9b627 100644
--- a/opentasks/lint.xml
+++ b/opentasks/lint.xml
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="utf-8"?>
-<lint></lint>
\ No newline at end of file
+<lint/>
\ No newline at end of file
diff --git a/opentasks/src/main/java/org/dmfs/tasks/InputTextDialogFragment.java b/opentasks/src/main/java/org/dmfs/tasks/InputTextDialogFragment.java
index 8b0b05645..0640f62b3 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/InputTextDialogFragment.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/InputTextDialogFragment.java
@@ -106,8 +106,6 @@ public static InputTextDialogFragment newInstance(String title, String hint, Str
      *
      * @param title
      *         The title of the dialog.
-     * @param message
-     *         The text of the message field.
      * @param hint
      *         The hint of the input field.
      *
@@ -124,9 +122,6 @@ public static InputTextDialogFragment newInstance(String title, String hint, Str
      *
      * @param title
      *         The title of the dialog.
-     * @param message
-     *         The text of the message field.
-     *
      * @return A new {@link InputTextDialogFragment}.
      */
     public static InputTextDialogFragment newInstance(String title, String hint)
diff --git a/opentasks/src/main/java/org/dmfs/tasks/QuickAddDialogFragment.java b/opentasks/src/main/java/org/dmfs/tasks/QuickAddDialogFragment.java
index 61f384a1a..331b49cd9 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/QuickAddDialogFragment.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/QuickAddDialogFragment.java
@@ -153,11 +153,6 @@ public interface OnTextInputListener
     /**
      * Create a {@link QuickAddDialogFragment} with the given title and initial text value.
      *
-     * @param titleId
-     *         The resource id of the title.
-     * @param initalText
-     *         The initial text in the input field.
-     *
      * @return A new {@link QuickAddDialogFragment}.
      */
     public static QuickAddDialogFragment newInstance(long listId)
@@ -173,11 +168,6 @@ public static QuickAddDialogFragment newInstance(long listId)
     /**
      * Create a {@link QuickAddDialogFragment} with the given title and initial text value.
      *
-     * @param titleId
-     *         The resource id of the title.
-     * @param initalText
-     *         The initial text in the input field.
-     *
      * @return A new {@link QuickAddDialogFragment}.
      */
     public static QuickAddDialogFragment newInstance(ContentSet content)
diff --git a/opentasks/src/main/java/org/dmfs/tasks/SettingsListFragment.java b/opentasks/src/main/java/org/dmfs/tasks/SettingsListFragment.java
index 001ca1b09..bef62b0b3 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/SettingsListFragment.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/SettingsListFragment.java
@@ -524,7 +524,7 @@ public void doneSaveListState()
 
 
     /**
-     * This class is used to display a list of accounts. The list can be modified by the {@link #addAccount(Account)} and {@link #clear()} method. The dialog is
+     * This class is used to display a list of accounts. The dialog is
      * supposed to display accounts, which support the insert intent to create new task list. The selection must be done before. The adapter will show all
      * accounts, which are added.
      *
diff --git a/opentasks/src/main/java/org/dmfs/tasks/TaskListFragment.java b/opentasks/src/main/java/org/dmfs/tasks/TaskListFragment.java
index 1adaa320e..1ee755df5 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/TaskListFragment.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/TaskListFragment.java
@@ -99,8 +99,7 @@ public class TaskListFragment extends SupportFragment
     private final static AbstractFilter COMPLETED_FILTER = new ConstantFilter(Tasks.IS_CLOSED + "=0");
 
     /**
-     * The group descriptor to use. At present this can be either {@link ByDueDate#GROUP_DESCRIPTOR}, {@link ByCompleted#GROUP_DESCRIPTOR} or
-     * {@link ByList#GROUP_DESCRIPTOR}.
+     * The group descriptor to use.
      */
     private ExpandableGroupDescriptor mGroupDescriptor;
 
@@ -192,8 +191,6 @@ public interface Callbacks
          *         The {@link Uri} of the selected task.
          * @param forceReload
          *         Whether to reload the task or not.
-         * @param sender
-         *         The sender of the callback.
          */
         void onItemSelected(Uri taskUri, boolean forceReload, int pagePosition);
 
@@ -599,8 +596,6 @@ public void onClick(DialogInterface dialog, int which)
      *
      * @param taskUri
      *         The {@link Uri} of the task.
-     * @param taskTitle
-     *         The name/title of the task.
      */
     private void openTaskEditor(final Uri taskUri, final String accountType)
     {
diff --git a/opentasks/src/main/java/org/dmfs/tasks/groupings/filters/ConstantFilter.java b/opentasks/src/main/java/org/dmfs/tasks/groupings/filters/ConstantFilter.java
index 1982276fb..80ce89773 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/groupings/filters/ConstantFilter.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/groupings/filters/ConstantFilter.java
@@ -16,6 +16,7 @@
 
 package org.dmfs.tasks.groupings.filters;
 
+import java.util.Collections;
 import java.util.List;
 
 
@@ -61,10 +62,7 @@ public void getSelectionArgs(List<String> selectionArgs)
         if (mSelectionArgs != null)
         {
             // append all arguments, if any
-            for (String arg : mSelectionArgs)
-            {
-                selectionArgs.add(arg);
-            }
+            Collections.addAll(selectionArgs, mSelectionArgs);
         }
     }
 }
diff --git a/opentasks/src/main/java/org/dmfs/tasks/model/TimeZoneChoicesAdapter.java b/opentasks/src/main/java/org/dmfs/tasks/model/TimeZoneChoicesAdapter.java
index 69ba78961..8f8ef22b6 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/model/TimeZoneChoicesAdapter.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/model/TimeZoneChoicesAdapter.java
@@ -196,10 +196,7 @@ private String getGMTOffsetString(long millis)
         long absmillis = (millis < 0) ? -millis : millis;
         int minutes = (int) ((absmillis / (1000 * 60)) % 60);
         int hours = (int) ((absmillis / (1000 * 60 * 60)) % 24);
-        StringBuilder builder = new StringBuilder("(GMT");
-        builder.append((millis >= 0) ? '+' : '-');
-        builder.append(String.format("%02d:%02d", hours, minutes)).append(") ");
-        return builder.toString();
+        return String.format("(GMT%c%02d:%02d) ", millis >= 0 ? '+' : '-', hours, minutes);
     }
 
 
diff --git a/opentasks/src/main/java/org/dmfs/tasks/model/adapters/TimezoneFieldAdapter.java b/opentasks/src/main/java/org/dmfs/tasks/model/adapters/TimezoneFieldAdapter.java
index 4f3300e3c..ae6bcc812 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/model/adapters/TimezoneFieldAdapter.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/model/adapters/TimezoneFieldAdapter.java
@@ -147,9 +147,6 @@ public TimeZone get(Cursor cursor)
     /**
      * Returns whether this is an "all-day timezone".
      *
-     * @param cursor
-     *         The cursor to read from.
-     *
      * @return <code>true</code> if the cursor points to an all-day date.
      */
     public boolean isAllDay(ContentSet values)
@@ -167,9 +164,6 @@ public boolean isAllDay(ContentSet values)
     /**
      * Returns whether this is an "all-day timezone".
      *
-     * @param cursor
-     *         The cursor to read from.
-     *
      * @return <code>true</code> if the cursor points to an all-day date.
      */
     public boolean isAllDay(ContentValues values)
diff --git a/opentasks/src/main/java/org/dmfs/tasks/model/constraints/UpdateAllDay.java b/opentasks/src/main/java/org/dmfs/tasks/model/constraints/UpdateAllDay.java
index 2b7e90045..61ce2da9d 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/model/constraints/UpdateAllDay.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/model/constraints/UpdateAllDay.java
@@ -58,11 +58,11 @@ public Boolean apply(ContentSet currentValues, Boolean oldValue, Boolean newValu
                 }
 
             }
-            else if ((newValue == null || !newValue) && oldValue != null && oldValue)
-            {
+            // else if ((newValue == null || !newValue) && oldValue != null && oldValue)
+             // {
                 // ideally we move the time to 00:00:00 in the new time zone. Unfortunately we don't know the time zone at this point
                 // TODO: move the time to 00:00:00 in the new time zone, somehow
-            }
+            // }
         }
         return newValue;
     }
diff --git a/opentasks/src/main/java/org/dmfs/tasks/notification/NotificationActionUtils.java b/opentasks/src/main/java/org/dmfs/tasks/notification/NotificationActionUtils.java
index 1b5717dcf..3eb2105b2 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/notification/NotificationActionUtils.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/notification/NotificationActionUtils.java
@@ -81,7 +81,7 @@ public static void sendDueAlarmNotification(Context context, String title, Uri t
     {
         NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
 
-        String dueString = "";
+        String dueString;
         if (dueAllDay)
         {
             dueString = context.getString(R.string.notification_task_due_today);
@@ -159,7 +159,7 @@ public static void sendDueAlarmNotification(Context context, String title, Uri t
     public static void sendStartNotification(Context context, String title, Uri taskUri, int notificationId, long startDate, boolean startAllDay,
                                              String timezone, boolean silent)
     {
-        String startString = "";
+        String startString;
         if (startAllDay)
         {
             startString = context.getString(R.string.notification_task_start_today);
@@ -423,7 +423,7 @@ public static String formatTime(Context context, Time time)
 
         // return combined date and time
         String timeString = new DateFormatter(context).format(time, DateFormatContext.NOTIFICATION_VIEW_TIME);
-        return new StringBuilder().append(dateString).append(", ").append(timeString).toString();
+        return dateString + ", " + timeString;
     }
 
 
diff --git a/opentasks/src/main/java/org/dmfs/tasks/notification/NotificationUpdaterService.java b/opentasks/src/main/java/org/dmfs/tasks/notification/NotificationUpdaterService.java
index fb8ebe197..b8bdcdcb7 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/notification/NotificationUpdaterService.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/notification/NotificationUpdaterService.java
@@ -740,7 +740,7 @@ public static PendingIntent getUnpinActionIntent(Context context, int notificati
     private static PendingIntent getDelayActionIntent(Context context, int notificationId, Uri taskUri, long due, boolean delay1h, String timezone,
                                                       boolean allday)
     {
-        String action = null;
+        String action;
         if (delay1h)
         {
             action = ACTION_DELAY_1H;
diff --git a/opentasks/src/main/java/org/dmfs/tasks/utils/ContentValueMapper.java b/opentasks/src/main/java/org/dmfs/tasks/utils/ContentValueMapper.java
index 73878bc06..088573fa7 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/utils/ContentValueMapper.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/utils/ContentValueMapper.java
@@ -20,6 +20,7 @@
 import android.database.Cursor;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 
@@ -45,10 +46,7 @@ public class ContentValueMapper
      */
     public ContentValueMapper addString(String... columnNames)
     {
-        for (String column : columnNames)
-        {
-            StringColumns.add(column);
-        }
+        Collections.addAll(StringColumns, columnNames);
         return this;
     }
 
@@ -63,10 +61,7 @@ public ContentValueMapper addString(String... columnNames)
      */
     public ContentValueMapper addInteger(String... columnNames)
     {
-        for (String column : columnNames)
-        {
-            IntegerColumns.add(column);
-        }
+        Collections.addAll(IntegerColumns, columnNames);
         return this;
     }
 
@@ -81,10 +76,7 @@ public ContentValueMapper addInteger(String... columnNames)
      */
     public ContentValueMapper addLong(String... columnNames)
     {
-        for (String column : columnNames)
-        {
-            LongColumns.add(column);
-        }
+        Collections.addAll(LongColumns, columnNames);
         return this;
     }
 
diff --git a/opentasks/src/main/java/org/dmfs/tasks/utils/DateFormatter.java b/opentasks/src/main/java/org/dmfs/tasks/utils/DateFormatter.java
index 392a3eeff..c196b0612 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/utils/DateFormatter.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/utils/DateFormatter.java
@@ -227,9 +227,6 @@ public DateFormatter(Context context)
      *
      * @param date
      *         The due date to format.
-     * @param useToday
-     *         <code>true</code> to write "today" instead of the date when the date is on the present day
-     *
      * @return A string with the formatted due date.
      */
     public String format(Time date, DateFormatContext dateContext)
@@ -255,9 +252,6 @@ public String format(DateTime date, DateFormatContext dateContext)
      *
      * @param date
      *         The due date to format.
-     * @param useToday
-     *         <code>true</code> to write "today" instead of the date when the date is on the present day
-     *
      * @return A string with the formatted due date.
      */
     public String format(Time date, Time now, DateFormatContext dateContext)
diff --git a/opentasks/src/main/java/org/dmfs/tasks/utils/ExpandableChildDescriptor.java b/opentasks/src/main/java/org/dmfs/tasks/utils/ExpandableChildDescriptor.java
index dbc62bd56..abf17329d 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/utils/ExpandableChildDescriptor.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/utils/ExpandableChildDescriptor.java
@@ -180,7 +180,7 @@ public CursorLoader getCursorLoader(Context context, Cursor cursor, AbstractFilt
         String selectionString = null;
         if (selection != null)
         {
-            selectionString = selection.toString();
+            selectionString = selection;
         }
         return new CursorLoader(context, mUri, mProjection, selectionString, selectionArgs, mSortOrder);
     }
diff --git a/opentasks/src/main/java/org/dmfs/tasks/utils/FlingDetector.java b/opentasks/src/main/java/org/dmfs/tasks/utils/FlingDetector.java
index cdd2acd86..202cd7a39 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/utils/FlingDetector.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/utils/FlingDetector.java
@@ -137,8 +137,6 @@ public interface OnFlingListener
          *         The parent {@link ListView} of the element that was flung.
          * @param listElement
          *         The list element that is flinging
-         * @param pos
-         *         The position of the item that was flung
          * @param direction
          *         Flag to indicate in which direction the fling was performed.
          */
diff --git a/opentasks/src/main/java/org/dmfs/tasks/utils/SearchChildDescriptor.java b/opentasks/src/main/java/org/dmfs/tasks/utils/SearchChildDescriptor.java
index 5a3114e5d..85facdfc9 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/utils/SearchChildDescriptor.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/utils/SearchChildDescriptor.java
@@ -57,8 +57,7 @@ public SearchChildDescriptor(String authority, String queryColumn, String[] proj
 
 
     /**
-     * Get a new {@link CursorLoader} and update it's selection arguments with the values in {@code cursor} as defined by {@code selectionColumns} in
-     * {@link #ExpandableChildDescriptor(Uri, String[], String, String, int...)}. Also applies any selection defined by <code>filter</code>.
+     * Get a new {@link CursorLoader} and update it's selection arguments with the values in {@code cursor} as defined by {@code selectionColumns}. Also applies any selection defined by <code>filter</code>.
      *
      * @param context
      *         A {@link Context}.
diff --git a/opentasks/src/main/java/org/dmfs/tasks/widget/TimeFieldEditor.java b/opentasks/src/main/java/org/dmfs/tasks/widget/TimeFieldEditor.java
index 4aef6ab9f..4424165e3 100644
--- a/opentasks/src/main/java/org/dmfs/tasks/widget/TimeFieldEditor.java
+++ b/opentasks/src/main/java/org/dmfs/tasks/widget/TimeFieldEditor.java
@@ -429,7 +429,7 @@ private Dialog getDatePickerWithSamsungWorkaround()
         // The datepicker on Samsung Android 5.0 devices crashes for certain languages, e.g. french and polish
         // We fall back to the holo datepicker in this case. German and English are confirmed to work.
         if (Build.VERSION.SDK_INT == VERSION_CODES.LOLLIPOP && Build.MANUFACTURER.equalsIgnoreCase("samsung")
-                && !("en".equals(Locale.getDefault().getLanguage().toString())))
+                && !("en".equals(Locale.getDefault().getLanguage())))
         {
             // get holo picker
             DatePickerDialog dialog = new DatePickerDialog(getContext(), R.style.DatePickerHolo, TimeFieldEditor.this, mDateTime.year, mDateTime.month,
diff --git a/opentasks/src/main/res/drawable/org_dmfs_colorshape_checkbox_selector_dark.xml b/opentasks/src/main/res/drawable/org_dmfs_colorshape_checkbox_selector_dark.xml
index 22fc0032e..17bff7517 100644
--- a/opentasks/src/main/res/drawable/org_dmfs_colorshape_checkbox_selector_dark.xml
+++ b/opentasks/src/main/res/drawable/org_dmfs_colorshape_checkbox_selector_dark.xml
@@ -2,8 +2,8 @@
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 
     <item android:drawable="@drawable/ic_checkmark_blank"
-            android:state_checked="false"></item>
+            android:state_checked="false"/>
     <item android:drawable="@drawable/ic_checkmark_dark"
-            android:state_checked="true"></item>
+            android:state_checked="true"/>
 
 </selector>
\ No newline at end of file
diff --git a/opentasks/src/main/res/drawable/org_dmfs_colorshape_checkbox_selector_light.xml b/opentasks/src/main/res/drawable/org_dmfs_colorshape_checkbox_selector_light.xml
index 7ea449304..d8ad95930 100644
--- a/opentasks/src/main/res/drawable/org_dmfs_colorshape_checkbox_selector_light.xml
+++ b/opentasks/src/main/res/drawable/org_dmfs_colorshape_checkbox_selector_light.xml
@@ -2,8 +2,8 @@
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 
     <item android:drawable="@drawable/ic_checkmark_blank"
-            android:state_checked="false"></item>
+            android:state_checked="false"/>
     <item android:drawable="@drawable/ic_checkmark_light"
-            android:state_checked="true"></item>
+            android:state_checked="true"/>
 
 </selector>
\ No newline at end of file
diff --git a/opentasks/src/main/res/drawable/org_dmfs_colorshape_checkbox_white_shape_selector.xml b/opentasks/src/main/res/drawable/org_dmfs_colorshape_checkbox_white_shape_selector.xml
index 817579212..bc6b2cc56 100644
--- a/opentasks/src/main/res/drawable/org_dmfs_colorshape_checkbox_white_shape_selector.xml
+++ b/opentasks/src/main/res/drawable/org_dmfs_colorshape_checkbox_white_shape_selector.xml
@@ -2,8 +2,8 @@
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 
     <item android:drawable="@drawable/rect_shape_corners_white_insert"
-            android:state_checked="false"></item>
+            android:state_checked="false"/>
     <item android:drawable="@android:color/transparent"
-            android:state_checked="true"></item>
+            android:state_checked="true"/>
 
 </selector>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/boolean_field_editor.xml b/opentasks/src/main/res/layout/boolean_field_editor.xml
index 299b3e2b0..5bec2b7b3 100644
--- a/opentasks/src/main/res/layout/boolean_field_editor.xml
+++ b/opentasks/src/main/res/layout/boolean_field_editor.xml
@@ -16,7 +16,7 @@
             android:layout_gravity="center"
             android:layout_margin="0dp"
             android:padding="0dp"
-            android:duplicateParentState="true"></CheckBox>
+            android:duplicateParentState="true"/>
 
     <TextView
             android:id="@android:id/title"
diff --git a/opentasks/src/main/res/layout/boolean_field_view.xml b/opentasks/src/main/res/layout/boolean_field_view.xml
index 3c9450567..db272aa4d 100644
--- a/opentasks/src/main/res/layout/boolean_field_view.xml
+++ b/opentasks/src/main/res/layout/boolean_field_view.xml
@@ -21,7 +21,7 @@
                 android:layout_gravity="center"
                 android:layout_marginTop="2dip"
                 android:clickable="false"
-                android:focusable="false"></CheckBox>
+                android:focusable="false"/>
 
         <TextView
                 android:id="@android:id/title"
diff --git a/opentasks/src/main/res/layout/checklist_field_editor_element.xml b/opentasks/src/main/res/layout/checklist_field_editor_element.xml
index 79c3cb610..01c54cbde 100644
--- a/opentasks/src/main/res/layout/checklist_field_editor_element.xml
+++ b/opentasks/src/main/res/layout/checklist_field_editor_element.xml
@@ -18,6 +18,6 @@
             android:layout_weight="1"
             android:inputType="textCapSentences"
             android:singleLine="true"
-            android:textAllCaps="false"></EditText>
+            android:textAllCaps="false"/>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/choices_field_view.xml b/opentasks/src/main/res/layout/choices_field_view.xml
index ae8ea920d..087301fd8 100644
--- a/opentasks/src/main/res/layout/choices_field_view.xml
+++ b/opentasks/src/main/res/layout/choices_field_view.xml
@@ -13,6 +13,6 @@
             style="@style/field_view_text_value"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_gravity="center"></TextView>
+            android:layout_gravity="center"/>
 
 </org.dmfs.tasks.widget.ChoicesFieldView>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/fragment_quick_add_dialog.xml b/opentasks/src/main/res/layout/fragment_quick_add_dialog.xml
index 04b2b017b..f021be295 100644
--- a/opentasks/src/main/res/layout/fragment_quick_add_dialog.xml
+++ b/opentasks/src/main/res/layout/fragment_quick_add_dialog.xml
@@ -11,7 +11,7 @@
     <FrameLayout
             android:id="@+id/header_container"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"></FrameLayout>
+            android:layout_height="wrap_content"/>
 
     <FrameLayout
             android:layout_width="match_parent"
diff --git a/opentasks/src/main/res/layout/fragment_task_edit_detail.xml b/opentasks/src/main/res/layout/fragment_task_edit_detail.xml
index 14b66d1aa..d6041da4f 100644
--- a/opentasks/src/main/res/layout/fragment_task_edit_detail.xml
+++ b/opentasks/src/main/res/layout/fragment_task_edit_detail.xml
@@ -18,13 +18,13 @@
                 android:id="@+id/header"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
-                android:orientation="vertical"></LinearLayout>
+                android:orientation="vertical"/>
 
         <LinearLayout
                 android:id="@+id/content"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
-                android:orientation="vertical"></LinearLayout>
+                android:orientation="vertical"/>
     </LinearLayout>
 
 </org.dmfs.tasks.widget.ListenableScrollView>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/fragment_task_edit_detail_twopane.xml b/opentasks/src/main/res/layout/fragment_task_edit_detail_twopane.xml
index b4728182d..52e13934a 100644
--- a/opentasks/src/main/res/layout/fragment_task_edit_detail_twopane.xml
+++ b/opentasks/src/main/res/layout/fragment_task_edit_detail_twopane.xml
@@ -16,7 +16,7 @@
                 android:id="@+id/header"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
-                android:orientation="vertical"></LinearLayout>
+                android:orientation="vertical"/>
 
         <LinearLayout
                 android:id="@+id/body"
@@ -31,7 +31,7 @@
                     android:id="@+id/content"
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
-                    android:orientation="vertical"></LinearLayout>
+                    android:orientation="vertical"/>
         </LinearLayout>
     </LinearLayout>
 
diff --git a/opentasks/src/main/res/layout/fragment_task_view_detail.xml b/opentasks/src/main/res/layout/fragment_task_view_detail.xml
index 1407fe1a4..456449c48 100644
--- a/opentasks/src/main/res/layout/fragment_task_view_detail.xml
+++ b/opentasks/src/main/res/layout/fragment_task_view_detail.xml
@@ -48,7 +48,7 @@
                             android:maxLines="3"
                             android:textColor="#ffffffff"
                             android:textColorLink="#d0ffffff"
-                            android:textSize="28sp"></TextView>
+                            android:textSize="28sp"/>
                 </org.dmfs.tasks.widget.TextFieldView>
 
                 <org.dmfs.tasks.widget.TimeFieldView xmlns:android="http://schemas.android.com/apk/res/android"
@@ -73,14 +73,14 @@
                             android:gravity="center_vertical"
                             android:includeFontPadding="false"
                             android:textColor="#ffffffff"
-                            android:textSize="18sp"></TextView>
+                            android:textSize="18sp"/>
 
                     <TextView
                             android:id="@android:id/text2"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:layout_marginLeft="44dp"
-                            android:textColor="#ffffffff"></TextView>
+                            android:textColor="#ffffffff"/>
 
                     <LinearLayout
                             android:id="@+id/buttons"
@@ -128,7 +128,7 @@
                 android:id="@+id/content"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:orientation="vertical"></LinearLayout>
+                android:orientation="vertical"/>
     </android.support.v4.widget.NestedScrollView>
 
     <android.support.design.widget.FloatingActionButton
diff --git a/opentasks/src/main/res/layout/list_spinner_item_dropdown.xml b/opentasks/src/main/res/layout/list_spinner_item_dropdown.xml
index 3a73dbdba..c6f33103d 100644
--- a/opentasks/src/main/res/layout/list_spinner_item_dropdown.xml
+++ b/opentasks/src/main/res/layout/list_spinner_item_dropdown.xml
@@ -11,7 +11,7 @@
             android:layout_width="18sp"
             android:layout_height="18sp"
             android:layout_gravity="center_vertical"
-            android:layout_marginLeft="5sp"></View>
+            android:layout_marginLeft="5sp"/>
 
     <LinearLayout
             android:layout_width="0dp"
@@ -27,7 +27,7 @@
                 android:layout_height="wrap_content"
                 android:ellipsize="end"
                 android:singleLine="true"
-                android:textAppearance="@android:style/TextAppearance.Medium"></TextView>
+                android:textAppearance="@android:style/TextAppearance.Medium"/>
 
         <TextView
                 android:id="@+id/task_list_account_name"
@@ -35,7 +35,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:ellipsize="end"
-                android:singleLine="true"></TextView>
+                android:singleLine="true"/>
     </LinearLayout>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/list_spinner_item_selected_quick_add.xml b/opentasks/src/main/res/layout/list_spinner_item_selected_quick_add.xml
index 88ef065c1..ca650e4e5 100644
--- a/opentasks/src/main/res/layout/list_spinner_item_selected_quick_add.xml
+++ b/opentasks/src/main/res/layout/list_spinner_item_selected_quick_add.xml
@@ -11,6 +11,6 @@
             android:ellipsize="end"
             android:singleLine="true"
             android:textAppearance="@android:style/TextAppearance.Medium"
-            android:textColor="#c0ffffff"></TextView>
+            android:textColor="#c0ffffff"/>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/percentage_field_editor.xml b/opentasks/src/main/res/layout/percentage_field_editor.xml
index 6cae5615f..7302bd070 100644
--- a/opentasks/src/main/res/layout/percentage_field_editor.xml
+++ b/opentasks/src/main/res/layout/percentage_field_editor.xml
@@ -25,7 +25,7 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginLeft="4dip"
-                android:layout_marginRight="4dip"></TextView>
+                android:layout_marginRight="4dip"/>
     </LinearLayout>
 
 </org.dmfs.tasks.widget.PercentageFieldEditor>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/percentage_field_view.xml b/opentasks/src/main/res/layout/percentage_field_view.xml
index 776bec232..4e63a68f9 100644
--- a/opentasks/src/main/res/layout/percentage_field_view.xml
+++ b/opentasks/src/main/res/layout/percentage_field_view.xml
@@ -29,7 +29,7 @@
                 android:layout_height="wrap_content"
                 android:layout_marginLeft="4dip"
                 android:layout_marginRight="4dip"
-                android:gravity="center_vertical"></TextView>
+                android:gravity="center_vertical"/>
     </LinearLayout>
 
 </org.dmfs.tasks.widget.PercentageFieldView>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/task_list_widget.xml b/opentasks/src/main/res/layout/task_list_widget.xml
index 4e5944343..d976b6676 100644
--- a/opentasks/src/main/res/layout/task_list_widget.xml
+++ b/opentasks/src/main/res/layout/task_list_widget.xml
@@ -45,6 +45,6 @@
             android:layout_marginLeft="3sp"
             android:layout_marginRight="3sp"
             android:layout_weight="1"
-            tools:listitem="@layout/task_list_widget_item"></ListView>
+            tools:listitem="@layout/task_list_widget_item"/>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/text_field_editor.xml b/opentasks/src/main/res/layout/text_field_editor.xml
index f04d6da49..ed9d4a14c 100644
--- a/opentasks/src/main/res/layout/text_field_editor.xml
+++ b/opentasks/src/main/res/layout/text_field_editor.xml
@@ -9,6 +9,6 @@
             style="@style/field_editor_text_value"
             android:inputType="textCapSentences"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"></EditText>
+            android:layout_height="wrap_content"/>
 
 </org.dmfs.tasks.widget.TextFieldEditor>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/text_field_view.xml b/opentasks/src/main/res/layout/text_field_view.xml
index e0d7e5608..b6d5df5e9 100644
--- a/opentasks/src/main/res/layout/text_field_view.xml
+++ b/opentasks/src/main/res/layout/text_field_view.xml
@@ -13,6 +13,6 @@
             style="@style/field_view_text_value"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:autoLink="all"></TextView>
+            android:autoLink="all"/>
 
 </org.dmfs.tasks.widget.TextFieldView>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/text_field_view_nodivider.xml b/opentasks/src/main/res/layout/text_field_view_nodivider.xml
index eb313531c..0b6fe540f 100644
--- a/opentasks/src/main/res/layout/text_field_view_nodivider.xml
+++ b/opentasks/src/main/res/layout/text_field_view_nodivider.xml
@@ -16,6 +16,6 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:ellipsize="end"
-            android:singleLine="true"></TextView>
+            android:singleLine="true"/>
 
 </org.dmfs.tasks.widget.TextFieldView>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/text_field_view_nodivider_large.xml b/opentasks/src/main/res/layout/text_field_view_nodivider_large.xml
index a48a685a3..c7d658f10 100644
--- a/opentasks/src/main/res/layout/text_field_view_nodivider_large.xml
+++ b/opentasks/src/main/res/layout/text_field_view_nodivider_large.xml
@@ -22,6 +22,6 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:ellipsize="end"
-            android:singleLine="true"></TextView>
+            android:singleLine="true"/>
 
 </org.dmfs.tasks.widget.TextFieldView>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/time_field_editor.xml b/opentasks/src/main/res/layout/time_field_editor.xml
index 6f6c90722..586f0d24a 100644
--- a/opentasks/src/main/res/layout/time_field_editor.xml
+++ b/opentasks/src/main/res/layout/time_field_editor.xml
@@ -17,14 +17,14 @@
                 android:layout_width="0px"
                 android:layout_height="wrap_content"
                 android:layout_weight="5"
-                android:gravity="center|left"></Button>
+                android:gravity="center|left"/>
 
         <Button
                 android:id="@+id/task_time_picker"
                 style="@style/TextAppearance.EditTask_SpinnerButton"
                 android:layout_width="0px"
                 android:layout_height="wrap_content"
-                android:layout_weight="4"></Button>
+                android:layout_weight="4"/>
 
         <ImageButton
                 android:id="@+id/task_time_picker_remove"
@@ -32,7 +32,7 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_gravity="center"
-                android:gravity="center"></ImageButton>
+                android:gravity="center"/>
     </LinearLayout>
 
 </org.dmfs.tasks.widget.TimeFieldEditor>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/time_field_view.xml b/opentasks/src/main/res/layout/time_field_view.xml
index cbf681d96..1e72914d9 100644
--- a/opentasks/src/main/res/layout/time_field_view.xml
+++ b/opentasks/src/main/res/layout/time_field_view.xml
@@ -17,13 +17,13 @@
                 android:id="@android:id/text1"
                 style="@style/field_view_text_value"
                 android:layout_width="wrap_content"
-                android:layout_height="wrap_content"></TextView>
+                android:layout_height="wrap_content"/>
 
         <TextView
                 android:id="@android:id/text2"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:textColor="#ff808080"></TextView>
+                android:textColor="#ff808080"/>
 
         <LinearLayout
                 android:id="@+id/buttons"
diff --git a/opentasks/src/main/res/layout/url_field_editor.xml b/opentasks/src/main/res/layout/url_field_editor.xml
index f9e033d34..706eb50fa 100644
--- a/opentasks/src/main/res/layout/url_field_editor.xml
+++ b/opentasks/src/main/res/layout/url_field_editor.xml
@@ -9,6 +9,6 @@
             style="@style/field_editor_text_value"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:inputType="textUri"></EditText>
+            android:inputType="textUri"/>
 
 </org.dmfs.tasks.widget.UrlFieldEditor>
\ No newline at end of file
diff --git a/opentasks/src/main/res/layout/url_field_view.xml b/opentasks/src/main/res/layout/url_field_view.xml
index 13ec98eca..7f093025d 100644
--- a/opentasks/src/main/res/layout/url_field_view.xml
+++ b/opentasks/src/main/res/layout/url_field_view.xml
@@ -12,6 +12,6 @@
             android:id="@android:id/text1"
             style="@style/field_view_text_value"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"></TextView>
+            android:layout_height="wrap_content"/>
 
 </org.dmfs.tasks.widget.UrlFieldView>
\ No newline at end of file