Improves search layout

This commit is contained in:
tom79 2017-06-03 19:02:40 +02:00
parent 6b9ccc110c
commit d03061204d
5 changed files with 231 additions and 143 deletions

View File

@ -131,11 +131,15 @@ public class SearchListAdapter extends BaseAdapter {
holder.status_toot_date = (TextView) v.findViewById(R.id.status_toot_date); holder.status_toot_date = (TextView) v.findViewById(R.id.status_toot_date);
holder.status_reblog_user = (TextView) v.findViewById(R.id.status_reblog_user); holder.status_reblog_user = (TextView) v.findViewById(R.id.status_reblog_user);
holder.main_container = (LinearLayout) v.findViewById(R.id.main_container); holder.main_container = (LinearLayout) v.findViewById(R.id.main_container);
holder.status_search_title = (TextView) v.findViewById(R.id.status_search_title);
v.setTag(holder); v.setTag(holder);
} else { } else {
holder = (ViewHolderStatus) v.getTag(); holder = (ViewHolderStatus) v.getTag();
} }
if( isFirstTypeItem(type, position) )
holder.status_search_title.setVisibility(View.VISIBLE);
else
holder.status_search_title.setVisibility(View.GONE);
final float scale = context.getResources().getDisplayMetrics().density; final float scale = context.getResources().getDisplayMetrics().density;
if( !status.getIn_reply_to_account_id().equals("null") || !status.getIn_reply_to_id().equals("null") ){ if( !status.getIn_reply_to_account_id().equals("null") || !status.getIn_reply_to_id().equals("null") ){
Drawable img = ContextCompat.getDrawable(context, R.drawable.ic_reply); Drawable img = ContextCompat.getDrawable(context, R.drawable.ic_reply);
@ -220,12 +224,16 @@ public class SearchListAdapter extends BaseAdapter {
holder.account_sc = (TextView) v.findViewById(R.id.account_sc); holder.account_sc = (TextView) v.findViewById(R.id.account_sc);
holder.account_fgc = (TextView) v.findViewById(R.id.account_fgc); holder.account_fgc = (TextView) v.findViewById(R.id.account_fgc);
holder.account_frc = (TextView) v.findViewById(R.id.account_frc); holder.account_frc = (TextView) v.findViewById(R.id.account_frc);
holder.account_search_title = (TextView) v.findViewById(R.id.account_search_title);
v.setTag(holder); v.setTag(holder);
} else { } else {
holder = (ViewHolderAccounts) v.getTag(); holder = (ViewHolderAccounts) v.getTag();
} }
if( isFirstTypeItem(type, position) )
holder.account_search_title.setVisibility(View.VISIBLE);
else
holder.account_search_title.setVisibility(View.GONE);
holder.account_dn.setText(account.getDisplay_name()); holder.account_dn.setText(account.getDisplay_name());
holder.account_un.setText(String.format("@%s",account.getUsername())); holder.account_un.setText(String.format("@%s",account.getUsername()));
@ -260,10 +268,15 @@ public class SearchListAdapter extends BaseAdapter {
v = layoutInflater.inflate(R.layout.drawer_tag, parent, false); v = layoutInflater.inflate(R.layout.drawer_tag, parent, false);
holder = new ViewHolderTag(); holder = new ViewHolderTag();
holder.tag_name = (TextView) v.findViewById(R.id.tag_name); holder.tag_name = (TextView) v.findViewById(R.id.tag_name);
holder.tag_search_title = (TextView) v.findViewById(R.id.tag_search_title);
v.setTag(holder); v.setTag(holder);
} else { } else {
holder = (ViewHolderTag) v.getTag(); holder = (ViewHolderTag) v.getTag();
} }
if( isFirstTypeItem(type, position) )
holder.tag_search_title.setVisibility(View.VISIBLE);
else
holder.tag_search_title.setVisibility(View.GONE);
holder.tag_name.setText(String.format("#%s",tag)); holder.tag_name.setText(String.format("#%s",tag));
holder.tag_name.setPaintFlags(holder.tag_name.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); holder.tag_name.setPaintFlags(holder.tag_name.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
holder.tag_name.setOnClickListener(new View.OnClickListener() { holder.tag_name.setOnClickListener(new View.OnClickListener() {
@ -280,6 +293,15 @@ public class SearchListAdapter extends BaseAdapter {
} }
} }
private boolean isFirstTypeItem(int type, int position){
if( position == 0 && type == STATUS_TYPE)
return true;
else if( position == statuses.size() && type == ACCOUNT_TYPE )
return true;
else if( position == (statuses.size() + accounts.size()) && type == TAG_TYPE )
return true;
return false;
}
private class ViewHolderStatus { private class ViewHolderStatus {
TextView status_content; TextView status_content;
@ -289,6 +311,7 @@ public class SearchListAdapter extends BaseAdapter {
TextView status_toot_date; TextView status_toot_date;
TextView status_reblog_user; TextView status_reblog_user;
LinearLayout main_container; LinearLayout main_container;
TextView status_search_title;
} }
@ -300,9 +323,11 @@ public class SearchListAdapter extends BaseAdapter {
TextView account_sc; TextView account_sc;
TextView account_fgc; TextView account_fgc;
TextView account_frc; TextView account_frc;
TextView account_search_title;
} }
private class ViewHolderTag { private class ViewHolderTag {
TextView tag_name; TextView tag_name;
TextView tag_search_title;
} }
} }

