当前位置: 首页 > news >正文

当试图回复传入消息时,消息应用程序会闪烁

问题描述:

Actual Results: Unable to reply for incoming message as Messaging app flickers and closes.

Expected Results:  User should be able to send reply for incoming messages.

Reproduction Steps:

  1. Stay in home screen. 
  2. Receive an incoming message.
  3. Click on reply from incoming pop-up.

Reproducibility: 2/3

Recoverability: NA

Comparative Data: Issue not seen in ET65

*****{}{}{}Device Details{}{}{}*****
Software
Build Number:  13-10-03.00-TG-U00-PRD-NEM-04

具体Error的UI如下面的图片所示:



分析可能是QN 的对话框中手机号码的长度过长导致的问题
解决方案如下:
frameworks/base/+/447854/2/core/java/android/app/Notification.java
 

private RemoteViews makeMessagingView(int viewType) {boolean isCollapsed = viewType != StandardTemplateParams.VIEW_TYPE_BIG;boolean hideRightIcons = viewType != StandardTemplateParams.VIEW_TYPE_NORMAL;boolean isConversationLayout = mConversationType != CONVERSATION_TYPE_LEGACY;boolean isImportantConversation = mConversationType == CONVERSATION_TYPE_IMPORTANT;boolean isHeaderless = !isConversationLayout && isCollapsed;CharSequence conversationTitle = !TextUtils.isEmpty(super.mBigContentTitle)? super.mBigContentTitle: mConversationTitle;CharSequence conversationTitleNew = "";boolean atLeastP = mBuilder.mContext.getApplicationInfo().targetSdkVersion>= Build.VERSION_CODES.P;boolean isOneToOne;CharSequence nameReplacement = null;if (!atLeastP) {isOneToOne = TextUtils.isEmpty(conversationTitle);if (hasOnlyWhiteSpaceSenders()) {isOneToOne = true;nameReplacement = conversationTitle;conversationTitle = null;}} else {isOneToOne = !isGroupConversation();}if (isHeaderless && isOneToOne && TextUtils.isEmpty(conversationTitle)) {conversationTitle = getOtherPersonName();}if (ZebraUtils.isZebra().orElse(false) && ZebraUtils.isMediumDisplay().orElse(false) && conversationTitle.length()>=7){conversationTitleNew = conversationTitle.subSequence(0,7) + ".";}else{conversationTitleNew = conversationTitle;}Icon largeIcon = mBuilder.mN.mLargeIcon;TemplateBindResult bindResult = new TemplateBindResult();StandardTemplateParams p = mBuilder.mParams.reset().viewType(viewType).highlightExpander(isConversationLayout).hideProgress(true).title(isHeaderless ? conversationTitle : null).text(null).hideLeftIcon(isOneToOne).hideRightIcon(hideRightIcons || isOneToOne).headerTextSecondary(isHeaderless ? null : conversationTitle);RemoteViews contentView = mBuilder.applyStandardTemplateWithActions(isConversationLayout? mBuilder.getConversationLayoutResource(): isCollapsed? mBuilder.getMessagingLayoutResource(): mBuilder.getBigMessagingLayoutResource(),p,bindResult);if (isConversationLayout) {mBuilder.setTextViewColorPrimary(contentView, R.id.conversation_text, p);mBuilder.setTextViewColorSecondary(contentView, R.id.app_name_divider, p);}addExtras(mBuilder.mN.extras);contentView.setInt(R.id.status_bar_latest_event_content, "setLayoutColor",mBuilder.getSmallIconColor(p));contentView.setInt(R.id.status_bar_latest_event_content, "setSenderTextColor",mBuilder.getPrimaryTextColor(p));contentView.setInt(R.id.status_bar_latest_event_content, "setMessageTextColor",mBuilder.getSecondaryTextColor(p));contentView.setInt(R.id.status_bar_latest_event_content,"setNotificationBackgroundColor",mBuilder.getBackgroundColor(p));contentView.setBoolean(R.id.status_bar_latest_event_content, "setIsCollapsed",isCollapsed);contentView.setIcon(R.id.status_bar_latest_event_content, "setAvatarReplacement",mBuilder.mN.mLargeIcon);contentView.setCharSequence(R.id.status_bar_latest_event_content, "setNameReplacement",nameReplacement);contentView.setBoolean(R.id.status_bar_latest_event_content, "setIsOneToOne",isOneToOne);contentView.setCharSequence(R.id.status_bar_latest_event_content,"setConversationTitle", conversationTitleNew);if (isConversationLayout) {contentView.setIcon(R.id.status_bar_latest_event_content,"setShortcutIcon", mShortcutIcon);contentView.setBoolean(R.id.status_bar_latest_event_content,"setIsImportantConversation", isImportantConversation);}if (isHeaderless) {// Collapsed legacy messaging style has a 1-line limit.contentView.setInt(R.id.notification_messaging, "setMaxDisplayedLines", 1);}
}

其中关键处理是对号码的长度做截取处理:

if (ZebraUtils.isZebra().orElse(false) && ZebraUtils.isMediumDisplay().orElse(false) && conversationTitle.length()>=7){conversationTitleNew = conversationTitle.subSequence(0,7) + ".";}else{conversationTitleNew = conversationTitle;}

修改后的效果如下:


相关文章:

当试图回复传入消息时,消息应用程序会闪烁

问题描述: Actual Results: Unable to reply for incoming message as Messaging app flickers and closes. Expected Results: User should be able to send reply for incoming messages. Reproduction Steps: Stay in home screen. Receive an incoming mes…...

Hubery-个人项目经历记录

研究生期间很有幸的进入到了崔老师的组,从此也就进入到了分析人体生理信号的领域,充满挑战的同时也充满了乐趣。借着CSDN整理一下近几年来参与的项目,这里蕴含着我各种美好的回忆,也作为一个展示自己的平台吧。博客中很多结果只给…...

Ubuntu18.04 安装 qt 5.15.2

一.安装qt 1.下载 在线安装包 使用国内镜像源在线安装QT(2023.3.25更新)_qt国内镜像-CSDN博客 2.安装 (1)QT库安装: 注意:我安装时 勾选 Qt Design studio 会导致报错,直接不勾选。 注意:Qtcreator 无…...

【Linux Shell】6. echo 命令

文章目录 【 1. 显示普通字符串 】【 2. 显示转义字符 】【 3. 显示变量 】【 4. 显示换行 】【 5. 显示不换行 】【 6. 显示命令执行结果 】 Shell 的 echo 指令用于字符串的输出。命令格式: echo string【 1. 显示普通字符串 】 #!/bin/bashecho "It is a …...

Dell 机架式服务器 - 高级定制服务

Dell 机架式服务器 - 高级定制服务 1. Dell Technologies2. 机架式服务器 - 高级定制服务2.1. Servers & Storage (服务器及存储) -> Servers2.2. Rack Servers (机架式服务器)2.3. Shop2.4. PowerEdge Rack Servers (PowerEdge 机架式服务器)2.5. PowerEdge R760 Rack …...

C++ 中关键字 Static

1、什么是static? static 是C中很常用的修饰符,它被用来控制变量的存储方式和可见性。由关键字static修饰类中成员,成为类的静态成员。类的静态成员为其所有对象共享,不管有多少对象,静态成员只有一份存于公用内存中。静态…...

系统学习Python——警告信息的控制模块warnings:警告过滤器-[重写默认的过滤器]

分类目录:《系统学习Python》总目录 Python应用程序的开发人员可能希望在默认情况下向用户隐藏所有Python级别的警告,而只在运行测试或其他调试时显示这些警告。用于向解释器传递过滤器配置的sys.warningoptions属性可以作为一个标记,表示是否…...

C++力扣题目-- 二叉树层序遍历

102.二叉树的层序遍历(opens new window)107.二叉树的层次遍历II(opens new window)199.二叉树的右视图(opens new window)637.二叉树的层平均值(opens new window)429.N叉树的层序遍历(opens new window)515.在每个树行中找最大值(opens new window)116.填充每个节点的下一个右…...

前端实现回车键触发搜索

前端实现回车键触发搜索 前言实现方法1. html里可以用 form 来实现2. 非form中的input 前言 搜索框是个常见的功能,除了用现有的ui组件库,有的时候必须要自己封装,所以涉及到点击按钮搜索和回车搜索都要实现 实现方法 1. html里可以用 for…...

k8s yaml文件pod的生命周期

Pod是k8s中最小限额资源管理组件,也是最小化运行容器化的应用的资源管理对象。 Pod是一个抽象的概念,可以理解为一个或者多个容器化应用的集合。 在一个pod当中运行一个容器是最常用的方式。 在一个pod当中同时运行多个容器,在一个pod当中…...

MPEG4Extractor

1、readMetaData 必须要找到 Moov box,找到 Mdat box或者 Moof box,并且创建了 ItemTable 大端 box 分为 box header 和 box content: box header由8个字节组成,前面四个字节表示这个box 的大小(包含这个头的8字节&a…...

我在工作一年时怎么都看不懂的编程写法。今天手把手教给你

作为一名程序员,你一定遇到或亲自写过这样的代码。有人将它形象的形容为shi山,或者被戏称为“面向保就业编程”。 以下面这个代码为例,其中的问题也显而易见,当越来越多的条件判断时,代码会变得非常臃肿,难…...

ThinkPHP5多小区物业管理系统源码(支持多小区)

基于 ThinkPHP5 Bootstrap 倾力打造的多小区物业 管理系统源码,操作简单,功能完善,用户体验良好 开发环境PHP7mysql 安装步骤: 1.新建数据库db_estate,还原数据db_estate.sql 2.修改配置文件:application/database.php 3.运…...

2024 年 API 安全:预测和趋势

随着技术以前所未有的速度不断进步,API(应用程序编程接口)安全性的复杂性也随之增加。随着 API 在现代应用程序和服务中的激增,组织将需要更好地了解其 API 环境以及 API 给运营带来的风险。 到 2024 年,预计几个关键…...

3D模型UV展开原理

今年早些时候,我为 MAKE 杂志写了一篇教程,介绍如何制作视频游戏角色的毛绒动物。 该技术采用给定的角色 3D 模型及其纹理,并以编程方式生成缝纫图案。 虽然我已经编写了一般摘要并将源代码上传到 GitHub,但我在这里编写了对使这一…...

SPL-cmcRVFL+

吐槽 作者未提供代码,还有图1敢再糊点吗?...

Vue3+TS+Vite 构建自动导入开发环境

关注⬆️⬆️⬆️⬆️ 专栏后期更新更多前端内容 在一个使用 Vue 3、Vite 和 TypeScript 的项目中,配置 unplugin-auto-import 和 unplugin-vue-components 插件可以极大地提高开发效率,因为它们可以自动导入 Vue 相关的 API 和 Vue 组件,从而减少了手动导入的需要。 文章目…...

长期使用外接键盘,外物压着自带键盘,容易导致华硕飞行堡垒FX53VD键盘全部失灵【除电源键】

华硕飞行堡垒FX53VD键盘全部失灵【除电源键】 前言一、故障排查二、发现问题三、使用方法总结 前言 版本型号: 型号 ASUS FX53VD(华硕-飞行堡垒) 板号:GL553VD 故障情况描述: 键盘无法使用,键盘除开机键外…...

JavaScript-循环嵌套断点调试-笔记

1.do...while循环 do while语法结构&#xff1a; 循环初始值&#xff1b; do{ //代码&#xff1b; 增量&#xff1b; }while(循环条件)&#xff1b; <script> // 输出十句 &#xff1a; 你好世界 var …...

1042: 数列求和3 和 1057: 素数判定 和 1063: 最大公约与最小公倍

1042: 数列求和3 题目描述 求1-2/33/5-4/75/9-6/11...的前n项和&#xff0c;结果保留3位小数。 输入 输入正整数n(n>0)。 输出 输出一个实数&#xff0c;保留3位小数&#xff0c;单独占一行。 样例输入 5 样例输出 0.917 #include<stdio.h> int main(){in…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...