Releases: miramira8295/Petrelgram
Release list
Petrelgram v1.4.2
新功能
本地外观设置(设置 → 聊天)— 对齐桌面版的「主题」语义,全部只存本机、不同步账号:
- 自定义强调色:开关 + 浅色 / 深色各一个颜色,整行点开取色器(光谱方块、色相条、十六进制输入、预设色),拖动实时预览,取消恢复、确定保留。改色全局即时生效,首页的应用名也跟着染色。关掉开关回到默认蓝,不再跟随账号的资料页颜色。
- 气泡颜色:发出 / 收到 × 浅色 / 深色四个颜色,文字色按底色亮度自动黑白;可一键恢复默认。
- 气泡材质:「标准 / 玻璃」二选一。玻璃态下气泡连同尾巴是一整块材质(沉浸光感或毛玻璃按设备定),只对屏内气泡生效,省电时自动退回纯色。
- 材质厚度 / 光感等级改为浅色 / 深色分别设置、随系统模式自动切换,厚度多了「关闭」档。
- 名字颜色、资料页颜色(同步到账号、别人看到的)并入同一页底部,不再和强调色混在一起。
交互设置 — 新增「显示联系人页签」开关,关掉后底栏不再显示联系人。
修复
- 表情状态设置后个人页不显示(老版 schema 下
setEmojiStatus相当于清除,现在两种形状一起发;个人页也会即时刷新) - 内置 7 个名字颜色对齐官方(此前借用了头像色板,整体偏浅)
- 会员的表情状态列表为空、只剩「清除」(#120)
- 贴纸偶发不显示、退出重进才好(#68)——静态贴纸文件到达后行不重绘,这次找到真身
- 停在未读分界、最后一条已在底部可见时,新消息不往上顶(#62 一族);向下翻到底后紧接着的实时消息被丢掉(#62)
- 聊天页打开内置浏览器返回后,底部页签栏浮在聊天页上
- 材质厚度调到「关闭」时底部页签栏不生效
- 视频首播失败自动重试三次(#127);键盘弹出 / 矮窗下长按菜单不带预览(#114)
- MeoW 推送注册记录丢失时自动重置并提示(#39 #60)
- 启用中的代理以 TDLib 连接状态为准,ping 不通不再误报「未连接」;ping 失败时显示 TCP 连接延迟(#31)
- 子页标题栏改为 MINI,标题和返回键同一行
性能
聊天页首屏与滚动:首屏分期揭示与初始锚点稳定、会话列表渲染门控与冻结、聊天页 TGS 贴纸门控与并发名额、数据源按渲染快照判定变更。
关于这个包
未签名,需要自行签名后安装。签名之后华为推送通道不可用——Push Token 由华为按「AGC 应用 + 设备」签发,自签的证书与本应用的 AGC 身份对不上,取不到 token。这不是故障,应用会自动退回原有的推送方式。
升级提示:应用主色不再跟随账号的资料页颜色,升级后会回到默认蓝;要换色请到 设置 → 聊天 → 自定义强调色。
附件
除安装包外还附带三个构建产物,它们不在版本库里,自行构建时需要:
| 文件 | 用途 |
|---|---|
libtdjson.so |
TDLib,arm64 |
libtgcalls_ohos.so |
音视频通话,arm64 |
libvpx-vp9dec-ohos-arm64.a |
透明贴纸的 VP9 软解码器(仅解码器) |
放到 entry/libs/arm64-v8a/ 与 third_party/libvpx-ohos/arm64-v8a/ 下即可。SHA256SUMS.txt 是全部附件的校验和。
Petrelgram v1.4.1
新功能
桌面图标自选 — 设置 → 外观设置里换应用图标,九个选项:默认、雾面、霓虹、极光、午夜、石墨、松林、落日、紫罗兰。走的是系统本地的 alternateIcons,不经过 AGC,也不需要联网。仅 API 26 及以上的设备显示这一块(低版本系统没有这套接口)。
透明贴纸不再是黑底 — Telegram 的 webm 视频贴纸带独立的 alpha 码流,此前整条链路依赖系统 VP9 解码器,而实测设备上根本没有(枚举了全部 19 个视频解码器,VP9/VP8 软硬解都没有)。现在改用随包自带的 libvpx v1.17.0-rc2 软解,与设备能力无关。贴纸只有 512px/30fps/3s/256KB,软解绰绰有余。
华为推送通道 — 能取到设备 Push Token 时自动注册,通知由系统弹出,应用被杀也能收到,且应用在前台时不再重复弹。取不到 token 就照旧走原有通道,行为不变。
修复
- 从聊天里进另一个聊天,返回会跳过中间那层直接回列表
- 会话窗口现在允许堆叠,同一会话仍只保留一个
- 冷启动时系统启动窗到首帧之间那一下跳变
- 视频贴纸整片偏青(交给系统合成位图时源像素格式没有显式指定)
- 打开有未读的会话时落点不在未读消息上
性能
聊天页首屏与滚动:纯文本消息走轻量渲染路径并复用气泡实例;首屏改为分级揭示,每个垂直同步周期只放行一行真实行,不再把多行布局挤进同一帧。
关于这个包
未签名,需要自行签名后安装。签名之后华为推送通道不可用——Push Token 由华为按「AGC 应用 + 设备」签发,自签的证书与本应用的 AGC 身份对不上,取不到 token。这不是故障,应用会自动退回原有的推送方式。
附件
除安装包外还附带三个构建产物,它们不在版本库里,自行构建时需要:
| 文件 | 用途 |
|---|---|
libtdjson.so |
TDLib,arm64 |
libtgcalls_ohos.so |
音视频通话,arm64 |
libvpx-vp9dec-ohos-arm64.a |
透明贴纸的 VP9 软解码器(仅解码器,518K) |
放到 entry/libs/arm64-v8a/ 与 third_party/libvpx-ohos/arm64-v8a/ 下即可。SHA256SUMS.txt 是全部附件的校验和。
Petrelgram v1.4.0
平板:真正的分栏
聊天、联系人、设置三个页签在宽屏设备上进入左右分栏——左栏列表、右栏详情,中间分割线可拖动。每个页签有独立的路由栈,来回切换不会丢右栏的位置;没选中条目时右栏显示空状态。设置的 17 个子页面全部适配。
非分栏的全屏页面(隐私、数据与存储等)在宽屏上限制内容宽度并居中,不再把一行文字拉满整个屏幕。
修复
登录
-
点过一次扫码登录后,就再也用不了手机号登录
TDLib 会把扫码授权态持久化下来,之后每次冷启动都恢复成扫码态,手机号提交被永久拒绝——现象是手机号页能打开、能输入、一点「继续」就报错,且重启多少次都一样,只能清除应用数据才能脱困。现在检测到这个状态会自动重置授权流。(1.3.8.1 的两次修复都没打到根子上,这次是。)
-
登录页不再把 TDLib 的内部状态提示(形如
Call to ... unexpected的英文串)直接显示给用户;真实的服务端错误仍原样透出。
日志与诊断
-
运行日志一直读不出来,上报的是空内容
日志文件到几百 KB 时读取会失败并被静默吞掉,界面显示 0 KB。此前所有的日志上报很可能都是空的——「上传老是失败」多半不是网络问题。中文日志也会因此乱码。已修复。
-
新增「导出日志文件」(设置 → 日志与诊断)。上传依赖网络,网络差时用不了;现在可以直接存成文件,自己用顺手的方式发出来。
界面
- 深色模式下强调色调亮(底栏选中项在暗处更清楚)
- 修复头像圆周的锯齿
- 修复夜间模式下平板右栏空状态不跟随深色
- 修复短消息加了表情回应后气泡被撑得很长
- 更新应用后,「关于」页不再显示上一版的检查结果
其他
@提及现在可以按名字匹配,不再只认用户名(中文名此前完全搜不到)- 消息长按菜单的位置跟随手指落点,不再固定贴着气泡
- 会话列表长按菜单同上
新增
消息长按菜单里三项:
- 保存消息 —— 一步转发到收藏,不用再选目标
- 复读 —— 以自己的名义把这条内容再发一遍(不带「转发自」抬头)
- 查看历史 —— 筛出这个人在本群的全部消息,可逐条跳转
已知问题
- 平板上仍有少数页面未做适配验证:通话中、直播观看、成员权限编辑——这些需要特定场景才能进入。
- 平板目前是两栏(悬浮页签 + 列表 | 详情),不是三栏(固定侧边栏 + 列表 + 对话)。
版本号
从 1.4.0 起使用三位版本号;四位(如 1.3.8.1)保留给紧急修复。
Petrelgram v1.3.8.1
紧急修复
-
修复平板/宽屏设备上整页内容挤在左侧、右边大片空白
1.3.8 全面接入 HDS 导航后,宽屏设备上导航组件会自动进入分栏模式,而应用把整页内容都放在导航列里——结果首页、联系人、设置、个人资料及全部设置子页面在平板上都被挤成窄窄一条,基本不可用。已强制单栏布局。
平板用户请直接升级到 1.3.8.1;1.3.8 的其余修复与新功能不变。
其他
- 登录页新增「代理设置」入口——需要代理的网络环境下,登录前即可配置(#73)
- 扫码登录在无法生成二维码的环境(如部分模拟器)不再无限转圈,超时给出失败提示
Petrelgram v1.3.8
界面
- 全面接入 HDS 设计系统:首页、联系人、设置及全部 16 个设置子页面改用 HdsNavigation 大标题与滚动动态模糊;标题栏玻璃随内容滚动渐显(#44)
- 首页文件夹条重做:细边框、每个文件夹独立毛玻璃胶囊、尺寸打磨
- 归档入口重做:默认完全隐藏,顶部用力下拉才出现并停留,下滑自动收起
- 深色模式修复:聊天页输入条下方黑边、成员标签深色下看不清、媒体查看器与视频控制条在浅色玻璃上白字不可读(改跟主题)
- 频道帖子"N 条评论"入口热区加大
群组
- 群成员标签(chatMemberTag):气泡内与成员列表显示全员可见的成员标签;带权限的管理员可在成员菜单直接编辑(长按成员 → 编辑标签),留空即清除(#84 关联)
- 群聊气泡显示管理员/创建者身份与自定义头衔(#84);修复普通群从未取到管理员名单的问题
- 管理员名单改为向服务器取新鲜数据,修复头衔陈旧/缺人
消息与媒体
- 修复"刚读完的会话来新消息时未读角标不出现"(#56)
- 修复长按文件/投票/联系人等消息弹菜单时误触发点击动作(下载、投票、拨号……)
- 文件下载支持暂停/续传:下载中点卡片暂停(保留进度),再点从断点继续(#45)
- 消息菜单新增「复制链接」——复制正文里的网址,多条可挑选(#70);点外部链接弹「打开/复制」选择
- 全屏查看器切组翻到"尽头"时自动补拉历史,不再假性到头
- 聊天页头部头像支持动态头像(#63)
- 修复内置浏览器打不开百度网盘等站点(UA 分流、App 跳转 scheme、页内弹窗)(#77)
导航
稳定性
Petrelgram v1.3.7
紧急修复
-
修复 1.3.6 在部分较旧系统版本(如 6.1.0.135)上启动即崩溃
1.3.6 新增「浮层材质厚度」设置时,把一个仅 API 26 提供的枚举提到了模块加载期求值。低版本系统上该对象不存在,应用一启动就会崩。已改为按需求值,并全仓复查了同类写法。
受影响的用户请直接升级到 1.3.7;1.3.6 的其余修复与新功能不变。
其他
- 消息列表内容不足一屏时会主动补页,修复部分设备(尤其平板)上「消息很多却滑不动」
Petrelgram v1.3.6
修复
- 有些 999+ 的群打不开也滑不动:会话会卡在十几行,既翻不动也收不到新消息
- 消息缺失与错乱:修好向上翻页误判"到底了"、分页跨过缺口、以及窗口停在旧历史时新消息被丢弃的问题
- 发送体验:点发送后输入框立刻清空,不再等服务器往返;上一条还在发时再点也不会被静默吞掉
- 附件面板崩溃、表情面板卡在"正在打开面板"
- 浏览器点 t.me 链接进来提示"无法识别"
- 贴纸加载不出来:不必再退出会话重进
- 聊天页/浏览器等页面的状态栏颜色与内容不一致
- 聊天背景:进入会话有概率整屏模糊;切换深浅色时壁纸不跟随
- 气泡:正文压住时间戳;竖屏视频被拉伸
- 底栏未读气泡现在跟随强调色
新增
- 群成员管理:成员列表长按出菜单,可提权、限制、封禁、移出、删除该成员的全部消息;限制与提权各有独立面板,逐项权限可调
- 外观设置:浮层材质厚度、沉浸光感等级
- 省电设置:单独的"播放动图头像"开关
- 机器人会话首次进入显示「开始」按钮
- 引用消息整块可点跳转,并按强调色着色
其他
- 群/频道简介里的二维码按钮改为复制按钮
- 「聊天设置」更名为「外观设置」
- 修复群权限保存时会把语音、圆形视频等已关闭项重新打开的问题
Petrelgram v1.3.5
修复
账号条目会被静默删掉,库还在却再也进不去
反馈是「登了第二个账号,重开还是登录页」。查下来是数据丢失一类的问题:磁盘上有 7 个 TDLib 库(主账号那个 206MB、数据完整),注册表里却只剩一条——条目一旦被删,库就成了永远够不着的孤儿。删它的是「同一账号只留一个槽位」的自动去重,删的是一行元信息,留下的是几百 MB 的库。
现在:去重只清理没有活会话的空壳;启动时按磁盘自愈,注册表里没有、库里却有会话的槽位补回来;设置页长按账号可手动移除(条目和数据一起删)。
- 转发列表漏掉群组和频道(过滤条件写了
id > 0,而群和频道的 chat id 是负数) - 多条转发被 TDLib 拒(
message_ids必须严格升序,多选是按点击顺序攒的) - 透明贴纸和表情渲染成白底(系统 AVPlayer 的 surface 不带透明通道,这类素材锁 ijk)
- 多选态下列表滑不动(
HitTestMode.Block连祖先一起封,换成BLOCK_DESCENDANTS) - 骰子面板弹不出来(同一节点上串了两个
bindSheet,只有最后一个生效) - 键盘弹出被拖慢近两秒(关面板要销毁一屏 ijk 播放器,实测占满主线程 1859ms;改成键盘弹出时先摁住释放队列)
- 引用消息的气泡落地后凭空长高(引用块等内容到了才画,改成有回复就先占住高度)
- 「翻译中/翻译失败」那行和时间戳叠在一起
新增
- 富文本长帖(messageRichMessage):此前只显示「暂不支持的消息」。按块渲染,标题分档、引用画竖条、列表画项目符号。
- 「↓」改为三级返回:引用返回 > 阅读进度 > 最新消息。有未读时往回翻,它带你回到刚才读到的地方而不是一路扔到底;连点几层引用可以原路退回。
- 成员身份标签与移出群组:成员列表显示创建者/管理员(自定义头衔优先),管理员长按可把人移出群组(不是封禁)。
- 图案壁纸浓度可调:深浅各存一份,乘在壁纸自带的 intensity 上。
- 群组公开链接点击即复制
观感
- 群组/个人简介页改版:毛玻璃卡片、更大的头像和动作方格
- 底部抽屉从自定义键盘改为页面内布局——自定义键盘无法获取焦点,贴纸搜索框永远输不进字
- 贴纸搜索折进包条右端一颗常驻按钮,省掉整整一行
- 首页顶栏与文件夹条合成一块玻璃,内容从底下穿过
- 菜单材质调薄、宽度收窄;多选高亮和免打扰角标加深
说明
- 未签名包,需自行签名或用调试方式安装。
- HarmonyOS 7.0 / API 26 的沉浸光感在低版本系统上自动退回模糊 + 降级底色。
- 本版保留了几处诊断日志(只在异常路径触发,不含用户身份或消息正文),为后续的导出日志排查能力做准备。
Petrelgram v1.3.4
低版本设备的毛玻璃,以及一批媒体相关修复。
毛玻璃降级(沉浸光感要 API 26,毛玻璃本身只要 API 7/9/11,6.0 设备一样能画)
- 新增 overlayGlassFill:自绘玻璃必须"半透明底 + backdropBlur"一起上,
不透明底会把模糊完全盖住 - 覆盖聊天页顶栏三颗胶囊、置顶消息条 + 直播状态条、输入框胶囊 + 附件圆盘、
17 处弹窗 - "由框架画还是自绘"改成按调用点区分:框架容器吃 BlurStyle,自绘面绝不能吃
(COMPONENT_* 自带不透明底板,会把自绘面渲染成一块死灰)
修复
- 相册翻页后退出,图飞回第一张的位置:原来在活节点上反复改
geometryTransition 的 id,框架配对登记不跟着改。改为每页静态绑自己的 id - 视频缩略图上的播放钮不见了:缩略图旁路化的连带回归,判断条件读的
msg.photoPath 已不再回填。新增 ThumbReadyGate 自订阅 - 频道评论行头像永远是「?」:同类回归,改走 senderAvatarChannel;
白色描边画成方框是 border 没配 borderRadius - 单图竖图只占气泡宽度 67%:改为宽度钉死、超出部分 Cover 裁掉
- MeoW 重复注册失败:服务端已注册时不再下发 secret(该字段只用于注销),
改为回落到本地已存的那份;缺字段时也会把服务端自己的说明显示出来
沉浸光感(uiMaterial.ImmersiveMaterial)自 1.3.3 起接入,开发设备是 API 24,
只能走降级分支。本版补上的正是这条降级路径——低于 26 的设备现在画的是
手绘毛玻璃,视觉可验;API 26 上会自动切到系统材质,那条路仍未上机看过。
回退面依旧只有 overlayMaterial 一个文件。
未包含:附件抽屉面板。数据层与展示层已完成并有单测,customKeyboard 的
可行性 spike 已验完还原,正式挂载在下一版。
校验
Petrelgram-1.3.4-unsigned.hap
SHA256 213708b1c74b9ffcc2cb4f37b643a526e805f462e23f15ad17bf90dc2e3aefab
未签名包,需自行签名后安装。apiVersion { compatible: 20, target: 26 }。
Petrelgram v1.3.3
列表性能攻坚、沉浸式系统材质、翻译与链接体验。
本版把 targetSdkVersion 提到 26.0.0,接入了沉浸式系统材质
(uiMaterial.ImmersiveMaterial / systemMaterial),覆盖顶栏胶囊与
约 30 处浮层。开发设备是 API 24,材质只会走低算力降级分支,
视觉效果和性能开销都没有在真机上看过。已知的兜底:
overlayMaterial 模块按 deviceInfo.sdkApiVersion 单点决策,
低于 26 一律返回 undefined 并保留原有背景色/模糊,
compatibleSdkVersion 仍为 6.0.0(20),低版本设备行为不变。
若 API 26 设备上出现异常,回退面只有 overlayMaterial 一个文件。
另外未经真机验证的还有:相册对齐(sameRowSlot)的实际收益、
代理 pingProxy 在使用中的代理上报 Pong timeout。
安全
- 移除 ProxyApi.testProxy 打印完整请求 JSON 的日志(含代理
username/password,MTProto 含 secret) - 移除 ProfilePage.addContact 失败时写入对方手机号与姓名的日志
性能
- 缩略图路径与下载进度旁路化,媒体到达不再重建整行
- 音频队列参数按 contentType 短路
- 首页/归档/文件夹列表迁到 LazyForEach,增删走增量通知
- 聊天背景快照跨启动持久化,消除首次进入白屏
- 四个主页签开启组件冻结;发送成功不再重建整行
体验
- 翻译 6 路并发,进行中/失败就地展示并可重试
- 消息链接点击加闸门与加载态,会话详情页按 chatId 去重
- 图片放大 geometryTransition 一镜到底
- 附件按钮移出输入框胶囊;更新应用图标
修复
- @ 无用户名成员带 mentionName 实体
- 输入框按真实排版长高
- 冷启动丢弃未完成的加账号流程,原账号不再失联
- 代理测试连接改传 proxy 对象;连接状态改读进程内缓存
校验
Petrelgram-1.3.3-unsigned.hap
SHA256 5141e47a0a1c3817061f8b07a7a24570764c3916b6a779f135b8de9a7c628718
未签名包,需自行签名后安装。apiVersion { compatible: 20, target: 26 }。