Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit f81e3f7d authored by Marten Gajda's avatar Marten Gajda Committed by GitHub
Browse files

Simplify and improve list layout (#984)

Improve the list layout by reducing margins and removing obsolete elements and code.
It doesn't quite fix the scrollbar size on tablets for some reason. This needs further investigation.
parent c8defa31
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -28,11 +28,14 @@
        <item name="colorError">@color/material_red_900</item>
        <item name="colorWarning">@color/material_deep_orange_900</item>

        <item name="android:textColorPrimaryInverse">#ffffffff</item>
        <item name="android:textColorSecondaryInverse">#c0ffffff</item>

        <item name="tabIconTint">?attr/colorPrimary</item>
        <item name="tabIndicatorColor">?attr/colorPrimary</item>

        <item name="android:scrollbarTrackVertical">@null</item>
        <item name="android:scrollbarSize">2dp</item>
        <item name="android:scrollbarSize">12dp</item>

    </style>

@@ -52,11 +55,14 @@
        <item name="colorError">@color/material_red_900</item>
        <item name="colorWarning">@color/material_deep_orange_900</item>

        <item name="android:textColorPrimaryInverse">#ffffffff</item>
        <item name="android:textColorSecondaryInverse">#c0ffffff</item>

        <item name="tabIconTint">?attr/colorPrimary</item>
        <item name="tabIndicatorColor">?attr/colorPrimary</item>

        <item name="android:scrollbarTrackVertical">@null</item>
        <item name="android:scrollbarSize">2dp</item>
        <item name="android:scrollbarSize">12dp</item>
    </style>

</resources>
+32 −48
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import android.database.Cursor;
import android.graphics.drawable.Drawable;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.format.Time;
import android.text.style.DynamicDrawableSpan;
import android.text.style.ImageSpan;
@@ -53,7 +52,6 @@ import androidx.collection.SparseArrayCompat;
import androidx.core.content.ContextCompat;

import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
import static java.lang.Boolean.TRUE;
import static org.dmfs.tasks.contract.TaskContract.TaskColumns.STATUS_CANCELLED;
import static org.dmfs.tasks.model.TaskFieldAdapters.IS_CLOSED;
import static org.dmfs.tasks.model.TaskFieldAdapters.STATUS;
@@ -137,24 +135,12 @@ public abstract class BaseTaskViewDescriptor implements ViewDescriptor

    protected void setDescription(View view, Cursor cursor)
    {
        View content = getView(view, R.id.cardcontent);
        TextView descriptionView = getView(content, android.R.id.text1);
        if (TextUtils.isEmpty(TaskFieldAdapters.DESCRIPTION.get(cursor)) || TRUE.equals(IS_CLOSED.get(cursor)))
        {
            content.setVisibility(View.GONE);
        }
        else
        {
            content.setVisibility(View.VISIBLE);
        TextView descriptionView = getView(view, android.R.id.text1);

        List<DescriptionItem> checkList = TaskFieldAdapters.DESCRIPTION_CHECKLIST.get(cursor);
        if (checkList.size() > 0 && !checkList.get(0).checkbox)
        {
            String description = checkList.get(0).text;
                if (description.length() > 150)
                {
                    description = description.substring(0, 150) + "…";
                }

            descriptionView.setVisibility(View.VISIBLE);
            descriptionView.setText(description);
        }
@@ -163,7 +149,7 @@ public abstract class BaseTaskViewDescriptor implements ViewDescriptor
            descriptionView.setVisibility(View.GONE);
        }

            TextView checkboxItemCountView = getView(content, R.id.checkbox_item_count);
        TextView checkboxItemCountView = getView(view, R.id.checkbox_item_count);
        Iterable<DescriptionItem> checkedItems = new Sieved<>(item -> item.checkbox, checkList);
        int checkboxItemCount = new Reduced<DescriptionItem, Integer>(() -> 0, (count, ignored) -> count + 1, checkedItems).value();
        if (checkboxItemCount == 0)
@@ -194,7 +180,6 @@ public abstract class BaseTaskViewDescriptor implements ViewDescriptor
            }
        }
    }
    }


    private Spannable withCheckBoxes(
@@ -205,7 +190,6 @@ public abstract class BaseTaskViewDescriptor implements ViewDescriptor
                view,
                withDrawable(
                        view,

                        new SpannableString(s),
                        CHECKED_PATTERN,
                        R.drawable.ic_outline_check_box_24),
@@ -228,7 +212,7 @@ public abstract class BaseTaskViewDescriptor implements ViewDescriptor
            int lineHeight = view.getLineHeight();
            int additionalSpace = (int) ((lineHeight - view.getTextSize()) / 2);
            drawable1.setBounds(0, 0, lineHeight + additionalSpace, lineHeight + additionalSpace);
            drawable1.setTint(0xc0ffffff);
            drawable1.setTint(view.getCurrentTextColor());
            s.setSpan(new ImageSpan(drawable1, DynamicDrawableSpan.ALIGN_BOTTOM), matcher.start(), matcher.end(), SPAN_EXCLUSIVE_EXCLUSIVE);
        }

