遥控器无法点击AOSP Settings 的管理存储按钮 MANAGE STORAGE

news2024/7/6 18:58:42

前言

这里是遇到了MANAGE STORAGE的按钮使用遥控器移动的时候无法聚焦到这个按钮,自然也就无法点击。它只能聚焦到这一整个整体,因此我就设置当点击到这一整个整体时,就相应MANAGE STORAGE按钮的点击事件。

图片

在这里插入图片描述

代码

packages/apps/Settings/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreference.java


@@ -62,7 +62,13 @@ public class StorageSummaryDonutPreference extends Preference implements View.On
     @Override
     public void onBindViewHolder(PreferenceViewHolder view) {
         super.onBindViewHolder(view);
-        view.itemView.setClickable(false);
+        view.itemView.setClickable(true);
+        view.itemView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                onDeleteHelperButtonClick(v);
+            }
+        });

         final DonutView donut = (DonutView) view.findViewById(R.id.donut);
         if (donut != null) {
@@ -78,14 +84,18 @@ public class StorageSummaryDonutPreference extends Preference implements View.On
     @Override
     public void onClick(View v) {
         if (v != null && R.id.deletion_helper_button == v.getId()) {
-            final Context context = getContext();
-            final MetricsFeatureProvider metricsFeatureProvider =
-                    FeatureFactory.getFactory(context).getMetricsFeatureProvider();
-            metricsFeatureProvider.logClickedPreference(this,
-                    getExtras().getInt(DashboardFragment.CATEGORY));
-            metricsFeatureProvider.action(context, SettingsEnums.STORAGE_FREE_UP_SPACE_NOW);
-            final Intent intent = new Intent(StorageManager.ACTION_MANAGE_STORAGE);
-            context.startActivity(intent);
+            onDeleteHelperButtonClick(v);
         }
     }
+
+    private void onDeleteHelperButtonClick(View v) {
+        final Context context = getContext();
+        final MetricsFeatureProvider metricsFeatureProvider =
+                FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        metricsFeatureProvider.logClickedPreference(this,
+                getExtras().getInt(DashboardFragment.CATEGORY));
+        metricsFeatureProvider.action(context, SettingsEnums.STORAGE_FREE_UP_SPACE_NOW);
+        final Intent intent = new Intent(StorageManager.ACTION_MANAGE_STORAGE);
+        context.startActivity(intent);
+    }
 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1818179.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

极限存在的条件

极限存在的条件 在左极限与又极限相关的内容中我们知道极限(也叫双侧极限)存在的充分必要条件是左右极限都存在且相等,否则极限不存在。所以这里要来详细的探讨一下在什么情况下函数会不存在极限。 1. 函数 f ( x ) 1 x f(x)\frac{1}{x} …

知识分享|个人查询大数据信用有哪些好处?

在当今数字化时代,个人信用评估已经成为金融、购物、租房等各个方面的关键因素。大数据技术的兴起为个人信用查询带来了新的可能性和好处。下面将探讨个人查询大数据信用的益处。 首先,个人查询大数据信用可以全面了解自己的信用状况 通过查询大数据信用…

46.Python-web框架-Django - 多语言配置

目录 1.Django 多语言基础知识 1.1什么是Django国际化和本地化? 1.2Django LANGUAGE_CODE 1.3关于languages 1.4RequestContext对象针对翻译的变量 2.windows系统下的依赖 3.django多语言配置 3.1settings.py配置 引用gettext_lazy 配置多语言中间件&#x…

白酒:茅台镇白酒的品鉴课程与文化学习

茅台镇,这个位于中国贵州省的美丽小镇,以其与众不同的自然环境和杰出的酿酒工艺,成为了世界著名的白酒产区。作为茅台镇的杰出代表,云仓酒庄豪迈白酒不仅在国内享有盛誉,在国际市场上也备受瞩目。为了更好地推广中国白…

产品经理研读:Agent的九种设计模式(图解+代码)

引言 上周五我在一个特工宇宙的社群里做了一次分享,题目是《从 YC 项目看 AI 趋势以及 AI agent 开发工具类产品该如何设计》,收到了大家不错的反馈,不过回看视频后还是发现不少可以提升的地方,感兴趣的朋友公众号回复“分享”获…

【CMake】CMake从入门到实战系列(十六)—— CMake中设置交叉编译

文章目录 一、前言二、切换编译器的方法1、修改系统环境变量来指定编译器2、CMake命令行中指定编译器3、CMakeLists.txt中指定编译器4、示例 一、前言 CMake是一个强大的跨平台的编译工具,实际嵌入式开发过程中,经常需要使用到交叉编译。在Ubuntu环境中…

linux中: IDEA 由于JVM 设置内存过小,导致打开项目闪退问题

1. 找到idea安装目录 由于无法打开idea,只能找到idea安装目录 在linux(debian/ubuntu)中idea的插件默认安装位置和配置文件在哪里? 默认路径: /home/当前用户名/.config/JetBrains/IntelliJIdea2020.具体版本号/options2. 找到jvm配置文件 IDEA安装…

Visual Studio编译fatal error C1001: 编译器中发生内部错误

项目本来是能正常编译的,但是突然出现“fatal error C1001: 编译器中发生内部错误。” 2> (编译器文件“f:\dd\vctools\compiler\utc\src\p2\main.c”,第 255 行) 2> 要解决此问题,请尝试简化或更改上面所列位置附近的程序。 2> …

AI大模型的战场 通用大模型 vs. 垂直大模型

目录 前言1 通用大模型1.1 通用大模型简介1.2 通用大模型的优势1.3 通用大模型的挑战 2 垂直大模型2.1 垂直大模型简介2.2 垂直大模型的优势2.3 垂直大模型的挑战 3 通用大模型 vs. 垂直大模型3.1 技术层面的比较3.2 商业层面的比较3.3 未来的发展趋势 结语 前言 随着人工智能…

直播预约丨《指标体系建设实战》第三期:指标平台功能架构及落地实践

指标是反映企业的各项核心业务活动、管理成效的数据体系,指标体系作为联结业务逻辑与数据实体的关键桥梁,是构建高质量数据统计的基础单元,并在量化业务绩效和效果评估中扮演着核心角色。 为了更好地服务于客户并提供切实可行的实践指导&…

idea插件开发之通过纯编码方式开发页面(不使用form ui)

写在前面 本文看线如何通过纯编码方式来定义页面。 1:正戏 我们首先来定义一个面板,需要继承抽象类:com.intellij.openapi.ui.SimpleToolWindowPanel,如下: public class MySelfDefinePanel extends SimpleToolWin…

NSS题目练习9

[极客大挑战 2020]welcome 界面打开后一片空白,查看题目描述,翻译过来是 1.除了GET请求方法,还有一种常见的请求方法… 2.学习一些关于sha1和array的知识。 3.更仔细地检查phpinfo,你会发现标志在哪里。 补充: sh…

模拟电子之电子管

如果要实现一个放大器的功能,需要一个固定的放大倍数(Gain),这也就是说输出信号应该是跟随输入信号变化而变化,换句话说输出信号应该要受到输入信号的控制。 在电子学中使用的最多的两个物理量就是电压和电流&#xf…

(四)React组件、useState、组件样式

1. 组件 1.1 组件是什么 概念:一个组件就是用户界面的一部分,它可以有自己的逻辑和外观,组件之间可以相互嵌套,也可以复用多次。 组件化开发可以让开发者像搭积木一样构建一个完整的庞大应用 1.2 React组件 在React中&#xf…

【设计模式深度剖析】【7】【行为型】【观察者模式】

👈️上一篇:中介者模式 设计模式-专栏👈️ 文章目录 观察者模式英文原文直译如何理解? 观察者模式的角色类图代码示例 观察者模式的应用观察者模式的优点观察者模式的缺点观察者模式的使用场景 观察者模式 观察者模式(Observer…

【React】配置别名路径@

别名路径配置 1. 路径解析配置(webpack) CRA本身把webpack配置包装到了黑盒里无法直接修改,需要借助一个插件 - craco步骤 安装craco npm i -D craco/craco项目根目录下创建配置文件 craco.config.js配置文件中添加路径解析配置 const pa…

Android低代码开发 - 直接创建一个下拉刷新列表界面

看了我Android低代码开发 - 让IDE帮你写代码这篇文章的小伙伴,大概都对Dora全家桶开发框架有基本的认识了吧。本篇文章将会讲解如何使用dora-studio-plugin快捷创建一个下拉刷新列表界面。 效果演示 这样直接通过图形界面的方式就创建好了下拉刷新上拉加载空态界面…

3. 打造个性化可爱怪物表情包:详细步骤教学

表情符号已经成为当今互联网对话中不可或缺的元素,一句话加上一个笑脸符号,语气就大不同。表情符号与我们一道稳步发展,成为鲜活和丰富情感的必要交流工具。通过表情符号,几个像素就能以有趣、清晰、能引起情感共鸣的方式表达我们…

d3dcompiler_43.dll是什么文件?怎么高效率的解决d3dcompiler_43.dll丢失问题

d3dcompiler_43.dll是什么文件?当你知道d3dcompiler_43.dll这个文件名字的时候,相信你是遇到了d3dcompiler_43.dll丢失的问题了!所以才会这样问,其实这就是一个普通的dll文件,对于电脑系统有着至关重要的作用&#xff…

100v 高耐压ldo 高压三端稳压芯片

100v 高耐压ldo 高压三端稳压芯片