mirror of
https://github.com/M66B/FairEmail.git
synced 2026-01-03 11:28:41 +01:00
Card layout for folders
This commit is contained in:
@@ -37,12 +37,14 @@ import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.appcompat.widget.PopupMenu;
|
||||
import androidx.cardview.widget.CardView;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.lifecycle.LifecycleObserver;
|
||||
@@ -73,8 +75,12 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
private LifecycleOwner owner;
|
||||
private LayoutInflater inflater;
|
||||
|
||||
private boolean cards;
|
||||
private boolean circular;
|
||||
private boolean subscriptions;
|
||||
private boolean debug;
|
||||
|
||||
private int dp3;
|
||||
private int dp12;
|
||||
private float textSize;
|
||||
private int colorUnread;
|
||||
@@ -87,8 +93,10 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
private NumberFormat NF = NumberFormat.getNumberInstance();
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
|
||||
private CardView card;
|
||||
private View view;
|
||||
private View vwColor;
|
||||
private CardView vwColor;
|
||||
|
||||
private ImageView ivState;
|
||||
private ImageView ivReadOnly;
|
||||
|
||||
@@ -117,8 +125,10 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
|
||||
card = itemView.findViewById(R.id.card);
|
||||
view = itemView.findViewById(R.id.clItem);
|
||||
vwColor = itemView.findViewById(R.id.vwColor);
|
||||
|
||||
ivState = itemView.findViewById(R.id.ivState);
|
||||
ivReadOnly = itemView.findViewById(R.id.ivReadOnly);
|
||||
|
||||
@@ -141,6 +151,22 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
|
||||
tvKeywords = itemView.findViewById(R.id.tvKeywords);
|
||||
tvError = itemView.findViewById(R.id.tvError);
|
||||
|
||||
if (listener == null) {
|
||||
if (!cards) {
|
||||
FrameLayout.LayoutParams lparam = (FrameLayout.LayoutParams) card.getLayoutParams();
|
||||
lparam.setMargins(0, 0, 0, 0);
|
||||
card.setLayoutParams(lparam);
|
||||
|
||||
card.setRadius(0);
|
||||
card.setElevation(0);
|
||||
card.setCardBackgroundColor(Color.TRANSPARENT);
|
||||
|
||||
view.setPadding(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
vwColor.setRadius(circular ? dp3 / 2f : 0f);
|
||||
}
|
||||
}
|
||||
|
||||
private void wire() {
|
||||
@@ -657,9 +683,12 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
if (zoom == 0)
|
||||
zoom = 1;
|
||||
|
||||
this.circular = prefs.getBoolean("circular", true);
|
||||
this.cards = prefs.getBoolean("cards", true);
|
||||
this.subscriptions = prefs.getBoolean("subscriptions", false);
|
||||
this.debug = prefs.getBoolean("debug", false);
|
||||
|
||||
this.dp3 = Helper.dp2pixels(context, 12);
|
||||
this.dp12 = Helper.dp2pixels(context, 12);
|
||||
this.textSize = Helper.getTextSize(context, zoom);
|
||||
this.colorUnread = Helper.resolveColor(context, R.attr.colorUnread);
|
||||
|
||||
@@ -66,6 +66,8 @@ public class FragmentFolders extends FragmentBase {
|
||||
private FloatingActionButton fab;
|
||||
private FloatingActionButton fabError;
|
||||
|
||||
private boolean cards;
|
||||
|
||||
private long account;
|
||||
private boolean show_hidden = false;
|
||||
private String searching = null;
|
||||
@@ -82,6 +84,9 @@ public class FragmentFolders extends FragmentBase {
|
||||
// Get arguments
|
||||
Bundle args = getArguments();
|
||||
account = args.getLong("account", -1);
|
||||
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
|
||||
cards = prefs.getBoolean("cards", true);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -137,17 +142,19 @@ public class FragmentFolders extends FragmentBase {
|
||||
LinearLayoutManager llm = new LinearLayoutManager(getContext());
|
||||
rvFolder.setLayoutManager(llm);
|
||||
|
||||
DividerItemDecoration itemDecorator = new DividerItemDecoration(getContext(), llm.getOrientation()) {
|
||||
@Override
|
||||
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
|
||||
if (view.findViewById(R.id.clItem).getVisibility() == View.GONE)
|
||||
outRect.setEmpty();
|
||||
else
|
||||
super.getItemOffsets(outRect, view, parent, state);
|
||||
}
|
||||
};
|
||||
itemDecorator.setDrawable(getContext().getDrawable(R.drawable.divider));
|
||||
rvFolder.addItemDecoration(itemDecorator);
|
||||
if (!cards) {
|
||||
DividerItemDecoration itemDecorator = new DividerItemDecoration(getContext(), llm.getOrientation()) {
|
||||
@Override
|
||||
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
|
||||
if (view.findViewById(R.id.clItem).getVisibility() == View.GONE)
|
||||
outRect.setEmpty();
|
||||
else
|
||||
super.getItemOffsets(outRect, view, parent, state);
|
||||
}
|
||||
};
|
||||
itemDecorator.setDrawable(getContext().getDrawable(R.drawable.divider));
|
||||
rvFolder.addItemDecoration(itemDecorator);
|
||||
}
|
||||
|
||||
adapter = new AdapterFolder(this, account, show_hidden, null);
|
||||
rvFolder.setAdapter(adapter);
|
||||
|
||||
@@ -4,245 +4,258 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/clItem"
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/card"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/activatableItemBackground"
|
||||
android:foreground="?attr/selectableItemBackground">
|
||||
android:layout_margin="6dp"
|
||||
app:cardBackgroundColor="?attr/colorCardBackground"
|
||||
app:cardCornerRadius="6dp"
|
||||
app:cardElevation="6dp">
|
||||
|
||||
<View
|
||||
android:id="@+id/vwColor"
|
||||
android:layout_width="6dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="?attr/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"
|
||||
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" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivReadOnly"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="6dp"
|
||||
app:layout_constraintStart_toEndOf="@id/vwColor"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvType"
|
||||
app:srcCompat="@drawable/baseline_visibility_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" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivUnified"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="24dp"
|
||||
android:contentDescription="@string/title_unified_folder"
|
||||
android:paddingEnd="6dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintStart_toEndOf="@id/ivExpander"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName"
|
||||
app:srcCompat="@drawable/baseline_folder_special_24" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivSubscribed"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="24dp"
|
||||
android:contentDescription="@string/title_legend_notify"
|
||||
android:paddingEnd="6dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintStart_toEndOf="@id/ivUnified"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName"
|
||||
app:srcCompat="@drawable/baseline_bookmark_24" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivRule"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="24dp"
|
||||
android:contentDescription="@string/title_edit_rules"
|
||||
android:paddingEnd="6dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintStart_toEndOf="@id/ivSubscribed"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName"
|
||||
app:srcCompat="@drawable/baseline_filter_list_24" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivNotify"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="24dp"
|
||||
android:contentDescription="@string/title_legend_notify"
|
||||
android:paddingEnd="6dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintStart_toEndOf="@id/ivRule"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName"
|
||||
app:srcCompat="@drawable/baseline_notifications_24" />
|
||||
|
||||
<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_toStartOf="@+id/tvMessages"
|
||||
app:layout_constraintStart_toEndOf="@id/ivNotify"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvMessages"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="123"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintEnd_toStartOf="@+id/ivMessages"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivMessages"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:contentDescription="@string/title_legend_count"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName"
|
||||
app:srcCompat="@drawable/baseline_mail_outline_24" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivType"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="24dp"
|
||||
android:contentDescription="@string/title_legend_folder_type"
|
||||
android:paddingEnd="6dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvType"
|
||||
app:layout_constraintStart_toEndOf="@id/ivExpander"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvType"
|
||||
app:srcCompat="@drawable/baseline_inbox_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvType"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:gravity="center_vertical"
|
||||
android:maxLines="1"
|
||||
android:minHeight="24dp"
|
||||
android:text="type"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
android:textStyle="italic"
|
||||
app:layout_constraintStart_toEndOf="@id/ivType"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvName" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTotal"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:gravity="center_vertical"
|
||||
android:maxLines="1"
|
||||
android:minHeight="24dp"
|
||||
android:text="12,345"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
android:textStyle="italic"
|
||||
app:layout_constraintEnd_toStartOf="@+id/tvAfter"
|
||||
app:layout_constraintStart_toEndOf="@id/tvType"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvName" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvAfter"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="30"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tvType"
|
||||
app:layout_constraintEnd_toStartOf="@+id/ivSync"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvType" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivSync"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:contentDescription="@string/title_legend_sync_state"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tvType"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvType"
|
||||
app:srcCompat="@drawable/baseline_sync_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvKeywords"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="Keywords"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/ivExpander"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvType" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvError"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:text="error"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||
android:textColor="?attr/colorWarning"
|
||||
android:textIsSelectable="true"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/ivExpander"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvKeywords" />
|
||||
|
||||
<View
|
||||
android:id="@+id/paddingBottom"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/clItem"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="6dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvError" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/activatableItemBackground"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
android:padding="6dp">
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/vwColor"
|
||||
android:layout_width="6dp"
|
||||
android:layout_height="0dp"
|
||||
app:cardBackgroundColor="?attr/colorAccent"
|
||||
app:cardCornerRadius="1.5dp"
|
||||
app:cardElevation="0dp"
|
||||
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"
|
||||
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" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivReadOnly"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="6dp"
|
||||
app:layout_constraintStart_toEndOf="@id/vwColor"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvType"
|
||||
app:srcCompat="@drawable/baseline_visibility_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" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivUnified"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="24dp"
|
||||
android:contentDescription="@string/title_unified_folder"
|
||||
android:paddingEnd="6dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintStart_toEndOf="@id/ivExpander"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName"
|
||||
app:srcCompat="@drawable/baseline_folder_special_24" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivSubscribed"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="24dp"
|
||||
android:contentDescription="@string/title_legend_notify"
|
||||
android:paddingEnd="6dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintStart_toEndOf="@id/ivUnified"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName"
|
||||
app:srcCompat="@drawable/baseline_bookmark_24" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivRule"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="24dp"
|
||||
android:contentDescription="@string/title_edit_rules"
|
||||
android:paddingEnd="6dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintStart_toEndOf="@id/ivSubscribed"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName"
|
||||
app:srcCompat="@drawable/baseline_filter_list_24" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivNotify"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="24dp"
|
||||
android:contentDescription="@string/title_legend_notify"
|
||||
android:paddingEnd="6dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintStart_toEndOf="@id/ivRule"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName"
|
||||
app:srcCompat="@drawable/baseline_notifications_24" />
|
||||
|
||||
<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_toStartOf="@+id/tvMessages"
|
||||
app:layout_constraintStart_toEndOf="@id/ivNotify"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvMessages"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="123"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintEnd_toStartOf="@+id/ivMessages"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivMessages"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:contentDescription="@string/title_legend_count"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName"
|
||||
app:srcCompat="@drawable/baseline_mail_outline_24" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivType"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="24dp"
|
||||
android:contentDescription="@string/title_legend_folder_type"
|
||||
android:paddingEnd="6dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvType"
|
||||
app:layout_constraintStart_toEndOf="@id/ivExpander"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvType"
|
||||
app:srcCompat="@drawable/baseline_inbox_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvType"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:gravity="center_vertical"
|
||||
android:maxLines="1"
|
||||
android:minHeight="24dp"
|
||||
android:text="type"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
android:textStyle="italic"
|
||||
app:layout_constraintStart_toEndOf="@id/ivType"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvName" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTotal"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:gravity="center_vertical"
|
||||
android:maxLines="1"
|
||||
android:minHeight="24dp"
|
||||
android:text="12,345"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
android:textStyle="italic"
|
||||
app:layout_constraintEnd_toStartOf="@+id/tvAfter"
|
||||
app:layout_constraintStart_toEndOf="@id/tvType"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvName" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvAfter"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="30"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tvType"
|
||||
app:layout_constraintEnd_toStartOf="@+id/ivSync"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvType" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivSync"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:contentDescription="@string/title_legend_sync_state"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tvType"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvType"
|
||||
app:srcCompat="@drawable/baseline_sync_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvKeywords"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="Keywords"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/ivExpander"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvType" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvError"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:text="error"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||
android:textColor="?attr/colorWarning"
|
||||
android:textIsSelectable="true"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/ivExpander"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvKeywords" />
|
||||
|
||||
<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/tvError" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
</FrameLayout>
|
||||
@@ -4,77 +4,90 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/clItem"
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/card"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="6dp"
|
||||
app:cardBackgroundColor="?attr/colorCardBackground"
|
||||
app:cardCornerRadius="6dp"
|
||||
app:cardElevation="6dp">
|
||||
|
||||
<View
|
||||
android:id="@+id/vwColor"
|
||||
android:layout_width="6dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="?attr/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="parent"
|
||||
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"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/clItem"
|
||||
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>
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="6dp">
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/vwColor"
|
||||
android:layout_width="6dp"
|
||||
android:layout_height="0dp"
|
||||
app:cardBackgroundColor="?attr/colorAccent"
|
||||
app:cardCornerRadius="1.5dp"
|
||||
app:cardElevation="0dp"
|
||||
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="parent"
|
||||
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>
|
||||
</androidx.cardview.widget.CardView>
|
||||
</FrameLayout>
|
||||
Reference in New Issue
Block a user