Skip to content

Commit

Permalink
Optimize layout for tags and allowing for tags-multi-line growth of t…
Browse files Browse the repository at this point in the history
…he line item if needed

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
  • Loading branch information
AndyScherzinger committed May 4, 2023
1 parent 9686821 commit a586e19
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 27 deletions.
78 changes: 51 additions & 27 deletions app/src/main/res/layout/list_item.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?><!--
<?xml version="1.0" encoding="UTF-8"?>
<!--
ownCloud Android client application
Copyright (C) 2012 Bartek Przybylski
Copyright (C) 2015 ownCloud Inc.
Copyright (C) 2012 Bartek Przybylski
Copyright (C) 2023 Andy Scherzinger
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2,
Expand All @@ -18,19 +20,22 @@
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ListItemLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/standard_list_item_size"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:descendantFocusability="blocksDescendants"
android:orientation="horizontal">
android:minHeight="@dimen/standard_list_item_size"
android:orientation="horizontal"
android:paddingTop="@dimen/standard_half_padding"
android:paddingBottom="@dimen/standard_half_padding">

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="@dimen/standard_list_item_size"
android:layout_height="@dimen/standard_list_item_size"
android:layout_width="@dimen/min_list_item_size"
android:layout_height="@dimen/min_list_item_size"
android:layout_marginStart="@dimen/zero"
android:layout_marginEnd="@dimen/standard_quarter_padding"
android:layout_marginBottom="@dimen/standard_padding">
android:layout_marginEnd="@dimen/standard_quarter_padding">

<FrameLayout
android:id="@+id/thumbnail_container"
Expand Down Expand Up @@ -73,11 +78,12 @@

<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="top"
android:minHeight="@dimen/min_list_item_size"
android:orientation="vertical"
android:paddingTop="@dimen/standard_padding">
android:paddingTop="@dimen/standard_half_padding">

<TextView
android:id="@+id/Filename"
Expand All @@ -86,9 +92,9 @@
android:layout_gravity="center_vertical"
android:ellipsize="middle"
android:singleLine="true"
android:text="@string/placeholder_filename"
android:textColor="@color/text_color"
android:textSize="@dimen/two_line_primary_text_size" />
android:textSize="@dimen/two_line_primary_text_size"
tools:text="@string/placeholder_filename" />

<LinearLayout
android:layout_width="match_parent"
Expand All @@ -99,43 +105,54 @@
android:id="@+id/tagsGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:singleLine="true">
android:clickable="false"
android:paddingTop="@dimen/standard_quarter_padding"
app:chipSpacingVertical="@dimen/standard_quarter_padding">

<com.google.android.material.chip.Chip
android:id="@+id/firstTag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="@dimen/tag_height"
android:checkable="false"
android:clickable="false"
android:ellipsize="middle"
android:textColor="@color/list_item_lastmod_and_filesize_text"
android:textSize="@dimen/two_line_secondary_text_size"
app:chipBackgroundColor="@color/bg_default"
app:chipEndPadding="@dimen/standard_eighth_margin"
app:chipStartPadding="@dimen/standard_eighth_margin" />
app:chipEndPadding="@dimen/zero"
app:chipStartPadding="@dimen/zero"
app:ensureMinTouchTargetSize="false"
tools:text="tag1" />

<com.google.android.material.chip.Chip
android:id="@+id/secondTag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="@dimen/tag_height"
android:checkable="false"
android:clickable="false"
android:ellipsize="middle"
android:textColor="@color/list_item_lastmod_and_filesize_text"
android:textSize="@dimen/two_line_secondary_text_size"
app:chipBackgroundColor="@color/bg_default"
app:chipEndPadding="@dimen/standard_eighth_margin"
app:chipStartPadding="@dimen/standard_eighth_margin" />
app:chipEndPadding="@dimen/zero"
app:chipStartPadding="@dimen/zero"
app:ensureMinTouchTargetSize="false"
tools:text="tag2" />

<com.google.android.material.chip.Chip
android:id="@+id/tag_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="@dimen/tag_height"
android:checkable="false"
android:clickable="false"
android:ellipsize="none"
android:textColor="@color/list_item_lastmod_and_filesize_text"
android:textSize="@dimen/two_line_secondary_text_size"
app:chipBackgroundColor="@color/bg_default"
app:chipEndPadding="@dimen/standard_eighth_margin"
app:chipStartPadding="@dimen/standard_eighth_margin" />
app:chipEndPadding="@dimen/zero"
app:chipStartPadding="@dimen/zero"
app:ensureMinTouchTargetSize="false"
tools:text="+3" />

</com.google.android.material.chip.ChipGroup>

Expand Down Expand Up @@ -180,7 +197,7 @@

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical|end"
android:orientation="horizontal"
android:paddingStart="@dimen/standard_half_padding"
Expand All @@ -201,40 +218,47 @@
<ImageView
android:id="@+id/sharedIcon"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:clickable="true"
android:contentDescription="@string/shared_icon_share"
android:focusable="true"
android:minHeight="@dimen/min_list_item_size"
android:paddingStart="@dimen/list_item_share_right_margin"
android:paddingEnd="@dimen/list_item_share_right_margin"
android:src="@drawable/ic_unshared" />

<com.owncloud.android.ui.AvatarGroupLayout
android:id="@+id/sharedAvatars"
android:layout_width="100dp"
android:layout_height="@dimen/file_icon_size"
android:layout_height="@dimen/min_list_item_size"
android:layout_gravity="top"
android:contentDescription="@string/shared_avatar_desc"
android:gravity="center_vertical"
android:visibility="visible" />

<ImageView
android:id="@+id/custom_checkbox"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:clickable="false"
android:contentDescription="@string/checkbox"
android:focusable="false"
android:minHeight="@dimen/min_list_item_size"
android:paddingStart="@dimen/standard_half_padding"
android:paddingEnd="@dimen/alternate_padding"
android:src="@drawable/ic_checkbox_blank_outline" />

<ImageView
android:id="@+id/overflow_menu"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:clickable="true"
android:contentDescription="@string/overflow_menu"
android:focusable="true"
android:minHeight="@dimen/min_list_item_size"
android:paddingStart="12dp"
android:paddingEnd="12dp"
android:src="@drawable/ic_dots_vertical" />
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/dims.xml
Original file line number Diff line number Diff line change
Expand Up @@ -151,4 +151,5 @@
<!--Adaptive Icon size specified here: https://developer.android.com/develop/ui/views/launch/icon_design_adaptive -->
<dimen name="adaptive_icon_size">108dp</dimen>
<dimen name="adaptive_icon_padding">18dp</dimen>
<dimen name="tag_height">18dp</dimen>
</resources>

0 comments on commit a586e19

Please sign in to comment.