style: tighten pinned header and context ring
This commit is contained in:
@@ -42,8 +42,8 @@ public final class BossUi {
|
||||
private static final int DEVICE_STATUS_ABNORMAL = Color.parseColor("#FF5A5A");
|
||||
private static final int DEVICE_STATUS_OFFLINE = Color.parseColor("#A7AFB7");
|
||||
private static final int PINNED_ROW_BG = Color.parseColor("#FFF7F7F7");
|
||||
private static final int CONTEXT_RING_TRACK = Color.parseColor("#FFD7D7D7");
|
||||
private static final int CONTEXT_RING_BG = Color.parseColor("#FFF4F4F4");
|
||||
private static final int CONTEXT_RING_TRACK = Color.parseColor("#FFD0D0D0");
|
||||
private static final int CONTEXT_RING_BG = Color.parseColor("#FFFFFFFF");
|
||||
|
||||
private BossUi() {}
|
||||
|
||||
@@ -706,10 +706,10 @@ public final class BossUi {
|
||||
|
||||
if (row.contextIndicatorVisible) {
|
||||
FrameLayout ringWrap = new FrameLayout(context);
|
||||
LinearLayout.LayoutParams ringWrapParams = new LinearLayout.LayoutParams(dp(context, 28), dp(context, 28));
|
||||
ringWrapParams.topMargin = dp(context, 8);
|
||||
LinearLayout.LayoutParams ringWrapParams = new LinearLayout.LayoutParams(dp(context, 24), dp(context, 24));
|
||||
ringWrapParams.topMargin = dp(context, 6);
|
||||
ringWrap.setLayoutParams(ringWrapParams);
|
||||
ringWrap.setBackground(createRoundedBackground(CONTEXT_RING_BG, dp(context, 14)));
|
||||
ringWrap.setBackground(createRoundedBackground(CONTEXT_RING_BG, dp(context, 12)));
|
||||
ringWrap.setContentDescription(TextUtils.isEmpty(row.contextStatusLabel)
|
||||
? "上下文使用量"
|
||||
: "上下文使用量:" + row.contextStatusLabel);
|
||||
@@ -720,7 +720,7 @@ public final class BossUi {
|
||||
row.contextStatusLevel,
|
||||
row.contextMustFinish
|
||||
);
|
||||
FrameLayout.LayoutParams ringParams = new FrameLayout.LayoutParams(dp(context, 18), dp(context, 18), Gravity.CENTER);
|
||||
FrameLayout.LayoutParams ringParams = new FrameLayout.LayoutParams(dp(context, 16), dp(context, 16), Gravity.CENTER);
|
||||
ring.setLayoutParams(ringParams);
|
||||
ringWrap.addView(ring);
|
||||
trailingColumn.addView(ringWrap);
|
||||
@@ -745,9 +745,9 @@ public final class BossUi {
|
||||
);
|
||||
params.leftMargin = dp(context, 16);
|
||||
params.rightMargin = dp(context, 16);
|
||||
params.bottomMargin = dp(context, 8);
|
||||
params.bottomMargin = dp(context, 6);
|
||||
row.setLayoutParams(params);
|
||||
row.setPadding(0, dp(context, 6), 0, dp(context, 4));
|
||||
row.setPadding(0, dp(context, 4), 0, dp(context, 2));
|
||||
if (listener != null) {
|
||||
row.setClickable(true);
|
||||
row.setFocusable(true);
|
||||
@@ -1430,7 +1430,7 @@ public final class BossUi {
|
||||
) {
|
||||
final int clampedUsage = Math.max(0, Math.min(100, usagePercent));
|
||||
final int ringColor = resolveContextRingColor(level, mustFinish);
|
||||
final float strokeWidth = dp(context, 2.4f);
|
||||
final float strokeWidth = dp(context, 2f);
|
||||
return new View(context) {
|
||||
private final Paint trackPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||
private final Paint progressPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||
@@ -1451,7 +1451,7 @@ public final class BossUi {
|
||||
@Override
|
||||
protected void onDraw(Canvas canvas) {
|
||||
super.onDraw(canvas);
|
||||
float inset = strokeWidth;
|
||||
float inset = strokeWidth / 2f + dp(context, 0.5f);
|
||||
arcRect.set(inset, inset, getWidth() - inset, getHeight() - inset);
|
||||
canvas.drawArc(arcRect, -90, 360, false, trackPaint);
|
||||
canvas.drawArc(arcRect, -90, (360f * clampedUsage) / 100f, false, progressPaint);
|
||||
|
||||
@@ -7,6 +7,7 @@ import static org.junit.Assert.assertTrue;
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
@@ -95,6 +96,11 @@ public class BossUiConversationRowTest {
|
||||
|
||||
assertEquals("空闲会话不应再渲染活动点", 2, trailingColumn.getChildCount());
|
||||
assertFalse("右下角应改成环形上下文状态,而不是文字", viewTreeContainsText(trailingColumn, "上下文紧张 34%"));
|
||||
FrameLayout ringWrap = (FrameLayout) trailingColumn.getChildAt(1);
|
||||
assertEquals("上下文环外框应更克制,接近微信右侧小图标尺寸", BossUi.dp(context, 24), ringWrap.getLayoutParams().width);
|
||||
assertEquals("上下文环外框应更克制,接近微信右侧小图标尺寸", BossUi.dp(context, 24), ringWrap.getLayoutParams().height);
|
||||
assertEquals("上下文环本体应更细更轻", BossUi.dp(context, 16), ringWrap.getChildAt(0).getLayoutParams().width);
|
||||
assertEquals("上下文环本体应更细更轻", BossUi.dp(context, 16), ringWrap.getChildAt(0).getLayoutParams().height);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -127,6 +133,18 @@ public class BossUiConversationRowTest {
|
||||
assertFalse("置顶会话不应再显示右侧“置顶”文字", viewTreeContainsText(rowView, "置顶"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void buildConversationSectionHeader_usesTighterWechatSpacing() {
|
||||
Context context = RuntimeEnvironment.getApplication();
|
||||
|
||||
LinearLayout header = BossUi.buildConversationSectionHeader(context, "置顶会话", "收起", null);
|
||||
|
||||
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) header.getLayoutParams();
|
||||
assertEquals("分组标题和列表之间应再收紧一点", BossUi.dp(context, 6), params.bottomMargin);
|
||||
assertEquals("分组头顶部留白应更轻", BossUi.dp(context, 4), header.getPaddingTop());
|
||||
assertEquals("分组头底部留白应更轻", BossUi.dp(context, 2), header.getPaddingBottom());
|
||||
}
|
||||
|
||||
private static boolean viewTreeContainsText(View root, String expectedText) {
|
||||
if (root instanceof TextView) {
|
||||
CharSequence text = ((TextView) root).getText();
|
||||
|
||||
Reference in New Issue
Block a user