From d9ee2d9b3b54d71a34554644f5049ad48a688dab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=97=E5=AE=AB=E9=9B=AA=E7=8F=8A?= Date: Thu, 11 Nov 2021 18:36:42 +0800 Subject: [PATCH] [app] Set maxLines for online modules (#1391) --- .../lsposed/manager/ui/fragment/RepoFragment.java | 13 ++++++++----- .../manager/ui/widget/ExpandableTextView.java | 12 ++++++++++-- app/src/main/res/layout/item_onlinemodule.xml | 12 +++++++----- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/lsposed/manager/ui/fragment/RepoFragment.java b/app/src/main/java/org/lsposed/manager/ui/fragment/RepoFragment.java index 7d9f50fb..55186292 100644 --- a/app/src/main/java/org/lsposed/manager/ui/fragment/RepoFragment.java +++ b/app/src/main/java/org/lsposed/manager/ui/fragment/RepoFragment.java @@ -196,12 +196,8 @@ public class RepoFragment extends BaseFragment implements RepoLoader.Listener { public void onBindViewHolder(@NonNull RepoAdapter.ViewHolder holder, int position) { OnlineModule module = showList.get(position); holder.appName.setText(module.getDescription()); + SpannableStringBuilder sb = new SpannableStringBuilder(module.getName()); - String summary = module.getSummary(); - if (summary != null) { - sb.append("\n"); - sb.append(summary); - } ModuleUtil.InstalledModule installedModule = ModuleUtil.getInstance().getModule(module.getName()); if (installedModule != null) { var ver = repoLoader.getModuleLatestVersion(installedModule.packageName); @@ -220,7 +216,14 @@ public class RepoFragment extends BaseFragment implements RepoLoader.Listener { sb.setSpan(foregroundColorSpan, sb.length() - recommended.length(), sb.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); } } + String summary = module.getSummary(); + if (summary != null) { + sb.append("\n"); + sb.append(summary); + } + holder.appDescription.setText(sb); + holder.itemView.setOnClickListener(v -> { searchView.clearFocus(); searchView.onActionViewCollapsed(); diff --git a/app/src/main/java/org/lsposed/manager/ui/widget/ExpandableTextView.java b/app/src/main/java/org/lsposed/manager/ui/widget/ExpandableTextView.java index f8c0b8d8..b3a62259 100644 --- a/app/src/main/java/org/lsposed/manager/ui/widget/ExpandableTextView.java +++ b/app/src/main/java/org/lsposed/manager/ui/widget/ExpandableTextView.java @@ -21,10 +21,12 @@ package org.lsposed.manager.ui.widget; import android.annotation.SuppressLint; import android.content.Context; +import android.graphics.Typeface; import android.text.Layout; import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.Spanned; +import android.text.TextPaint; import android.text.method.LinkMovementMethod; import android.text.style.ClickableSpan; import android.transition.TransitionManager; @@ -32,13 +34,14 @@ import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; -import android.widget.TextView; import androidx.annotation.NonNull; +import com.google.android.material.textview.MaterialTextView; + import org.lsposed.manager.R; -public class ExpandableTextView extends TextView { +public class ExpandableTextView extends MaterialTextView { private CharSequence text = null; private int nextLines = 0; private final int maxLines; @@ -65,6 +68,11 @@ public class ExpandableTextView extends TextView { setMaxLines(nextLines); ExpandableTextView.super.setText(text); } + + @Override + public void updateDrawState(@NonNull TextPaint ds) { + ds.setTypeface(Typeface.DEFAULT_BOLD); + } }; collapse.setSpan(span, 0, collapse.length(), 0); expand = new SpannableString(context.getString(R.string.expand)); diff --git a/app/src/main/res/layout/item_onlinemodule.xml b/app/src/main/res/layout/item_onlinemodule.xml index 1491bf4d..211cd35c 100644 --- a/app/src/main/res/layout/item_onlinemodule.xml +++ b/app/src/main/res/layout/item_onlinemodule.xml @@ -33,28 +33,30 @@ -