Skip to content

v2.1

Latest

Choose a tag to compare

@github-actions github-actions released this 20 Jun 20:57

release: 2.1 通话记录 / 拨号器 / In-call 大改版 + 一堆 bug 修复

通话记录页 (CallLog)

  • 整页改 MD3 list-item 风格 干掉每行 MaterialCardView, 改成整行 ripple + 字母头像圆
  • 字母头像按号码 hash 在 primary/secondary/tertiary container 三色轮转, 同号码颜色固定
  • 联系人有头像时异步加载 (ContactAvatars: 单线程 IO + 4MB LruCache + tag 防回收串图)
  • 日期分组 header: 今天 / 昨天 / 更早
  • 顶部 MD3 Filter ChipGroup: 全部 / 未接 / 来电 / 已拨 (单选必选)
  • 未接电话方向 icon + 副文本走 colorError 突出
  • 同号码连续多通自动折叠 显示 "(N)" 次数
  • 折叠组点击行展开 显示组内每次时间 (Wed 4:36 PM 绝对时间格式 + 时长)
  • 展开面板下方两个 Tonal action: Message (smsto:) / Contact (有联系人跳详情 没有就新建)
  • 整行点击: 单通直接回拨 多通切换展开/折叠 右侧 IconButton 始终回拨最新一通

拨号器页 (Dialer)

  • 整页重构: 顶部 ScrollView 可滚 + 底部固定拨号区 Y 不变
  • 拨号区背景 colorSurfaceContainer 顶部圆角 28dp 视觉上和上方滚动区分开
  • 号码显示行移到拨号区顶部: overflow icon 左 / EditText 居中 / backspace 右
  • 顶部命中区按输入数字搜:
    • 「All contacts」联系人 (Phone.NUMBER 归一化后 contains digits)
    • 「Not in your contacts」通话记录里命中但不在通讯录的号码
  • 匹配号码段加粗 (SpannableString StyleSpan), 例 "Mobile 11451<b>4</b>"
  • 命中行带联系人头像 + 字母 fallback + 直接呼叫按钮
  • DialerMatchRepository: ContactMatch + OtherMatch records 限 8 / 4 条

In-call 页

  • 「更多」面板每行 Add call / Hold 改用圆角 28dp surfaceContainerHigh ripple 背景
  • 行内 icon 圆从 colorSecondaryContainer (紫调) → colorSurfaceContainerHighest (中性灰)
  • 「More」标题字号 TitleMedium → TitleLarge
  • Dock 按钮圆角 30dp (胶囊) → 16dp (圆角方块) 跟 Pixel Dialer 一致

ContactsRepository

  • 新增 lookupPhotoUri(): PhoneLookup 查 PHOTO_THUMBNAIL_URI 回退到 PHOTO_URI
  • 新增 lookupContactUri(): 解出真正可 ACTION_VIEW 的 Contacts lookup uri
    (之前直接拿 PhoneLookup CONTENT_FILTER_URI 去 VIEW 必然 ActivityNotFoundException)

Bug 修复

  • More 面板 Add call / Hold icon 暗色模式下显示黑色:
    IconicsImageView 不会自动跟随主题色 必须显式声明 app:iiv_color
  • 展开面板 Contact 按钮 toast「no app available」:
    1. PhoneLookup CONTENT_FILTER_URI 不能直接 ACTION_VIEW 改走 Contacts.getLookupUri
    2. ACTION_INSERT_OR_EDIT 改成 ACTION_INSERT + CONTENT_TYPE 跟 DialerFragment 对齐
  • AndroidManifest 补 queries 声明 (Android 11+ package visibility):
    smsto VIEW / SENDTO, contacts INSERT, contacts VIEW (item/contact + item/person)
  • Monochrome launcher icon 在 Pixel Launcher 不被主题化:
    去掉 <group> scale/translate 变换 路径坐标 ×2.5 +24 烤进 108×108 viewport 直填

代码规范统一

  • 去掉所有 inline 完整类名 (io.langya.module.R.string.xxx / android.R.attr.xxx)
  • material / framework R 用 static import 个别属性常量 避免和项目 R 命名冲突
  • import 分组: java → 第三方 (android/androidx/com/timber) → io.langya, 空行分隔
  • 删未使用 import, 散落 magic dp 提取成常量