View File

@ -17,7 +17,6 @@
--> -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:paddingTop="10dp" android:paddingTop="10dp"
android:paddingBottom="10dp" android:paddingBottom="10dp"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -26,103 +25,126 @@
android:id="@+id/main_container" android:id="@+id/main_container"
android:paddingLeft="@dimen/drawer_padding" android:paddingLeft="@dimen/drawer_padding"
android:paddingRight="@dimen/drawer_padding" android:paddingRight="@dimen/drawer_padding"
android:orientation="horizontal"> android:orientation="vertical">
<TextView
android:id="@+id/account_search_title"
android:visibility="gone"
android:textSize="18sp"
android:background="@color/blue_light"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textStyle="bold"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/accounts"
android:textColor="@color/colorPrimary"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:id="@+id/account_search_container"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="horizontal">
<ImageView
android:layout_gravity="center_horizontal"
android:id="@+id/account_pp"
android:layout_width="60dp"
android:layout_height="60dp"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/account_container"
android:orientation="vertical">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="vertical">
<TextView <ImageView
android:id="@+id/account_dn" android:layout_gravity="center_horizontal"
android:maxLines="1" android:id="@+id/account_pp"
android:layout_width="60dp"
android:layout_height="60dp"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/account_container"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="18sp" android:orientation="horizontal">
android:textAppearance="@style/TextAppearance.AppCompat.Body1" /> <TextView
android:id="@+id/account_dn"
android:maxLines="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
<TextView
android:id="@+id/account_un"
android:maxLines="1"
android:layout_width="wrap_content"
android:textSize="14sp"
android:layout_height="wrap_content"
/>
</LinearLayout>
<TextView <TextView
android:id="@+id/account_un" android:layout_marginTop="10dp"
android:visibility="gone"
android:maxLines="1" android:maxLines="1"
android:layout_width="wrap_content" android:id="@+id/account_ac"
android:textSize="14sp" android:textSize="16sp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
/> android:orientation="horizontal"
</LinearLayout> android:baselineAligned="false">
<TextView <LinearLayout
android:layout_marginTop="10dp" android:layout_width="0dp"
android:visibility="gone" android:layout_weight="1"
android:maxLines="1" android:orientation="vertical"
android:id="@+id/account_ac" android:layout_height="wrap_content">
android:textSize="16sp" <TextView
android:layout_width="match_parent" android:text="@string/status"
android:layout_height="wrap_content" /> android:maxLines="1"
<LinearLayout android:layout_width="match_parent"
android:layout_marginTop="10dp" android:layout_height="wrap_content" />
android:layout_width="match_parent" <TextView
android:layout_height="wrap_content" android:id="@+id/account_sc"
android:orientation="horizontal" android:layout_width="match_parent"
android:baselineAligned="false"> android:layout_height="wrap_content" />
<LinearLayout </LinearLayout>
android:layout_width="0dp" <LinearLayout
android:layout_weight="1" android:layout_width="0dp"
android:orientation="vertical" android:layout_weight="1"
android:layout_height="wrap_content"> android:orientation="vertical"
<TextView android:layout_height="wrap_content">
android:text="@string/status" <TextView
android:maxLines="1" android:maxLines="1"
android:layout_width="match_parent" android:text="@string/following"
android:layout_height="wrap_content" /> android:layout_width="match_parent"
<TextView android:layout_height="wrap_content" />
android:id="@+id/account_sc" <TextView
android:layout_width="match_parent" android:id="@+id/account_fgc"
android:layout_height="wrap_content" /> android:layout_width="match_parent"
</LinearLayout> android:layout_height="wrap_content" />
<LinearLayout </LinearLayout>
android:layout_width="0dp" <LinearLayout
android:layout_weight="1" android:layout_width="0dp"
android:orientation="vertical" android:layout_weight="1"
android:layout_height="wrap_content"> android:orientation="vertical"
<TextView android:layout_height="wrap_content">
android:maxLines="1" <TextView
android:text="@string/following" android:maxLines="1"
android:layout_width="match_parent" android:text="@string/followers"
android:layout_height="wrap_content" /> android:layout_width="match_parent"
<TextView android:layout_height="wrap_content" />
android:id="@+id/account_fgc" <TextView
android:layout_width="match_parent" android:id="@+id/account_frc"
android:layout_height="wrap_content" /> android:layout_width="match_parent"
</LinearLayout> android:layout_height="wrap_content" />
<LinearLayout </LinearLayout>
android:layout_width="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:layout_height="wrap_content">
<TextView
android:maxLines="1"
android:text="@string/followers"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/account_frc"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View File

