Skip to content

Releases: miramira8295/Petrelgram

Petrelgram v1.4.2

Choose a tag to compare

@miramira8295 miramira8295 released this 25 Aug 11:26

新功能

本地外观设置(设置 → 聊天)— 对齐桌面版的「主题」语义,全部只存本机、不同步账号:

  • 自定义强调色:开关 + 浅色 / 深色各一个颜色,整行点开取色器(光谱方块、色相条、十六进制输入、预设色),拖动实时预览,取消恢复、确定保留。改色全局即时生效,首页的应用名也跟着染色。关掉开关回到默认蓝,不再跟随账号的资料页颜色。
  • 气泡颜色:发出 / 收到 × 浅色 / 深色四个颜色,文字色按底色亮度自动黑白;可一键恢复默认。
  • 气泡材质:「标准 / 玻璃」二选一。玻璃态下气泡连同尾巴是一整块材质(沉浸光感或毛玻璃按设备定),只对屏内气泡生效,省电时自动退回纯色。
  • 材质厚度 / 光感等级改为浅色 / 深色分别设置、随系统模式自动切换,厚度多了「关闭」档。
  • 名字颜色、资料页颜色(同步到账号、别人看到的)并入同一页底部,不再和强调色混在一起。

交互设置 — 新增「显示联系人页签」开关,关掉后底栏不再显示联系人。

