fix: align android typography with wechat density

This commit is contained in:
AI Bot
2026-06-05 10:34:03 +08:00
parent a38b3a3093
commit eb8961fc3f
15 changed files with 246 additions and 245 deletions

View File

@@ -63,15 +63,16 @@ public class BossUiConversationRowTest {
previewView.getMeasuredWidth(),
previewView.getMeasuredHeight()
);
assertEquals("列表项应恢复成更紧凑的信息密度: " + metrics, BossUi.dp(context, 14), rowView.getPaddingLeft());
assertEquals("列表项应恢复成更紧凑的信息密度: " + metrics, BossUi.dp(context, 8), rowView.getPaddingTop());
assertEquals("列表项应恢复成更紧凑的信息密度: " + metrics, BossUi.dp(context, 14), rowView.getPaddingRight());
assertEquals("列表项应恢复成更紧凑的信息密度: " + metrics, BossUi.dp(context, 8), rowView.getPaddingBottom());
assertEquals("列表项应对标微信当前紧凑密度: " + metrics, BossUi.dp(context, 12), rowView.getPaddingLeft());
assertEquals("列表项应对标微信当前紧凑密度: " + metrics, BossUi.dp(context, 6), rowView.getPaddingTop());
assertEquals("列表项应对标微信当前紧凑密度: " + metrics, BossUi.dp(context, 12), rowView.getPaddingRight());
assertEquals("列表项应对标微信当前紧凑密度: " + metrics, BossUi.dp(context, 6), rowView.getPaddingBottom());
assertEquals("列表项不应保持卡片式浮层感: " + metrics, 0f, rowView.getElevation(), 0.01f);
assertTrue("单条会话行不应再撑到接近 90dp: " + metrics, rowView.getMeasuredHeight() <= BossUi.dp(context, 78));
assertEquals("会话头像应恢复到更克制的尺寸: " + metrics, BossUi.dp(context, 44), rowView.getChildAt(0).getLayoutParams().width);
assertEquals("会话头像应恢复到更克制的尺寸: " + metrics, BossUi.dp(context, 44), rowView.getChildAt(0).getLayoutParams().height);
assertEquals("标题字号应回到中等密度", 15f, titleView.getTextSize() / context.getResources().getDisplayMetrics().scaledDensity, 0.5f);
assertTrue("单条会话行应维持微信式有效信息面积: " + metrics, rowView.getMeasuredHeight() <= BossUi.dp(context, 68));
assertEquals("会话头像应回到微信列表的小尺寸: " + metrics, BossUi.dp(context, 40), rowView.getChildAt(0).getLayoutParams().width);
assertEquals("会话头像应回到微信列表的小尺寸: " + metrics, BossUi.dp(context, 40), rowView.getChildAt(0).getLayoutParams().height);
assertEquals("标题字号应对标微信列表主标题", 14f, titleView.getTextSize() / context.getResources().getDisplayMetrics().scaledDensity, 0.5f);
assertEquals("预览字号应对标微信列表辅助文字", 11f, previewView.getTextSize() / context.getResources().getDisplayMetrics().scaledDensity, 0.5f);
assertTrue("中间文字列不应被挤成 0 宽: " + metrics, centerColumn.getMeasuredWidth() > 0);
assertTrue("标题需要保留可见宽度: " + metrics, titleView.getMeasuredWidth() > 0);
assertTrue("预览需要保留可见宽度: " + metrics, previewView.getMeasuredWidth() > 0);

View File

@@ -50,8 +50,8 @@ public class BossUiRootSurfaceTest {
assertEquals("资料头不应保留浮层卡片感", 0f, header.getElevation(), 0.01f);
assertTrue("资料头应保持横向布局", header instanceof LinearLayout);
View avatar = ((LinearLayout) header).getChildAt(0);
assertEquals("我的页头像应恢复到中等尺寸", BossUi.dp(activity, 56), avatar.getLayoutParams().width);
assertEquals("我的页头像应恢复到中等尺寸", BossUi.dp(activity, 56), avatar.getLayoutParams().height);
assertEquals("我的页头像应对标微信资料入口尺寸", BossUi.dp(activity, 52), avatar.getLayoutParams().width);
assertEquals("我的页头像应对标微信资料入口尺寸", BossUi.dp(activity, 52), avatar.getLayoutParams().height);
assertTrue(viewTreeContainsText(header, "Kris"));
assertTrue(viewTreeContainsText(header, "krisolo"));
assertTrue(viewTreeContainsText(header, "最高管理员"));
@@ -105,12 +105,12 @@ public class BossUiRootSurfaceTest {
assertEquals("会话", conversations.getText().toString());
assertEquals("设备", devices.getText().toString());
assertEquals("我的", me.getText().toString());
assertEquals("顶部标题应恢复到更克制的字号", 20f, ((TextView) activity.findViewById(R.id.top_title)).getTextSize() / activity.getResources().getDisplayMetrics().scaledDensity, 0.5f);
assertEquals("底栏高度应恢复到更紧凑的有效面积", BossUi.dp(activity, 58), ((View) conversations.getParent()).getLayoutParams().height);
assertEquals("顶部标题应对标微信页面标题", 18f, ((TextView) activity.findViewById(R.id.top_title)).getTextSize() / activity.getResources().getDisplayMetrics().scaledDensity, 0.5f);
assertEquals("底栏高度应对标微信底栏有效面积", BossUi.dp(activity, 54), ((View) conversations.getParent()).getLayoutParams().height);
assertNotNull("会话 tab 应显示顶部图标", conversations.getCompoundDrawables()[1]);
assertNotNull("设备 tab 应显示顶部图标", devices.getCompoundDrawables()[1]);
assertNotNull("我的 tab 应显示顶部图标", me.getCompoundDrawables()[1]);
assertEquals("底栏文字应保持小字号", 11f, conversations.getTextSize() / activity.getResources().getDisplayMetrics().scaledDensity, 0.5f);
assertEquals("底栏文字应对标微信底栏标签", 10f, conversations.getTextSize() / activity.getResources().getDisplayMetrics().scaledDensity, 0.5f);
}
private static boolean viewTreeContainsText(View root, String expectedText) {

View File

@@ -21,9 +21,9 @@ public class BossUiTopActionStyleTest {
BossUi.applyTopIconButtonStyle(context, button);
assertEquals(BossUi.dp(context, 36), button.getMinimumWidth());
assertEquals(BossUi.dp(context, 36), button.getMinimumHeight());
assertEquals(BossUi.dp(context, 7), button.getPaddingLeft());
assertEquals(BossUi.dp(context, 7), button.getPaddingTop());
assertEquals(BossUi.dp(context, 34), button.getMinimumWidth());
assertEquals(BossUi.dp(context, 34), button.getMinimumHeight());
assertEquals(BossUi.dp(context, 6), button.getPaddingLeft());
assertEquals(BossUi.dp(context, 6), button.getPaddingTop());
}
}

View File

@@ -96,8 +96,8 @@ public class ConversationInfoActivityTest {
SwitchCompat takeoverSwitch = findFirstSwitch(takeoverRow);
assertEquals(LinearLayout.HORIZONTAL, takeoverRow.getOrientation());
assertEquals(BossUi.dp(activity, 14), takeoverRow.getPaddingLeft());
assertEquals(BossUi.dp(activity, 14), takeoverRow.getPaddingRight());
assertEquals(BossUi.dp(activity, 12), takeoverRow.getPaddingLeft());
assertEquals(BossUi.dp(activity, 12), takeoverRow.getPaddingRight());
assertNotNull(takeoverSwitch);
assertEquals("", String.valueOf(takeoverSwitch.getText()));
}