diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 0439bbd3a..dd5c0b80e 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -94,6 +94,7 @@ android:theme="@style/LightBase" android:allowBackup="true" android:name=".Tasks" + android:supportsRtl="true" android:manageSpaceActivity="com.todoroo.astrid.core.OldTaskPreferences"> diff --git a/src/main/java/com/todoroo/astrid/files/FilesControlSet.java b/src/main/java/com/todoroo/astrid/files/FilesControlSet.java index 97c012f42..20a917ce8 100644 --- a/src/main/java/com/todoroo/astrid/files/FilesControlSet.java +++ b/src/main/java/com/todoroo/astrid/files/FilesControlSet.java @@ -55,6 +55,7 @@ public class FilesControlSet extends TaskEditControlFragment { public static final int TAG = R.string.TEA_ctrl_files_pref; + private static final char LEFT_TO_RIGHT_MARK = '\u200e'; private static final int REQUEST_ADD_ATTACHMENT = 50; private static final String EXTRA_UUID = "extra_uuid"; @@ -140,7 +141,7 @@ public class FilesControlSet extends TaskEditControlFragment { } private void addAttachment(TaskAttachment taskAttachment) { - View fileRow = getActivity().getLayoutInflater().inflate(R.layout.file_row, null); + View fileRow = getActivity().getLayoutInflater().inflate(R.layout.file_row, attachmentContainer, false); fileRow.setTag(taskAttachment); attachmentContainer.addView(fileRow); addAttachment(taskAttachment, fileRow); @@ -148,7 +149,7 @@ public class FilesControlSet extends TaskEditControlFragment { private void addAttachment(final TaskAttachment taskAttachment, final View fileRow) { TextView nameView = (TextView) fileRow.findViewById(R.id.file_text); - String name = taskAttachment.getName(); + String name = LEFT_TO_RIGHT_MARK + taskAttachment.getName(); nameView.setText(name); nameView.setOnClickListener(new OnClickListener() { @Override diff --git a/src/main/java/com/todoroo/astrid/tags/TagsControlSet.java b/src/main/java/com/todoroo/astrid/tags/TagsControlSet.java index a7e5e1985..e163c42bf 100644 --- a/src/main/java/com/todoroo/astrid/tags/TagsControlSet.java +++ b/src/main/java/com/todoroo/astrid/tags/TagsControlSet.java @@ -70,6 +70,7 @@ import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Sets.difference; import static com.google.common.collect.Sets.filter; import static com.google.common.collect.Sets.newHashSet; +import static com.todoroo.andlib.utility.AndroidUtilities.atLeastJellybeanMR1; /** * Control set to manage adding and removing tags @@ -163,10 +164,14 @@ public final class TagsControlSet extends TaskEditControlFragment { TagData tagData = allTags.get(position); ThemeColor themeColor = themeCache.getThemeColor(tagData.getColor() >= 0 ? tagData.getColor() : 19); view.setText(tagData.getName()); - Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_label_24dp)); - drawable.mutate(); - DrawableCompat.setTint(drawable, themeColor.getPrimaryColor()); - view.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null); + Drawable original = getResources().getDrawable(R.drawable.ic_label_24dp); + Drawable wrapped = DrawableCompat.wrap(original.mutate()); + DrawableCompat.setTint(wrapped, themeColor.getPrimaryColor()); + if (atLeastJellybeanMR1()) { + view.setCompoundDrawablesRelativeWithIntrinsicBounds(wrapped, null, null, null); + } else { + view.setCompoundDrawablesWithIntrinsicBounds(wrapped, null, null, null); + } return view; } }); diff --git a/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java b/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java index 153d37dc0..acc0e45e1 100644 --- a/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java +++ b/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java @@ -97,6 +97,7 @@ public class HideUntilControlSet extends TaskEditControlFragment implements OnIt selectedItemPosition = ((AdapterView) parent).getSelectedItemPosition(); } TextView tv = (TextView) inflater.inflate(android.R.layout.simple_spinner_item, parent, false); + tv.setPadding(0, 0, 0, 0); HideUntilValue value = getItem(selectedItemPosition); if (value.setting == Task.HIDE_UNTIL_NONE) { clearButton.setVisibility(View.GONE); diff --git a/src/main/java/org/tasks/dialogs/ThemePickerDialog.java b/src/main/java/org/tasks/dialogs/ThemePickerDialog.java index d43608786..0459ed76e 100644 --- a/src/main/java/org/tasks/dialogs/ThemePickerDialog.java +++ b/src/main/java/org/tasks/dialogs/ThemePickerDialog.java @@ -4,7 +4,6 @@ import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; -import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.v4.graphics.drawable.DrawableCompat; @@ -12,7 +11,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; -import android.widget.ImageView; import android.widget.ListAdapter; import android.widget.TextView; @@ -26,6 +24,8 @@ import org.tasks.themes.ThemeCache; import javax.inject.Inject; +import static com.todoroo.andlib.utility.AndroidUtilities.atLeastJellybeanMR1; + public class ThemePickerDialog extends InjectingDialogFragment { private static final String EXTRA_COLOR_PALETTE = "extra_color_palette"; @@ -64,7 +64,7 @@ public class ThemePickerDialog extends InjectingDialogFragment { palette = (ColorPalette) savedInstanceState.getSerializable(EXTRA_COLOR_PALETTE); } - final String[] themes = context.getResources().getStringArray(getNameRes()); + final String[] themes = getResources().getStringArray(getNameRes()); final boolean purchasedThemes = preferences.hasPurchase(R.string.p_purchased_themes); @@ -72,25 +72,21 @@ public class ThemePickerDialog extends InjectingDialogFragment { ListAdapter adapter = new ArrayAdapter(context, R.layout.color_selection_row, themes) { @Override public View getView(int position, View convertView, ViewGroup parent) { - View row = convertView; - - if (row == null) { - row = inflater.inflate(R.layout.color_selection_row, parent, false); - } - - Resources resources = context.getResources(); - ImageView primary = (ImageView) row.findViewById(R.id.color_primary); - Drawable original = resources.getDrawable(purchasedThemes || position < 2 + TextView textView = (TextView) (convertView == null + ? inflater.inflate(R.layout.color_selection_row, parent, false) + : convertView); + Drawable original = getResources().getDrawable(purchasedThemes || position < 2 ? R.drawable.ic_lens_black_24dp : R.drawable.ic_vpn_key_black_24dp); Drawable wrapped = DrawableCompat.wrap(original.mutate()); DrawableCompat.setTint(wrapped, getDisplayColor(position)); - primary.setImageDrawable(wrapped); - - TextView text = (TextView) row.findViewById(android.R.id.text1); - text.setText(themes[position]); - - return row; + if (atLeastJellybeanMR1()) { + textView.setCompoundDrawablesRelativeWithIntrinsicBounds(wrapped, null, null, null); + } else { + textView.setCompoundDrawablesWithIntrinsicBounds(wrapped, null, null, null); + } + textView.setText(themes[position]); + return textView; } }; diff --git a/src/main/java/org/tasks/ui/DeadlineControlSet.java b/src/main/java/org/tasks/ui/DeadlineControlSet.java index b87ed6c7d..f2109e6c3 100644 --- a/src/main/java/org/tasks/ui/DeadlineControlSet.java +++ b/src/main/java/org/tasks/ui/DeadlineControlSet.java @@ -39,7 +39,6 @@ import butterknife.OnItemSelected; import static com.google.common.collect.Lists.newArrayList; import static java.util.Arrays.asList; import static org.tasks.date.DateTimeUtils.newDateTime; -import static org.tasks.preferences.ResourceResolver.getData; public class DeadlineControlSet extends TaskEditControlFragment { @@ -138,6 +137,7 @@ public class DeadlineControlSet extends TaskEditControlFragment { selectedItemPosition = ((AdapterView) parent).getSelectedItemPosition(); } TextView tv = (TextView) inflater.inflate(android.R.layout.simple_spinner_item, parent, false); + tv.setPadding(0, 0, 0, 0); tv.setText(dueDateOptions.get(selectedItemPosition)); int textColor; if (date == 0) { @@ -162,6 +162,7 @@ public class DeadlineControlSet extends TaskEditControlFragment { selectedItemPosition = ((AdapterView) parent).getSelectedItemPosition(); } TextView tv = (TextView) inflater.inflate(android.R.layout.simple_spinner_item, parent, false); + tv.setPadding(0, 0, 0, 0); tv.setText(dueTimeOptions.get(selectedItemPosition)); int textColor; if (time == -1) { diff --git a/src/main/res/layout/color_selection_row.xml b/src/main/res/layout/color_selection_row.xml index ddc633333..d603110d6 100644 --- a/src/main/res/layout/color_selection_row.xml +++ b/src/main/res/layout/color_selection_row.xml @@ -1,22 +1,27 @@ - - + - + diff --git a/src/main/res/layout/comment_adapter_row.xml b/src/main/res/layout/comment_adapter_row.xml index 3cde7076d..006b45c4a 100644 --- a/src/main/res/layout/comment_adapter_row.xml +++ b/src/main/res/layout/comment_adapter_row.xml @@ -1,62 +1,39 @@ - - - - - - - - - - - - - - - + android:background="?attr/selectableItemBackground" + android:orientation="vertical" + android:padding="@dimen/keyline_first"> + + + + + - + tools:ignore="ContentDescription" /> + diff --git a/src/main/res/layout/control_set_clear_button.xml b/src/main/res/layout/control_set_clear_button.xml index 0ec8f5c5e..c431419e7 100644 --- a/src/main/res/layout/control_set_clear_button.xml +++ b/src/main/res/layout/control_set_clear_button.xml @@ -3,6 +3,8 @@ android:id="@+id/clear" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_alignParentEnd="true" + android:layout_alignParentRight="true" android:layout_gravity="center" android:layout_weight="1" android:alpha="?attr/alpha_secondary" diff --git a/src/main/res/layout/control_set_description.xml b/src/main/res/layout/control_set_description.xml index 35f643956..728a5e998 100644 --- a/src/main/res/layout/control_set_description.xml +++ b/src/main/res/layout/control_set_description.xml @@ -9,6 +9,8 @@ android:hint="@string/TEA_note_label" android:imeOptions="flagNoExtractUi" android:inputType="textCapSentences|textMultiLine" + android:paddingLeft="0dp" + android:paddingStart="0dp" android:paddingEnd="@dimen/keyline_first" android:paddingRight="@dimen/keyline_first" android:scrollbars="vertical" /> diff --git a/src/main/res/layout/control_set_priority.xml b/src/main/res/layout/control_set_priority.xml index fb5db580f..83603060d 100644 --- a/src/main/res/layout/control_set_priority.xml +++ b/src/main/res/layout/control_set_priority.xml @@ -11,7 +11,9 @@ android:layout_height="wrap_content" android:gravity="start|center_vertical" android:paddingEnd="@dimen/keyline_second" + android:paddingLeft="0dp" android:paddingRight="@dimen/keyline_second" + android:paddingStart="0dp" android:text="@string/TEA_importance_label" /> diff --git a/src/main/res/layout/control_set_reminders.xml b/src/main/res/layout/control_set_reminders.xml index 791b37cfa..98f7fdc9d 100644 --- a/src/main/res/layout/control_set_reminders.xml +++ b/src/main/res/layout/control_set_reminders.xml @@ -10,29 +10,44 @@ + android:layout_height="wrap_content" + android:orientation="vertical" /> - + android:layout_height="wrap_content"> + + + android:orientation="horizontal"> + android:text="@string/add_reminder" /> - - - - - - - + diff --git a/src/main/res/layout/control_set_template.xml b/src/main/res/layout/control_set_template.xml index ec77740ca..cf57d7d11 100644 --- a/src/main/res/layout/control_set_template.xml +++ b/src/main/res/layout/control_set_template.xml @@ -5,23 +5,25 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:paddingLeft="@dimen/keyline_first" - android:paddingStart="@dimen/keyline_first" - android:paddingRight="@dimen/keyline_first" - android:paddingEnd="@dimen/keyline_first" - android:paddingTop="@dimen/task_edit_drawable_padding_top_bottom" android:paddingBottom="@dimen/task_edit_drawable_padding_top_bottom" - tools:ignore="RtlSymmetry"> + android:paddingEnd="@dimen/keyline_first" + android:paddingLeft="0dp" + android:paddingRight="@dimen/keyline_first" + android:paddingStart="0dp" + android:paddingTop="@dimen/task_edit_drawable_padding_top_bottom"> \ No newline at end of file diff --git a/src/main/res/layout/control_set_title.xml b/src/main/res/layout/control_set_title.xml index 75915202a..394ea4da2 100644 --- a/src/main/res/layout/control_set_title.xml +++ b/src/main/res/layout/control_set_title.xml @@ -36,6 +36,8 @@ android:layout_height="wrap_content" android:layout_toRightOf="@id/completeBox" android:layout_toEndOf="@id/completeBox" + android:paddingLeft="0dp" + android:paddingStart="0dp" android:paddingRight="@dimen/keyline_first" android:paddingEnd="@dimen/keyline_first" android:background="@null" diff --git a/src/main/res/layout/file_row.xml b/src/main/res/layout/file_row.xml index 5833f23f3..689775413 100644 --- a/src/main/res/layout/file_row.xml +++ b/src/main/res/layout/file_row.xml @@ -3,21 +3,25 @@ ** ** See the file "LICENSE" for the full license governing this code. --> - + android:paddingBottom="@dimen/task_edit_double_padding_top_bottom"> + + - - - + diff --git a/src/main/res/layout/filter_adapter_row.xml b/src/main/res/layout/filter_adapter_row.xml index c60b708cf..1935357a8 100644 --- a/src/main/res/layout/filter_adapter_row.xml +++ b/src/main/res/layout/filter_adapter_row.xml @@ -1,17 +1,19 @@ + android:layout_height="wrap_content" + android:paddingBottom="12dp" + android:paddingTop="12dp"> - - + + - - - - - - + android:checked="false" + android:ellipsize="end" + android:fontFamily="@string/font_fontFamily_medium" + android:lines="1" + android:singleLine="true" + android:textColor="?android:attr/textColorPrimary" + android:textSize="14sp" /> diff --git a/src/main/res/layout/task_adapter_row_simple.xml b/src/main/res/layout/task_adapter_row_simple.xml index 6d8796c1a..1cc80fe83 100644 --- a/src/main/res/layout/task_adapter_row_simple.xml +++ b/src/main/res/layout/task_adapter_row_simple.xml @@ -53,6 +53,8 @@ android:ellipsize="end" android:gravity="center_vertical" android:maxLines="1" + android:paddingLeft="0dp" + android:paddingStart="0dp" android:paddingEnd="@dimen/keyline_first" android:paddingRight="@dimen/keyline_first" android:singleLine="true" /> @@ -64,6 +66,8 @@ android:layout_weight="1" android:gravity="end|center_vertical" android:orientation="vertical" + android:paddingLeft="0dp" + android:paddingStart="0dp" android:paddingEnd="@dimen/keyline_first" android:paddingRight="@dimen/keyline_first" android:visibility="gone"> @@ -93,6 +97,8 @@ android:layout_alignParentStart="true" android:ellipsize="end" android:gravity="center_vertical" + android:paddingLeft="0dp" + android:paddingStart="0dp" android:paddingEnd="@dimen/keyline_first" android:paddingRight="@dimen/keyline_first" android:singleLine="true" /> @@ -105,6 +111,8 @@ android:layout_alignParentRight="true" android:ellipsize="none" android:maxLines="1" + android:paddingLeft="0dp" + android:paddingStart="0dp" android:paddingEnd="@dimen/keyline_first" android:paddingRight="@dimen/keyline_first" android:singleLine="true" /> diff --git a/src/main/res/layout/widget_row.xml b/src/main/res/layout/widget_row.xml index ba73bb722..b48e05c02 100644 --- a/src/main/res/layout/widget_row.xml +++ b/src/main/res/layout/widget_row.xml @@ -3,30 +3,34 @@ ** ** See the file "LICENSE" for the full license governing this code. --> - + android:layout_height="wrap_content" + android:clickable="false"> + android:paddingStart="5dp" + android:paddingTop="5dp" /> + android:layout_toEndOf="@id/widget_complete_box" + android:layout_toRightOf="@id/widget_complete_box" + android:gravity="center_vertical" + android:orientation="vertical"> + android:textSize="12sp" + android:visibility="gone" /> - \ No newline at end of file + \ No newline at end of file