mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-02 23:26:12 +02:00
Simple layout for unselectable folders
This commit is contained in:
@@ -158,7 +158,6 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
}
|
||||
|
||||
private void bindTo(final TupleFolderEx folder) {
|
||||
view.setEnabled(folder.selectable);
|
||||
view.setActivated(folder.tbc != null || folder.tbd != null);
|
||||
view.setAlpha(folder.hide || !folder.selectable || disabledIds.contains(folder.id)
|
||||
? Helper.LOW_LIGHT : 1.0f);
|
||||
@@ -197,7 +196,8 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
folder.synchronize || folder.state != null || folder.sync_state != null
|
||||
? View.VISIBLE : View.INVISIBLE);
|
||||
|
||||
ivReadOnly.setVisibility(folder.read_only ? View.VISIBLE : View.GONE);
|
||||
if (folder.selectable)
|
||||
ivReadOnly.setVisibility(folder.read_only ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
ViewGroup.LayoutParams lp = vwLevel.getLayoutParams();
|
||||
@@ -210,7 +210,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
: folder.child_refs != null && folder.child_refs.size() > 0
|
||||
? View.VISIBLE : View.INVISIBLE);
|
||||
|
||||
if (listener == null) {
|
||||
if (listener == null && folder.selectable) {
|
||||
ivUnified.setVisibility(account > 0 && folder.unified ? View.VISIBLE : View.GONE);
|
||||
ivSubscribed.setVisibility(subscriptions && folder.subscribed != null && folder.subscribed ? View.VISIBLE : View.GONE);
|
||||
ivRule.setVisibility(folder.rules > 0 ? View.VISIBLE : View.GONE);
|
||||
@@ -227,7 +227,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
tvName.setTypeface(folder.unseen > 0 ? Typeface.DEFAULT_BOLD : Typeface.DEFAULT);
|
||||
tvName.setTextColor(folder.unseen > 0 ? colorUnread : textColorSecondary);
|
||||
|
||||
if (listener == null) {
|
||||
if (listener == null && folder.selectable) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (folder.account == null)
|
||||
sb.append(nf.format(folder.messages));
|
||||
@@ -242,9 +242,10 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
? R.drawable.baseline_mail_24 : R.drawable.baseline_mail_outline_24);
|
||||
}
|
||||
|
||||
ivType.setImageResource(EntityFolder.getIcon(folder.type));
|
||||
if (folder.selectable)
|
||||
ivType.setImageResource(EntityFolder.getIcon(folder.type));
|
||||
|
||||
if (listener == null) {
|
||||
if (listener == null && folder.selectable) {
|
||||
if (account < 0)
|
||||
tvType.setText(folder.accountName);
|
||||
else {
|
||||
@@ -813,12 +814,18 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
return items.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (listener == null) {
|
||||
return (items.get(position).selectable ? R.layout.item_folder : R.layout.item_folder_unselectable);
|
||||
} else
|
||||
return R.layout.item_folder_select;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNull
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
return new ViewHolder(inflater.inflate(
|
||||
listener == null ? R.layout.item_folder : R.layout.item_folder_select,
|
||||
parent, false));
|
||||
return new ViewHolder(inflater.inflate(viewType, parent, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -22,24 +22,24 @@
|
||||
<ImageView
|
||||
android:id="@+id/ivExpander"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_gravity="center_vertical|center_horizontal"
|
||||
android:contentDescription="@string/title_legend_expander"
|
||||
android:padding="6dp"
|
||||
app:srcCompat="@drawable/expander"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintDimensionRatio="1:1"
|
||||
app:layout_constraintStart_toEndOf="@+id/vwLevel"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName" />
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@drawable/expander" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivType"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:contentDescription="@string/title_legend_folder_type"
|
||||
app:srcCompat="@drawable/baseline_inbox_24"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintStart_toEndOf="@+id/ivExpander"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName" />
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivExpander"
|
||||
app:layout_constraintStart_toEndOf="@id/ivExpander"
|
||||
app:layout_constraintTop_toTopOf="@id/ivExpander"
|
||||
app:srcCompat="@drawable/baseline_inbox_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvName"
|
||||
@@ -52,8 +52,9 @@
|
||||
android:singleLine="true"
|
||||
android:text="Name"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivExpander"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/ivType"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintTop_toTopOf="@id/ivExpander" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</FrameLayout>
|
||||
80
app/src/main/res/layout/item_folder_unselectable.xml
Normal file
80
app/src/main/res/layout/item_folder_unselectable.xml
Normal file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/clItem"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<View
|
||||
android:id="@+id/vwColor"
|
||||
android:layout_width="6dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="@color/colorAccent"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/paddingBottom"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivState"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="6dp"
|
||||
android:contentDescription="@string/title_legend_connection_state"
|
||||
android:visibility="invisible"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintStart_toEndOf="@id/vwColor"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName"
|
||||
app:srcCompat="@drawable/baseline_cloud_off_24" />
|
||||
|
||||
<View
|
||||
android:id="@+id/vwLevel"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvKeywords"
|
||||
app:layout_constraintStart_toEndOf="@id/ivState"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivExpander"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_gravity="center_vertical|center_horizontal"
|
||||
android:background="?android:attr/selectableItemBackgroundBorderless"
|
||||
android:contentDescription="@string/title_legend_expander"
|
||||
android:paddingStart="12dp"
|
||||
android:paddingEnd="12dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/paddingBottom"
|
||||
app:layout_constraintStart_toEndOf="@+id/vwLevel"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@drawable/expander" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvName"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="24dp"
|
||||
android:singleLine="true"
|
||||
android:text="Name"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/ivExpander"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<View
|
||||
android:id="@+id/paddingBottom"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="6dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvName" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</FrameLayout>
|
||||
Reference in New Issue
Block a user