@ -25,65 +25,87 @@
android:paddingRight="@dimen/drawer_padding" android:paddingRight="@dimen/drawer_padding"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:id="@+id/main_container" android:id="@+id/main_container"
android:orientation="horizontal"> android:orientation="vertical">
<ImageView <TextView
android:id="@+id/status_account_profile" android:id="@+id/status_search_title"
android:layout_height="50dp" android:visibility="gone"
android:layout_width="50dp" android:text="@string/status"
android:layout_gravity="center_horizontal|top" android:textColor="@color/colorPrimary"
android:gravity="center_horizontal|top" android:textSize="18sp"
tools:ignore="ContentDescription" /> android:background="@color/blue_light"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textStyle="bold"
android:layout_gravity="center"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<LinearLayout <LinearLayout
android:layout_marginStart="5dp" android:id="@+id/statuts_search_container"
android:layout_marginLeft="5dp" android:layout_width="match_parent"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="horizontal">
<ImageView
android:id="@+id/status_account_profile"
android:layout_height="50dp"
android:layout_width="50dp"
android:layout_gravity="center_horizontal|top"
android:gravity="center_horizontal|top"
tools:ignore="ContentDescription" />
<LinearLayout <LinearLayout
android:orientation="horizontal" android:layout_marginStart="5dp"
android:layout_width="match_parent" android:layout_marginLeft="5dp"
android:layout_height="wrap_content"> android:layout_width="0dp"
<TextView android:layout_weight="1"
android:id="@+id/status_account_displayname" android:layout_height="wrap_content"
android:textSize="16sp" android:orientation="vertical">
android:textStyle="bold" <LinearLayout
android:maxLines="1" android:orientation="horizontal"
android:drawablePadding="2dp" android:layout_width="match_parent"
android:layout_width="wrap_content" android:layout_height="wrap_content">
android:layout_height="wrap_content" /> <TextView
android:id="@+id/status_account_displayname"
android:textSize="16sp"
android:textStyle="bold"
android:maxLines="1"
android:drawablePadding="2dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:textSize="14sp"
android:textStyle="bold"
android:maxLines="1"
android:id="@+id/status_account_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<TextView <TextView
android:visibility="gone"
android:layout_marginLeft="5dp" android:layout_marginLeft="5dp"
android:layout_marginStart="5dp" android:layout_marginStart="5dp"
android:textSize="14sp" android:textSize="14sp"
android:textStyle="bold"
android:maxLines="1" android:maxLines="1"
android:id="@+id/status_account_username" android:id="@+id/status_reblog_user"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
</LinearLayout> <TextView
<TextView android:id="@+id/status_toot_date"
android:visibility="gone" android:layout_width="match_parent"
android:layout_marginLeft="5dp" android:paddingRight="10dp"
android:layout_marginStart="5dp" android:paddingLeft="10dp"
android:textSize="14sp" android:layout_gravity="end"
android:maxLines="1" android:gravity="end"
android:id="@+id/status_reblog_user" android:layout_height="wrap_content" />
android:layout_width="match_parent" <TextView
android:layout_height="wrap_content" /> android:id="@+id/status_content"
<TextView android:layout_marginTop="10dp"
android:id="@+id/status_toot_date" android:autoLink="web"
android:layout_width="match_parent" android:layout_width="match_parent"
android:paddingRight="10dp" android:layout_height="wrap_content" />
android:paddingLeft="10dp" </LinearLayout>
android:layout_gravity="end"
android:gravity="end"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/status_content"
android:layout_marginTop="10dp"
android:autoLink="web"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View File

@ -18,12 +18,30 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="20dp" android:paddingLeft="@dimen/drawer_padding"
android:paddingRight="@dimen/drawer_padding"
android:id="@+id/account_container" android:id="@+id/account_container"
android:orientation="horizontal"> android:orientation="vertical">
<TextView
android:id="@+id/tag_search_title"
android:textColor="@color/colorPrimary"
android:visibility="gone"
android:textSize="18sp"
android:background="@color/blue_light"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textStyle="bold"
android:text="@string/tags"
android:layout_gravity="center"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView <TextView
android:layout_marginStart="10dp" android:layout_marginStart="10dp"
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:padding="20dp"
android:id="@+id/tag_name" android:id="@+id/tag_name"
android:textSize="16sp" android:textSize="16sp"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"

View File

@ -22,6 +22,7 @@
<string name="email">Email</string> <string name="email">Email</string>
<string name="accounts">Comptes</string> <string name="accounts">Comptes</string>
<string name="toots">Pouets</string> <string name="toots">Pouets</string>
<string name="tags">Tags</string>
<string name="token">Jeton</string> <string name="token">Jeton</string>
<string name="two_factor_authentification">Authentification en deux étapes ?</string> <string name="two_factor_authentification">Authentification en deux étapes ?</string>
<string name="other_instance">Autre instance que mastodon.etalab.gouv.fr ?</string> <string name="other_instance">Autre instance que mastodon.etalab.gouv.fr ?</string>