feat(APKUpdate): implement APK update check and enhance build workflow
Some checks failed
Frontend CI / ota-android (push) Has been cancelled
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / build-android-apk (push) Has been cancelled

- Added `expo-intent-launcher` dependency to support APK launching functionality.
- Introduced `APKUpdateBootstrap` component to check for APK updates during app initialization.
- Enhanced build workflow in `build.yml` to resolve runtime version and upload APK to the updates server.
- Updated `HomeScreen` and `TabsLayout` to manage tab visibility and scroll behavior based on user interactions.
- Refactored message bubble styles for improved UI consistency and user experience.
This commit is contained in:
lafay
2026-03-26 03:41:43 +08:00
parent 405cd271db
commit c903990aaf
15 changed files with 449 additions and 62 deletions

View File

@@ -201,7 +201,7 @@ export function createChatScreenStyles(colors: AppColors) {
alignItems: 'flex-start',
},
// 头像
// 头像 - 更大一点
avatarWrapper: {
marginHorizontal: 2,
shadowColor: colors.chat.shadow,
@@ -226,43 +226,43 @@ export function createChatScreenStyles(colors: AppColors) {
alignItems: 'flex-start',
},
senderName: {
fontSize: 13,
color: colors.chat.link,
fontSize: 14,
color: '#555555', // 柔和的深灰色
marginBottom: 4,
marginLeft: 4,
fontWeight: '600',
},
// 消息气泡 - 外层极轻阴影(纯文字气泡更接近扁平 IM
// 消息气泡 - 微信风格:更小的圆角 + 更紧凑的内边距
messageBubbleOuter: {
borderRadius: 16,
minWidth: 60,
borderRadius: 12,
minWidth: 44,
shadowColor: colors.chat.shadow,
shadowOffset: { width: 0, height: 0.5 },
shadowOpacity: 0.04,
shadowRadius: 1,
shadowOffset: { width: 0, height: 1 },
shadowOpacity: 0.06,
shadowRadius: 2,
elevation: 1,
},
myBubbleOuter: {
borderBottomRightRadius: 4,
borderBottomRightRadius: 4, // 微信的小尾巴更尖
},
theirBubbleOuter: {
borderTopLeftRadius: 4,
},
// 内层:背景 + 裁剪,防止回复条/@ 高亮在圆角外露出颜色
// 内层:更紧凑的微信风格内边距
messageBubbleInner: {
borderRadius: 16,
borderRadius: 12,
overflow: 'hidden',
paddingHorizontal: spacing.md,
paddingVertical: spacing.sm + 4,
minWidth: 60,
paddingHorizontal: 10, // 微信:更窄的左右边距
paddingVertical: 7, // 微信:更紧的上下边距
minWidth: 44,
},
myBubbleInner: {
backgroundColor: colors.chat.replyTint,
backgroundColor: colors.chat.bubbleOutgoing,
borderBottomRightRadius: 4,
},
theirBubbleInner: {
backgroundColor: colors.chat.card,
backgroundColor: colors.chat.bubbleIncoming,
borderTopLeftRadius: 4,
},
recalledBubble: {
@@ -272,17 +272,17 @@ export function createChatScreenStyles(colors: AppColors) {
borderStyle: 'dashed',
},
myBubbleText: {
color: colors.chat.textPrimary, // 主文案
fontSize: 16,
lineHeight: 23,
letterSpacing: 0.2,
color: '#2A2A2A',
fontSize: 18, // 更大字体
lineHeight: 25, // 相应调大行高
letterSpacing: 0.1,
fontWeight: '400',
},
theirBubbleText: {
color: colors.chat.textPrimary, // 主文案
fontSize: 16,
lineHeight: 23,
letterSpacing: 0.2,
color: '#2A2A2A',
fontSize: 18,
lineHeight: 25,
letterSpacing: 0.1,
fontWeight: '400',
},
// 选中状态
@@ -312,21 +312,21 @@ export function createChatScreenStyles(colors: AppColors) {
fontStyle: 'italic',
},
// 图片消息 - QQ风格更大的图片,更明显的圆角
// 图片消息 - QQ/微信风格:更大的圆角,更柔和的阴影
imageBubble: {
borderRadius: 18,
overflow: 'hidden',
shadowColor: colors.chat.shadow,
shadowOffset: { width: 0, height: 3 },
shadowOpacity: 0.15,
shadowOpacity: 0.12,
shadowRadius: 6,
elevation: 5,
elevation: 4,
},
myImageBubble: {
borderBottomRightRadius: 6, // 右下角尖,箭头在右下
borderBottomRightRadius: 8,
},
theirImageBubble: {
borderTopLeftRadius: 6, // 左上角尖,箭头在左上
borderTopLeftRadius: 8,
},
messageImage: {
width: 220,