+1 −4
Original line number Diff line number Diff line
@@ -12,7 +12,4 @@
            android:layout_height="match_parent"
            android:groupIndicator="@null" />


    <!-- use android:groupIndicator="@null" to hide the indicator -->

</LinearLayout>
 No newline at end of file
+39 −84
Original line number Diff line number Diff line
@@ -51,33 +51,16 @@
                android:layout_marginBottom="8dp"
                app:cardCornerRadius="4dp">

            <FrameLayout
                    android:id="@+id/percentage_background_view"
                    style="@style/task_list_progress_background"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/opentasks_cardlist_title_height"
                    android:layout_gravity="top"
                    android:visibility="gone" />

            <FrameLayout
                    android:id="@+id/percentage_remainder_background_view"
                    style="@style/task_list_progress_background"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/opentasks_cardlist_title_height"
                    android:layout_gravity="top|right|end"
                    android:visibility="gone" />

            <RelativeLayout
                    style="@style/tasks_expandable_list_item"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/opentasks_cardlist_title_height"
                    android:layout_height="wrap_content"
                    android:layout_gravity="top"
                    android:clipChildren="false"
                    android:clipToPadding="false"
                    android:duplicateParentState="true"
                    android:minHeight="48dp"
                    android:paddingLeft="@dimen/task_list_right_margin"
                    android:paddingRight="@dimen/task_list_right_margin"
                    android:paddingVertical="6dp"
                    android:paddingHorizontal="10dp"
                    android:state_checkable="true">

                <LinearLayout
@@ -88,8 +71,7 @@
                        android:layout_centerVertical="true"
                        android:gravity="right"
                        android:orientation="vertical"
                        android:paddingLeft="0dp"
                        android:paddingRight="8dp">
                        android:padding="2dp">

                    <LinearLayout
                            android:layout_width="wrap_content"
@@ -104,7 +86,7 @@
                                android:gravity="right"
                                android:paddingLeft="0dip"
                                android:paddingRight="2dip"
                                android:textColor="#d0ffffff"
                                android:textColor="?android:attr/textColorSecondaryInverse"
                                android:textIsSelectable="false"
                                android:textSize="12sp"
                                android:visibility="gone" />
@@ -118,7 +100,7 @@
                                android:contentDescription="@string/cd_start_date"
                                android:scaleType="fitStart"
                                android:src="@drawable/task_start"
                                android:tint="#d0ffffff"
                                android:tint="?android:attr/textColorSecondaryInverse"
                                android:visibility="gone" />
                    </LinearLayout>

@@ -136,7 +118,7 @@
                                android:gravity="right"
                                android:paddingLeft="0dip"
                                android:paddingRight="2dip"
                                android:textColor="#ffffffff"
                                android:textColor="?android:attr/textColorSecondaryInverse"
                                android:textIsSelectable="false"
                                android:textSize="12sp" />

