feat(APKUpdate): implement APK update check and enhance build workflow
- 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:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user