Simple layout for unselectable folders

pull/157/head
M66B 5 years ago
parent 88b5146245
commit b815d622fe

@ -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>

@ -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>
Loading…
Cancel
Save