@@ -149,60 +131,36 @@
                                android:contentDescription="@string/cd_due_date"
                                android:scaleType="fitStart"
                                android:src="@drawable/task_due"
                                android:tint="#d0ffffff"
                                android:tint="?android:attr/textColorSecondaryInverse"
                                android:visibility="gone" />
                    </LinearLayout>
                </LinearLayout>

                <TextView
                <androidx.appcompat.widget.AppCompatTextView
                        android:id="@android:id/title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_centerVertical="true"
                        android:layout_toLeftOf="@id/task_dates"
                        android:layout_alignParentTop="true"
                        android:ellipsize="end"
                        android:gravity="center_vertical"
                        android:orientation="vertical"
                        android:paddingLeft="8dip"
                        android:paddingRight="8dp"
                        android:padding="2dip"
                        android:singleLine="true"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:textColor="@color/dark_gray"
                        android:textColor="?android:attr/textColorPrimaryInverse"
                        android:textIsSelectable="false" />


            </RelativeLayout>

            <FrameLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="top"
                    android:layout_marginTop="@dimen/opentasks_cardlist_title_height"
                    android:duplicateParentState="true">

                <RelativeLayout
                        android:id="@+id/cardcontent"
                        style="@style/tasks_expandable_list_item"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:duplicateParentState="true"
                        android:paddingLeft="12dp"
                        android:paddingRight="12dp"
                        android:paddingBottom="12dp"
                        android:visibility="visible">

                    <TextView
                <androidx.appcompat.widget.AppCompatTextView
                        android:id="@android:id/text1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:ellipsize="end"
                            android:gravity="center_vertical"
                        android:maxLines="2"
                            android:orientation="vertical"
                            android:padding="4dip"
                        android:layout_below="@android:id/title"
                        android:padding="2dip"
                        android:textAppearance="@style/TextAppearance.AppCompat.Small"
                            android:textColor="#c0ffffff"
                        android:textColor="?android:attr/textColorSecondaryInverse"
                        android:textIsSelectable="false"
                        android:textSize="12sp" />

@@ -212,30 +170,27 @@
                        android:layout_height="wrap_content"
                        android:layout_below="@android:id/text1"
                        android:layout_alignParentStart="true"
                            android:padding="4dp"
                        android:padding="2dp"
                        android:textAppearance="@style/TextAppearance.AppCompat.Small"
                            android:textColor="#c0ffffff"
                        android:textColor="?android:attr/textColorSecondaryInverse"
                        android:textIsSelectable="false"
                            android:textSize="12sp"
                            android:visibility="gone" />
                        android:textSize="12sp" />

            </RelativeLayout>
            </FrameLayout>

            <FrameLayout
                    android:id="@+id/priority_label"
                    android:layout_width="6dip"
                    android:layout_width="8dip"
                    android:layout_height="match_parent"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true"
                    android:layout_gravity="right"
                    android:minHeight="@dimen/opentasks_cardlist_title_height">
                    android:layout_gravity="right">

                <View
                        android:layout_width="2dp"
                        android:layout_height="match_parent"
                        android:layout_gravity="start"
                        android:background="#ffffffff"
                        android:minHeight="@dimen/opentasks_cardlist_title_height" />
                        android:background="#ffffffff" />
            </FrameLayout>
        </com.google.android.material.card.MaterialCardView>

+2 −3
Original line number Diff line number Diff line
@@ -93,7 +93,6 @@

    <style name="expandable_task_list">
        <item name="android:scrollbarStyle">insideOverlay</item>
        <item name="android:scrollbarSize">20dp</item>
        <item name="android:divider">@null</item>
    </style>

@@ -281,7 +280,7 @@
    </style>

    <style name="task_list_overdue_text">
        <item name="android:textColor">@color/overdue_date_text</item>
        <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
        <item name="android:textStyle">bold</item>
    </style>

@@ -291,7 +290,7 @@
    </style>

    <style name="task_list_due_text">
        <item name="android:textColor">@color/due_date_text</item>
        <item name="android:textColor">?android:attr/textColorSecondaryInverse</item>
        <item name="android:textStyle">normal</item>
    </style>