修复

  • 表情状态设置后个人页不显示(老版 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

Choose a tag to compare

@miramira8295 miramira8295 released this 24 Aug 12:11

新功能

桌面图标自选 — 设置 → 外观设置里换应用图标,九个选项:默认、雾面、霓虹、极光、午夜、石墨、松林、落日、紫罗兰。走的是系统本地的 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

Choose a tag to compare

@miramira8295 miramira8295 released this 22 Aug 10:44

平板:真正的分栏

聊天、联系人、设置三个页签在宽屏设备上进入左右分栏——左栏列表、右栏详情,中间分割线可拖动。每个页签有独立的路由栈,来回切换不会丢右栏的位置;没选中条目时右栏显示空状态。设置的 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

Choose a tag to compare

@miramira8295 miramira8295 released this 21 Aug 11:25

紧急修复

  • 修复平板/宽屏设备上整页内容挤在左侧、右边大片空白

    1.3.8 全面接入 HDS 导航后,宽屏设备上导航组件会自动进入分栏模式,而应用把整页内容都放在导航列里——结果首页、联系人、设置、个人资料及全部设置子页面在平板上都被挤成窄窄一条,基本不可用。已强制单栏布局。

    平板用户请直接升级到 1.3.8.1;1.3.8 的其余修复与新功能不变。

其他

  • 登录页新增「代理设置」入口——需要代理的网络环境下,登录前即可配置(#73
  • 扫码登录在无法生成二维码的环境(如部分模拟器)不再无限转圈,超时给出失败提示

Petrelgram v1.3.8

Choose a tag to compare

@miramira8295 miramira8295 released this 21 Aug 10:49

界面

  • 全面接入 HDS 设计系统:首页、联系人、设置及全部 16 个设置子页面改用 HdsNavigation 大标题与滚动动态模糊;标题栏玻璃随内容滚动渐显(#44
  • 首页文件夹条重做:细边框、每个文件夹独立毛玻璃胶囊、尺寸打磨
  • 归档入口重做:默认完全隐藏,顶部用力下拉才出现并停留,下滑自动收起
  • 深色模式修复:聊天页输入条下方黑边、成员标签深色下看不清、媒体查看器与视频控制条在浅色玻璃上白字不可读(改跟主题)
  • 频道帖子"N 条评论"入口热区加大

群组

  • 群成员标签(chatMemberTag):气泡内与成员列表显示全员可见的成员标签;带权限的管理员可在成员菜单直接编辑(长按成员 → 编辑标签),留空即清除(#84 关联)
  • 群聊气泡显示管理员/创建者身份与自定义头衔(#84);修复普通群从未取到管理员名单的问题
  • 管理员名单改为向服务器取新鲜数据,修复头衔陈旧/缺人

消息与媒体

  • 修复"刚读完的会话来新消息时未读角标不出现"(#56
  • 修复长按文件/投票/联系人等消息弹菜单时误触发点击动作(下载、投票、拨号……)
  • 文件下载支持暂停/续传:下载中点卡片暂停(保留进度),再点从断点继续(#45
  • 消息菜单新增「复制链接」——复制正文里的网址,多条可挑选(#70);点外部链接弹「打开/复制」选择
  • 全屏查看器切组翻到"尽头"时自动补拉历史,不再假性到头
  • 聊天页头部头像支持动态头像(#63
  • 修复内置浏览器打不开百度网盘等站点(UA 分流、App 跳转 scheme、页内弹窗)(#77

导航

  • 返回键三级递退:设置/联系人/个人资料按返回先回聊天;聊天页在其他文件夹先回「所有」;最后需两秒内再按一次才退出(#71 #48
  • 搜索页常用联系人第一位固定为「我的收藏」

稳定性

  • 修复切换文件夹页签时的偶发崩溃(v1.3.7 线上上报的全部 7 例同源)
  • 崩溃自动上报与「设置 → 日志与诊断」手动日志上报上线(#61);应用起不来时也有延迟补报通道
  • 系统级 API 兼容加固:36 处沉浸材质调用收进版本闸门,最低版本(API 20)实测安装与冷启动正常
  • 其他:Pad 置底跟随(#62)、消息被吞修复(#47)、音频焦点(来电/他应用发声自动暂停)等

Petrelgram v1.3.7

Choose a tag to compare

@miramira8295 miramira8295 released this 20 Aug 12:21

紧急修复

  • 修复 1.3.6 在部分较旧系统版本(如 6.1.0.135)上启动即崩溃

    1.3.6 新增「浮层材质厚度」设置时,把一个仅 API 26 提供的枚举提到了模块加载期求值。低版本系统上该对象不存在,应用一启动就会崩。已改为按需求值,并全仓复查了同类写法。

    受影响的用户请直接升级到 1.3.7;1.3.6 的其余修复与新功能不变。

其他

  • 消息列表内容不足一屏时会主动补页,修复部分设备(尤其平板)上「消息很多却滑不动」

Petrelgram v1.3.6

Choose a tag to compare

@miramira8295 miramira8295 released this 20 Aug 11:47

修复

  • 有些 999+ 的群打不开也滑不动:会话会卡在十几行,既翻不动也收不到新消息
  • 消息缺失与错乱:修好向上翻页误判"到底了"、分页跨过缺口、以及窗口停在旧历史时新消息被丢弃的问题
  • 发送体验:点发送后输入框立刻清空,不再等服务器往返;上一条还在发时再点也不会被静默吞掉
  • 附件面板崩溃、表情面板卡在"正在打开面板"
  • 浏览器点 t.me 链接进来提示"无法识别"
  • 贴纸加载不出来:不必再退出会话重进
  • 聊天页/浏览器等页面的状态栏颜色与内容不一致
  • 聊天背景:进入会话有概率整屏模糊;切换深浅色时壁纸不跟随
  • 气泡:正文压住时间戳;竖屏视频被拉伸
  • 底栏未读气泡现在跟随强调色

新增

  • 群成员管理:成员列表长按出菜单,可提权、限制、封禁、移出、删除该成员的全部消息;限制与提权各有独立面板,逐项权限可调
  • 外观设置:浮层材质厚度、沉浸光感等级
  • 省电设置:单独的"播放动图头像"开关
  • 机器人会话首次进入显示「开始」按钮
  • 引用消息整块可点跳转,并按强调色着色

其他

  • 群/频道简介里的二维码按钮改为复制按钮
  • 「聊天设置」更名为「外观设置」
  • 修复群权限保存时会把语音、圆形视频等已关闭项重新打开的问题

Petrelgram v1.3.5

Choose a tag to compare

@miramira8295 miramira8295 released this 19 Aug 12:33

修复

账号条目会被静默删掉,库还在却再也进不去
反馈是「登了第二个账号,重开还是登录页」。查下来是数据丢失一类的问题:磁盘上有 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

Choose a tag to compare

@miramira8295 miramira8295 released this 18 Aug 11:53

低版本设备的毛玻璃,以及一批媒体相关修复。

毛玻璃降级(沉浸光感要 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(该字段只用于注销),
    改为回落到本地已存的那份;缺字段时也会把服务端自己的说明显示出来

⚠️ 仍未在 API 26 设备上验证
沉浸光感(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

Choose a tag to compare

@miramira8295 miramira8295 released this 18 Aug 10:34

列表性能攻坚、沉浸式系统材质、翻译与链接体验。

⚠️ 风险提示:HarmonyOS 7.0(API 26)特性未经设备验证
本版把 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 }