diff --git a/.gitignore b/.gitignore
index c2d303428..2774756f6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,15 +1,21 @@
+*.apk
+*.exe
*.iml
-.gradle
-/tools
-/local.properties
-/.idea/workspace.xml
-/.idea/libraries
-/.idea/caches
+*.jks
+
.DS_Store
-/build
-/release
-/captures
.externalNativeBuild
-*.apk
-*.exe
-.idea/caches/build_file_checksums.ser
+output.json
+output-metadata.json
+
+/.git/
+/.gradle/
+/.idea/
+/build/
+/libs/**/build/
+/captures/
+/release/
+/tools/
+
+/local.properties
+/sign.properties
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 0ec008f22..000000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "docs"]
- path = docs
- url = https://github.com/hyb1996/AutoJs-Docs
diff --git a/LICENSE.md b/LICENSE
similarity index 97%
rename from LICENSE.md
rename to LICENSE
index 92b7e2d8f..a612ad981 100644
--- a/LICENSE.md
+++ b/LICENSE
@@ -1,7 +1,3 @@
-本项目的源代码在MPL2.0协议下发布,同时附加以下条目:
-* **非商业性使用** — 不得将此项目及其衍生的项目的源代码和二进制产品用于任何商业和盈利用途
-
-
Mozilla Public License Version 2.0
==================================
@@ -47,7 +43,7 @@ Mozilla Public License Version 2.0
1.9. "Licensable"
means having the right to grant, to the maximum extent possible,
- whether at the timeFlag of the initial grant or subsequently, any and
+ whether at the time of the initial grant or subsequently, any and
all of the rights conveyed by this License.
1.10. "Modifications"
@@ -246,7 +242,7 @@ non-compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor
notifies You of the non-compliance by some reasonable means, this is the
-first timeFlag You have received notice of non-compliance with this License
+first time You have received notice of non-compliance with this License
from such Contributor, and You become compliant prior to 30 days after
Your receipt of the notice.
@@ -374,4 +370,4 @@ Exhibit B - "Incompatible With Secondary Licenses" Notice
---------------------------------------------------------
This Source Code Form is "Incompatible With Secondary Licenses", as
- defined by the Mozilla Public License, v. 2.0.
\ No newline at end of file
+ defined by the Mozilla Public License, v. 2.0.
diff --git a/README.md b/README.md
new file mode 100644
index 000000000..b7b01a2a2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
Android 平台支持无障碍服务的 JavaScript 自动化工具
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+******
+
+### 简介
+
+* Android 平台支持无障碍服务的 JavaScript 自动化工具
+* 复刻 (Fork) 自 [hyb1996/Auto.js](https://github.com/hyb1996/Auto.js)
+
+******
+
+### 指南
+
+******
+
+* [项目文档](http://docs.autojs.org)
+
+******
+
+### 功能
+
+******
+
+* 可用作 JavaScript IDE (代码补全/变量重命名/代码格式化)
+* 支持基于 [无障碍服务](https://developer.android.com/reference/android/accessibilityservice/AccessibilityService) 的自动化操作
+* 支持悬浮窗快捷操作 (脚本录制及运行/查看包名及活动/布局分析)
+* 支持选择器 API 并提供控件遍历/获取信息/控件操作 (类似 [UiAutomator](https://developer.android.com/training/testing/ui-automator))
+* 支持布局界面分析 (类似 Android Studio 的 LayoutInspector)
+* 支持录制功能及录制回放
+* 支持屏幕截图/保存截图/图片找色/图片匹配
+* 支持 [E4X](https://zh.wikipedia.org/wiki/E4X) (ECMAScript for XML) 编写界面
+* 支持将脚本文件或项目打包为 APK 文件
+* 支持利用 Root 权限扩展功能 (屏幕点击/滑动/录制/Shell)
+* 支持作为 Tasker 插件使用
+
+******
+
+### 主要变更
+
+******
+
+* Rhino 引擎由 [v1.7.7.2](https://github.com/mozilla/rhino/releases/tag/Rhino1_7_7_2_Release) 升级至 [v1.7.14 (SNAPSHOT)](https://github.com/mozilla/rhino/)
+
+ * 支持 [Object.values()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/values)
+
+ ```javascript
+ Object.values({name: 'Max', age: 4}); // ['max', 4]
+ ```
+
+ * 支持 [Array.prototype.includes()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/includes)
+
+ ```javascript
+ [10, 20, NaN].includes(20); // true
+ ```
+
+ * 支持 [BigInt](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/BigInt)
+
+ ```javascript
+ typeof 567n === 'bigint'; // true
+ ```
+
+ * 支持 [模板字符串](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Template_literals)
+
+ ```javascript
+ `Lucky number: ${(Math.random() * 100).toFixed(0)}`
+ ```
+
+ * 查看 Rhino 引擎 [更多新特性](https://github.com/SuperMonster003/AutoJs6/blob/master/app/src/main/assets/doc/RHINO.md)
+
+ * 查看 Rhino 引擎 [兼容性列表](https://mozilla.github.io/rhino/compat/engines.html)
+
+******
+
+### 版本历史
+
+******
+
+[comment]: <> "Version history only shows last 3 versions"
+
+# v6.0.0
+
+###### 2021/12/01
+
+* `新增` 主页抽屉底部增加重启应用按钮
+* `新增` 主页抽屉增加忽略电池优化/显示在其他应用上层等开关
+* `修复` 应用初始安装后部分区域主题颜色渲染异常的问题
+* `修复` sign.property 不存在时无法 build 的问题
+* `修复` 定时任务面板一次性任务的月份存取错误
+* `修复` 应用设置页面开关颜色不随主题变更的问题
+* `修复` 无法识别打包插件及打包插件下载地址无效的问题
+* `修复` 首页抽屉 "查看使用情况权限" 开关状态可能不同步的问题
+* `修复` TemplateMatching.fastTemplateMatching 潜在的 Mat 内存泄漏问题
+* `优化` 升级 Rhino 引擎版本 1.7.7.2 -> 1.7.13 -> 1.7.14-snapshot
+* `优化` 升级 OpenCV 版本 3.4.3 -> 4.5.4
+* `优化` ViewUtil.getStatusBarHeight 提升兼容性
+* `优化` 主页抽屉移除用户登录相关模块并移除布局占位
+* `优化` 主页移除社区及市场标签页面并优化布局对其方式
+* `优化` 修改一些设置选项的默认开关状态
+* `优化` 关于页面增加 SinceDate 并优化 Copyright 显示
+* `优化` 升级 JSON 模块至 2017-06-12 版本并整合 cycle.js
+* `优化` 移除 Activity 前置时的自动检查更新功能并移除检查更新相关按钮
+* `优化` AppOpsKt#isOpPermissionGranted 内部代码逻辑
+* `优化` ResourceMonitor 使用 ReentrantLock 增强安全性 (Ref to TonyJiangWJ)
+* `优化` 使用 Maven Central 等仓库替换 JCenter 仓库
+* `优化` 抽离并移除重复的本地库文件
+* `优化` 本地化 CrashReport 版本 2.6.6
+* `优化` 本地化 MutableTheme 版本 1.0.0
+* `优化` 附加 Androidx Preference 版本 1.1.1
+* `优化` 附加 SwipeRefreshLayout 版本 1.1.0
+* `优化` 升级 Android Analytics 版本 7.0.0 -> 13.1.0
+* `优化` 升级 Android Annotations 版本 4.5.2 -> 4.8.0
+* `优化` 升级 Android Gradle 插件版本 3.2.1 -> 4.1.0 -> 7.0.3 -> 7.2.0-alpha04
+* `优化` 升级 Android Job 版本 1.2.6 -> 1.4.2
+* `优化` 升级 Android Material 版本 1.1.0-alpha01 -> 1.5.0-beta01
+* `优化` 升级 Androidx MultiDex 版本 2.0.0 -> 2.0.1
+* `优化` 升级 Apache Commons Lang3 版本 3.6 -> 3.12.0
+* `优化` 升级 Appcompat 版本 1.0.2 -> 1.4.0
+* `优化` 升级 ButterKnife Gradle 插件版本 9.0.0-rc2 -> 10.2.1 -> 10.2.3
+* `优化` 升级 ColorPicker 版本 2.1.5 -> 2.1.7
+* `优化` 升级 Espresso Core 版本 3.1.1-alpha01 -> 3.5.0-alpha03
+* `优化` 升级 Eventbus 版本 3.0.0 -> 3.2.0
+* `优化` 升级 Glide Compiler 版本 4.8.0 -> 4.12.0 -> 4.12.0
+* `优化` 升级 Gradle Build Tool 版本 29.0.2 -> 30.0.2
+* `优化` 升级 Gradle Compile 版本 28 -> 30 -> 31
+* `优化` 升级 Gradle 发行版本 4.10.2 -> 6.5 -> 7.0.2 -> 7.3
+* `优化` 升级 Groovy-Json 插件版本 3.0.7 -> 3.0.8
+* `优化` 升级 Gson 版本 2.8.2 -> 2.8.9
+* `优化` 升级 JavaVersion 版本 1.8 -> 11 -> 16
+* `优化` 升级 Joda Time 版本 2.9.9 -> 2.10.13
+* `优化` 升级 Junit 版本 4.12 -> 4.13.2
+* `优化` 升级 Kotlin Gradle 插件版本 1.3.10 -> 1.4.10 -> 1.6.0
+* `优化` 升级 Kotlinx Coroutines 版本 1.0.1 -> 1.5.2-native-mt
+* `优化` 升级 Leakcanary 版本 1.6.1 -> 2.7
+* `优化` 升级 LicensesDialog 版本 1.8.1 -> 2.2.0
+* `优化` 升级 Material Dialogs 版本 0.9.2.3 -> 0.9.6.0
+* `优化` 升级 Okhttp3 版本 3.10.0 -> 5.0.0-alpha.2 -> 5.0.0-alpha.3
+* `优化` 升级 Reactivex RxJava2 RxAndroid 版本 2.0.1 -> 2.1.1
+* `优化` 升级 Reactivex RxJava2 版本 2.1.2 -> 2.2.21
+* `优化` 升级 Retrofit2 Converter Gson 版本 2.3.0 -> 2.9.0
+* `优化` 升级 Retrofit2 Retrofit 版本 2.3.0 -> 2.9.0
+* `优化` 升级 Zip4j 版本 1.3.2 -> 2.9.1
+
+##### 更多版本历史可参阅
+
+* [CHANGELOG.md](https://github.com/SuperMonster003/AutoJs6/blob/master/app/src/main/assets/doc/CHANGELOG.md)
+
+******
+
+### 相关项目
+
+******
+
+* [Auto.js](https://github.com/hyb1996/Auto.js-VSCode-Extension) { author: [hyb1996](https://github.com/hyb1996) }
+ - `适用于 VS Code 的桌面开发插件`
+* [Auto.js-TypeScript-Declarations](https://github.com/SuperMonster003/Auto.js-TypeScript-Declarations) { author: [SuperMonster003](https://github.com/SuperMonster003) }
+ - `Auto.js 声明文件 (.d.ts)`
diff --git a/Readme-cn.md b/Readme-cn.md
deleted file mode 100644
index 1bfa80e3c..000000000
--- a/Readme-cn.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# Auto.js
-
-[Documentation in English](https://github.com/hyb1996/Auto.js/blob/master/Readme.md)
-
-## 重要提示
-
-**Auto.js 开源版本已不再维护(原因参见[Auto.js Pro FAQ](https://pro.autojs.org/faq)),后续将只维护[Auto.js Pro专业版](https://pro.autojs.org),更多信息查看[Auto.js Pro文档](https://pro.autojs.org/docs)和[Auto.js Pro特性](https://pro.autojs.org/features)。**
-
-## 简介
-
-一个支持无障碍服务的Android平台上的JavaScript IDE,其发展目标是JsBox和Workflow。
-
-同时有[VS Code 插件](https://github.com/hyb1996/Auto.js-VSCode-Extension)可提供基础的在桌面开发的功能。
-
-下载地址:[酷安](http://www.coolapk.com/apk/org.autojs.autojspro)
-
-Alpha版本:[Releases](https://github.com/hyb1996/NoRootScriptDroid/releases)
-
-官方文档:https://hyb1996.github.io/AutoJs-Docs/
-
-### 特性
-1. 由无障碍服务实现的简单易用的自动操作函数
-2. 悬浮窗录制和运行
-3. 更专业&强大的选择器API,提供对屏幕上的控件的寻找、遍历、获取信息、操作等。类似于Google的UI测试框架UiAutomator,您也可以把他当做移动版UI测试框架使用
-4. 采用JavaScript为脚本语言,并支持代码补全、变量重命名、代码格式化、查找替换等功能,可以作为一个JavaScript IDE使用
-5. 支持使用e4x编写界面,并可以将JavaScript打包为apk文件,您可以用它来开发小工具应用
-6. 支持使用Root权限以提供更强大的屏幕点击、滑动、录制功能和运行shell命令。录制录制可产生js文件或二进制文件,录制动作的回放比较流畅
-7. 提供截取屏幕、保存截图、图片找色、找图等函数
-8. 可作为Tasker插件使用,结合Tasker可胜任日常工作流
-9. 带有界面分析工具,类似Android Studio的LayoutInspector,可以分析界面层次和范围、获取界面上的控件信息
-
-本软件与按键精灵等软件不同,主要区别是:
-1. Auto.js主要以自动化、工作流为目标,更多地是方便日常生活工作,例如启动游戏时自动屏蔽通知、一键与特定联系人微信视频(知乎上出现过该问题,老人难以进行复杂的操作和子女进行微信视频)等
-2. Auto.js兼容性更好。以坐标为基础的按键精灵、脚本精灵很容易出现分辨率问题,而以控件为基础的Auto.js则没有这个问题
-3. Auto.js执行大部分任务不需要root权限。只有需要精确坐标点击、滑动的相关函数才需要root权限
-4. Auto.js可以提供界面编写等功能,不仅仅是作为一个脚本软件而存在
-
-
-### 信息
-* 官方论坛: [autojs.org](http://www.autojs.org)
-* 文档:可在[这里](https://hyb1996.github.io/AutoJs-Docs/)查看在线文档。目前文档仍然不完善。
-* 示例:可在[这里](https://github.com/hyb1996/NoRootScriptDroid/tree/master/app/src/main/assets/sample)查看一些示例,或者直接在应用内查看和运行。
-
-### 截图
-
-![screen-capture2](https://raw.githubusercontent.com/hyb1996/NoRootScriptDroid/master/screen-captures/ss02.png)
-
-![screen-capture5](https://raw.githubusercontent.com/hyb1996/NoRootScriptDroid/master/screen-captures/ss05.png)
-
-![screen-capture5](https://raw.githubusercontent.com/hyb1996/NoRootScriptDroid/master/screen-captures/ss07.png)
-
-![screen-capture5](https://raw.githubusercontent.com/hyb1996/NoRootScriptDroid/master/screen-captures/ss08.png)
-
-## License
-基于[Mozilla Public License Version 2.0](https://github.com/hyb1996/NoRootScriptDroid/blob/master/LICENSE.md)并附加以下条款:
-* **非商业性使用** — 不得将此项目及其衍生的项目的源代码和二进制产品用于任何商业和盈利用途
diff --git a/app/build.gradle b/app/build.gradle
index 8827a8331..cfd3f6d73 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,21 +1,46 @@
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
-apply plugin: 'com.jakewharton.butterknife'
+plugins {
+ id "com.android.application"
+ id "com.jakewharton.butterknife"
+ id "kotlin-android"
+ id "kotlin-kapt"
+}
+
+def AnnotationsVer = "4.8.0"
+def SupportLibsVer = "28.0.0"
+def ButterKnifeVer = "10.2.3"
-def AAVersion = '4.5.2'
-def SupportLibVersion = '28.0.0'
+def properties = new Properties()
+def propFile = new File("sign.properties")
+def isPropFileExists = propFile.exists()
+
+isPropFileExists && properties.load(new FileInputStream(propFile))
configurations.all {
resolutionStrategy {
- force "com.android.support:appcompat-v7:${SupportLibVersion}"
- force "com.android.support:support-v4:${SupportLibVersion}"
+ force "com.android.support:support-v4:${SupportLibsVer}"
}
}
+tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
+ kotlinOptions {
+ jvmTarget = JavaVersion.VERSION_16
+ }
+}
+
+tasks.withType(JavaCompile) {
+ options.compilerArgs << '-Xlint:deprecation' << '-Xlint:unchecked'
+}
+
android {
+ signingConfigs {
+ isPropFileExists && release {
+ storeFile file(properties["storeFile"])
+ keyPassword properties["keyPassword"]
+ keyAlias properties["keyAlias"]
+ storePassword properties["storePassword"]
+ }
+ }
compileSdkVersion versions.compile
- buildToolsVersion versions.buildTool
defaultConfig {
applicationId "org.autojs.autojs"
minSdkVersion versions.mini
@@ -24,40 +49,50 @@ android {
versionName versions.appVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
+ javaCompileOptions {
+ annotationProcessorOptions {
+ arguments = [
+ 'resourcePackageName': applicationId,
+ "androidManifestFile": "$projectDir/src/main/AndroidManifest.xml".toString()
+ ]
+ }
+ }
}
buildTypes {
debug {
shrinkResources false
minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
+ if (isPropFileExists) {
+ signingConfig signingConfigs.release
+ }
}
release {
shrinkResources false
minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
+ if (isPropFileExists) {
+ signingConfig signingConfigs.release
+ }
}
}
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- encoding = 'utf-8'
+ sourceCompatibility JavaVersion.VERSION_16
+ targetCompatibility JavaVersion.VERSION_16
+ encoding = "utf-8"
}
lintOptions {
abortOnError false
- disable 'MissingTranslation'
- disable 'ExtraTranslation'
+ disable "MissingTranslation"
+ disable "ExtraTranslation"
}
-
configurations.all {
- resolutionStrategy.force 'com.google.code.findbugs:jsr305:3.0.1'
+ resolutionStrategy.force "com.google.code.findbugs:jsr305:3.0.1"
}
-
flavorDimensions "channel"
splits {
-
// Configures multiple APKs based on ABI.
abi {
-
// Enables building multiple APKs per ABI.
enable true
@@ -68,7 +103,7 @@ android {
reset()
// Specifies a list of ABIs that Gradle should create APKs for.
- include "x86", "armeabi-v7a"
+ include "armeabi-v7a"
// Specifies that we do not want to also generate a universal APK that includes all ABIs.
universalApk false
@@ -76,106 +111,117 @@ android {
}
productFlavors {
common {
- buildConfigField "String", "CHANNEL", '"common"'
- }
- coolapk {
- buildConfigField "String", "CHANNEL", '"coolapk"'
+ buildConfigField "String", "CHANNEL", "\"common\""
+ buildConfigField "String", "APP_SINCE_DATE", "\"${versions.appSinceDate}\""
}
}
-
}
-
-
-
repositories {
- flatDir {
- dirs 'libs'
- }
google()
}
dependencies {
- androidTestImplementation('androidx.test.espresso:espresso-core:3.1.1-alpha01', {
- exclude group: 'com.android.support', module: 'support-annotations'
- })
- testImplementation 'junit:junit:4.12'
+ testImplementation "junit:junit:4.13.2"
+
// Kotlin
- implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.0.1"
+ implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2-native-mt"
+
// Android Annotations
- annotationProcessor "org.androidannotations:androidannotations:$AAVersion"
- implementation "org.androidannotations:androidannotations-api:$AAVersion"
+ kapt "org.androidannotations:androidannotations:${AnnotationsVer}"
+ implementation "org.androidannotations:androidannotations-api:${AnnotationsVer}"
+
// ButterKnife
- implementation('com.jakewharton:butterknife:9.0.0-rc2', {
- exclude group: 'com.android.support'
- })
- annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc2'
+ kapt "com.jakewharton:butterknife-compiler:${ButterKnifeVer}"
+ implementation "com.jakewharton:butterknife:${ButterKnifeVer}"
+
// Android supports
- implementation 'androidx.appcompat:appcompat:1.0.2'
- implementation 'androidx.cardview:cardview:1.0.0'
- implementation 'com.google.android.material:material:1.1.0-alpha01'
- implementation 'androidx.multidex:multidex:2.0.0'
- // Personal libraries
- implementation 'com.github.hyb1996:MutableTheme:1.0.0'
+ implementation "androidx.appcompat:appcompat:1.4.0"
+ implementation "androidx.cardview:cardview:1.0.0"
+ implementation "com.google.android.material:material:1.5.0-beta01"
+ implementation "androidx.multidex:multidex:2.0.1"
+
// Material Dialogs
- implementation('com.afollestad.material-dialogs:core:0.9.2.3', {
- exclude group: 'com.android.support'
- })
+ implementation "com.afollestad.material-dialogs:core:0.9.6.0"
+
+ // SwipeRefreshLayout
+ implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
+
// Common Markdown
- implementation 'com.github.atlassian:commonmark-java:commonmark-parent-0.9.0'
+ implementation "com.github.atlassian:commonmark-java:commonmark-parent-0.9.0"
+
// Android issue reporter (a github issue reporter)
- implementation('com.heinrichreimersoftware:android-issue-reporter:1.3.1', {
- exclude group: 'com.afollestad.material-dialogs'
- exclude group: 'com.android.support'
- })
- //MultiLevelListView
- implementation 'com.github.hyb1996:android-multi-level-listview:1.1'
- //Licenses Dialog
- implementation 'de.psdev.licensesdialog:licensesdialog:1.8.1'
- //Expandable RecyclerView
- implementation 'com.bignerdranch.android:expandablerecyclerview:3.0.0-RC1'
- //FlexibleDivider
- implementation 'com.yqritc:recyclerview-flexibledivider:1.4.0'
- //???
- implementation 'com.wang.avi:library:2.1.3'
- //Commons-lang
- implementation 'org.apache.commons:commons-lang3:3.6'
- //Expandable RecyclerView
- implementation 'com.thoughtbot:expandablerecyclerview:1.3'
- implementation 'com.github.hyb1996:Auto.js-ApkBuilder:1.0.1'
+ implementation "com.heinrichreimersoftware:android-issue-reporter:1.3.1"
+
+ // MultiLevelListView
+ implementation "com.github.hyb1996:android-multi-level-listview:1.1"
+
+ // Licenses Dialog
+ implementation "de.psdev.licensesdialog:licensesdialog:2.2.0"
+
+ // Expandable RecyclerView
+ implementation "com.bignerdranch.android:expandablerecyclerview:3.0.0-RC1"
+
+ // FlexibleDivider
+ implementation "com.yqritc:recyclerview-flexibledivider:1.4.0"
+
+ // AVLoadingView
+ implementation "com.wang.avi:library:2.1.3"
+
+ // Commons Lang
+ implementation "org.apache.commons:commons-lang3:3.12.0"
+
+ // Expandable RecyclerView
+ implementation "com.thoughtbot:expandablerecyclerview:1.3"
+
+ implementation "com.github.hyb1996:Auto.js-ApkBuilder:1.0.1"
+
// RxJava
- implementation "io.reactivex.rxjava2:rxjava:2.1.2"
- implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
+ implementation "io.reactivex.rxjava2:rxjava:2.2.21"
+ implementation "io.reactivex.rxjava2:rxandroid:2.1.1"
+
// Retrofit
- implementation 'com.squareup.retrofit2:retrofit:2.3.0'
- implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
- implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
- implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
- implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2'
- //Glide
- implementation('com.github.bumptech.glide:glide:4.8.0', {
- exclude group: 'com.android.support'
- })
- kapt 'com.github.bumptech.glide:compiler:4.8.0'
- //joda time
- implementation 'joda-time:joda-time:2.9.9'
+ implementation "com.squareup.retrofit2:retrofit:2.9.0"
+ implementation "com.squareup.retrofit2:converter-gson:2.9.0"
+ implementation "com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0"
+ implementation "com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2"
+
+ // Glide
+ kapt "com.github.bumptech.glide:compiler:4.12.0"
+ implementation "com.github.bumptech.glide:glide:4.12.0"
+
+ // Joda Time
+ implementation "joda-time:joda-time:2.10.13"
+
// Tasker Plugin
- implementation 'com.twofortyfouram:android-plugin-client-sdk-for-locale:4.0.3'
+ implementation "com.twofortyfouram:android-plugin-client-sdk-for-locale:4.0.3"
+
// Flurry
- implementation 'com.flurry.android:analytics:7.0.0@aar'
+ implementation "com.flurry.android:analytics:13.1.0"
+
+ // Material Dialogs
+ implementation "com.afollestad.material-dialogs:commons:0.9.6.0"
+
+ // Android Job
+ implementation "com.evernote:android-job:1.4.2"
+
+ // Leakcanary
+ debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.7'
+
+ // Extracted from com.github.hyb1996:MutableTheme:1.0.0
+ api 'com.jrummyapps:colorpicker:2.1.7'
+ implementation 'androidx.recyclerview:recyclerview:1.2.1'
+ implementation 'com.github.ozodrukh:CircularReveal:2.0.1'
+
// Bugly
- implementation 'com.tencent.bugly:crashreport:2.6.6'
- // MaterialDialogCommon
- implementation('com.afollestad.material-dialogs:commons:0.9.2.3', {
- exclude group: 'com.android.support'
- })
- // Android job
- implementation 'com.evernote:android-job:1.2.6'
- debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.1'
- releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.1'
- // Optional, if you use support library fragments:
- debugImplementation 'com.squareup.leakcanary:leakcanary-support-fragment:1.6.1'
- implementation project(':automator')
- implementation project(':common')
- implementation project(':autojs')
+ implementation project(":libs:com.tencent.bugly.crashreport-2.6.6")
+
+ implementation project(":automator")
+ implementation project(":common")
+ implementation project(":autojs")
}
+
+java {
+ sourceCompatibility = JavaVersion.VERSION_16
+ targetCompatibility = JavaVersion.VERSION_16
+}
\ No newline at end of file
diff --git a/app/libs/opencv-3.4.3.aar b/app/libs/opencv-3.4.3.aar
deleted file mode 100644
index c0ffeb818..000000000
Binary files a/app/libs/opencv-3.4.3.aar and /dev/null differ
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index b1738212c..4da40d6bf 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -39,6 +39,7 @@
-keepclassmembers class ** {
@org.greenrobot.eventbus.Subscribe ;
}
+-keep enum org.greenrobot.eventbus.ThreadMode { *; }
# volley
-keepclassmembers class ** {
@com.google.common.eventbus.Subscribe ;
@@ -70,10 +71,6 @@
*** get*();
}
--keep class * extends android.support.v4.app.Fragment {
- ;
-}
-
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
diff --git a/app/release/output.json b/app/release/output.json
deleted file mode 100644
index 9c9de02a2..000000000
--- a/app/release/output.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"outputType":{"type":"APK"},"apkInfo":{"type":"FULL_SPLIT","splits":[{"filterType":"ABI","value":"armeabi-v7a"}],"versionCode":261,"versionName":"4.1.1 Alpha2","enabled":true,"filterName":"armeabi-v7a","outputFile":"inrt-armeabi-v7a-release.apk","fullName":"armeabi-v7aRelease","baseName":"armeabi-v7a-release"},"path":"inrt-armeabi-v7a-release.apk","properties":{}},{"outputType":{"type":"APK"},"apkInfo":{"type":"FULL_SPLIT","splits":[{"filterType":"ABI","value":"x86"}],"versionCode":261,"versionName":"4.1.1 Alpha2","enabled":true,"filterName":"x86","outputFile":"inrt-x86-release.apk","fullName":"x86Release","baseName":"x86-release"},"path":"inrt-x86-release.apk","properties":{}}]
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2b708db8b..84c00630b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,310 +1,330 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ xmlns:tools="http://schemas.android.com/tools"
+ package="org.autojs.autojs">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
+ android:name=".App"
+ android:allowBackup="false"
+ android:icon="@drawable/autojs_material"
+ android:label="@string/app_name"
+ android:largeHeap="true"
+ android:supportsRtl="true"
+ android:theme="@style/AppTheme"
+ android:usesCleartextTraffic="true"
+ tools:replace="android:label, android:allowBackup">
+ android:name="android.max_aspect"
+ android:value="2.1" />
+ android:name=".ui.splash.SplashActivity"
+ android:hardwareAccelerated="true"
+ android:label="@string/app_name"
+ android:theme="@style/AppTheme.Splash"
+ android:exported="true">
-
+
-
+
-
+ android:name=".ui.main.MainActivity_"
+ android:hardwareAccelerated="true"
+ android:label="@string/app_name"
+ android:launchMode="singleTask"
+ android:theme="@style/AppTheme.FullScreen" />
+ android:name=".external.shortcut.ShortcutActivity"
+ android:taskAffinity="org.autojs.autojs.external.shortcut.ShortcutActivity"
+ android:theme="@android:style/Theme.NoDisplay"
+ android:exported="true">
-
+
-
+
+ android:name="androidx.core.content.FileProvider"
+ android:authorities="org.autojs.autojs.fileprovider"
+ android:exported="false"
+ android:grantUriPermissions="true">
+ android:name="android.support.FILE_PROVIDER_PATHS"
+ android:resource="@xml/provider_paths" />
-
-
+ android:name=".ui.edit.EditActivity_"
+ android:configChanges="orientation|screenSize"
+ android:launchMode="standard"
+ android:multiprocess="true"
+ android:taskAffinity="org.autojs.autojs.edit"
+ android:theme="@style/EditorTheme" />
+
-
+ android:name=".ui.settings.SettingsActivity_"
+ android:theme="@style/AppTheme.Settings" />
+
-
+ android:name=".external.tasker.TaskerScriptEditActivity_"
+ android:configChanges="orientation|screenSize" />
+
+ android:name=".ui.user.LoginActivity_"
+ android:windowSoftInputMode="adjustResize" />
-
+ android:name=".ui.user.RegisterActivity_"
+ android:windowSoftInputMode="adjustResize" />
+
-
-
-
-
-
+ android:name=".ui.project.BuildActivity_"
+ android:configChanges="orientation|screenSize" />
+
+
+
+
+
-
+ android:name=".ui.shortcut.ShortcutCreateActivity"
+ android:theme="@style/AppTheme.Transparent" />
+
-
+
-
-
+
+
+ android:name=".ui.error.IssueReporterActivity"
+ android:theme="@style/IssueReporterTheme" />
-
-
+
+
-
+
+ android:name=".external.tile.LayoutBoundsTile"
+ android:icon="@drawable/ic_circular_menu_bounds"
+ android:label="@string/text_inspect_layout_bounds"
+ android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
+ android:exported="false">
+ android:name="android.service.quicksettings.ACTIVE_TILE"
+ android:value="false" />
-
+
+ android:name=".external.tile.LayoutHierarchyTile"
+ android:icon="@drawable/ic_circular_menu_hierarchy"
+ android:label="@string/text_inspect_layout_hierarchy"
+ android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
+ android:exported="false">
+ android:name="android.service.quicksettings.ACTIVE_TILE"
+ android:value="false" />
-
+
+ android:name=".external.tasker.PluginActivity"
+ android:exported="true"
+ android:icon="@drawable/ic_android_eat_js"
+ android:label="@string/app_name"
+ android:targetActivity=".external.tasker.TaskPrefEditActivity_"
+ tools:ignore="ExportedActivity">
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
+
+ android:name=".external.tasker.FireSettingReceiver"
+ android:exported="true"
+ android:process=":background"
+ tools:ignore="ExportedReceiver">
-
+
+ android:name=".external.open.EditIntentActivity"
+ android:icon="@drawable/autojs_material"
+ android:label="@string/text_edit_script"
+ android:exported="true">
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
+ android:name=".external.open.RunIntentActivity"
+ android:icon="@drawable/autojs_material"
+ android:label="@string/text_run_script"
+ android:taskAffinity="org.autojs.autojs.external.open.RunIntentActivity"
+ android:theme="@android:style/Theme.NoDisplay"
+ android:exported="true">
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
+ android:name=".external.open.ImportIntentActivity"
+ android:icon="@drawable/autojs_material"
+ android:label="@string/text_import_script"
+ android:theme="@style/AppTheme.Transparent"
+ android:exported="true">
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
+ android:name="com.stardust.notification.NotificationListenerService"
+ android:label="@string/app_name"
+ android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"
+ android:exported="false">
-
+
-
+
-
+
+ android:name="android.appwidget.provider"
+ android:resource="@xml/script_widget_config" />
-
+
-
+
+
+
\ No newline at end of file
diff --git a/app/src/main/assets/doc/CHANGELOG.md b/app/src/main/assets/doc/CHANGELOG.md
new file mode 100644
index 000000000..aa5a37fc3
--- /dev/null
+++ b/app/src/main/assets/doc/CHANGELOG.md
@@ -0,0 +1,68 @@
+******
+
+### 版本历史
+
+******
+
+# v6.0.0
+
+###### 2021/12/01
+
+* `新增` 主页抽屉底部增加重启应用按钮
+* `新增` 主页抽屉增加忽略电池优化/显示在其他应用上层等开关
+* `修复` 应用初始安装后部分区域主题颜色渲染异常的问题
+* `修复` sign.property 不存在时无法 build 的问题
+* `修复` 定时任务面板一次性任务的月份存取错误
+* `修复` 应用设置页面开关颜色不随主题变更的问题
+* `修复` 无法识别打包插件及打包插件下载地址无效的问题
+* `修复` 首页抽屉 "查看使用情况权限" 开关状态可能不同步的问题
+* `修复` TemplateMatching.fastTemplateMatching 潜在的 Mat 内存泄漏问题
+* `优化` 升级 Rhino 引擎版本 1.7.7.2 -> 1.7.13 -> 1.7.14-snapshot
+* `优化` 升级 OpenCV 版本 3.4.3 -> 4.5.4
+* `优化` ViewUtil.getStatusBarHeight 提升兼容性
+* `优化` 主页抽屉移除用户登录相关模块并移除布局占位
+* `优化` 主页移除社区及市场标签页面并优化布局对其方式
+* `优化` 修改一些设置选项的默认开关状态
+* `优化` 关于页面增加 SinceDate 并优化 Copyright 显示
+* `优化` 升级 JSON 模块至 2017-06-12 版本并整合 cycle.js
+* `优化` 移除 Activity 前置时的自动检查更新功能并移除检查更新相关按钮
+* `优化` AppOpsKt#isOpPermissionGranted 内部代码逻辑
+* `优化` ResourceMonitor 使用 ReentrantLock 增强安全性 (Ref to TonyJiangWJ)
+* `优化` 使用 Maven Central 等仓库替换 JCenter 仓库
+* `优化` 抽离并移除重复的本地库文件
+* `优化` 本地化 CrashReport 版本 2.6.6
+* `优化` 本地化 MutableTheme 版本 1.0.0
+* `优化` 附加 Androidx Preference 版本 1.1.1
+* `优化` 附加 SwipeRefreshLayout 版本 1.1.0
+* `优化` 升级 Android Analytics 版本 7.0.0 -> 13.1.0
+* `优化` 升级 Android Annotations 版本 4.5.2 -> 4.8.0
+* `优化` 升级 Android Gradle 插件版本 3.2.1 -> 4.1.0 -> 7.0.3 -> 7.2.0-alpha04
+* `优化` 升级 Android Job 版本 1.2.6 -> 1.4.2
+* `优化` 升级 Android Material 版本 1.1.0-alpha01 -> 1.5.0-beta01
+* `优化` 升级 Androidx MultiDex 版本 2.0.0 -> 2.0.1
+* `优化` 升级 Apache Commons Lang3 版本 3.6 -> 3.12.0
+* `优化` 升级 Appcompat 版本 1.0.2 -> 1.4.0
+* `优化` 升级 ButterKnife Gradle 插件版本 9.0.0-rc2 -> 10.2.1 -> 10.2.3
+* `优化` 升级 ColorPicker 版本 2.1.5 -> 2.1.7
+* `优化` 升级 Espresso Core 版本 3.1.1-alpha01 -> 3.5.0-alpha03
+* `优化` 升级 Eventbus 版本 3.0.0 -> 3.2.0
+* `优化` 升级 Glide Compiler 版本 4.8.0 -> 4.12.0 -> 4.12.0
+* `优化` 升级 Gradle Build Tool 版本 29.0.2 -> 30.0.2
+* `优化` 升级 Gradle Compile 版本 28 -> 30 -> 31
+* `优化` 升级 Gradle 发行版本 4.10.2 -> 6.5 -> 7.0.2 -> 7.3
+* `优化` 升级 Groovy-Json 插件版本 3.0.7 -> 3.0.8
+* `优化` 升级 Gson 版本 2.8.2 -> 2.8.9
+* `优化` 升级 JavaVersion 版本 1.8 -> 11 -> 16
+* `优化` 升级 Joda Time 版本 2.9.9 -> 2.10.13
+* `优化` 升级 Junit 版本 4.12 -> 4.13.2
+* `优化` 升级 Kotlin Gradle 插件版本 1.3.10 -> 1.4.10 -> 1.6.0
+* `优化` 升级 Kotlinx Coroutines 版本 1.0.1 -> 1.5.2-native-mt
+* `优化` 升级 Leakcanary 版本 1.6.1 -> 2.7
+* `优化` 升级 LicensesDialog 版本 1.8.1 -> 2.2.0
+* `优化` 升级 Material Dialogs 版本 0.9.2.3 -> 0.9.6.0
+* `优化` 升级 Okhttp3 版本 3.10.0 -> 5.0.0-alpha.2 -> 5.0.0-alpha.3
+* `优化` 升级 Reactivex RxJava2 RxAndroid 版本 2.0.1 -> 2.1.1
+* `优化` 升级 Reactivex RxJava2 版本 2.1.2 -> 2.2.21
+* `优化` 升级 Retrofit2 Converter Gson 版本 2.3.0 -> 2.9.0
+* `优化` 升级 Retrofit2 Retrofit 版本 2.3.0 -> 2.9.0
+* `优化` 升级 Zip4j 版本 1.3.2 -> 2.9.1
\ No newline at end of file
diff --git a/app/src/main/assets/doc/RHINO.md b/app/src/main/assets/doc/RHINO.md
new file mode 100644
index 000000000..cfd898ba7
--- /dev/null
+++ b/app/src/main/assets/doc/RHINO.md
@@ -0,0 +1,177 @@
+* [Object.values()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/values)
+
+ ```javascript
+ Object.values({name: 'Max', age: 4}); // ['max', 4]
+ ```
+
+* [Array.prototype.includes()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/includes)
+
+ ```javascript
+ [10, 20, NaN].includes(20); // true
+ ```
+
+* [BigInt](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/BigInt)
+
+ ```javascript
+ typeof 567n === 'bigint'; // true
+ ```
+
+* [模板字符串](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Template_literals)
+
+ ```javascript
+ `Lucky number: ${(Math.random() * 100).toFixed(0)}`
+ ```
+
+* [求幂运算符](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Exponentiation)
+
+ ```javascript
+ 9 ** 2 === 81; // true
+ ```
+
+* [简短对象属性](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Object_initializer)
+
+ ```javascript
+ let a = 7, b = 4, o = {a, b};
+ o.a - o.b === 3; // true
+ ```
+
+* [生成器函数](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Generator)
+
+ ```javascript
+ let gen = function* () { yield 39 };
+ gen().next().value === 39; // true
+ ```
+
+* [参数尾逗号](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Trailing_commas)
+
+ ```javascript
+ Math.max(9, 6, 3,) === 9; // true
+ ```
+
+* [Map](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map) / [Set](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set) / [WeakMap](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) / [WeakSet](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/WeakSet)
+
+ ```javascript
+ new Map().set('n', 2).set('n', 6).get('n'); // 6
+ ```
+
+* [Object.setPrototypeOf](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf)
+
+ ```javascript
+ Object.setPrototypeOf({}, {n: 6}).n; // 6
+ ```
+
+* [Array.from](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/from) / [Array.of](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/of)
+
+ ```javascript
+ Array.from('123'); // ['1', '2', '3']
+ Array.from('123', Number); // [1, 2, 3]
+
+ Array.of('hello', 'world'); // ['hello', 'world']
+ ```
+
+* [Array.prototype.fill](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/fill) / [copyWithin](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin)
+
+ ```javascript
+ let a = Array(4).fill('x'); // ['x', 'x', 'x', 'x']
+ a.fill('y', 3); // ['x', 'x', 'x', 'y']
+ a.fill('z', 0, 2); // ['z', 'z', 'x', 'y']
+
+ [1, 2, 3, 4, 5].copyWithin(-2, -3, -1); // [1, 2, 3, 3, 4]
+ [].copyWithin.call(new Int32Array([1, 2, 3]), 0, 2, 3); // [3, 2, 3]
+ ```
+
+* [Array.prototype.find](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/find) / [findIndex](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex)
+
+ ```javascript
+ let a = [5, 12, 8, 130, 44];
+ a.find(n => n > 10); // 12
+ a.findIndex(n => n > 10); // 1
+ ```
+
+* [Array.prototype.keys](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/keys) / [values](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/values) / [entries](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/entries)
+
+ ```javascript
+ let a = [1,,,4];
+ a.length; // 4
+
+ Object.keys(a); // ['0', '3']
+ Array.from(a.keys()); // [0, 1, 2, 3]
+
+ Object.values(a); // [1, 4]
+ Array.from(a.values()); // [1, undefined, undefined, 4]
+
+ Object.entries(a); // [['0', 1], ['3', 4]]
+ Array.from(a.entries()); // [[0, 1], [1, undefined], [2, undefined], [3, 4]]
+ ```
+
+* [Number.EPSILON](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON)
+
+ ```javascript
+ let x = 0.1;
+ let y = 0.2;
+ let z = 0.3;
+ x + y - z === 0; // false
+ Math.abs(x + y - z) < Number.EPSILON; // true
+ ```
+
+* [Math.clz32](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32) / [sign](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/sign) / [log2](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/log2) / [acosh](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/acosh) / [asinh](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/asinh) / [atanh](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/atanh) / [fround](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/fround)
+
+* [Object.seal](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/seal) / [isSealed](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed)
+
+ ```javascript
+ let o = {};
+ Object.isSealed(o); // false
+ Object.preventExtensions(o);
+ Object.isSealed(o); // true
+ o.a = 1;
+ o.a; // /undefined
+ ```
+
+* [Object.freeze](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze) / [isFrozen](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen)
+
+ ```javascript
+ let o = {a: 1, b: 2};
+ Object.isFrozen(o); // false
+ delete o.a; // true
+ o; // {b: 2}
+ Object.freeze(o);
+ Object.isFrozen(o); // true
+ delete o.b; // false
+ o; // {b: 2}
+ o.c = 3;
+ o; // {b: 2}
+ ```
+
+* [Object.preventExtensions](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/preventExtensions) / [isExtensible](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible)
+
+ ```javascript
+ let o = {};
+ Object.isExtensible(o) // true
+ Object.preventExtensions(o);
+ Object.isExtensible(o) // false
+ o.a = 1;
+ o; // {}
+ ```
+
+* [Object.entries](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) / [fromEntries](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries)
+
+ ```javascript
+ let o = {a: 1, b: 2};
+ Array.from(Object.entries(o)); // [['a', 1], ['b', 2]]
+
+ let e = [['a', 1], ['b', 2]];
+ Object.fromEntries(e); // {a: 1, b: 2}
+ ```
+
+* [String.prototype.padStart](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/padStart) / [padEnd](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd)
+
+ ```javascript
+ let h = '9';
+ let m = '30';
+ let s = '7';
+ let pad = o => o.padStart(2, '0');
+ `${pad(h)}:${pad(m)}:${pad(s)}`; // '09:30:07'
+
+ pad = o => o.padEnd(2, '_');
+ `${pad(h)}:${pad(m)}:${pad(s)}`; // '9_:30:7_'
+ ```
\ No newline at end of file
diff --git a/app/src/main/assets/indices/all_android_classes.json b/app/src/main/assets/indices/all_android_classes.json
index d92cdfef6..2ecedc3bb 100644
--- a/app/src/main/assets/indices/all_android_classes.json
+++ b/app/src/main/assets/indices/all_android_classes.json
@@ -1 +1 @@
-[{"package_name": "android.widget", "class_name": "AbsListView", "full_name": "android.widget.AbsListView"}, {"package_name": "android.widget", "class_name": "AbsListView.LayoutParams", "full_name": "android.widget.AbsListView.LayoutParams"}, {"package_name": "android.widget", "class_name": "AbsListView.MultiChoiceModeListener", "full_name": "android.widget.AbsListView.MultiChoiceModeListener"}, {"package_name": "android.widget", "class_name": "AbsListView.OnScrollListener", "full_name": "android.widget.AbsListView.OnScrollListener"}, {"package_name": "android.widget", "class_name": "AbsListView.RecyclerListener", "full_name": "android.widget.AbsListView.RecyclerListener"}, {"package_name": "android.widget", "class_name": "AbsListView.SelectionBoundsAdjuster", "full_name": "android.widget.AbsListView.SelectionBoundsAdjuster"}, {"package_name": "android.widget", "class_name": "AbsoluteLayout", "full_name": "android.widget.AbsoluteLayout"}, {"package_name": "android.widget", "class_name": "AbsoluteLayout.LayoutParams", "full_name": "android.widget.AbsoluteLayout.LayoutParams"}, {"package_name": "android.text.style", "class_name": "AbsoluteSizeSpan", "full_name": "android.text.style.AbsoluteSizeSpan"}, {"package_name": "android.view", "class_name": "AbsSavedState", "full_name": "android.view.AbsSavedState"}, {"package_name": "android.widget", "class_name": "AbsSeekBar", "full_name": "android.widget.AbsSeekBar"}, {"package_name": "android.widget", "class_name": "AbsSpinner", "full_name": "android.widget.AbsSpinner"}, {"package_name": "android.accounts", "class_name": "AbstractAccountAuthenticator", "full_name": "android.accounts.AbstractAccountAuthenticator"}, {"package_name": "java.time.chrono", "class_name": "AbstractChronology", "full_name": "java.time.chrono.AbstractChronology"}, {"package_name": "android.database", "class_name": "AbstractCursor", "full_name": "android.database.AbstractCursor"}, {"package_name": "android.database", "class_name": "AbstractCursor.SelfContentObserver", "full_name": "android.database.AbstractCursor.SelfContentObserver"}, {"package_name": "java.util.concurrent", "class_name": "AbstractExecutorService", "full_name": "java.util.concurrent.AbstractExecutorService"}, {"package_name": "android.inputmethodservice", "class_name": "AbstractInputMethodService", "full_name": "android.inputmethodservice.AbstractInputMethodService"}, {"package_name": "android.inputmethodservice", "class_name": "AbstractInputMethodService.AbstractInputMethodImpl", "full_name": "android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodImpl"}, {"package_name": "android.inputmethodservice", "class_name": "AbstractInputMethodService.AbstractInputMethodSessionImpl", "full_name": "android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl"}, {"package_name": "java.nio.channels.spi", "class_name": "AbstractInterruptibleChannel", "full_name": "java.nio.channels.spi.AbstractInterruptibleChannel"}, {"package_name": "java.lang", "class_name": "AbstractMethodError", "full_name": "java.lang.AbstractMethodError"}, {"package_name": "java.util.concurrent.locks", "class_name": "AbstractOwnableSynchronizer", "full_name": "java.util.concurrent.locks.AbstractOwnableSynchronizer"}, {"package_name": "java.util.prefs", "class_name": "AbstractPreferences", "full_name": "java.util.prefs.AbstractPreferences"}, {"package_name": "java.util.concurrent.locks", "class_name": "AbstractQueuedLongSynchronizer", "full_name": "java.util.concurrent.locks.AbstractQueuedLongSynchronizer"}, {"package_name": "java.util.concurrent.locks", "class_name": "AbstractQueuedLongSynchronizer.ConditionObject", "full_name": "java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject"}, {"package_name": "java.util.concurrent.locks", "class_name": "AbstractQueuedSynchronizer", "full_name": "java.util.concurrent.locks.AbstractQueuedSynchronizer"}, {"package_name": "java.util.concurrent.locks", "class_name": "AbstractQueuedSynchronizer.ConditionObject", "full_name": "java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject"}, {"package_name": "java.nio.channels.spi", "class_name": "AbstractSelectableChannel", "full_name": "java.nio.channels.spi.AbstractSelectableChannel"}, {"package_name": "java.nio.channels.spi", "class_name": "AbstractSelectionKey", "full_name": "java.nio.channels.spi.AbstractSelectionKey"}, {"package_name": "java.nio.channels.spi", "class_name": "AbstractSelector", "full_name": "java.nio.channels.spi.AbstractSelector"}, {"package_name": "android.content", "class_name": "AbstractThreadedSyncAdapter", "full_name": "android.content.AbstractThreadedSyncAdapter"}, {"package_name": "org.apache.http.conn.ssl", "class_name": "AbstractVerifier", "full_name": "org.apache.http.conn.ssl.AbstractVerifier"}, {"package_name": "android.database", "class_name": "AbstractWindowedCursor", "full_name": "android.database.AbstractWindowedCursor"}, {"package_name": "android.view.animation", "class_name": "AccelerateDecelerateInterpolator", "full_name": "android.view.animation.AccelerateDecelerateInterpolator"}, {"package_name": "android.view.animation", "class_name": "AccelerateInterpolator", "full_name": "android.view.animation.AccelerateInterpolator"}, {"package_name": "java.nio.channels", "class_name": "AcceptPendingException", "full_name": "java.nio.channels.AcceptPendingException"}, {"package_name": "java.security", "class_name": "AccessControlContext", "full_name": "java.security.AccessControlContext"}, {"package_name": "java.security", "class_name": "AccessControlException", "full_name": "java.security.AccessControlException"}, {"package_name": "java.security", "class_name": "AccessController", "full_name": "java.security.AccessController"}, {"package_name": "java.nio.file", "class_name": "AccessDeniedException", "full_name": "java.nio.file.AccessDeniedException"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityButtonController", "full_name": "android.accessibilityservice.AccessibilityButtonController"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityButtonController.AccessibilityButtonCallback", "full_name": "android.accessibilityservice.AccessibilityButtonController.AccessibilityButtonCallback"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityEvent", "full_name": "android.view.accessibility.AccessibilityEvent"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityEventSource", "full_name": "android.view.accessibility.AccessibilityEventSource"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityManager", "full_name": "android.view.accessibility.AccessibilityManager"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityManager.AccessibilityStateChangeListener", "full_name": "android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityManager.TouchExplorationStateChangeListener", "full_name": "android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityNodeInfo", "full_name": "android.view.accessibility.AccessibilityNodeInfo"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityNodeInfo.AccessibilityAction", "full_name": "android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityNodeInfo.CollectionInfo", "full_name": "android.view.accessibility.AccessibilityNodeInfo.CollectionInfo"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityNodeInfo.CollectionItemInfo", "full_name": "android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityNodeInfo.RangeInfo", "full_name": "android.view.accessibility.AccessibilityNodeInfo.RangeInfo"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityNodeProvider", "full_name": "android.view.accessibility.AccessibilityNodeProvider"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityRecord", "full_name": "android.view.accessibility.AccessibilityRecord"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityRequestPreparer", "full_name": "android.view.accessibility.AccessibilityRequestPreparer"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityService", "full_name": "android.accessibilityservice.AccessibilityService"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityService.GestureResultCallback", "full_name": "android.accessibilityservice.AccessibilityService.GestureResultCallback"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityService.MagnificationController", "full_name": "android.accessibilityservice.AccessibilityService.MagnificationController"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityService.MagnificationController.OnMagnificationChangedListener", "full_name": "android.accessibilityservice.AccessibilityService.MagnificationController.OnMagnificationChangedListener"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityService.SoftKeyboardController", "full_name": "android.accessibilityservice.AccessibilityService.SoftKeyboardController"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityService.SoftKeyboardController.OnShowModeChangedListener", "full_name": "android.accessibilityservice.AccessibilityService.SoftKeyboardController.OnShowModeChangedListener"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityServiceInfo", "full_name": "android.accessibilityservice.AccessibilityServiceInfo"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityWindowInfo", "full_name": "android.view.accessibility.AccessibilityWindowInfo"}, {"package_name": "java.lang.reflect", "class_name": "AccessibleObject", "full_name": "java.lang.reflect.AccessibleObject"}, {"package_name": "java.nio.file", "class_name": "AccessMode", "full_name": "java.nio.file.AccessMode"}, {"package_name": "android.telephony", "class_name": "AccessNetworkConstants", "full_name": "android.telephony.AccessNetworkConstants"}, {"package_name": "android.telephony", "class_name": "AccessNetworkConstants.AccessNetworkType", "full_name": "android.telephony.AccessNetworkConstants.AccessNetworkType"}, {"package_name": "android.telephony", "class_name": "AccessNetworkConstants.EutranBand", "full_name": "android.telephony.AccessNetworkConstants.EutranBand"}, {"package_name": "android.telephony", "class_name": "AccessNetworkConstants.GeranBand", "full_name": "android.telephony.AccessNetworkConstants.GeranBand"}, {"package_name": "android.telephony", "class_name": "AccessNetworkConstants.UtranBand", "full_name": "android.telephony.AccessNetworkConstants.UtranBand"}, {"package_name": "android.accounts", "class_name": "Account", "full_name": "android.accounts.Account"}, {"package_name": "android.accounts", "class_name": "AccountAuthenticatorActivity", "full_name": "android.accounts.AccountAuthenticatorActivity"}, {"package_name": "android.accounts", "class_name": "AccountAuthenticatorResponse", "full_name": "android.accounts.AccountAuthenticatorResponse"}, {"package_name": "android.accounts", "class_name": "AccountManager", "full_name": "android.accounts.AccountManager"}, {"package_name": "android.accounts", "class_name": "AccountsException", "full_name": "android.accounts.AccountsException"}, {"package_name": "java.security.acl", "class_name": "Acl", "full_name": "java.security.acl.Acl"}, {"package_name": "java.nio.file.attribute", "class_name": "AclEntry", "full_name": "java.nio.file.attribute.AclEntry"}, {"package_name": "java.security.acl", "class_name": "AclEntry", "full_name": "java.security.acl.AclEntry"}, {"package_name": "java.nio.file.attribute", "class_name": "AclEntry.Builder", "full_name": "java.nio.file.attribute.AclEntry.Builder"}, {"package_name": "java.nio.file.attribute", "class_name": "AclEntryFlag", "full_name": "java.nio.file.attribute.AclEntryFlag"}, {"package_name": "java.nio.file.attribute", "class_name": "AclEntryPermission", "full_name": "java.nio.file.attribute.AclEntryPermission"}, {"package_name": "java.nio.file.attribute", "class_name": "AclEntryType", "full_name": "java.nio.file.attribute.AclEntryType"}, {"package_name": "java.nio.file.attribute", "class_name": "AclFileAttributeView", "full_name": "java.nio.file.attribute.AclFileAttributeView"}, {"package_name": "java.security.acl", "class_name": "AclNotFoundException", "full_name": "java.security.acl.AclNotFoundException"}, {"package_name": "android.media.audiofx", "class_name": "AcousticEchoCanceler", "full_name": "android.media.audiofx.AcousticEchoCanceler"}, {"package_name": "android.app", "class_name": "ActionBar", "full_name": "android.app.ActionBar"}, {"package_name": "android.app", "class_name": "ActionBar.LayoutParams", "full_name": "android.app.ActionBar.LayoutParams"}, {"package_name": "android.app", "class_name": "ActionBar.OnMenuVisibilityListener", "full_name": "android.app.ActionBar.OnMenuVisibilityListener"}, {"package_name": "android.app", "class_name": "ActionBar.OnNavigationListener", "full_name": "android.app.ActionBar.OnNavigationListener"}, {"package_name": "android.app", "class_name": "ActionBar.Tab", "full_name": "android.app.ActionBar.Tab"}, {"package_name": "android.app", "class_name": "ActionBar.TabListener", "full_name": "android.app.ActionBar.TabListener"}, {"package_name": "android.widget", "class_name": "ActionMenuView", "full_name": "android.widget.ActionMenuView"}, {"package_name": "android.widget", "class_name": "ActionMenuView.LayoutParams", "full_name": "android.widget.ActionMenuView.LayoutParams"}, {"package_name": "android.widget", "class_name": "ActionMenuView.OnMenuItemClickListener", "full_name": "android.widget.ActionMenuView.OnMenuItemClickListener"}, {"package_name": "android.view", "class_name": "ActionMode", "full_name": "android.view.ActionMode"}, {"package_name": "android.view", "class_name": "ActionMode.Callback", "full_name": "android.view.ActionMode.Callback"}, {"package_name": "android.view", "class_name": "ActionProvider", "full_name": "android.view.ActionProvider"}, {"package_name": "android.view", "class_name": "ActionProvider.VisibilityListener", "full_name": "android.view.ActionProvider.VisibilityListener"}, {"package_name": "android.app", "class_name": "Activity", "full_name": "android.app.Activity"}, {"package_name": "android.app", "class_name": "ActivityGroup", "full_name": "android.app.ActivityGroup"}, {"package_name": "android.content.pm", "class_name": "ActivityInfo", "full_name": "android.content.pm.ActivityInfo"}, {"package_name": "android.content.pm", "class_name": "ActivityInfo.WindowLayout", "full_name": "android.content.pm.ActivityInfo.WindowLayout"}, {"package_name": "android.app", "class_name": "ActivityManager", "full_name": "android.app.ActivityManager"}, {"package_name": "android.app", "class_name": "ActivityManager.AppTask", "full_name": "android.app.ActivityManager.AppTask"}, {"package_name": "android.app", "class_name": "ActivityManager.MemoryInfo", "full_name": "android.app.ActivityManager.MemoryInfo"}, {"package_name": "android.app", "class_name": "ActivityManager.ProcessErrorStateInfo", "full_name": "android.app.ActivityManager.ProcessErrorStateInfo"}, {"package_name": "android.app", "class_name": "ActivityManager.RecentTaskInfo", "full_name": "android.app.ActivityManager.RecentTaskInfo"}, {"package_name": "android.app", "class_name": "ActivityManager.RunningAppProcessInfo", "full_name": "android.app.ActivityManager.RunningAppProcessInfo"}, {"package_name": "android.app", "class_name": "ActivityManager.RunningServiceInfo", "full_name": "android.app.ActivityManager.RunningServiceInfo"}, {"package_name": "android.app", "class_name": "ActivityManager.RunningTaskInfo", "full_name": "android.app.ActivityManager.RunningTaskInfo"}, {"package_name": "android.app", "class_name": "ActivityManager.TaskDescription", "full_name": "android.app.ActivityManager.TaskDescription"}, {"package_name": "android.content", "class_name": "ActivityNotFoundException", "full_name": "android.content.ActivityNotFoundException"}, {"package_name": "android.app", "class_name": "ActivityOptions", "full_name": "android.app.ActivityOptions"}, {"package_name": "android.test", "class_name": "ActivityTestCase", "full_name": "android.test.ActivityTestCase"}, {"package_name": "android.widget", "class_name": "Adapter", "full_name": "android.widget.Adapter"}, {"package_name": "android.widget", "class_name": "AdapterView.AdapterContextMenuInfo", "full_name": "android.widget.AdapterView.AdapterContextMenuInfo"}, {"package_name": "android.widget", "class_name": "AdapterView.OnItemClickListener", "full_name": "android.widget.AdapterView.OnItemClickListener"}, {"package_name": "android.widget", "class_name": "AdapterView.OnItemLongClickListener", "full_name": "android.widget.AdapterView.OnItemLongClickListener"}, {"package_name": "android.widget", "class_name": "AdapterView.OnItemSelectedListener", "full_name": "android.widget.AdapterView.OnItemSelectedListener"}, {"package_name": "android.widget", "class_name": "AdapterViewAnimator", "full_name": "android.widget.AdapterViewAnimator"}, {"package_name": "android.widget", "class_name": "AdapterViewFlipper", "full_name": "android.widget.AdapterViewFlipper"}, {"package_name": "android.graphics.drawable", "class_name": "AdaptiveIconDrawable", "full_name": "android.graphics.drawable.AdaptiveIconDrawable"}, {"package_name": "android.location", "class_name": "Address", "full_name": "android.location.Address"}, {"package_name": "android.widget", "class_name": "Advanceable", "full_name": "android.widget.Advanceable"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertiseCallback", "full_name": "android.bluetooth.le.AdvertiseCallback"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertiseData", "full_name": "android.bluetooth.le.AdvertiseData"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertiseData.Builder", "full_name": "android.bluetooth.le.AdvertiseData.Builder"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertiseSettings", "full_name": "android.bluetooth.le.AdvertiseSettings"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertiseSettings.Builder", "full_name": "android.bluetooth.le.AdvertiseSettings.Builder"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertisingSet", "full_name": "android.bluetooth.le.AdvertisingSet"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertisingSetCallback", "full_name": "android.bluetooth.le.AdvertisingSetCallback"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertisingSetParameters", "full_name": "android.bluetooth.le.AdvertisingSetParameters"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertisingSetParameters.Builder", "full_name": "android.bluetooth.le.AdvertisingSetParameters.Builder"}, {"package_name": "javax.crypto", "class_name": "AEADBadTagException", "full_name": "javax.crypto.AEADBadTagException"}, {"package_name": "android.provider", "class_name": "AlarmClock", "full_name": "android.provider.AlarmClock"}, {"package_name": "android.app", "class_name": "AlarmManager", "full_name": "android.app.AlarmManager"}, {"package_name": "android.app", "class_name": "AlarmManager.AlarmClockInfo", "full_name": "android.app.AlarmManager.AlarmClockInfo"}, {"package_name": "android.app", "class_name": "AlarmManager.OnAlarmListener", "full_name": "android.app.AlarmManager.OnAlarmListener"}, {"package_name": "android.app", "class_name": "AlertDialog", "full_name": "android.app.AlertDialog"}, {"package_name": "android.app", "class_name": "AlertDialog.Builder", "full_name": "android.app.AlertDialog.Builder"}, {"package_name": "java.security", "class_name": "AlgorithmConstraints", "full_name": "java.security.AlgorithmConstraints"}, {"package_name": "java.security", "class_name": "AlgorithmParameterGenerator", "full_name": "java.security.AlgorithmParameterGenerator"}, {"package_name": "java.security", "class_name": "AlgorithmParameterGeneratorSpi", "full_name": "java.security.AlgorithmParameterGeneratorSpi"}, {"package_name": "java.security", "class_name": "AlgorithmParameters", "full_name": "java.security.AlgorithmParameters"}, {"package_name": "java.security.spec", "class_name": "AlgorithmParameterSpec", "full_name": "java.security.spec.AlgorithmParameterSpec"}, {"package_name": "java.security", "class_name": "AlgorithmParametersSpi", "full_name": "java.security.AlgorithmParametersSpi"}, {"package_name": "android.app", "class_name": "AliasActivity", "full_name": "android.app.AliasActivity"}, {"package_name": "android.text.style", "class_name": "AlignmentSpan", "full_name": "android.text.style.AlignmentSpan"}, {"package_name": "android.text.style", "class_name": "AlignmentSpan.Standard", "full_name": "android.text.style.AlignmentSpan.Standard"}, {"package_name": "android.renderscript", "class_name": "Allocation", "full_name": "android.renderscript.Allocation"}, {"package_name": "android.renderscript", "class_name": "Allocation.MipmapControl", "full_name": "android.renderscript.Allocation.MipmapControl"}, {"package_name": "android.renderscript", "class_name": "Allocation.OnBufferAvailableListener", "full_name": "android.renderscript.Allocation.OnBufferAvailableListener"}, {"package_name": "android.renderscript", "class_name": "AllocationAdapter", "full_name": "android.renderscript.AllocationAdapter"}, {"package_name": "org.apache.http.conn.ssl", "class_name": "AllowAllHostnameVerifier", "full_name": "org.apache.http.conn.ssl.AllowAllHostnameVerifier"}, {"package_name": "java.security", "class_name": "AllPermission", "full_name": "java.security.AllPermission"}, {"package_name": "android.view.animation", "class_name": "AlphaAnimation", "full_name": "android.view.animation.AlphaAnimation"}, {"package_name": "android.icu.text", "class_name": "AlphabeticIndex.Bucket.LabelType", "full_name": "android.icu.text.AlphabeticIndex.Bucket.LabelType"}, {"package_name": "android.widget", "class_name": "AlphabetIndexer", "full_name": "android.widget.AlphabetIndexer"}, {"package_name": "java.nio.channels", "class_name": "AlreadyBoundException", "full_name": "java.nio.channels.AlreadyBoundException"}, {"package_name": "java.nio.channels", "class_name": "AlreadyConnectedException", "full_name": "java.nio.channels.AlreadyConnectedException"}, {"package_name": "android.text", "class_name": "AlteredCharSequence", "full_name": "android.text.AlteredCharSequence"}, {"package_name": "android.service.voice", "class_name": "AlwaysOnHotwordDetector", "full_name": "android.service.voice.AlwaysOnHotwordDetector"}, {"package_name": "android.service.voice", "class_name": "AlwaysOnHotwordDetector.Callback", "full_name": "android.service.voice.AlwaysOnHotwordDetector.Callback"}, {"package_name": "android.service.voice", "class_name": "AlwaysOnHotwordDetector.EventPayload", "full_name": "android.service.voice.AlwaysOnHotwordDetector.EventPayload"}, {"package_name": "android.widget", "class_name": "AnalogClock", "full_name": "android.widget.AnalogClock"}, {"package_name": "android.text", "class_name": "AndroidCharacter", "full_name": "android.text.AndroidCharacter"}, {"package_name": "android.util", "class_name": "AndroidException", "full_name": "android.util.AndroidException"}, {"package_name": "android.util", "class_name": "AndroidRuntimeException", "full_name": "android.util.AndroidRuntimeException"}, {"package_name": "android.test", "class_name": "AndroidTestCase", "full_name": "android.test.AndroidTestCase"}, {"package_name": "android.test", "class_name": "AndroidTestRunner", "full_name": "android.test.AndroidTestRunner"}, {"package_name": "android.graphics.drawable", "class_name": "Animatable", "full_name": "android.graphics.drawable.Animatable"}, {"package_name": "android.graphics.drawable", "class_name": "AnimatedImageDrawable", "full_name": "android.graphics.drawable.AnimatedImageDrawable"}, {"package_name": "android.graphics.drawable", "class_name": "AnimatedStateListDrawable", "full_name": "android.graphics.drawable.AnimatedStateListDrawable"}, {"package_name": "android.graphics.drawable", "class_name": "AnimatedVectorDrawable", "full_name": "android.graphics.drawable.AnimatedVectorDrawable"}, {"package_name": "android.view.animation", "class_name": "Animation", "full_name": "android.view.animation.Animation"}, {"package_name": "android.view.animation", "class_name": "Animation.AnimationListener", "full_name": "android.view.animation.Animation.AnimationListener"}, {"package_name": "android.view.animation", "class_name": "Animation.Description", "full_name": "android.view.animation.Animation.Description"}, {"package_name": "android.graphics.drawable", "class_name": "AnimationDrawable", "full_name": "android.graphics.drawable.AnimationDrawable"}, {"package_name": "android.view.animation", "class_name": "AnimationSet", "full_name": "android.view.animation.AnimationSet"}, {"package_name": "android.view.animation", "class_name": "AnimationUtils", "full_name": "android.view.animation.AnimationUtils"}, {"package_name": "android.animation", "class_name": "Animator", "full_name": "android.animation.Animator"}, {"package_name": "android.animation", "class_name": "Animator.AnimatorListener", "full_name": "android.animation.Animator.AnimatorListener"}, {"package_name": "android.animation", "class_name": "Animator.AnimatorPauseListener", "full_name": "android.animation.Animator.AnimatorPauseListener"}, {"package_name": "android.animation", "class_name": "AnimatorInflater", "full_name": "android.animation.AnimatorInflater"}, {"package_name": "android.animation", "class_name": "AnimatorListenerAdapter", "full_name": "android.animation.AnimatorListenerAdapter"}, {"package_name": "android.animation", "class_name": "AnimatorSet", "full_name": "android.animation.AnimatorSet"}, {"package_name": "android.animation", "class_name": "AnimatorSet.Builder", "full_name": "android.animation.AnimatorSet.Builder"}, {"package_name": "java.lang.reflect", "class_name": "AnnotatedElement", "full_name": "java.lang.reflect.AnnotatedElement"}, {"package_name": "android.text", "class_name": "Annotation", "full_name": "android.text.Annotation"}, {"package_name": "java.lang.annotation", "class_name": "Annotation", "full_name": "java.lang.annotation.Annotation"}, {"package_name": "java.text", "class_name": "Annotation", "full_name": "java.text.Annotation"}, {"package_name": "java.lang.annotation", "class_name": "AnnotationFormatError", "full_name": "java.lang.annotation.AnnotationFormatError"}, {"package_name": "java.lang.annotation", "class_name": "AnnotationTypeMismatchException", "full_name": "java.lang.annotation.AnnotationTypeMismatchException"}, {"package_name": "android.view.animation", "class_name": "AnticipateInterpolator", "full_name": "android.view.animation.AnticipateInterpolator"}, {"package_name": "android.view.animation", "class_name": "AnticipateOvershootInterpolator", "full_name": "android.view.animation.AnticipateOvershootInterpolator"}, {"package_name": "android.telephony.data", "class_name": "ApnSetting", "full_name": "android.telephony.data.ApnSetting"}, {"package_name": "android.telephony.data", "class_name": "ApnSetting.Builder", "full_name": "android.telephony.data.ApnSetting.Builder"}, {"package_name": "android.app", "class_name": "AppComponentFactory", "full_name": "android.app.AppComponentFactory"}, {"package_name": "java.lang", "class_name": "Appendable", "full_name": "java.lang.Appendable"}, {"package_name": "android.app", "class_name": "Application", "full_name": "android.app.Application"}, {"package_name": "android.app", "class_name": "Application.ActivityLifecycleCallbacks", "full_name": "android.app.Application.ActivityLifecycleCallbacks"}, {"package_name": "android.app", "class_name": "Application.OnProvideAssistDataListener", "full_name": "android.app.Application.OnProvideAssistDataListener"}, {"package_name": "android.app", "class_name": "ApplicationErrorReport", "full_name": "android.app.ApplicationErrorReport"}, {"package_name": "android.app", "class_name": "ApplicationErrorReport.AnrInfo", "full_name": "android.app.ApplicationErrorReport.AnrInfo"}, {"package_name": "android.app", "class_name": "ApplicationErrorReport.BatteryInfo", "full_name": "android.app.ApplicationErrorReport.BatteryInfo"}, {"package_name": "android.app", "class_name": "ApplicationErrorReport.CrashInfo", "full_name": "android.app.ApplicationErrorReport.CrashInfo"}, {"package_name": "android.app", "class_name": "ApplicationErrorReport.RunningServiceInfo", "full_name": "android.app.ApplicationErrorReport.RunningServiceInfo"}, {"package_name": "android.content.pm", "class_name": "ApplicationInfo", "full_name": "android.content.pm.ApplicationInfo"}, {"package_name": "android.content.pm", "class_name": "ApplicationInfo.DisplayNameComparator", "full_name": "android.content.pm.ApplicationInfo.DisplayNameComparator"}, {"package_name": "android.app", "class_name": "AppOpsManager", "full_name": "android.app.AppOpsManager"}, {"package_name": "android.app", "class_name": "AppOpsManager.OnOpChangedListener", "full_name": "android.app.AppOpsManager.OnOpChangedListener"}, {"package_name": "android.appwidget", "class_name": "AppWidgetHost", "full_name": "android.appwidget.AppWidgetHost"}, {"package_name": "android.appwidget", "class_name": "AppWidgetHostView", "full_name": "android.appwidget.AppWidgetHostView"}, {"package_name": "android.appwidget", "class_name": "AppWidgetManager", "full_name": "android.appwidget.AppWidgetManager"}, {"package_name": "android.appwidget", "class_name": "AppWidgetProvider", "full_name": "android.appwidget.AppWidgetProvider"}, {"package_name": "android.appwidget", "class_name": "AppWidgetProviderInfo", "full_name": "android.appwidget.AppWidgetProviderInfo"}, {"package_name": "android.transition", "class_name": "ArcMotion", "full_name": "android.transition.ArcMotion"}, {"package_name": "android.graphics.drawable.shapes", "class_name": "ArcShape", "full_name": "android.graphics.drawable.shapes.ArcShape"}, {"package_name": "android.animation", "class_name": "ArgbEvaluator", "full_name": "android.animation.ArgbEvaluator"}, {"package_name": "java.lang", "class_name": "ArithmeticException", "full_name": "java.lang.ArithmeticException"}, {"package_name": "java.lang.reflect", "class_name": "Array", "full_name": "java.lang.reflect.Array"}, {"package_name": "java.sql", "class_name": "Array", "full_name": "java.sql.Array"}, {"package_name": "java.lang", "class_name": "ArrayIndexOutOfBoundsException", "full_name": "java.lang.ArrayIndexOutOfBoundsException"}, {"package_name": "java.util", "class_name": "Arrays", "full_name": "java.util.Arrays"}, {"package_name": "java.lang", "class_name": "ArrayStoreException", "full_name": "java.lang.ArrayStoreException"}, {"package_name": "android.text.method", "class_name": "ArrowKeyMovementMethod", "full_name": "android.text.method.ArrowKeyMovementMethod"}, {"package_name": "junit.framework", "class_name": "Assert", "full_name": "junit.framework.Assert"}, {"package_name": "java.lang", "class_name": "AssertionError", "full_name": "java.lang.AssertionError"}, {"package_name": "android.test", "class_name": "AssertionFailedError", "full_name": "android.test.AssertionFailedError"}, {"package_name": "junit.framework", "class_name": "AssertionFailedError", "full_name": "junit.framework.AssertionFailedError"}, {"package_name": "android.content.res", "class_name": "AssetFileDescriptor", "full_name": "android.content.res.AssetFileDescriptor"}, {"package_name": "android.content.res", "class_name": "AssetFileDescriptor.AutoCloseInputStream", "full_name": "android.content.res.AssetFileDescriptor.AutoCloseInputStream"}, {"package_name": "android.content.res", "class_name": "AssetFileDescriptor.AutoCloseOutputStream", "full_name": "android.content.res.AssetFileDescriptor.AutoCloseOutputStream"}, {"package_name": "android.content.res", "class_name": "AssetManager", "full_name": "android.content.res.AssetManager"}, {"package_name": "android.content.res", "class_name": "AssetManager.AssetInputStream", "full_name": "android.content.res.AssetManager.AssetInputStream"}, {"package_name": "android.app.assist", "class_name": "AssistContent", "full_name": "android.app.assist.AssistContent"}, {"package_name": "android.app.assist", "class_name": "AssistStructure", "full_name": "android.app.assist.AssistStructure"}, {"package_name": "android.app.assist", "class_name": "AssistStructure.ViewNode", "full_name": "android.app.assist.AssistStructure.ViewNode"}, {"package_name": "android.app.assist", "class_name": "AssistStructure.WindowNode", "full_name": "android.app.assist.AssistStructure.WindowNode"}, {"package_name": "android.companion", "class_name": "AssociationRequest", "full_name": "android.companion.AssociationRequest"}, {"package_name": "android.companion", "class_name": "AssociationRequest.Builder", "full_name": "android.companion.AssociationRequest.Builder"}, {"package_name": "java.nio.channels", "class_name": "AsynchronousByteChannel", "full_name": "java.nio.channels.AsynchronousByteChannel"}, {"package_name": "java.nio.channels", "class_name": "AsynchronousChannel", "full_name": "java.nio.channels.AsynchronousChannel"}, {"package_name": "java.nio.channels", "class_name": "AsynchronousChannelGroup", "full_name": "java.nio.channels.AsynchronousChannelGroup"}, {"package_name": "java.nio.channels.spi", "class_name": "AsynchronousChannelProvider", "full_name": "java.nio.channels.spi.AsynchronousChannelProvider"}, {"package_name": "java.nio.channels", "class_name": "AsynchronousCloseException", "full_name": "java.nio.channels.AsynchronousCloseException"}, {"package_name": "java.nio.channels", "class_name": "AsynchronousFileChannel", "full_name": "java.nio.channels.AsynchronousFileChannel"}, {"package_name": "java.nio.channels", "class_name": "AsynchronousServerSocketChannel", "full_name": "java.nio.channels.AsynchronousServerSocketChannel"}, {"package_name": "java.nio.channels", "class_name": "AsynchronousSocketChannel", "full_name": "java.nio.channels.AsynchronousSocketChannel"}, {"package_name": "android.media", "class_name": "AsyncPlayer", "full_name": "android.media.AsyncPlayer"}, {"package_name": "android.content", "class_name": "AsyncQueryHandler", "full_name": "android.content.AsyncQueryHandler"}, {"package_name": "android.content", "class_name": "AsyncQueryHandler.WorkerArgs", "full_name": "android.content.AsyncQueryHandler.WorkerArgs"}, {"package_name": "android.content", "class_name": "AsyncQueryHandler.WorkerHandler", "full_name": "android.content.AsyncQueryHandler.WorkerHandler"}, {"package_name": "android.os", "class_name": "AsyncTask.Status", "full_name": "android.os.AsyncTask.Status"}, {"package_name": "java.util.concurrent.atomic", "class_name": "AtomicBoolean", "full_name": "java.util.concurrent.atomic.AtomicBoolean"}, {"package_name": "android.util", "class_name": "AtomicFile", "full_name": "android.util.AtomicFile"}, {"package_name": "java.util.concurrent.atomic", "class_name": "AtomicInteger", "full_name": "java.util.concurrent.atomic.AtomicInteger"}, {"package_name": "java.util.concurrent.atomic", "class_name": "AtomicIntegerArray", "full_name": "java.util.concurrent.atomic.AtomicIntegerArray"}, {"package_name": "java.util.concurrent.atomic", "class_name": "AtomicLong", "full_name": "java.util.concurrent.atomic.AtomicLong"}, {"package_name": "java.util.concurrent.atomic", "class_name": "AtomicLongArray", "full_name": "java.util.concurrent.atomic.AtomicLongArray"}, {"package_name": "java.nio.file", "class_name": "AtomicMoveNotSupportedException", "full_name": "java.nio.file.AtomicMoveNotSupportedException"}, {"package_name": "android.net.wifi.aware", "class_name": "AttachCallback", "full_name": "android.net.wifi.aware.AttachCallback"}, {"package_name": "android.security", "class_name": "AttestedKeyPair", "full_name": "android.security.AttestedKeyPair"}, {"package_name": "java.text", "class_name": "AttributedCharacterIterator", "full_name": "java.text.AttributedCharacterIterator"}, {"package_name": "java.text", "class_name": "AttributedCharacterIterator.Attribute", "full_name": "java.text.AttributedCharacterIterator.Attribute"}, {"package_name": "java.text", "class_name": "AttributedString", "full_name": "java.text.AttributedString"}, {"package_name": "org.xml.sax", "class_name": "AttributeList", "full_name": "org.xml.sax.AttributeList"}, {"package_name": "org.xml.sax.helpers", "class_name": "AttributeListImpl", "full_name": "org.xml.sax.helpers.AttributeListImpl"}, {"package_name": "java.util.jar", "class_name": "Attributes", "full_name": "java.util.jar.Attributes"}, {"package_name": "org.xml.sax", "class_name": "Attributes", "full_name": "org.xml.sax.Attributes"}, {"package_name": "java.util.jar", "class_name": "Attributes.Name", "full_name": "java.util.jar.Attributes.Name"}, {"package_name": "android.util", "class_name": "AttributeSet", "full_name": "android.util.AttributeSet"}, {"package_name": "org.xml.sax.helpers", "class_name": "AttributesImpl", "full_name": "org.xml.sax.helpers.AttributesImpl"}, {"package_name": "java.nio.file.attribute", "class_name": "AttributeView", "full_name": "java.nio.file.attribute.AttributeView"}, {"package_name": "android.media", "class_name": "AudioAttributes", "full_name": "android.media.AudioAttributes"}, {"package_name": "android.media", "class_name": "AudioAttributes.Builder", "full_name": "android.media.AudioAttributes.Builder"}, {"package_name": "android.net.rtp", "class_name": "AudioCodec", "full_name": "android.net.rtp.AudioCodec"}, {"package_name": "android.media", "class_name": "AudioDeviceCallback", "full_name": "android.media.AudioDeviceCallback"}, {"package_name": "android.media", "class_name": "AudioDeviceInfo", "full_name": "android.media.AudioDeviceInfo"}, {"package_name": "android.media.audiofx", "class_name": "AudioEffect", "full_name": "android.media.audiofx.AudioEffect"}, {"package_name": "android.media.audiofx", "class_name": "AudioEffect.Descriptor", "full_name": "android.media.audiofx.AudioEffect.Descriptor"}, {"package_name": "android.media.audiofx", "class_name": "AudioEffect.OnControlStatusChangeListener", "full_name": "android.media.audiofx.AudioEffect.OnControlStatusChangeListener"}, {"package_name": "android.media.audiofx", "class_name": "AudioEffect.OnEnableStatusChangeListener", "full_name": "android.media.audiofx.AudioEffect.OnEnableStatusChangeListener"}, {"package_name": "android.media", "class_name": "AudioFocusRequest", "full_name": "android.media.AudioFocusRequest"}, {"package_name": "android.media", "class_name": "AudioFocusRequest.Builder", "full_name": "android.media.AudioFocusRequest.Builder"}, {"package_name": "android.media", "class_name": "AudioFormat", "full_name": "android.media.AudioFormat"}, {"package_name": "android.media", "class_name": "AudioFormat.Builder", "full_name": "android.media.AudioFormat.Builder"}, {"package_name": "android.net.rtp", "class_name": "AudioGroup", "full_name": "android.net.rtp.AudioGroup"}, {"package_name": "android.media", "class_name": "AudioManager", "full_name": "android.media.AudioManager"}, {"package_name": "android.media", "class_name": "AudioManager.AudioPlaybackCallback", "full_name": "android.media.AudioManager.AudioPlaybackCallback"}, {"package_name": "android.media", "class_name": "AudioManager.AudioRecordingCallback", "full_name": "android.media.AudioManager.AudioRecordingCallback"}, {"package_name": "android.media", "class_name": "AudioManager.OnAudioFocusChangeListener", "full_name": "android.media.AudioManager.OnAudioFocusChangeListener"}, {"package_name": "android.media", "class_name": "AudioPlaybackConfiguration", "full_name": "android.media.AudioPlaybackConfiguration"}, {"package_name": "android.media", "class_name": "AudioPresentation", "full_name": "android.media.AudioPresentation"}, {"package_name": "android.media", "class_name": "AudioRecord", "full_name": "android.media.AudioRecord"}, {"package_name": "android.media", "class_name": "AudioRecord.Builder", "full_name": "android.media.AudioRecord.Builder"}, {"package_name": "android.media", "class_name": "AudioRecord.MetricsConstants", "full_name": "android.media.AudioRecord.MetricsConstants"}, {"package_name": "android.media", "class_name": "AudioRecord.OnRecordPositionUpdateListener", "full_name": "android.media.AudioRecord.OnRecordPositionUpdateListener"}, {"package_name": "android.media", "class_name": "AudioRecord.OnRoutingChangedListener", "full_name": "android.media.AudioRecord.OnRoutingChangedListener"}, {"package_name": "android.media", "class_name": "AudioRecordingConfiguration", "full_name": "android.media.AudioRecordingConfiguration"}, {"package_name": "android.media", "class_name": "AudioRouting", "full_name": "android.media.AudioRouting"}, {"package_name": "android.media", "class_name": "AudioRouting.OnRoutingChangedListener", "full_name": "android.media.AudioRouting.OnRoutingChangedListener"}, {"package_name": "android.net.rtp", "class_name": "AudioStream", "full_name": "android.net.rtp.AudioStream"}, {"package_name": "android.media", "class_name": "AudioTimestamp", "full_name": "android.media.AudioTimestamp"}, {"package_name": "android.media", "class_name": "AudioTrack", "full_name": "android.media.AudioTrack"}, {"package_name": "android.media", "class_name": "AudioTrack.Builder", "full_name": "android.media.AudioTrack.Builder"}, {"package_name": "android.media", "class_name": "AudioTrack.MetricsConstants", "full_name": "android.media.AudioTrack.MetricsConstants"}, {"package_name": "android.media", "class_name": "AudioTrack.OnPlaybackPositionUpdateListener", "full_name": "android.media.AudioTrack.OnPlaybackPositionUpdateListener"}, {"package_name": "android.media", "class_name": "AudioTrack.OnRoutingChangedListener", "full_name": "android.media.AudioTrack.OnRoutingChangedListener"}, {"package_name": "android.app", "class_name": "AuthenticationRequiredException", "full_name": "android.app.AuthenticationRequiredException"}, {"package_name": "java.net", "class_name": "Authenticator", "full_name": "java.net.Authenticator"}, {"package_name": "java.net", "class_name": "Authenticator.RequestorType", "full_name": "java.net.Authenticator.RequestorType"}, {"package_name": "android.accounts", "class_name": "AuthenticatorDescription", "full_name": "android.accounts.AuthenticatorDescription"}, {"package_name": "android.accounts", "class_name": "AuthenticatorException", "full_name": "android.accounts.AuthenticatorException"}, {"package_name": "javax.security.auth", "class_name": "AuthPermission", "full_name": "javax.security.auth.AuthPermission"}, {"package_name": "java.security", "class_name": "AuthProvider", "full_name": "java.security.AuthProvider"}, {"package_name": "java.lang", "class_name": "AutoCloseable", "full_name": "java.lang.AutoCloseable"}, {"package_name": "android.widget", "class_name": "AutoCompleteTextView", "full_name": "android.widget.AutoCompleteTextView"}, {"package_name": "android.widget", "class_name": "AutoCompleteTextView.OnDismissListener", "full_name": "android.widget.AutoCompleteTextView.OnDismissListener"}, {"package_name": "android.widget", "class_name": "AutoCompleteTextView.Validator", "full_name": "android.widget.AutoCompleteTextView.Validator"}, {"package_name": "android.view.autofill", "class_name": "AutofillId", "full_name": "android.view.autofill.AutofillId"}, {"package_name": "android.view.autofill", "class_name": "AutofillManager", "full_name": "android.view.autofill.AutofillManager"}, {"package_name": "android.view.autofill", "class_name": "AutofillManager.AutofillCallback", "full_name": "android.view.autofill.AutofillManager.AutofillCallback"}, {"package_name": "android.service.autofill", "class_name": "AutofillService", "full_name": "android.service.autofill.AutofillService"}, {"package_name": "android.view.autofill", "class_name": "AutofillValue", "full_name": "android.view.autofill.AutofillValue"}, {"package_name": "android.media.audiofx", "class_name": "AutomaticGainControl", "full_name": "android.media.audiofx.AutomaticGainControl"}, {"package_name": "android.app", "class_name": "AutomaticZenRule", "full_name": "android.app.AutomaticZenRule"}, {"package_name": "android.text", "class_name": "AutoText", "full_name": "android.text.AutoText"}, {"package_name": "android.transition", "class_name": "AutoTransition", "full_name": "android.transition.AutoTransition"}, {"package_name": "android.text.style", "class_name": "BackgroundColorSpan", "full_name": "android.text.style.BackgroundColorSpan"}, {"package_name": "java.util.prefs", "class_name": "BackingStoreException", "full_name": "java.util.prefs.BackingStoreException"}, {"package_name": "android.app.backup", "class_name": "BackupAgent", "full_name": "android.app.backup.BackupAgent"}, {"package_name": "android.app.backup", "class_name": "BackupAgentHelper", "full_name": "android.app.backup.BackupAgentHelper"}, {"package_name": "android.app.backup", "class_name": "BackupDataInput", "full_name": "android.app.backup.BackupDataInput"}, {"package_name": "android.app.backup", "class_name": "BackupDataInputStream", "full_name": "android.app.backup.BackupDataInputStream"}, {"package_name": "android.app.backup", "class_name": "BackupDataOutput", "full_name": "android.app.backup.BackupDataOutput"}, {"package_name": "android.app.backup", "class_name": "BackupHelper", "full_name": "android.app.backup.BackupHelper"}, {"package_name": "android.app.backup", "class_name": "BackupManager", "full_name": "android.app.backup.BackupManager"}, {"package_name": "javax.crypto", "class_name": "BadPaddingException", "full_name": "javax.crypto.BadPaddingException"}, {"package_name": "android.os", "class_name": "BadParcelableException", "full_name": "android.os.BadParcelableException"}, {"package_name": "android.widget", "class_name": "BaseAdapter", "full_name": "android.widget.BaseAdapter"}, {"package_name": "android.os", "class_name": "BaseBundle", "full_name": "android.os.BaseBundle"}, {"package_name": "android.provider", "class_name": "BaseColumns", "full_name": "android.provider.BaseColumns"}, {"package_name": "dalvik.system", "class_name": "BaseDexClassLoader", "full_name": "dalvik.system.BaseDexClassLoader"}, {"package_name": "android.widget", "class_name": "BaseExpandableListAdapter", "full_name": "android.widget.BaseExpandableListAdapter"}, {"package_name": "android.view.inputmethod", "class_name": "BaseInputConnection", "full_name": "android.view.inputmethod.BaseInputConnection"}, {"package_name": "android.view.animation", "class_name": "BaseInterpolator", "full_name": "android.view.animation.BaseInterpolator"}, {"package_name": "android.text.method", "class_name": "BaseKeyListener", "full_name": "android.text.method.BaseKeyListener"}, {"package_name": "android.text.method", "class_name": "BaseMovementMethod", "full_name": "android.text.method.BaseMovementMethod"}, {"package_name": "android.renderscript", "class_name": "BaseObj", "full_name": "android.renderscript.BaseObj"}, {"package_name": "junit.runner", "class_name": "BaseTestRunner", "full_name": "junit.runner.BaseTestRunner"}, {"package_name": "java.nio.file.attribute", "class_name": "BasicFileAttributes", "full_name": "java.nio.file.attribute.BasicFileAttributes"}, {"package_name": "java.nio.file.attribute", "class_name": "BasicFileAttributeView", "full_name": "java.nio.file.attribute.BasicFileAttributeView"}, {"package_name": "java.security", "class_name": "BasicPermission", "full_name": "java.security.BasicPermission"}, {"package_name": "android.media.audiofx", "class_name": "BassBoost", "full_name": "android.media.audiofx.BassBoost"}, {"package_name": "android.media.audiofx", "class_name": "BassBoost.OnParameterChangeListener", "full_name": "android.media.audiofx.BassBoost.OnParameterChangeListener"}, {"package_name": "android.media.audiofx", "class_name": "BassBoost.Settings", "full_name": "android.media.audiofx.BassBoost.Settings"}, {"package_name": "java.sql", "class_name": "BatchUpdateException", "full_name": "java.sql.BatchUpdateException"}, {"package_name": "android.service.autofill", "class_name": "BatchUpdates", "full_name": "android.service.autofill.BatchUpdates"}, {"package_name": "android.service.autofill", "class_name": "BatchUpdates.Builder", "full_name": "android.service.autofill.BatchUpdates.Builder"}, {"package_name": "android.os", "class_name": "BatteryManager", "full_name": "android.os.BatteryManager"}, {"package_name": "java.text", "class_name": "Bidi", "full_name": "java.text.Bidi"}, {"package_name": "android.text", "class_name": "BidiFormatter", "full_name": "android.text.BidiFormatter"}, {"package_name": "android.text", "class_name": "BidiFormatter.Builder", "full_name": "android.text.BidiFormatter.Builder"}, {"package_name": "android.icu.math", "class_name": "BigDecimal", "full_name": "android.icu.math.BigDecimal"}, {"package_name": "java.math", "class_name": "BigDecimal", "full_name": "java.math.BigDecimal"}, {"package_name": "java.math", "class_name": "BigInteger", "full_name": "java.math.BigInteger"}, {"package_name": "android.os", "class_name": "Binder", "full_name": "android.os.Binder"}, {"package_name": "java.net", "class_name": "BindException", "full_name": "java.net.BindException"}, {"package_name": "android.hardware.biometrics", "class_name": "BiometricPrompt", "full_name": "android.hardware.biometrics.BiometricPrompt"}, {"package_name": "android.hardware.biometrics", "class_name": "BiometricPrompt.AuthenticationCallback", "full_name": "android.hardware.biometrics.BiometricPrompt.AuthenticationCallback"}, {"package_name": "android.hardware.biometrics", "class_name": "BiometricPrompt.AuthenticationResult", "full_name": "android.hardware.biometrics.BiometricPrompt.AuthenticationResult"}, {"package_name": "android.hardware.biometrics", "class_name": "BiometricPrompt.Builder", "full_name": "android.hardware.biometrics.BiometricPrompt.Builder"}, {"package_name": "android.hardware.biometrics", "class_name": "BiometricPrompt.CryptoObject", "full_name": "android.hardware.biometrics.BiometricPrompt.CryptoObject"}, {"package_name": "android.graphics", "class_name": "Bitmap", "full_name": "android.graphics.Bitmap"}, {"package_name": "android.graphics", "class_name": "Bitmap.CompressFormat", "full_name": "android.graphics.Bitmap.CompressFormat"}, {"package_name": "android.graphics", "class_name": "Bitmap.Config", "full_name": "android.graphics.Bitmap.Config"}, {"package_name": "android.graphics.drawable", "class_name": "BitmapDrawable", "full_name": "android.graphics.drawable.BitmapDrawable"}, {"package_name": "android.graphics", "class_name": "BitmapFactory", "full_name": "android.graphics.BitmapFactory"}, {"package_name": "android.graphics", "class_name": "BitmapFactory.Options", "full_name": "android.graphics.BitmapFactory.Options"}, {"package_name": "android.graphics", "class_name": "BitmapRegionDecoder", "full_name": "android.graphics.BitmapRegionDecoder"}, {"package_name": "android.graphics", "class_name": "BitmapShader", "full_name": "android.graphics.BitmapShader"}, {"package_name": "java.util", "class_name": "BitSet", "full_name": "java.util.BitSet"}, {"package_name": "java.sql", "class_name": "Blob", "full_name": "java.sql.Blob"}, {"package_name": "android.provider", "class_name": "BlockedNumberContract", "full_name": "android.provider.BlockedNumberContract"}, {"package_name": "android.provider", "class_name": "BlockedNumberContract.BlockedNumbers", "full_name": "android.provider.BlockedNumberContract.BlockedNumbers"}, {"package_name": "android.bluetooth", "class_name": "BluetoothAdapter", "full_name": "android.bluetooth.BluetoothAdapter"}, {"package_name": "android.bluetooth", "class_name": "BluetoothAdapter.LeScanCallback", "full_name": "android.bluetooth.BluetoothAdapter.LeScanCallback"}, {"package_name": "android.bluetooth", "class_name": "BluetoothAssignedNumbers", "full_name": "android.bluetooth.BluetoothAssignedNumbers"}, {"package_name": "android.bluetooth", "class_name": "BluetoothClass", "full_name": "android.bluetooth.BluetoothClass"}, {"package_name": "android.bluetooth", "class_name": "BluetoothClass.Device", "full_name": "android.bluetooth.BluetoothClass.Device"}, {"package_name": "android.bluetooth", "class_name": "BluetoothClass.Device.Major", "full_name": "android.bluetooth.BluetoothClass.Device.Major"}, {"package_name": "android.bluetooth", "class_name": "BluetoothClass.Service", "full_name": "android.bluetooth.BluetoothClass.Service"}, {"package_name": "android.bluetooth", "class_name": "BluetoothDevice", "full_name": "android.bluetooth.BluetoothDevice"}, {"package_name": "android.companion", "class_name": "BluetoothDeviceFilter", "full_name": "android.companion.BluetoothDeviceFilter"}, {"package_name": "android.companion", "class_name": "BluetoothDeviceFilter.Builder", "full_name": "android.companion.BluetoothDeviceFilter.Builder"}, {"package_name": "android.bluetooth", "class_name": "BluetoothGatt", "full_name": "android.bluetooth.BluetoothGatt"}, {"package_name": "android.bluetooth", "class_name": "BluetoothGattCallback", "full_name": "android.bluetooth.BluetoothGattCallback"}, {"package_name": "android.bluetooth", "class_name": "BluetoothGattCharacteristic", "full_name": "android.bluetooth.BluetoothGattCharacteristic"}, {"package_name": "android.bluetooth", "class_name": "BluetoothGattDescriptor", "full_name": "android.bluetooth.BluetoothGattDescriptor"}, {"package_name": "android.bluetooth", "class_name": "BluetoothGattServer", "full_name": "android.bluetooth.BluetoothGattServer"}, {"package_name": "android.bluetooth", "class_name": "BluetoothGattServerCallback", "full_name": "android.bluetooth.BluetoothGattServerCallback"}, {"package_name": "android.bluetooth", "class_name": "BluetoothGattService", "full_name": "android.bluetooth.BluetoothGattService"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHeadset", "full_name": "android.bluetooth.BluetoothHeadset"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHealth", "full_name": "android.bluetooth.BluetoothHealth"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHealthAppConfiguration", "full_name": "android.bluetooth.BluetoothHealthAppConfiguration"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHealthCallback", "full_name": "android.bluetooth.BluetoothHealthCallback"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHidDevice", "full_name": "android.bluetooth.BluetoothHidDevice"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHidDevice.Callback", "full_name": "android.bluetooth.BluetoothHidDevice.Callback"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHidDeviceAppQosSettings", "full_name": "android.bluetooth.BluetoothHidDeviceAppQosSettings"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHidDeviceAppSdpSettings", "full_name": "android.bluetooth.BluetoothHidDeviceAppSdpSettings"}, {"package_name": "android.bluetooth.le", "class_name": "BluetoothLeAdvertiser", "full_name": "android.bluetooth.le.BluetoothLeAdvertiser"}, {"package_name": "android.companion", "class_name": "BluetoothLeDeviceFilter", "full_name": "android.companion.BluetoothLeDeviceFilter"}, {"package_name": "android.companion", "class_name": "BluetoothLeDeviceFilter.Builder", "full_name": "android.companion.BluetoothLeDeviceFilter.Builder"}, {"package_name": "android.bluetooth.le", "class_name": "BluetoothLeScanner", "full_name": "android.bluetooth.le.BluetoothLeScanner"}, {"package_name": "android.bluetooth", "class_name": "BluetoothManager", "full_name": "android.bluetooth.BluetoothManager"}, {"package_name": "android.bluetooth", "class_name": "BluetoothProfile", "full_name": "android.bluetooth.BluetoothProfile"}, {"package_name": "android.bluetooth", "class_name": "BluetoothProfile.ServiceListener", "full_name": "android.bluetooth.BluetoothProfile.ServiceListener"}, {"package_name": "android.bluetooth", "class_name": "BluetoothServerSocket", "full_name": "android.bluetooth.BluetoothServerSocket"}, {"package_name": "android.bluetooth", "class_name": "BluetoothSocket", "full_name": "android.bluetooth.BluetoothSocket"}, {"package_name": "android.graphics", "class_name": "BlurMaskFilter", "full_name": "android.graphics.BlurMaskFilter"}, {"package_name": "android.graphics", "class_name": "BlurMaskFilter.Blur", "full_name": "android.graphics.BlurMaskFilter.Blur"}, {"package_name": "java.lang", "class_name": "Boolean", "full_name": "java.lang.Boolean"}, {"package_name": "java.util.function", "class_name": "BooleanSupplier", "full_name": "java.util.function.BooleanSupplier"}, {"package_name": "java.lang", "class_name": "BootstrapMethodError", "full_name": "java.lang.BootstrapMethodError"}, {"package_name": "android.text", "class_name": "BoringLayout", "full_name": "android.text.BoringLayout"}, {"package_name": "android.text", "class_name": "BoringLayout.Metrics", "full_name": "android.text.BoringLayout.Metrics"}, {"package_name": "android.view.animation", "class_name": "BounceInterpolator", "full_name": "android.view.animation.BounceInterpolator"}, {"package_name": "android.icu.text", "class_name": "BreakIterator", "full_name": "android.icu.text.BreakIterator"}, {"package_name": "java.text", "class_name": "BreakIterator", "full_name": "java.text.BreakIterator"}, {"package_name": "android.content", "class_name": "BroadcastReceiver", "full_name": "android.content.BroadcastReceiver"}, {"package_name": "android.content", "class_name": "BroadcastReceiver.PendingResult", "full_name": "android.content.BroadcastReceiver.PendingResult"}, {"package_name": "java.util.concurrent", "class_name": "BrokenBarrierException", "full_name": "java.util.concurrent.BrokenBarrierException"}, {"package_name": "android.provider", "class_name": "Browser", "full_name": "android.provider.Browser"}, {"package_name": "org.apache.http.conn.ssl", "class_name": "BrowserCompatHostnameVerifier", "full_name": "org.apache.http.conn.ssl.BrowserCompatHostnameVerifier"}, {"package_name": "android.icu.util", "class_name": "BuddhistCalendar", "full_name": "android.icu.util.BuddhistCalendar"}, {"package_name": "java.nio", "class_name": "Buffer", "full_name": "java.nio.Buffer"}, {"package_name": "java.io", "class_name": "BufferedInputStream", "full_name": "java.io.BufferedInputStream"}, {"package_name": "java.io", "class_name": "BufferedOutputStream", "full_name": "java.io.BufferedOutputStream"}, {"package_name": "java.io", "class_name": "BufferedReader", "full_name": "java.io.BufferedReader"}, {"package_name": "java.io", "class_name": "BufferedWriter", "full_name": "java.io.BufferedWriter"}, {"package_name": "java.nio", "class_name": "BufferOverflowException", "full_name": "java.nio.BufferOverflowException"}, {"package_name": "java.nio", "class_name": "BufferUnderflowException", "full_name": "java.nio.BufferUnderflowException"}, {"package_name": "android.os", "class_name": "Build", "full_name": "android.os.Build"}, {"package_name": "android.os", "class_name": "Build.VERSION", "full_name": "android.os.Build.VERSION"}, {"package_name": "android.os", "class_name": "Build.VERSION_CODES", "full_name": "android.os.Build.VERSION_CODES"}, {"package_name": "android.text.style", "class_name": "BulletSpan", "full_name": "android.text.style.BulletSpan"}, {"package_name": "android.os", "class_name": "Bundle", "full_name": "android.os.Bundle"}, {"package_name": "android.widget", "class_name": "Button", "full_name": "android.widget.Button"}, {"package_name": "java.lang", "class_name": "Byte", "full_name": "java.lang.Byte"}, {"package_name": "java.io", "class_name": "ByteArrayInputStream", "full_name": "java.io.ByteArrayInputStream"}, {"package_name": "java.io", "class_name": "ByteArrayOutputStream", "full_name": "java.io.ByteArrayOutputStream"}, {"package_name": "java.nio", "class_name": "ByteBuffer", "full_name": "java.nio.ByteBuffer"}, {"package_name": "java.nio.channels", "class_name": "ByteChannel", "full_name": "java.nio.channels.ByteChannel"}, {"package_name": "java.nio", "class_name": "ByteOrder", "full_name": "java.nio.ByteOrder"}, {"package_name": "java.net", "class_name": "CacheRequest", "full_name": "java.net.CacheRequest"}, {"package_name": "java.net", "class_name": "CacheResponse", "full_name": "java.net.CacheResponse"}, {"package_name": "android.icu.util", "class_name": "Calendar", "full_name": "android.icu.util.Calendar"}, {"package_name": "java.util", "class_name": "Calendar", "full_name": "java.util.Calendar"}, {"package_name": "java.util", "class_name": "Calendar.Builder", "full_name": "java.util.Calendar.Builder"}, {"package_name": "android.icu.util", "class_name": "Calendar.WeekData", "full_name": "android.icu.util.Calendar.WeekData"}, {"package_name": "android.provider", "class_name": "CalendarContract", "full_name": "android.provider.CalendarContract"}, {"package_name": "android.provider", "class_name": "CalendarContract.Attendees", "full_name": "android.provider.CalendarContract.Attendees"}, {"package_name": "android.provider", "class_name": "CalendarContract.AttendeesColumns", "full_name": "android.provider.CalendarContract.AttendeesColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.CalendarAlerts", "full_name": "android.provider.CalendarContract.CalendarAlerts"}, {"package_name": "android.provider", "class_name": "CalendarContract.CalendarAlertsColumns", "full_name": "android.provider.CalendarContract.CalendarAlertsColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.CalendarCache", "full_name": "android.provider.CalendarContract.CalendarCache"}, {"package_name": "android.provider", "class_name": "CalendarContract.CalendarCacheColumns", "full_name": "android.provider.CalendarContract.CalendarCacheColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.CalendarColumns", "full_name": "android.provider.CalendarContract.CalendarColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.CalendarEntity", "full_name": "android.provider.CalendarContract.CalendarEntity"}, {"package_name": "android.provider", "class_name": "CalendarContract.Calendars", "full_name": "android.provider.CalendarContract.Calendars"}, {"package_name": "android.provider", "class_name": "CalendarContract.CalendarSyncColumns", "full_name": "android.provider.CalendarContract.CalendarSyncColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.Colors", "full_name": "android.provider.CalendarContract.Colors"}, {"package_name": "android.provider", "class_name": "CalendarContract.ColorsColumns", "full_name": "android.provider.CalendarContract.ColorsColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.EventDays", "full_name": "android.provider.CalendarContract.EventDays"}, {"package_name": "android.provider", "class_name": "CalendarContract.EventDaysColumns", "full_name": "android.provider.CalendarContract.EventDaysColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.Events", "full_name": "android.provider.CalendarContract.Events"}, {"package_name": "android.provider", "class_name": "CalendarContract.EventsColumns", "full_name": "android.provider.CalendarContract.EventsColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.EventsEntity", "full_name": "android.provider.CalendarContract.EventsEntity"}, {"package_name": "android.provider", "class_name": "CalendarContract.ExtendedProperties", "full_name": "android.provider.CalendarContract.ExtendedProperties"}, {"package_name": "android.provider", "class_name": "CalendarContract.ExtendedPropertiesColumns", "full_name": "android.provider.CalendarContract.ExtendedPropertiesColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.Instances", "full_name": "android.provider.CalendarContract.Instances"}, {"package_name": "android.provider", "class_name": "CalendarContract.Reminders", "full_name": "android.provider.CalendarContract.Reminders"}, {"package_name": "android.provider", "class_name": "CalendarContract.RemindersColumns", "full_name": "android.provider.CalendarContract.RemindersColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.SyncColumns", "full_name": "android.provider.CalendarContract.SyncColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.SyncState", "full_name": "android.provider.CalendarContract.SyncState"}, {"package_name": "android.widget", "class_name": "CalendarView", "full_name": "android.widget.CalendarView"}, {"package_name": "android.widget", "class_name": "CalendarView.OnDateChangeListener", "full_name": "android.widget.CalendarView.OnDateChangeListener"}, {"package_name": "android.telecom", "class_name": "Call", "full_name": "android.telecom.Call"}, {"package_name": "android.telecom", "class_name": "Call.Callback", "full_name": "android.telecom.Call.Callback"}, {"package_name": "android.telecom", "class_name": "Call.Details", "full_name": "android.telecom.Call.Details"}, {"package_name": "android.telecom", "class_name": "Call.RttCall", "full_name": "android.telecom.Call.RttCall"}, {"package_name": "java.sql", "class_name": "CallableStatement", "full_name": "java.sql.CallableStatement"}, {"package_name": "android.telecom", "class_name": "CallAudioState", "full_name": "android.telecom.CallAudioState"}, {"package_name": "javax.security.auth.callback", "class_name": "Callback", "full_name": "javax.security.auth.callback.Callback"}, {"package_name": "javax.security.auth.callback", "class_name": "CallbackHandler", "full_name": "javax.security.auth.callback.CallbackHandler"}, {"package_name": "android.provider", "class_name": "CallLog", "full_name": "android.provider.CallLog"}, {"package_name": "android.provider", "class_name": "CallLog.Calls", "full_name": "android.provider.CallLog.Calls"}, {"package_name": "android.telecom", "class_name": "CallScreeningService", "full_name": "android.telecom.CallScreeningService"}, {"package_name": "android.telecom", "class_name": "CallScreeningService.CallResponse", "full_name": "android.telecom.CallScreeningService.CallResponse"}, {"package_name": "android.telecom", "class_name": "CallScreeningService.CallResponse.Builder", "full_name": "android.telecom.CallScreeningService.CallResponse.Builder"}, {"package_name": "java.lang.invoke", "class_name": "CallSite", "full_name": "java.lang.invoke.CallSite"}, {"package_name": "android.media", "class_name": "CamcorderProfile", "full_name": "android.media.CamcorderProfile"}, {"package_name": "android.graphics", "class_name": "Camera", "full_name": "android.graphics.Camera"}, {"package_name": "android.hardware", "class_name": "Camera", "full_name": "android.hardware.Camera"}, {"package_name": "android.hardware", "class_name": "Camera.Area", "full_name": "android.hardware.Camera.Area"}, {"package_name": "android.hardware", "class_name": "Camera.AutoFocusCallback", "full_name": "android.hardware.Camera.AutoFocusCallback"}, {"package_name": "android.hardware", "class_name": "Camera.AutoFocusMoveCallback", "full_name": "android.hardware.Camera.AutoFocusMoveCallback"}, {"package_name": "android.hardware", "class_name": "Camera.CameraInfo", "full_name": "android.hardware.Camera.CameraInfo"}, {"package_name": "android.hardware", "class_name": "Camera.ErrorCallback", "full_name": "android.hardware.Camera.ErrorCallback"}, {"package_name": "android.hardware", "class_name": "Camera.Face", "full_name": "android.hardware.Camera.Face"}, {"package_name": "android.hardware", "class_name": "Camera.FaceDetectionListener", "full_name": "android.hardware.Camera.FaceDetectionListener"}, {"package_name": "android.hardware", "class_name": "Camera.OnZoomChangeListener", "full_name": "android.hardware.Camera.OnZoomChangeListener"}, {"package_name": "android.hardware", "class_name": "Camera.Parameters", "full_name": "android.hardware.Camera.Parameters"}, {"package_name": "android.hardware", "class_name": "Camera.PictureCallback", "full_name": "android.hardware.Camera.PictureCallback"}, {"package_name": "android.hardware", "class_name": "Camera.PreviewCallback", "full_name": "android.hardware.Camera.PreviewCallback"}, {"package_name": "android.hardware", "class_name": "Camera.ShutterCallback", "full_name": "android.hardware.Camera.ShutterCallback"}, {"package_name": "android.hardware", "class_name": "Camera.Size", "full_name": "android.hardware.Camera.Size"}, {"package_name": "android.service.media", "class_name": "CameraPrewarmService", "full_name": "android.service.media.CameraPrewarmService"}, {"package_name": "android.media", "class_name": "CameraProfile", "full_name": "android.media.CameraProfile"}, {"package_name": "java.util.concurrent", "class_name": "CancellationException", "full_name": "java.util.concurrent.CancellationException"}, {"package_name": "android.os", "class_name": "CancellationSignal", "full_name": "android.os.CancellationSignal"}, {"package_name": "android.os", "class_name": "CancellationSignal.OnCancelListener", "full_name": "android.os.CancellationSignal.OnCancelListener"}, {"package_name": "java.nio.channels", "class_name": "CancelledKeyException", "full_name": "java.nio.channels.CancelledKeyException"}, {"package_name": "android.graphics", "class_name": "Canvas", "full_name": "android.graphics.Canvas"}, {"package_name": "android.graphics", "class_name": "Canvas.EdgeType", "full_name": "android.graphics.Canvas.EdgeType"}, {"package_name": "android.graphics", "class_name": "Canvas.VertexMode", "full_name": "android.graphics.Canvas.VertexMode"}, {"package_name": "android.view.accessibility", "class_name": "CaptioningManager", "full_name": "android.view.accessibility.CaptioningManager"}, {"package_name": "android.view.accessibility", "class_name": "CaptioningManager.CaptioningChangeListener", "full_name": "android.view.accessibility.CaptioningManager.CaptioningChangeListener"}, {"package_name": "android.view.accessibility", "class_name": "CaptioningManager.CaptionStyle", "full_name": "android.view.accessibility.CaptioningManager.CaptionStyle"}, {"package_name": "android.net", "class_name": "CaptivePortal", "full_name": "android.net.CaptivePortal"}, {"package_name": "android.nfc.cardemulation", "class_name": "CardEmulation", "full_name": "android.nfc.cardemulation.CardEmulation"}, {"package_name": "android.telephony", "class_name": "CarrierConfigManager", "full_name": "android.telephony.CarrierConfigManager"}, {"package_name": "android.service.carrier", "class_name": "CarrierIdentifier", "full_name": "android.service.carrier.CarrierIdentifier"}, {"package_name": "android.service.carrier", "class_name": "CarrierMessagingService", "full_name": "android.service.carrier.CarrierMessagingService"}, {"package_name": "android.service.carrier", "class_name": "CarrierMessagingService.SendMmsResult", "full_name": "android.service.carrier.CarrierMessagingService.SendMmsResult"}, {"package_name": "android.service.carrier", "class_name": "CarrierMessagingService.SendMultipartSmsResult", "full_name": "android.service.carrier.CarrierMessagingService.SendMultipartSmsResult"}, {"package_name": "android.service.carrier", "class_name": "CarrierMessagingService.SendSmsResult", "full_name": "android.service.carrier.CarrierMessagingService.SendSmsResult"}, {"package_name": "android.service.carrier", "class_name": "CarrierService", "full_name": "android.service.carrier.CarrierService"}, {"package_name": "android.telephony.cdma", "class_name": "CdmaCellLocation", "full_name": "android.telephony.cdma.CdmaCellLocation"}, {"package_name": "android.telephony", "class_name": "CellIdentity", "full_name": "android.telephony.CellIdentity"}, {"package_name": "android.telephony", "class_name": "CellIdentityCdma", "full_name": "android.telephony.CellIdentityCdma"}, {"package_name": "android.telephony", "class_name": "CellIdentityGsm", "full_name": "android.telephony.CellIdentityGsm"}, {"package_name": "android.telephony", "class_name": "CellIdentityLte", "full_name": "android.telephony.CellIdentityLte"}, {"package_name": "android.telephony", "class_name": "CellIdentityTdscdma", "full_name": "android.telephony.CellIdentityTdscdma"}, {"package_name": "android.telephony", "class_name": "CellIdentityWcdma", "full_name": "android.telephony.CellIdentityWcdma"}, {"package_name": "android.telephony", "class_name": "CellInfo", "full_name": "android.telephony.CellInfo"}, {"package_name": "android.telephony", "class_name": "CellInfoCdma", "full_name": "android.telephony.CellInfoCdma"}, {"package_name": "android.telephony", "class_name": "CellInfoGsm", "full_name": "android.telephony.CellInfoGsm"}, {"package_name": "android.telephony", "class_name": "CellInfoLte", "full_name": "android.telephony.CellInfoLte"}, {"package_name": "android.telephony", "class_name": "CellInfoWcdma", "full_name": "android.telephony.CellInfoWcdma"}, {"package_name": "android.telephony", "class_name": "CellLocation", "full_name": "android.telephony.CellLocation"}, {"package_name": "android.telephony", "class_name": "CellSignalStrength", "full_name": "android.telephony.CellSignalStrength"}, {"package_name": "android.telephony", "class_name": "CellSignalStrengthCdma", "full_name": "android.telephony.CellSignalStrengthCdma"}, {"package_name": "android.telephony", "class_name": "CellSignalStrengthGsm", "full_name": "android.telephony.CellSignalStrengthGsm"}, {"package_name": "android.telephony", "class_name": "CellSignalStrengthLte", "full_name": "android.telephony.CellSignalStrengthLte"}, {"package_name": "android.telephony", "class_name": "CellSignalStrengthWcdma", "full_name": "android.telephony.CellSignalStrengthWcdma"}, {"package_name": "java.security", "class_name": "Certificate", "full_name": "java.security.Certificate"}, {"package_name": "java.security.cert", "class_name": "Certificate", "full_name": "java.security.cert.Certificate"}, {"package_name": "javax.security.cert", "class_name": "Certificate", "full_name": "javax.security.cert.Certificate"}, {"package_name": "java.security.cert", "class_name": "Certificate.CertificateRep", "full_name": "java.security.cert.Certificate.CertificateRep"}, {"package_name": "java.security.cert", "class_name": "CertificateEncodingException", "full_name": "java.security.cert.CertificateEncodingException"}, {"package_name": "javax.security.cert", "class_name": "CertificateEncodingException", "full_name": "javax.security.cert.CertificateEncodingException"}, {"package_name": "java.security.cert", "class_name": "CertificateException", "full_name": "java.security.cert.CertificateException"}, {"package_name": "javax.security.cert", "class_name": "CertificateException", "full_name": "javax.security.cert.CertificateException"}, {"package_name": "java.security.cert", "class_name": "CertificateExpiredException", "full_name": "java.security.cert.CertificateExpiredException"}, {"package_name": "javax.security.cert", "class_name": "CertificateExpiredException", "full_name": "javax.security.cert.CertificateExpiredException"}, {"package_name": "java.security.cert", "class_name": "CertificateFactory", "full_name": "java.security.cert.CertificateFactory"}, {"package_name": "java.security.cert", "class_name": "CertificateFactorySpi", "full_name": "java.security.cert.CertificateFactorySpi"}, {"package_name": "java.security.cert", "class_name": "CertificateNotYetValidException", "full_name": "java.security.cert.CertificateNotYetValidException"}, {"package_name": "javax.security.cert", "class_name": "CertificateNotYetValidException", "full_name": "javax.security.cert.CertificateNotYetValidException"}, {"package_name": "java.security.cert", "class_name": "CertificateParsingException", "full_name": "java.security.cert.CertificateParsingException"}, {"package_name": "javax.security.cert", "class_name": "CertificateParsingException", "full_name": "javax.security.cert.CertificateParsingException"}, {"package_name": "java.security.cert", "class_name": "CertificateRevokedException", "full_name": "java.security.cert.CertificateRevokedException"}, {"package_name": "java.security.cert", "class_name": "CertPath", "full_name": "java.security.cert.CertPath"}, {"package_name": "java.security.cert", "class_name": "CertPath.CertPathRep", "full_name": "java.security.cert.CertPath.CertPathRep"}, {"package_name": "java.security.cert", "class_name": "CertPathBuilder", "full_name": "java.security.cert.CertPathBuilder"}, {"package_name": "java.security.cert", "class_name": "CertPathBuilderException", "full_name": "java.security.cert.CertPathBuilderException"}, {"package_name": "java.security.cert", "class_name": "CertPathBuilderResult", "full_name": "java.security.cert.CertPathBuilderResult"}, {"package_name": "java.security.cert", "class_name": "CertPathBuilderSpi", "full_name": "java.security.cert.CertPathBuilderSpi"}, {"package_name": "java.security.cert", "class_name": "CertPathChecker", "full_name": "java.security.cert.CertPathChecker"}, {"package_name": "java.security.cert", "class_name": "CertPathParameters", "full_name": "java.security.cert.CertPathParameters"}, {"package_name": "javax.net.ssl", "class_name": "CertPathTrustManagerParameters", "full_name": "javax.net.ssl.CertPathTrustManagerParameters"}, {"package_name": "java.security.cert", "class_name": "CertPathValidator", "full_name": "java.security.cert.CertPathValidator"}, {"package_name": "java.security.cert", "class_name": "CertPathValidatorException", "full_name": "java.security.cert.CertPathValidatorException"}, {"package_name": "java.security.cert", "class_name": "CertPathValidatorException.BasicReason", "full_name": "java.security.cert.CertPathValidatorException.BasicReason"}, {"package_name": "java.security.cert", "class_name": "CertPathValidatorException.Reason", "full_name": "java.security.cert.CertPathValidatorException.Reason"}, {"package_name": "java.security.cert", "class_name": "CertPathValidatorResult", "full_name": "java.security.cert.CertPathValidatorResult"}, {"package_name": "java.security.cert", "class_name": "CertPathValidatorSpi", "full_name": "java.security.cert.CertPathValidatorSpi"}, {"package_name": "java.security.cert", "class_name": "CertSelector", "full_name": "java.security.cert.CertSelector"}, {"package_name": "java.security.cert", "class_name": "CertStore", "full_name": "java.security.cert.CertStore"}, {"package_name": "java.security.cert", "class_name": "CertStoreException", "full_name": "java.security.cert.CertStoreException"}, {"package_name": "java.security.cert", "class_name": "CertStoreParameters", "full_name": "java.security.cert.CertStoreParameters"}, {"package_name": "java.security.cert", "class_name": "CertStoreSpi", "full_name": "java.security.cert.CertStoreSpi"}, {"package_name": "android.transition", "class_name": "ChangeBounds", "full_name": "android.transition.ChangeBounds"}, {"package_name": "android.transition", "class_name": "ChangeClipBounds", "full_name": "android.transition.ChangeClipBounds"}, {"package_name": "android.content.pm", "class_name": "ChangedPackages", "full_name": "android.content.pm.ChangedPackages"}, {"package_name": "android.transition", "class_name": "ChangeImageTransform", "full_name": "android.transition.ChangeImageTransform"}, {"package_name": "android.transition", "class_name": "ChangeScroll", "full_name": "android.transition.ChangeScroll"}, {"package_name": "android.transition", "class_name": "ChangeTransform", "full_name": "android.transition.ChangeTransform"}, {"package_name": "android.se.omapi", "class_name": "Channel", "full_name": "android.se.omapi.Channel"}, {"package_name": "java.nio.channels", "class_name": "Channel", "full_name": "java.nio.channels.Channel"}, {"package_name": "java.nio.channels", "class_name": "Channels", "full_name": "java.nio.channels.Channels"}, {"package_name": "java.lang", "class_name": "Character", "full_name": "java.lang.Character"}, {"package_name": "java.lang", "class_name": "Character.Subset", "full_name": "java.lang.Character.Subset"}, {"package_name": "java.lang", "class_name": "Character.UnicodeBlock", "full_name": "java.lang.Character.UnicodeBlock"}, {"package_name": "java.lang", "class_name": "Character.UnicodeScript", "full_name": "java.lang.Character.UnicodeScript"}, {"package_name": "java.nio.charset", "class_name": "CharacterCodingException", "full_name": "java.nio.charset.CharacterCodingException"}, {"package_name": "android.net.wifi.aware", "class_name": "Characteristics", "full_name": "android.net.wifi.aware.Characteristics"}, {"package_name": "java.text", "class_name": "CharacterIterator", "full_name": "java.text.CharacterIterator"}, {"package_name": "android.text.method", "class_name": "CharacterPickerDialog", "full_name": "android.text.method.CharacterPickerDialog"}, {"package_name": "android.text.style", "class_name": "CharacterStyle", "full_name": "android.text.style.CharacterStyle"}, {"package_name": "android.database", "class_name": "CharArrayBuffer", "full_name": "android.database.CharArrayBuffer"}, {"package_name": "java.io", "class_name": "CharArrayReader", "full_name": "java.io.CharArrayReader"}, {"package_name": "java.io", "class_name": "CharArrayWriter", "full_name": "java.io.CharArrayWriter"}, {"package_name": "java.nio", "class_name": "CharBuffer", "full_name": "java.nio.CharBuffer"}, {"package_name": "java.io", "class_name": "CharConversionException", "full_name": "java.io.CharConversionException"}, {"package_name": "java.lang", "class_name": "CharSequence", "full_name": "java.lang.CharSequence"}, {"package_name": "android.service.autofill", "class_name": "CharSequenceTransformation", "full_name": "android.service.autofill.CharSequenceTransformation"}, {"package_name": "android.service.autofill", "class_name": "CharSequenceTransformation.Builder", "full_name": "android.service.autofill.CharSequenceTransformation.Builder"}, {"package_name": "java.nio.charset", "class_name": "Charset", "full_name": "java.nio.charset.Charset"}, {"package_name": "java.nio.charset", "class_name": "CharsetDecoder", "full_name": "java.nio.charset.CharsetDecoder"}, {"package_name": "java.nio.charset", "class_name": "CharsetEncoder", "full_name": "java.nio.charset.CharsetEncoder"}, {"package_name": "java.nio.charset.spi", "class_name": "CharsetProvider", "full_name": "java.nio.charset.spi.CharsetProvider"}, {"package_name": "android.widget", "class_name": "Checkable", "full_name": "android.widget.Checkable"}, {"package_name": "android.widget", "class_name": "CheckBox", "full_name": "android.widget.CheckBox"}, {"package_name": "android.preference", "class_name": "CheckBoxPreference", "full_name": "android.preference.CheckBoxPreference"}, {"package_name": "java.util.zip", "class_name": "CheckedInputStream", "full_name": "java.util.zip.CheckedInputStream"}, {"package_name": "java.util.zip", "class_name": "CheckedOutputStream", "full_name": "java.util.zip.CheckedOutputStream"}, {"package_name": "android.widget", "class_name": "CheckedTextView", "full_name": "android.widget.CheckedTextView"}, {"package_name": "java.util.zip", "class_name": "Checksum", "full_name": "java.util.zip.Checksum"}, {"package_name": "android.icu.util", "class_name": "ChineseCalendar", "full_name": "android.icu.util.ChineseCalendar"}, {"package_name": "java.text", "class_name": "ChoiceFormat", "full_name": "java.text.ChoiceFormat"}, {"package_name": "android.service.chooser", "class_name": "ChooserTarget", "full_name": "android.service.chooser.ChooserTarget"}, {"package_name": "android.service.chooser", "class_name": "ChooserTargetService", "full_name": "android.service.chooser.ChooserTargetService"}, {"package_name": "android.view", "class_name": "Choreographer", "full_name": "android.view.Choreographer"}, {"package_name": "android.view", "class_name": "Choreographer.FrameCallback", "full_name": "android.view.Choreographer.FrameCallback"}, {"package_name": "java.time.temporal", "class_name": "ChronoField", "full_name": "java.time.temporal.ChronoField"}, {"package_name": "java.time.chrono", "class_name": "ChronoLocalDate", "full_name": "java.time.chrono.ChronoLocalDate"}, {"package_name": "java.time.chrono", "class_name": "Chronology", "full_name": "java.time.chrono.Chronology"}, {"package_name": "android.widget", "class_name": "Chronometer", "full_name": "android.widget.Chronometer"}, {"package_name": "android.widget", "class_name": "Chronometer.OnChronometerTickListener", "full_name": "android.widget.Chronometer.OnChronometerTickListener"}, {"package_name": "java.time.chrono", "class_name": "ChronoPeriod", "full_name": "java.time.chrono.ChronoPeriod"}, {"package_name": "java.time.temporal", "class_name": "ChronoUnit", "full_name": "java.time.temporal.ChronoUnit"}, {"package_name": "javax.crypto", "class_name": "Cipher", "full_name": "javax.crypto.Cipher"}, {"package_name": "javax.crypto", "class_name": "CipherInputStream", "full_name": "javax.crypto.CipherInputStream"}, {"package_name": "javax.crypto", "class_name": "CipherOutputStream", "full_name": "javax.crypto.CipherOutputStream"}, {"package_name": "javax.crypto", "class_name": "CipherSpi", "full_name": "javax.crypto.CipherSpi"}, {"package_name": "android.transition", "class_name": "CircularPropagation", "full_name": "android.transition.CircularPropagation"}, {"package_name": "java.lang", "class_name": "ClassCastException", "full_name": "java.lang.ClassCastException"}, {"package_name": "java.lang", "class_name": "ClassCircularityError", "full_name": "java.lang.ClassCircularityError"}, {"package_name": "java.lang", "class_name": "ClassFormatError", "full_name": "java.lang.ClassFormatError"}, {"package_name": "java.lang", "class_name": "ClassLoader", "full_name": "java.lang.ClassLoader"}, {"package_name": "java.lang", "class_name": "ClassNotFoundException", "full_name": "java.lang.ClassNotFoundException"}, {"package_name": "android.os.strictmode", "class_name": "CleartextNetworkViolation", "full_name": "android.os.strictmode.CleartextNetworkViolation"}, {"package_name": "android.text.style", "class_name": "ClickableSpan", "full_name": "android.text.style.ClickableSpan"}, {"package_name": "android.webkit", "class_name": "ClientCertRequest", "full_name": "android.webkit.ClientCertRequest"}, {"package_name": "java.sql", "class_name": "ClientInfoStatus", "full_name": "java.sql.ClientInfoStatus"}, {"package_name": "android.content", "class_name": "ClipboardManager", "full_name": "android.content.ClipboardManager"}, {"package_name": "android.text", "class_name": "ClipboardManager", "full_name": "android.text.ClipboardManager"}, {"package_name": "android.content", "class_name": "ClipboardManager.OnPrimaryClipChangedListener", "full_name": "android.content.ClipboardManager.OnPrimaryClipChangedListener"}, {"package_name": "android.content", "class_name": "ClipData", "full_name": "android.content.ClipData"}, {"package_name": "android.content", "class_name": "ClipData.Item", "full_name": "android.content.ClipData.Item"}, {"package_name": "android.content", "class_name": "ClipDescription", "full_name": "android.content.ClipDescription"}, {"package_name": "android.graphics.drawable", "class_name": "ClipDrawable", "full_name": "android.graphics.drawable.ClipDrawable"}, {"package_name": "java.sql", "class_name": "Clob", "full_name": "java.sql.Clob"}, {"package_name": "java.time", "class_name": "Clock", "full_name": "java.time.Clock"}, {"package_name": "java.lang", "class_name": "Cloneable", "full_name": "java.lang.Cloneable"}, {"package_name": "java.lang", "class_name": "CloneNotSupportedException", "full_name": "java.lang.CloneNotSupportedException"}, {"package_name": "java.io", "class_name": "Closeable", "full_name": "java.io.Closeable"}, {"package_name": "java.nio.channels", "class_name": "ClosedByInterruptException", "full_name": "java.nio.channels.ClosedByInterruptException"}, {"package_name": "java.nio.channels", "class_name": "ClosedChannelException", "full_name": "java.nio.channels.ClosedChannelException"}, {"package_name": "java.nio.file", "class_name": "ClosedDirectoryStreamException", "full_name": "java.nio.file.ClosedDirectoryStreamException"}, {"package_name": "java.nio.file", "class_name": "ClosedFileSystemException", "full_name": "java.nio.file.ClosedFileSystemException"}, {"package_name": "java.nio.channels", "class_name": "ClosedSelectorException", "full_name": "java.nio.channels.ClosedSelectorException"}, {"package_name": "java.nio.file", "class_name": "ClosedWatchServiceException", "full_name": "java.nio.file.ClosedWatchServiceException"}, {"package_name": "java.nio.charset", "class_name": "CoderMalfunctionError", "full_name": "java.nio.charset.CoderMalfunctionError"}, {"package_name": "java.nio.charset", "class_name": "CoderResult", "full_name": "java.nio.charset.CoderResult"}, {"package_name": "java.security", "class_name": "CodeSigner", "full_name": "java.security.CodeSigner"}, {"package_name": "java.security", "class_name": "CodeSource", "full_name": "java.security.CodeSource"}, {"package_name": "java.nio.charset", "class_name": "CodingErrorAction", "full_name": "java.nio.charset.CodingErrorAction"}, {"package_name": "android.view", "class_name": "CollapsibleActionView", "full_name": "android.view.CollapsibleActionView"}, {"package_name": "android.icu.text", "class_name": "CollationElementIterator", "full_name": "android.icu.text.CollationElementIterator"}, {"package_name": "java.text", "class_name": "CollationElementIterator", "full_name": "java.text.CollationElementIterator"}, {"package_name": "android.icu.text", "class_name": "CollationKey", "full_name": "android.icu.text.CollationKey"}, {"package_name": "java.text", "class_name": "CollationKey", "full_name": "java.text.CollationKey"}, {"package_name": "android.icu.text", "class_name": "CollationKey.BoundMode", "full_name": "android.icu.text.CollationKey.BoundMode"}, {"package_name": "android.icu.text", "class_name": "Collator", "full_name": "android.icu.text.Collator"}, {"package_name": "java.text", "class_name": "Collator", "full_name": "java.text.Collator"}, {"package_name": "android.icu.text", "class_name": "Collator.ReorderCodes", "full_name": "android.icu.text.Collator.ReorderCodes"}, {"package_name": "java.security.cert", "class_name": "CollectionCertStoreParameters", "full_name": "java.security.cert.CollectionCertStoreParameters"}, {"package_name": "java.util", "class_name": "Collections", "full_name": "java.util.Collections"}, {"package_name": "java.util.stream", "class_name": "Collector.Characteristics", "full_name": "java.util.stream.Collector.Characteristics"}, {"package_name": "java.util.stream", "class_name": "Collectors", "full_name": "java.util.stream.Collectors"}, {"package_name": "android.graphics", "class_name": "Color", "full_name": "android.graphics.Color"}, {"package_name": "android.graphics.drawable", "class_name": "ColorDrawable", "full_name": "android.graphics.drawable.ColorDrawable"}, {"package_name": "android.graphics", "class_name": "ColorFilter", "full_name": "android.graphics.ColorFilter"}, {"package_name": "android.graphics", "class_name": "ColorMatrix", "full_name": "android.graphics.ColorMatrix"}, {"package_name": "android.graphics", "class_name": "ColorMatrixColorFilter", "full_name": "android.graphics.ColorMatrixColorFilter"}, {"package_name": "android.graphics", "class_name": "ColorSpace", "full_name": "android.graphics.ColorSpace"}, {"package_name": "android.graphics", "class_name": "ColorSpace.Adaptation", "full_name": "android.graphics.ColorSpace.Adaptation"}, {"package_name": "android.graphics", "class_name": "ColorSpace.Connector", "full_name": "android.graphics.ColorSpace.Connector"}, {"package_name": "android.graphics", "class_name": "ColorSpace.Model", "full_name": "android.graphics.ColorSpace.Model"}, {"package_name": "android.graphics", "class_name": "ColorSpace.Named", "full_name": "android.graphics.ColorSpace.Named"}, {"package_name": "android.graphics", "class_name": "ColorSpace.RenderIntent", "full_name": "android.graphics.ColorSpace.RenderIntent"}, {"package_name": "android.graphics", "class_name": "ColorSpace.Rgb", "full_name": "android.graphics.ColorSpace.Rgb"}, {"package_name": "android.graphics", "class_name": "ColorSpace.Rgb.TransferParameters", "full_name": "android.graphics.ColorSpace.Rgb.TransferParameters"}, {"package_name": "android.content.res", "class_name": "ColorStateList", "full_name": "android.content.res.ColorStateList"}, {"package_name": "javax.sql", "class_name": "CommonDataSource", "full_name": "javax.sql.CommonDataSource"}, {"package_name": "android.icu.text", "class_name": "CompactDecimalFormat", "full_name": "android.icu.text.CompactDecimalFormat"}, {"package_name": "android.icu.text", "class_name": "CompactDecimalFormat.CompactStyle", "full_name": "android.icu.text.CompactDecimalFormat.CompactStyle"}, {"package_name": "android.companion", "class_name": "CompanionDeviceManager", "full_name": "android.companion.CompanionDeviceManager"}, {"package_name": "android.companion", "class_name": "CompanionDeviceManager.Callback", "full_name": "android.companion.CompanionDeviceManager.Callback"}, {"package_name": "android.test", "class_name": "ComparisonFailure", "full_name": "android.test.ComparisonFailure"}, {"package_name": "junit.framework", "class_name": "ComparisonFailure", "full_name": "junit.framework.ComparisonFailure"}, {"package_name": "java.lang", "class_name": "Compiler", "full_name": "java.lang.Compiler"}, {"package_name": "java.util.concurrent", "class_name": "CompletableFuture.AsynchronousCompletionTask", "full_name": "java.util.concurrent.CompletableFuture.AsynchronousCompletionTask"}, {"package_name": "java.util.concurrent", "class_name": "CompletionException", "full_name": "java.util.concurrent.CompletionException"}, {"package_name": "android.view.inputmethod", "class_name": "CompletionInfo", "full_name": "android.view.inputmethod.CompletionInfo"}, {"package_name": "android.content", "class_name": "ComponentCallbacks", "full_name": "android.content.ComponentCallbacks"}, {"package_name": "android.content.pm", "class_name": "ComponentInfo", "full_name": "android.content.pm.ComponentInfo"}, {"package_name": "android.content", "class_name": "ComponentName", "full_name": "android.content.ComponentName"}, {"package_name": "android.graphics", "class_name": "ComposePathEffect", "full_name": "android.graphics.ComposePathEffect"}, {"package_name": "android.graphics", "class_name": "ComposeShader", "full_name": "android.graphics.ComposeShader"}, {"package_name": "android.widget", "class_name": "CompoundButton", "full_name": "android.widget.CompoundButton"}, {"package_name": "android.widget", "class_name": "CompoundButton.OnCheckedChangeListener", "full_name": "android.widget.CompoundButton.OnCheckedChangeListener"}, {"package_name": "java.util", "class_name": "ConcurrentModificationException", "full_name": "java.util.ConcurrentModificationException"}, {"package_name": "android.service.notification", "class_name": "Condition", "full_name": "android.service.notification.Condition"}, {"package_name": "java.util.concurrent.locks", "class_name": "Condition", "full_name": "java.util.concurrent.locks.Condition"}, {"package_name": "android.service.notification", "class_name": "ConditionProviderService", "full_name": "android.service.notification.ConditionProviderService"}, {"package_name": "android.os", "class_name": "ConditionVariable", "full_name": "android.os.ConditionVariable"}, {"package_name": "android.telecom", "class_name": "Conference", "full_name": "android.telecom.Conference"}, {"package_name": "android.telecom", "class_name": "Conferenceable", "full_name": "android.telecom.Conferenceable"}, {"package_name": "android.util", "class_name": "Config", "full_name": "android.util.Config"}, {"package_name": "android.content.res", "class_name": "Configuration", "full_name": "android.content.res.Configuration"}, {"package_name": "android.content.pm", "class_name": "ConfigurationInfo", "full_name": "android.content.pm.ConfigurationInfo"}, {"package_name": "android.app.usage", "class_name": "ConfigurationStats", "full_name": "android.app.usage.ConfigurationStats"}, {"package_name": "android.security", "class_name": "ConfirmationAlreadyPresentingException", "full_name": "android.security.ConfirmationAlreadyPresentingException"}, {"package_name": "android.security", "class_name": "ConfirmationCallback", "full_name": "android.security.ConfirmationCallback"}, {"package_name": "android.security", "class_name": "ConfirmationNotAvailableException", "full_name": "android.security.ConfirmationNotAvailableException"}, {"package_name": "android.security", "class_name": "ConfirmationPrompt", "full_name": "android.security.ConfirmationPrompt"}, {"package_name": "android.security", "class_name": "ConfirmationPrompt.Builder", "full_name": "android.security.ConfirmationPrompt.Builder"}, {"package_name": "android.app.admin", "class_name": "ConnectEvent", "full_name": "android.app.admin.ConnectEvent"}, {"package_name": "java.net", "class_name": "ConnectException", "full_name": "java.net.ConnectException"}, {"package_name": "android.telecom", "class_name": "Connection", "full_name": "android.telecom.Connection"}, {"package_name": "java.sql", "class_name": "Connection", "full_name": "java.sql.Connection"}, {"package_name": "android.telecom", "class_name": "Connection.RttModifyStatus", "full_name": "android.telecom.Connection.RttModifyStatus"}, {"package_name": "android.telecom", "class_name": "Connection.RttTextStream", "full_name": "android.telecom.Connection.RttTextStream"}, {"package_name": "android.telecom", "class_name": "Connection.VideoProvider", "full_name": "android.telecom.Connection.VideoProvider"}, {"package_name": "javax.sql", "class_name": "ConnectionEvent", "full_name": "javax.sql.ConnectionEvent"}, {"package_name": "javax.sql", "class_name": "ConnectionEventListener", "full_name": "javax.sql.ConnectionEventListener"}, {"package_name": "java.nio.channels", "class_name": "ConnectionPendingException", "full_name": "java.nio.channels.ConnectionPendingException"}, {"package_name": "javax.sql", "class_name": "ConnectionPoolDataSource", "full_name": "javax.sql.ConnectionPoolDataSource"}, {"package_name": "android.telecom", "class_name": "ConnectionRequest", "full_name": "android.telecom.ConnectionRequest"}, {"package_name": "android.telecom", "class_name": "ConnectionService", "full_name": "android.telecom.ConnectionService"}, {"package_name": "android.net", "class_name": "ConnectivityManager", "full_name": "android.net.ConnectivityManager"}, {"package_name": "android.net", "class_name": "ConnectivityManager.NetworkCallback", "full_name": "android.net.ConnectivityManager.NetworkCallback"}, {"package_name": "android.net", "class_name": "ConnectivityManager.OnNetworkActiveListener", "full_name": "android.net.ConnectivityManager.OnNetworkActiveListener"}, {"package_name": "org.apache.http.conn", "class_name": "ConnectTimeoutException", "full_name": "org.apache.http.conn.ConnectTimeoutException"}, {"package_name": "java.io", "class_name": "Console", "full_name": "java.io.Console"}, {"package_name": "java.util.logging", "class_name": "ConsoleHandler", "full_name": "java.util.logging.ConsoleHandler"}, {"package_name": "android.webkit", "class_name": "ConsoleMessage", "full_name": "android.webkit.ConsoleMessage"}, {"package_name": "android.webkit", "class_name": "ConsoleMessage.MessageLevel", "full_name": "android.webkit.ConsoleMessage.MessageLevel"}, {"package_name": "java.lang.invoke", "class_name": "ConstantCallSite", "full_name": "java.lang.invoke.ConstantCallSite"}, {"package_name": "android.hardware", "class_name": "ConsumerIrManager", "full_name": "android.hardware.ConsumerIrManager"}, {"package_name": "android.hardware", "class_name": "ConsumerIrManager.CarrierFrequencyRange", "full_name": "android.hardware.ConsumerIrManager.CarrierFrequencyRange"}, {"package_name": "android.provider", "class_name": "Contacts", "full_name": "android.provider.Contacts"}, {"package_name": "android.provider", "class_name": "Contacts.ContactMethods", "full_name": "android.provider.Contacts.ContactMethods"}, {"package_name": "android.provider", "class_name": "Contacts.ContactMethodsColumns", "full_name": "android.provider.Contacts.ContactMethodsColumns"}, {"package_name": "android.provider", "class_name": "Contacts.Extensions", "full_name": "android.provider.Contacts.Extensions"}, {"package_name": "android.provider", "class_name": "Contacts.ExtensionsColumns", "full_name": "android.provider.Contacts.ExtensionsColumns"}, {"package_name": "android.provider", "class_name": "Contacts.GroupMembership", "full_name": "android.provider.Contacts.GroupMembership"}, {"package_name": "android.provider", "class_name": "Contacts.Groups", "full_name": "android.provider.Contacts.Groups"}, {"package_name": "android.provider", "class_name": "Contacts.GroupsColumns", "full_name": "android.provider.Contacts.GroupsColumns"}, {"package_name": "android.provider", "class_name": "Contacts.Intents", "full_name": "android.provider.Contacts.Intents"}, {"package_name": "android.provider", "class_name": "Contacts.Intents.Insert", "full_name": "android.provider.Contacts.Intents.Insert"}, {"package_name": "android.provider", "class_name": "Contacts.Intents.UI", "full_name": "android.provider.Contacts.Intents.UI"}, {"package_name": "android.provider", "class_name": "Contacts.OrganizationColumns", "full_name": "android.provider.Contacts.OrganizationColumns"}, {"package_name": "android.provider", "class_name": "Contacts.Organizations", "full_name": "android.provider.Contacts.Organizations"}, {"package_name": "android.provider", "class_name": "Contacts.People", "full_name": "android.provider.Contacts.People"}, {"package_name": "android.provider", "class_name": "Contacts.People.ContactMethods", "full_name": "android.provider.Contacts.People.ContactMethods"}, {"package_name": "android.provider", "class_name": "Contacts.People.Extensions", "full_name": "android.provider.Contacts.People.Extensions"}, {"package_name": "android.provider", "class_name": "Contacts.People.Phones", "full_name": "android.provider.Contacts.People.Phones"}, {"package_name": "android.provider", "class_name": "Contacts.PeopleColumns", "full_name": "android.provider.Contacts.PeopleColumns"}, {"package_name": "android.provider", "class_name": "Contacts.Phones", "full_name": "android.provider.Contacts.Phones"}, {"package_name": "android.provider", "class_name": "Contacts.PhonesColumns", "full_name": "android.provider.Contacts.PhonesColumns"}, {"package_name": "android.provider", "class_name": "Contacts.Photos", "full_name": "android.provider.Contacts.Photos"}, {"package_name": "android.provider", "class_name": "Contacts.PhotosColumns", "full_name": "android.provider.Contacts.PhotosColumns"}, {"package_name": "android.provider", "class_name": "Contacts.PresenceColumns", "full_name": "android.provider.Contacts.PresenceColumns"}, {"package_name": "android.provider", "class_name": "Contacts.Settings", "full_name": "android.provider.Contacts.Settings"}, {"package_name": "android.provider", "class_name": "Contacts.SettingsColumns", "full_name": "android.provider.Contacts.SettingsColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract", "full_name": "android.provider.ContactsContract"}, {"package_name": "android.provider", "class_name": "ContactsContract.AggregationExceptions", "full_name": "android.provider.ContactsContract.AggregationExceptions"}, {"package_name": "android.provider", "class_name": "ContactsContract.BaseSyncColumns", "full_name": "android.provider.ContactsContract.BaseSyncColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds", "full_name": "android.provider.ContactsContract.CommonDataKinds"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.BaseTypes", "full_name": "android.provider.ContactsContract.CommonDataKinds.BaseTypes"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Callable", "full_name": "android.provider.ContactsContract.CommonDataKinds.Callable"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.CommonColumns", "full_name": "android.provider.ContactsContract.CommonDataKinds.CommonColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Contactables", "full_name": "android.provider.ContactsContract.CommonDataKinds.Contactables"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Email", "full_name": "android.provider.ContactsContract.CommonDataKinds.Email"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Event", "full_name": "android.provider.ContactsContract.CommonDataKinds.Event"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.GroupMembership", "full_name": "android.provider.ContactsContract.CommonDataKinds.GroupMembership"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Identity", "full_name": "android.provider.ContactsContract.CommonDataKinds.Identity"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Im", "full_name": "android.provider.ContactsContract.CommonDataKinds.Im"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Nickname", "full_name": "android.provider.ContactsContract.CommonDataKinds.Nickname"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Note", "full_name": "android.provider.ContactsContract.CommonDataKinds.Note"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Organization", "full_name": "android.provider.ContactsContract.CommonDataKinds.Organization"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Phone", "full_name": "android.provider.ContactsContract.CommonDataKinds.Phone"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Photo", "full_name": "android.provider.ContactsContract.CommonDataKinds.Photo"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Relation", "full_name": "android.provider.ContactsContract.CommonDataKinds.Relation"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.SipAddress", "full_name": "android.provider.ContactsContract.CommonDataKinds.SipAddress"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.StructuredName", "full_name": "android.provider.ContactsContract.CommonDataKinds.StructuredName"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.StructuredPostal", "full_name": "android.provider.ContactsContract.CommonDataKinds.StructuredPostal"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Website", "full_name": "android.provider.ContactsContract.CommonDataKinds.Website"}, {"package_name": "android.provider", "class_name": "ContactsContract.ContactNameColumns", "full_name": "android.provider.ContactsContract.ContactNameColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.ContactOptionsColumns", "full_name": "android.provider.ContactsContract.ContactOptionsColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.Contacts", "full_name": "android.provider.ContactsContract.Contacts"}, {"package_name": "android.provider", "class_name": "ContactsContract.Contacts.AggregationSuggestions", "full_name": "android.provider.ContactsContract.Contacts.AggregationSuggestions"}, {"package_name": "android.provider", "class_name": "ContactsContract.Contacts.AggregationSuggestions.Builder", "full_name": "android.provider.ContactsContract.Contacts.AggregationSuggestions.Builder"}, {"package_name": "android.provider", "class_name": "ContactsContract.Contacts.Data", "full_name": "android.provider.ContactsContract.Contacts.Data"}, {"package_name": "android.provider", "class_name": "ContactsContract.Contacts.Entity", "full_name": "android.provider.ContactsContract.Contacts.Entity"}, {"package_name": "android.provider", "class_name": "ContactsContract.Contacts.Photo", "full_name": "android.provider.ContactsContract.Contacts.Photo"}, {"package_name": "android.provider", "class_name": "ContactsContract.ContactsColumns", "full_name": "android.provider.ContactsContract.ContactsColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.ContactStatusColumns", "full_name": "android.provider.ContactsContract.ContactStatusColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.Data", "full_name": "android.provider.ContactsContract.Data"}, {"package_name": "android.provider", "class_name": "ContactsContract.DataColumns", "full_name": "android.provider.ContactsContract.DataColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.DataColumnsWithJoins", "full_name": "android.provider.ContactsContract.DataColumnsWithJoins"}, {"package_name": "android.provider", "class_name": "ContactsContract.DataUsageFeedback", "full_name": "android.provider.ContactsContract.DataUsageFeedback"}, {"package_name": "android.provider", "class_name": "ContactsContract.DataUsageStatColumns", "full_name": "android.provider.ContactsContract.DataUsageStatColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.DeletedContacts", "full_name": "android.provider.ContactsContract.DeletedContacts"}, {"package_name": "android.provider", "class_name": "ContactsContract.DeletedContactsColumns", "full_name": "android.provider.ContactsContract.DeletedContactsColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.Directory", "full_name": "android.provider.ContactsContract.Directory"}, {"package_name": "android.provider", "class_name": "ContactsContract.DisplayNameSources", "full_name": "android.provider.ContactsContract.DisplayNameSources"}, {"package_name": "android.provider", "class_name": "ContactsContract.DisplayPhoto", "full_name": "android.provider.ContactsContract.DisplayPhoto"}, {"package_name": "android.provider", "class_name": "ContactsContract.FullNameStyle", "full_name": "android.provider.ContactsContract.FullNameStyle"}, {"package_name": "android.provider", "class_name": "ContactsContract.Groups", "full_name": "android.provider.ContactsContract.Groups"}, {"package_name": "android.provider", "class_name": "ContactsContract.GroupsColumns", "full_name": "android.provider.ContactsContract.GroupsColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.Intents", "full_name": "android.provider.ContactsContract.Intents"}, {"package_name": "android.provider", "class_name": "ContactsContract.Intents.Insert", "full_name": "android.provider.ContactsContract.Intents.Insert"}, {"package_name": "android.provider", "class_name": "ContactsContract.PhoneLookup", "full_name": "android.provider.ContactsContract.PhoneLookup"}, {"package_name": "android.provider", "class_name": "ContactsContract.PhoneLookupColumns", "full_name": "android.provider.ContactsContract.PhoneLookupColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.PhoneticNameStyle", "full_name": "android.provider.ContactsContract.PhoneticNameStyle"}, {"package_name": "android.provider", "class_name": "ContactsContract.PinnedPositions", "full_name": "android.provider.ContactsContract.PinnedPositions"}, {"package_name": "android.provider", "class_name": "ContactsContract.Presence", "full_name": "android.provider.ContactsContract.Presence"}, {"package_name": "android.provider", "class_name": "ContactsContract.PresenceColumns", "full_name": "android.provider.ContactsContract.PresenceColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.Profile", "full_name": "android.provider.ContactsContract.Profile"}, {"package_name": "android.provider", "class_name": "ContactsContract.ProfileSyncState", "full_name": "android.provider.ContactsContract.ProfileSyncState"}, {"package_name": "android.provider", "class_name": "ContactsContract.ProviderStatus", "full_name": "android.provider.ContactsContract.ProviderStatus"}, {"package_name": "android.provider", "class_name": "ContactsContract.QuickContact", "full_name": "android.provider.ContactsContract.QuickContact"}, {"package_name": "android.provider", "class_name": "ContactsContract.RawContacts", "full_name": "android.provider.ContactsContract.RawContacts"}, {"package_name": "android.provider", "class_name": "ContactsContract.RawContacts.Data", "full_name": "android.provider.ContactsContract.RawContacts.Data"}, {"package_name": "android.provider", "class_name": "ContactsContract.RawContacts.DisplayPhoto", "full_name": "android.provider.ContactsContract.RawContacts.DisplayPhoto"}, {"package_name": "android.provider", "class_name": "ContactsContract.RawContacts.Entity", "full_name": "android.provider.ContactsContract.RawContacts.Entity"}, {"package_name": "android.provider", "class_name": "ContactsContract.RawContactsColumns", "full_name": "android.provider.ContactsContract.RawContactsColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.RawContactsEntity", "full_name": "android.provider.ContactsContract.RawContactsEntity"}, {"package_name": "android.provider", "class_name": "ContactsContract.SearchSnippets", "full_name": "android.provider.ContactsContract.SearchSnippets"}, {"package_name": "android.provider", "class_name": "ContactsContract.Settings", "full_name": "android.provider.ContactsContract.Settings"}, {"package_name": "android.provider", "class_name": "ContactsContract.SettingsColumns", "full_name": "android.provider.ContactsContract.SettingsColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.StatusColumns", "full_name": "android.provider.ContactsContract.StatusColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.StatusUpdates", "full_name": "android.provider.ContactsContract.StatusUpdates"}, {"package_name": "android.provider", "class_name": "ContactsContract.SyncColumns", "full_name": "android.provider.ContactsContract.SyncColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.SyncState", "full_name": "android.provider.ContactsContract.SyncState"}, {"package_name": "java.net", "class_name": "ContentHandler", "full_name": "java.net.ContentHandler"}, {"package_name": "org.xml.sax", "class_name": "ContentHandler", "full_name": "org.xml.sax.ContentHandler"}, {"package_name": "java.net", "class_name": "ContentHandlerFactory", "full_name": "java.net.ContentHandlerFactory"}, {"package_name": "android.database", "class_name": "ContentObservable", "full_name": "android.database.ContentObservable"}, {"package_name": "android.database", "class_name": "ContentObserver", "full_name": "android.database.ContentObserver"}, {"package_name": "android.content", "class_name": "ContentProvider", "full_name": "android.content.ContentProvider"}, {"package_name": "android.content", "class_name": "ContentProviderClient", "full_name": "android.content.ContentProviderClient"}, {"package_name": "android.content", "class_name": "ContentProviderOperation", "full_name": "android.content.ContentProviderOperation"}, {"package_name": "android.content", "class_name": "ContentProviderOperation.Builder", "full_name": "android.content.ContentProviderOperation.Builder"}, {"package_name": "android.content", "class_name": "ContentProviderResult", "full_name": "android.content.ContentProviderResult"}, {"package_name": "android.content", "class_name": "ContentQueryMap", "full_name": "android.content.ContentQueryMap"}, {"package_name": "android.content", "class_name": "ContentResolver", "full_name": "android.content.ContentResolver"}, {"package_name": "android.content", "class_name": "ContentUris", "full_name": "android.content.ContentUris"}, {"package_name": "android.os.strictmode", "class_name": "ContentUriWithoutPermissionViolation", "full_name": "android.os.strictmode.ContentUriWithoutPermissionViolation"}, {"package_name": "android.content", "class_name": "ContentValues", "full_name": "android.content.ContentValues"}, {"package_name": "android.content", "class_name": "Context", "full_name": "android.content.Context"}, {"package_name": "android.view", "class_name": "ContextMenu", "full_name": "android.view.ContextMenu"}, {"package_name": "android.view", "class_name": "ContextMenu.ContextMenuInfo", "full_name": "android.view.ContextMenu.ContextMenuInfo"}, {"package_name": "android.view", "class_name": "ContextThemeWrapper", "full_name": "android.view.ContextThemeWrapper"}, {"package_name": "android.content", "class_name": "ContextWrapper", "full_name": "android.content.ContextWrapper"}, {"package_name": "java.net", "class_name": "CookieHandler", "full_name": "java.net.CookieHandler"}, {"package_name": "android.webkit", "class_name": "CookieManager", "full_name": "android.webkit.CookieManager"}, {"package_name": "java.net", "class_name": "CookieManager", "full_name": "java.net.CookieManager"}, {"package_name": "java.net", "class_name": "CookiePolicy", "full_name": "java.net.CookiePolicy"}, {"package_name": "java.net", "class_name": "CookieStore", "full_name": "java.net.CookieStore"}, {"package_name": "android.webkit", "class_name": "CookieSyncManager", "full_name": "android.webkit.CookieSyncManager"}, {"package_name": "android.icu.util", "class_name": "CopticCalendar", "full_name": "android.icu.util.CopticCalendar"}, {"package_name": "java.nio.file", "class_name": "CopyOption", "full_name": "java.nio.file.CopyOption"}, {"package_name": "org.apache.http.params", "class_name": "CoreConnectionPNames", "full_name": "org.apache.http.params.CoreConnectionPNames"}, {"package_name": "android.graphics", "class_name": "CornerPathEffect", "full_name": "android.graphics.CornerPathEffect"}, {"package_name": "android.view.inputmethod", "class_name": "CorrectionInfo", "full_name": "android.view.inputmethod.CorrectionInfo"}, {"package_name": "java.util.concurrent", "class_name": "CountDownLatch", "full_name": "java.util.concurrent.CountDownLatch"}, {"package_name": "android.os", "class_name": "CountDownTimer", "full_name": "android.os.CountDownTimer"}, {"package_name": "android.os", "class_name": "CpuUsageInfo", "full_name": "android.os.CpuUsageInfo"}, {"package_name": "android.net", "class_name": "Credentials", "full_name": "android.net.Credentials"}, {"package_name": "android.location", "class_name": "Criteria", "full_name": "android.location.Criteria"}, {"package_name": "java.security.cert", "class_name": "CRL", "full_name": "java.security.cert.CRL"}, {"package_name": "java.security.cert", "class_name": "CRLException", "full_name": "java.security.cert.CRLException"}, {"package_name": "java.security.cert", "class_name": "CRLReason", "full_name": "java.security.cert.CRLReason"}, {"package_name": "java.security.cert", "class_name": "CRLSelector", "full_name": "java.security.cert.CRLSelector"}, {"package_name": "android.database", "class_name": "CrossProcessCursor", "full_name": "android.database.CrossProcessCursor"}, {"package_name": "android.database", "class_name": "CrossProcessCursorWrapper", "full_name": "android.database.CrossProcessCursorWrapper"}, {"package_name": "android.content.pm", "class_name": "CrossProfileApps", "full_name": "android.content.pm.CrossProfileApps"}, {"package_name": "java.security", "class_name": "CryptoPrimitive", "full_name": "java.security.CryptoPrimitive"}, {"package_name": "android.icu.util", "class_name": "Currency", "full_name": "android.icu.util.Currency"}, {"package_name": "java.util", "class_name": "Currency", "full_name": "java.util.Currency"}, {"package_name": "android.icu.util", "class_name": "Currency.CurrencyUsage", "full_name": "android.icu.util.Currency.CurrencyUsage"}, {"package_name": "android.icu.util", "class_name": "CurrencyAmount", "full_name": "android.icu.util.CurrencyAmount"}, {"package_name": "android.icu.text", "class_name": "CurrencyPluralInfo", "full_name": "android.icu.text.CurrencyPluralInfo"}, {"package_name": "android.database", "class_name": "Cursor", "full_name": "android.database.Cursor"}, {"package_name": "android.widget", "class_name": "CursorAdapter", "full_name": "android.widget.CursorAdapter"}, {"package_name": "android.view.inputmethod", "class_name": "CursorAnchorInfo", "full_name": "android.view.inputmethod.CursorAnchorInfo"}, {"package_name": "android.view.inputmethod", "class_name": "CursorAnchorInfo.Builder", "full_name": "android.view.inputmethod.CursorAnchorInfo.Builder"}, {"package_name": "android.database", "class_name": "CursorIndexOutOfBoundsException", "full_name": "android.database.CursorIndexOutOfBoundsException"}, {"package_name": "android.database", "class_name": "CursorJoiner", "full_name": "android.database.CursorJoiner"}, {"package_name": "android.database", "class_name": "CursorJoiner.Result", "full_name": "android.database.CursorJoiner.Result"}, {"package_name": "android.content", "class_name": "CursorLoader", "full_name": "android.content.CursorLoader"}, {"package_name": "android.widget", "class_name": "CursorTreeAdapter", "full_name": "android.widget.CursorTreeAdapter"}, {"package_name": "android.database", "class_name": "CursorWindow", "full_name": "android.database.CursorWindow"}, {"package_name": "android.database", "class_name": "CursorWrapper", "full_name": "android.database.CursorWrapper"}, {"package_name": "android.service.autofill", "class_name": "CustomDescription", "full_name": "android.service.autofill.CustomDescription"}, {"package_name": "android.service.autofill", "class_name": "CustomDescription.Builder", "full_name": "android.service.autofill.CustomDescription.Builder"}, {"package_name": "android.printservice", "class_name": "CustomPrinterIconCallback", "full_name": "android.printservice.CustomPrinterIconCallback"}, {"package_name": "android.os.strictmode", "class_name": "CustomViolation", "full_name": "android.os.strictmode.CustomViolation"}, {"package_name": "android.view.animation", "class_name": "CycleInterpolator", "full_name": "android.view.animation.CycleInterpolator"}, {"package_name": "java.util.concurrent", "class_name": "CyclicBarrier", "full_name": "java.util.concurrent.CyclicBarrier"}, {"package_name": "android.graphics", "class_name": "DashPathEffect", "full_name": "android.graphics.DashPathEffect"}, {"package_name": "android.database", "class_name": "DatabaseErrorHandler", "full_name": "android.database.DatabaseErrorHandler"}, {"package_name": "java.sql", "class_name": "DatabaseMetaData", "full_name": "java.sql.DatabaseMetaData"}, {"package_name": "android.database", "class_name": "DatabaseUtils", "full_name": "android.database.DatabaseUtils"}, {"package_name": "android.database", "class_name": "DatabaseUtils.InsertHelper", "full_name": "android.database.DatabaseUtils.InsertHelper"}, {"package_name": "java.util.zip", "class_name": "DataFormatException", "full_name": "java.util.zip.DataFormatException"}, {"package_name": "java.nio.channels", "class_name": "DatagramChannel", "full_name": "java.nio.channels.DatagramChannel"}, {"package_name": "java.net", "class_name": "DatagramPacket", "full_name": "java.net.DatagramPacket"}, {"package_name": "java.net", "class_name": "DatagramSocket", "full_name": "java.net.DatagramSocket"}, {"package_name": "java.net", "class_name": "DatagramSocketImpl", "full_name": "java.net.DatagramSocketImpl"}, {"package_name": "java.net", "class_name": "DatagramSocketImplFactory", "full_name": "java.net.DatagramSocketImplFactory"}, {"package_name": "java.io", "class_name": "DataInput", "full_name": "java.io.DataInput"}, {"package_name": "java.io", "class_name": "DataInputStream", "full_name": "java.io.DataInputStream"}, {"package_name": "java.io", "class_name": "DataOutput", "full_name": "java.io.DataOutput"}, {"package_name": "java.io", "class_name": "DataOutputStream", "full_name": "java.io.DataOutputStream"}, {"package_name": "android.service.autofill", "class_name": "Dataset", "full_name": "android.service.autofill.Dataset"}, {"package_name": "android.service.autofill", "class_name": "Dataset.Builder", "full_name": "android.service.autofill.Dataset.Builder"}, {"package_name": "android.database", "class_name": "DataSetObservable", "full_name": "android.database.DataSetObservable"}, {"package_name": "android.database", "class_name": "DataSetObserver", "full_name": "android.database.DataSetObserver"}, {"package_name": "javax.sql", "class_name": "DataSource", "full_name": "javax.sql.DataSource"}, {"package_name": "java.sql", "class_name": "DataTruncation", "full_name": "java.sql.DataTruncation"}, {"package_name": "javax.xml.datatype", "class_name": "DatatypeConfigurationException", "full_name": "javax.xml.datatype.DatatypeConfigurationException"}, {"package_name": "javax.xml.datatype", "class_name": "DatatypeConstants", "full_name": "javax.xml.datatype.DatatypeConstants"}, {"package_name": "javax.xml.datatype", "class_name": "DatatypeConstants.Field", "full_name": "javax.xml.datatype.DatatypeConstants.Field"}, {"package_name": "javax.xml.datatype", "class_name": "DatatypeFactory", "full_name": "javax.xml.datatype.DatatypeFactory"}, {"package_name": "java.sql", "class_name": "Date", "full_name": "java.sql.Date"}, {"package_name": "java.util", "class_name": "Date", "full_name": "java.util.Date"}, {"package_name": "android.icu.text", "class_name": "DateFormat", "full_name": "android.icu.text.DateFormat"}, {"package_name": "android.text.format", "class_name": "DateFormat", "full_name": "android.text.format.DateFormat"}, {"package_name": "java.text", "class_name": "DateFormat", "full_name": "java.text.DateFormat"}, {"package_name": "android.icu.text", "class_name": "DateFormat.BooleanAttribute", "full_name": "android.icu.text.DateFormat.BooleanAttribute"}, {"package_name": "android.icu.text", "class_name": "DateFormat.Field", "full_name": "android.icu.text.DateFormat.Field"}, {"package_name": "java.text", "class_name": "DateFormat.Field", "full_name": "java.text.DateFormat.Field"}, {"package_name": "android.icu.text", "class_name": "DateFormatSymbols", "full_name": "android.icu.text.DateFormatSymbols"}, {"package_name": "java.text", "class_name": "DateFormatSymbols", "full_name": "java.text.DateFormatSymbols"}, {"package_name": "android.icu.util", "class_name": "DateInterval", "full_name": "android.icu.util.DateInterval"}, {"package_name": "android.icu.text", "class_name": "DateIntervalFormat", "full_name": "android.icu.text.DateIntervalFormat"}, {"package_name": "android.icu.text", "class_name": "DateIntervalInfo", "full_name": "android.icu.text.DateIntervalInfo"}, {"package_name": "android.icu.text", "class_name": "DateIntervalInfo.PatternInfo", "full_name": "android.icu.text.DateIntervalInfo.PatternInfo"}, {"package_name": "android.text.method", "class_name": "DateKeyListener", "full_name": "android.text.method.DateKeyListener"}, {"package_name": "android.widget", "class_name": "DatePicker", "full_name": "android.widget.DatePicker"}, {"package_name": "android.widget", "class_name": "DatePicker.OnDateChangedListener", "full_name": "android.widget.DatePicker.OnDateChangedListener"}, {"package_name": "android.app", "class_name": "DatePickerDialog", "full_name": "android.app.DatePickerDialog"}, {"package_name": "android.app", "class_name": "DatePickerDialog.OnDateSetListener", "full_name": "android.app.DatePickerDialog.OnDateSetListener"}, {"package_name": "android.webkit", "class_name": "DateSorter", "full_name": "android.webkit.DateSorter"}, {"package_name": "java.time", "class_name": "DateTimeException", "full_name": "java.time.DateTimeException"}, {"package_name": "java.time.format", "class_name": "DateTimeFormatter", "full_name": "java.time.format.DateTimeFormatter"}, {"package_name": "java.time.format", "class_name": "DateTimeFormatterBuilder", "full_name": "java.time.format.DateTimeFormatterBuilder"}, {"package_name": "android.text.method", "class_name": "DateTimeKeyListener", "full_name": "android.text.method.DateTimeKeyListener"}, {"package_name": "java.time.format", "class_name": "DateTimeParseException", "full_name": "java.time.format.DateTimeParseException"}, {"package_name": "android.icu.text", "class_name": "DateTimePatternGenerator", "full_name": "android.icu.text.DateTimePatternGenerator"}, {"package_name": "android.icu.text", "class_name": "DateTimePatternGenerator.PatternInfo", "full_name": "android.icu.text.DateTimePatternGenerator.PatternInfo"}, {"package_name": "android.service.autofill", "class_name": "DateTransformation", "full_name": "android.service.autofill.DateTransformation"}, {"package_name": "android.text.format", "class_name": "DateUtils", "full_name": "android.text.format.DateUtils"}, {"package_name": "android.service.autofill", "class_name": "DateValueSanitizer", "full_name": "android.service.autofill.DateValueSanitizer"}, {"package_name": "java.time", "class_name": "DayOfWeek", "full_name": "java.time.DayOfWeek"}, {"package_name": "android.os", "class_name": "DeadObjectException", "full_name": "android.os.DeadObjectException"}, {"package_name": "android.os", "class_name": "DeadSystemException", "full_name": "android.os.DeadSystemException"}, {"package_name": "android.os", "class_name": "Debug", "full_name": "android.os.Debug"}, {"package_name": "android.os", "class_name": "Debug.InstructionCount", "full_name": "android.os.Debug.InstructionCount"}, {"package_name": "android.os", "class_name": "Debug.MemoryInfo", "full_name": "android.os.Debug.MemoryInfo"}, {"package_name": "android.util", "class_name": "DebugUtils", "full_name": "android.util.DebugUtils"}, {"package_name": "android.view.animation", "class_name": "DecelerateInterpolator", "full_name": "android.view.animation.DecelerateInterpolator"}, {"package_name": "android.icu.text", "class_name": "DecimalFormat", "full_name": "android.icu.text.DecimalFormat"}, {"package_name": "java.text", "class_name": "DecimalFormat", "full_name": "java.text.DecimalFormat"}, {"package_name": "android.icu.text", "class_name": "DecimalFormatSymbols", "full_name": "android.icu.text.DecimalFormatSymbols"}, {"package_name": "java.text", "class_name": "DecimalFormatSymbols", "full_name": "java.text.DecimalFormatSymbols"}, {"package_name": "java.time.format", "class_name": "DecimalStyle", "full_name": "java.time.format.DecimalStyle"}, {"package_name": "org.xml.sax.ext", "class_name": "DeclHandler", "full_name": "org.xml.sax.ext.DeclHandler"}, {"package_name": "android.database", "class_name": "DefaultDatabaseErrorHandler", "full_name": "android.database.DefaultDatabaseErrorHandler"}, {"package_name": "org.xml.sax.helpers", "class_name": "DefaultHandler", "full_name": "org.xml.sax.helpers.DefaultHandler"}, {"package_name": "java.util.zip", "class_name": "Deflater", "full_name": "java.util.zip.Deflater"}, {"package_name": "java.util.zip", "class_name": "DeflaterInputStream", "full_name": "java.util.zip.DeflaterInputStream"}, {"package_name": "java.util.zip", "class_name": "DeflaterOutputStream", "full_name": "java.util.zip.DeflaterOutputStream"}, {"package_name": "java.util.concurrent", "class_name": "Delayed", "full_name": "java.util.concurrent.Delayed"}, {"package_name": "dalvik.system", "class_name": "DelegateLastClassLoader", "full_name": "dalvik.system.DelegateLastClassLoader"}, {"package_name": "android.media", "class_name": "DeniedByServerException", "full_name": "android.media.DeniedByServerException"}, {"package_name": "java.lang", "class_name": "Deprecated", "full_name": "java.lang.Deprecated"}, {"package_name": "javax.crypto.spec", "class_name": "DESedeKeySpec", "full_name": "javax.crypto.spec.DESedeKeySpec"}, {"package_name": "javax.crypto.spec", "class_name": "DESKeySpec", "full_name": "javax.crypto.spec.DESKeySpec"}, {"package_name": "javax.security.auth", "class_name": "Destroyable", "full_name": "javax.security.auth.Destroyable"}, {"package_name": "javax.security.auth", "class_name": "DestroyFailedException", "full_name": "javax.security.auth.DestroyFailedException"}, {"package_name": "android.app.admin", "class_name": "DeviceAdminInfo", "full_name": "android.app.admin.DeviceAdminInfo"}, {"package_name": "android.app.admin", "class_name": "DeviceAdminReceiver", "full_name": "android.app.admin.DeviceAdminReceiver"}, {"package_name": "android.app.admin", "class_name": "DeviceAdminService", "full_name": "android.app.admin.DeviceAdminService"}, {"package_name": "android.app.admin", "class_name": "DevicePolicyManager", "full_name": "android.app.admin.DevicePolicyManager"}, {"package_name": "android.app.admin", "class_name": "DevicePolicyManager.OnClearApplicationUserDataListener", "full_name": "android.app.admin.DevicePolicyManager.OnClearApplicationUserDataListener"}, {"package_name": "dalvik.system", "class_name": "DexClassLoader", "full_name": "dalvik.system.DexClassLoader"}, {"package_name": "dalvik.system", "class_name": "DexFile", "full_name": "dalvik.system.DexFile"}, {"package_name": "android.net", "class_name": "DhcpInfo", "full_name": "android.net.DhcpInfo"}, {"package_name": "javax.crypto.spec", "class_name": "DHGenParameterSpec", "full_name": "javax.crypto.spec.DHGenParameterSpec"}, {"package_name": "javax.crypto.interfaces", "class_name": "DHKey", "full_name": "javax.crypto.interfaces.DHKey"}, {"package_name": "javax.crypto.spec", "class_name": "DHParameterSpec", "full_name": "javax.crypto.spec.DHParameterSpec"}, {"package_name": "javax.crypto.interfaces", "class_name": "DHPrivateKey", "full_name": "javax.crypto.interfaces.DHPrivateKey"}, {"package_name": "javax.crypto.spec", "class_name": "DHPrivateKeySpec", "full_name": "javax.crypto.spec.DHPrivateKeySpec"}, {"package_name": "javax.crypto.interfaces", "class_name": "DHPublicKey", "full_name": "javax.crypto.interfaces.DHPublicKey"}, {"package_name": "javax.crypto.spec", "class_name": "DHPublicKeySpec", "full_name": "javax.crypto.spec.DHPublicKeySpec"}, {"package_name": "android.widget", "class_name": "DialerFilter", "full_name": "android.widget.DialerFilter"}, {"package_name": "android.text.method", "class_name": "DialerKeyListener", "full_name": "android.text.method.DialerKeyListener"}, {"package_name": "android.app", "class_name": "Dialog", "full_name": "android.app.Dialog"}, {"package_name": "android.app", "class_name": "DialogFragment", "full_name": "android.app.DialogFragment"}, {"package_name": "android.content", "class_name": "DialogInterface", "full_name": "android.content.DialogInterface"}, {"package_name": "android.content", "class_name": "DialogInterface.OnCancelListener", "full_name": "android.content.DialogInterface.OnCancelListener"}, {"package_name": "android.content", "class_name": "DialogInterface.OnClickListener", "full_name": "android.content.DialogInterface.OnClickListener"}, {"package_name": "android.content", "class_name": "DialogInterface.OnDismissListener", "full_name": "android.content.DialogInterface.OnDismissListener"}, {"package_name": "android.content", "class_name": "DialogInterface.OnKeyListener", "full_name": "android.content.DialogInterface.OnKeyListener"}, {"package_name": "android.content", "class_name": "DialogInterface.OnMultiChoiceClickListener", "full_name": "android.content.DialogInterface.OnMultiChoiceClickListener"}, {"package_name": "android.content", "class_name": "DialogInterface.OnShowListener", "full_name": "android.content.DialogInterface.OnShowListener"}, {"package_name": "android.preference", "class_name": "DialogPreference", "full_name": "android.preference.DialogPreference"}, {"package_name": "java.security", "class_name": "DigestException", "full_name": "java.security.DigestException"}, {"package_name": "java.security", "class_name": "DigestInputStream", "full_name": "java.security.DigestInputStream"}, {"package_name": "java.security", "class_name": "DigestOutputStream", "full_name": "java.security.DigestOutputStream"}, {"package_name": "android.widget", "class_name": "DigitalClock", "full_name": "android.widget.DigitalClock"}, {"package_name": "android.text.method", "class_name": "DigitsKeyListener", "full_name": "android.text.method.DigitsKeyListener"}, {"package_name": "java.nio.file", "class_name": "DirectoryIteratorException", "full_name": "java.nio.file.DirectoryIteratorException"}, {"package_name": "java.nio.file", "class_name": "DirectoryNotEmptyException", "full_name": "java.nio.file.DirectoryNotEmptyException"}, {"package_name": "android.telecom", "class_name": "DisconnectCause", "full_name": "android.telecom.DisconnectCause"}, {"package_name": "android.net.wifi.aware", "class_name": "DiscoverySession", "full_name": "android.net.wifi.aware.DiscoverySession"}, {"package_name": "android.net.wifi.aware", "class_name": "DiscoverySessionCallback", "full_name": "android.net.wifi.aware.DiscoverySessionCallback"}, {"package_name": "android.graphics", "class_name": "DiscretePathEffect", "full_name": "android.graphics.DiscretePathEffect"}, {"package_name": "android.os.strictmode", "class_name": "DiskReadViolation", "full_name": "android.os.strictmode.DiskReadViolation"}, {"package_name": "android.os.strictmode", "class_name": "DiskWriteViolation", "full_name": "android.os.strictmode.DiskWriteViolation"}, {"package_name": "android.view", "class_name": "Display", "full_name": "android.view.Display"}, {"package_name": "android.view", "class_name": "Display.HdrCapabilities", "full_name": "android.view.Display.HdrCapabilities"}, {"package_name": "android.view", "class_name": "Display.Mode", "full_name": "android.view.Display.Mode"}, {"package_name": "android.icu.text", "class_name": "DisplayContext", "full_name": "android.icu.text.DisplayContext"}, {"package_name": "android.icu.text", "class_name": "DisplayContext.Type", "full_name": "android.icu.text.DisplayContext.Type"}, {"package_name": "android.view", "class_name": "DisplayCutout", "full_name": "android.view.DisplayCutout"}, {"package_name": "android.hardware.display", "class_name": "DisplayManager", "full_name": "android.hardware.display.DisplayManager"}, {"package_name": "android.hardware.display", "class_name": "DisplayManager.DisplayListener", "full_name": "android.hardware.display.DisplayManager.DisplayListener"}, {"package_name": "android.util", "class_name": "DisplayMetrics", "full_name": "android.util.DisplayMetrics"}, {"package_name": "android.app.admin", "class_name": "DnsEvent", "full_name": "android.app.admin.DnsEvent"}, {"package_name": "javax.xml.parsers", "class_name": "DocumentBuilder", "full_name": "javax.xml.parsers.DocumentBuilder"}, {"package_name": "javax.xml.parsers", "class_name": "DocumentBuilderFactory", "full_name": "javax.xml.parsers.DocumentBuilderFactory"}, {"package_name": "java.lang.annotation", "class_name": "Documented", "full_name": "java.lang.annotation.Documented"}, {"package_name": "org.xml.sax", "class_name": "DocumentHandler", "full_name": "org.xml.sax.DocumentHandler"}, {"package_name": "android.provider", "class_name": "DocumentsContract", "full_name": "android.provider.DocumentsContract"}, {"package_name": "android.provider", "class_name": "DocumentsContract.Document", "full_name": "android.provider.DocumentsContract.Document"}, {"package_name": "android.provider", "class_name": "DocumentsContract.Path", "full_name": "android.provider.DocumentsContract.Path"}, {"package_name": "android.provider", "class_name": "DocumentsContract.Root", "full_name": "android.provider.DocumentsContract.Root"}, {"package_name": "android.provider", "class_name": "DocumentsProvider", "full_name": "android.provider.DocumentsProvider"}, {"package_name": "java.security", "class_name": "DomainCombiner", "full_name": "java.security.DomainCombiner"}, {"package_name": "java.security", "class_name": "DomainLoadStoreParameter", "full_name": "java.security.DomainLoadStoreParameter"}, {"package_name": "javax.xml.transform.dom", "class_name": "DOMLocator", "full_name": "javax.xml.transform.dom.DOMLocator"}, {"package_name": "javax.xml.transform.dom", "class_name": "DOMResult", "full_name": "javax.xml.transform.dom.DOMResult"}, {"package_name": "javax.xml.transform.dom", "class_name": "DOMSource", "full_name": "javax.xml.transform.dom.DOMSource"}, {"package_name": "java.nio.file.attribute", "class_name": "DosFileAttributes", "full_name": "java.nio.file.attribute.DosFileAttributes"}, {"package_name": "java.nio.file.attribute", "class_name": "DosFileAttributeView", "full_name": "java.nio.file.attribute.DosFileAttributeView"}, {"package_name": "java.lang", "class_name": "Double", "full_name": "java.lang.Double"}, {"package_name": "java.util.concurrent.atomic", "class_name": "DoubleAccumulator", "full_name": "java.util.concurrent.atomic.DoubleAccumulator"}, {"package_name": "java.util.concurrent.atomic", "class_name": "DoubleAdder", "full_name": "java.util.concurrent.atomic.DoubleAdder"}, {"package_name": "java.util.function", "class_name": "DoubleBinaryOperator", "full_name": "java.util.function.DoubleBinaryOperator"}, {"package_name": "java.nio", "class_name": "DoubleBuffer", "full_name": "java.nio.DoubleBuffer"}, {"package_name": "java.util.function", "class_name": "DoubleConsumer", "full_name": "java.util.function.DoubleConsumer"}, {"package_name": "java.util.function", "class_name": "DoublePredicate", "full_name": "java.util.function.DoublePredicate"}, {"package_name": "java.util.stream", "class_name": "DoubleStream", "full_name": "java.util.stream.DoubleStream"}, {"package_name": "java.util.stream", "class_name": "DoubleStream.Builder", "full_name": "java.util.stream.DoubleStream.Builder"}, {"package_name": "java.util", "class_name": "DoubleSummaryStatistics", "full_name": "java.util.DoubleSummaryStatistics"}, {"package_name": "java.util.function", "class_name": "DoubleSupplier", "full_name": "java.util.function.DoubleSupplier"}, {"package_name": "java.util.function", "class_name": "DoubleToIntFunction", "full_name": "java.util.function.DoubleToIntFunction"}, {"package_name": "java.util.function", "class_name": "DoubleToLongFunction", "full_name": "java.util.function.DoubleToLongFunction"}, {"package_name": "java.util.function", "class_name": "DoubleUnaryOperator", "full_name": "java.util.function.DoubleUnaryOperator"}, {"package_name": "android.telephony.euicc", "class_name": "DownloadableSubscription", "full_name": "android.telephony.euicc.DownloadableSubscription"}, {"package_name": "android.webkit", "class_name": "DownloadListener", "full_name": "android.webkit.DownloadListener"}, {"package_name": "android.app", "class_name": "DownloadManager", "full_name": "android.app.DownloadManager"}, {"package_name": "android.app", "class_name": "DownloadManager.Query", "full_name": "android.app.DownloadManager.Query"}, {"package_name": "android.app", "class_name": "DownloadManager.Request", "full_name": "android.app.DownloadManager.Request"}, {"package_name": "android.telephony.mbms", "class_name": "DownloadProgressListener", "full_name": "android.telephony.mbms.DownloadProgressListener"}, {"package_name": "android.telephony.mbms", "class_name": "DownloadRequest", "full_name": "android.telephony.mbms.DownloadRequest"}, {"package_name": "android.telephony.mbms", "class_name": "DownloadRequest.Builder", "full_name": "android.telephony.mbms.DownloadRequest.Builder"}, {"package_name": "android.telephony.mbms", "class_name": "DownloadStatusListener", "full_name": "android.telephony.mbms.DownloadStatusListener"}, {"package_name": "android.view", "class_name": "DragAndDropPermissions", "full_name": "android.view.DragAndDropPermissions"}, {"package_name": "android.view", "class_name": "DragEvent", "full_name": "android.view.DragEvent"}, {"package_name": "android.graphics.drawable", "class_name": "Drawable", "full_name": "android.graphics.drawable.Drawable"}, {"package_name": "android.graphics.drawable", "class_name": "Drawable.Callback", "full_name": "android.graphics.drawable.Drawable.Callback"}, {"package_name": "android.graphics.drawable", "class_name": "Drawable.ConstantState", "full_name": "android.graphics.drawable.Drawable.ConstantState"}, {"package_name": "android.graphics.drawable", "class_name": "DrawableContainer", "full_name": "android.graphics.drawable.DrawableContainer"}, {"package_name": "android.graphics.drawable", "class_name": "DrawableContainer.DrawableContainerState", "full_name": "android.graphics.drawable.DrawableContainer.DrawableContainerState"}, {"package_name": "android.text.style", "class_name": "DrawableMarginSpan", "full_name": "android.text.style.DrawableMarginSpan"}, {"package_name": "android.graphics.drawable", "class_name": "DrawableWrapper", "full_name": "android.graphics.drawable.DrawableWrapper"}, {"package_name": "android.graphics", "class_name": "DrawFilter", "full_name": "android.graphics.DrawFilter"}, {"package_name": "android.service.dreams", "class_name": "DreamService", "full_name": "android.service.dreams.DreamService"}, {"package_name": "java.sql", "class_name": "Driver", "full_name": "java.sql.Driver"}, {"package_name": "java.sql", "class_name": "DriverManager", "full_name": "java.sql.DriverManager"}, {"package_name": "java.sql", "class_name": "DriverPropertyInfo", "full_name": "java.sql.DriverPropertyInfo"}, {"package_name": "android.drm", "class_name": "DrmConvertedStatus", "full_name": "android.drm.DrmConvertedStatus"}, {"package_name": "android.drm", "class_name": "DrmErrorEvent", "full_name": "android.drm.DrmErrorEvent"}, {"package_name": "android.drm", "class_name": "DrmEvent", "full_name": "android.drm.DrmEvent"}, {"package_name": "android.drm", "class_name": "DrmInfo", "full_name": "android.drm.DrmInfo"}, {"package_name": "android.drm", "class_name": "DrmInfoEvent", "full_name": "android.drm.DrmInfoEvent"}, {"package_name": "android.drm", "class_name": "DrmInfoRequest", "full_name": "android.drm.DrmInfoRequest"}, {"package_name": "android.drm", "class_name": "DrmInfoStatus", "full_name": "android.drm.DrmInfoStatus"}, {"package_name": "android.media", "class_name": "DrmInitData", "full_name": "android.media.DrmInitData"}, {"package_name": "android.media", "class_name": "DrmInitData.SchemeInitData", "full_name": "android.media.DrmInitData.SchemeInitData"}, {"package_name": "android.drm", "class_name": "DrmManagerClient", "full_name": "android.drm.DrmManagerClient"}, {"package_name": "android.drm", "class_name": "DrmManagerClient.OnErrorListener", "full_name": "android.drm.DrmManagerClient.OnErrorListener"}, {"package_name": "android.drm", "class_name": "DrmManagerClient.OnEventListener", "full_name": "android.drm.DrmManagerClient.OnEventListener"}, {"package_name": "android.drm", "class_name": "DrmManagerClient.OnInfoListener", "full_name": "android.drm.DrmManagerClient.OnInfoListener"}, {"package_name": "android.drm", "class_name": "DrmRights", "full_name": "android.drm.DrmRights"}, {"package_name": "android.drm", "class_name": "DrmStore", "full_name": "android.drm.DrmStore"}, {"package_name": "android.drm", "class_name": "DrmStore.Action", "full_name": "android.drm.DrmStore.Action"}, {"package_name": "android.drm", "class_name": "DrmStore.ConstraintsColumns", "full_name": "android.drm.DrmStore.ConstraintsColumns"}, {"package_name": "android.drm", "class_name": "DrmStore.DrmObjectType", "full_name": "android.drm.DrmStore.DrmObjectType"}, {"package_name": "android.drm", "class_name": "DrmStore.Playback", "full_name": "android.drm.DrmStore.Playback"}, {"package_name": "android.drm", "class_name": "DrmStore.RightsStatus", "full_name": "android.drm.DrmStore.RightsStatus"}, {"package_name": "android.drm", "class_name": "DrmSupportInfo", "full_name": "android.drm.DrmSupportInfo"}, {"package_name": "android.drm", "class_name": "DrmUtils", "full_name": "android.drm.DrmUtils"}, {"package_name": "android.drm", "class_name": "DrmUtils.ExtendedMetadataParser", "full_name": "android.drm.DrmUtils.ExtendedMetadataParser"}, {"package_name": "android.os", "class_name": "DropBoxManager", "full_name": "android.os.DropBoxManager"}, {"package_name": "android.os", "class_name": "DropBoxManager.Entry", "full_name": "android.os.DropBoxManager.Entry"}, {"package_name": "java.security.interfaces", "class_name": "DSAKey", "full_name": "java.security.interfaces.DSAKey"}, {"package_name": "java.security.interfaces", "class_name": "DSAKeyPairGenerator", "full_name": "java.security.interfaces.DSAKeyPairGenerator"}, {"package_name": "java.security.spec", "class_name": "DSAParameterSpec", "full_name": "java.security.spec.DSAParameterSpec"}, {"package_name": "java.security.interfaces", "class_name": "DSAParams", "full_name": "java.security.interfaces.DSAParams"}, {"package_name": "java.security.interfaces", "class_name": "DSAPrivateKey", "full_name": "java.security.interfaces.DSAPrivateKey"}, {"package_name": "java.security.spec", "class_name": "DSAPrivateKeySpec", "full_name": "java.security.spec.DSAPrivateKeySpec"}, {"package_name": "java.security.interfaces", "class_name": "DSAPublicKey", "full_name": "java.security.interfaces.DSAPublicKey"}, {"package_name": "java.security.spec", "class_name": "DSAPublicKeySpec", "full_name": "java.security.spec.DSAPublicKeySpec"}, {"package_name": "org.xml.sax", "class_name": "DTDHandler", "full_name": "org.xml.sax.DTDHandler"}, {"package_name": "java.util", "class_name": "DuplicateFormatFlagsException", "full_name": "java.util.DuplicateFormatFlagsException"}, {"package_name": "java.time", "class_name": "Duration", "full_name": "java.time.Duration"}, {"package_name": "javax.xml.datatype", "class_name": "Duration", "full_name": "javax.xml.datatype.Duration"}, {"package_name": "android.text.style", "class_name": "DynamicDrawableSpan", "full_name": "android.text.style.DynamicDrawableSpan"}, {"package_name": "android.text", "class_name": "DynamicLayout", "full_name": "android.text.DynamicLayout"}, {"package_name": "android.text", "class_name": "DynamicLayout.Builder", "full_name": "android.text.DynamicLayout.Builder"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing", "full_name": "android.media.audiofx.DynamicsProcessing"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.BandBase", "full_name": "android.media.audiofx.DynamicsProcessing.BandBase"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.BandStage", "full_name": "android.media.audiofx.DynamicsProcessing.BandStage"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.Channel", "full_name": "android.media.audiofx.DynamicsProcessing.Channel"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.Config", "full_name": "android.media.audiofx.DynamicsProcessing.Config"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.Config.Builder", "full_name": "android.media.audiofx.DynamicsProcessing.Config.Builder"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.Eq", "full_name": "android.media.audiofx.DynamicsProcessing.Eq"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.EqBand", "full_name": "android.media.audiofx.DynamicsProcessing.EqBand"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.Limiter", "full_name": "android.media.audiofx.DynamicsProcessing.Limiter"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.Mbc", "full_name": "android.media.audiofx.DynamicsProcessing.Mbc"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.MbcBand", "full_name": "android.media.audiofx.DynamicsProcessing.MbcBand"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.Stage", "full_name": "android.media.audiofx.DynamicsProcessing.Stage"}, {"package_name": "android.text.style", "class_name": "EasyEditSpan", "full_name": "android.text.style.EasyEditSpan"}, {"package_name": "java.security.spec", "class_name": "ECField", "full_name": "java.security.spec.ECField"}, {"package_name": "java.security.spec", "class_name": "ECFieldFp", "full_name": "java.security.spec.ECFieldFp"}, {"package_name": "java.security.spec", "class_name": "ECGenParameterSpec", "full_name": "java.security.spec.ECGenParameterSpec"}, {"package_name": "java.security.interfaces", "class_name": "ECKey", "full_name": "java.security.interfaces.ECKey"}, {"package_name": "java.security.spec", "class_name": "ECParameterSpec", "full_name": "java.security.spec.ECParameterSpec"}, {"package_name": "java.security.spec", "class_name": "ECPoint", "full_name": "java.security.spec.ECPoint"}, {"package_name": "java.security.interfaces", "class_name": "ECPrivateKey", "full_name": "java.security.interfaces.ECPrivateKey"}, {"package_name": "java.security.spec", "class_name": "ECPrivateKeySpec", "full_name": "java.security.spec.ECPrivateKeySpec"}, {"package_name": "java.security.interfaces", "class_name": "ECPublicKey", "full_name": "java.security.interfaces.ECPublicKey"}, {"package_name": "java.security.spec", "class_name": "ECPublicKeySpec", "full_name": "java.security.spec.ECPublicKeySpec"}, {"package_name": "android.widget", "class_name": "EdgeEffect", "full_name": "android.widget.EdgeEffect"}, {"package_name": "android.text", "class_name": "Editable", "full_name": "android.text.Editable"}, {"package_name": "android.text", "class_name": "Editable.Factory", "full_name": "android.text.Editable.Factory"}, {"package_name": "android.view.inputmethod", "class_name": "EditorInfo", "full_name": "android.view.inputmethod.EditorInfo"}, {"package_name": "android.widget", "class_name": "EditText", "full_name": "android.widget.EditText"}, {"package_name": "android.preference", "class_name": "EditTextPreference", "full_name": "android.preference.EditTextPreference"}, {"package_name": "android.media.effect", "class_name": "Effect", "full_name": "android.media.effect.Effect"}, {"package_name": "android.media.effect", "class_name": "EffectContext", "full_name": "android.media.effect.EffectContext"}, {"package_name": "android.media.effect", "class_name": "EffectFactory", "full_name": "android.media.effect.EffectFactory"}, {"package_name": "android.media.effect", "class_name": "EffectUpdateListener", "full_name": "android.media.effect.EffectUpdateListener"}, {"package_name": "javax.microedition.khronos.egl", "class_name": "EGL", "full_name": "javax.microedition.khronos.egl.EGL"}, {"package_name": "android.opengl", "class_name": "EGLConfig", "full_name": "android.opengl.EGLConfig"}, {"package_name": "javax.microedition.khronos.egl", "class_name": "EGLConfig", "full_name": "javax.microedition.khronos.egl.EGLConfig"}, {"package_name": "android.opengl", "class_name": "EGLContext", "full_name": "android.opengl.EGLContext"}, {"package_name": "javax.microedition.khronos.egl", "class_name": "EGLContext", "full_name": "javax.microedition.khronos.egl.EGLContext"}, {"package_name": "android.opengl", "class_name": "EGLDisplay", "full_name": "android.opengl.EGLDisplay"}, {"package_name": "javax.microedition.khronos.egl", "class_name": "EGLDisplay", "full_name": "javax.microedition.khronos.egl.EGLDisplay"}, {"package_name": "android.opengl", "class_name": "EGLExt", "full_name": "android.opengl.EGLExt"}, {"package_name": "android.opengl", "class_name": "EGLObjectHandle", "full_name": "android.opengl.EGLObjectHandle"}, {"package_name": "android.opengl", "class_name": "EGLSurface", "full_name": "android.opengl.EGLSurface"}, {"package_name": "javax.microedition.khronos.egl", "class_name": "EGLSurface", "full_name": "javax.microedition.khronos.egl.EGLSurface"}, {"package_name": "android.renderscript", "class_name": "Element", "full_name": "android.renderscript.Element"}, {"package_name": "android.sax", "class_name": "Element", "full_name": "android.sax.Element"}, {"package_name": "android.renderscript", "class_name": "Element.Builder", "full_name": "android.renderscript.Element.Builder"}, {"package_name": "android.renderscript", "class_name": "Element.DataKind", "full_name": "android.renderscript.Element.DataKind"}, {"package_name": "android.renderscript", "class_name": "Element.DataType", "full_name": "android.renderscript.Element.DataType"}, {"package_name": "android.sax", "class_name": "ElementListener", "full_name": "android.sax.ElementListener"}, {"package_name": "java.lang.annotation", "class_name": "ElementType", "full_name": "java.lang.annotation.ElementType"}, {"package_name": "java.security.spec", "class_name": "EllipticCurve", "full_name": "java.security.spec.EllipticCurve"}, {"package_name": "android.graphics", "class_name": "EmbossMaskFilter", "full_name": "android.graphics.EmbossMaskFilter"}, {"package_name": "java.util", "class_name": "EmptyStackException", "full_name": "java.util.EmptyStackException"}, {"package_name": "java.security.spec", "class_name": "EncodedKeySpec", "full_name": "java.security.spec.EncodedKeySpec"}, {"package_name": "javax.crypto", "class_name": "EncryptedPrivateKeyInfo", "full_name": "javax.crypto.EncryptedPrivateKeyInfo"}, {"package_name": "android.sax", "class_name": "EndElementListener", "full_name": "android.sax.EndElementListener"}, {"package_name": "android.sax", "class_name": "EndTextElementListener", "full_name": "android.sax.EndTextElementListener"}, {"package_name": "android.content", "class_name": "Entity", "full_name": "android.content.Entity"}, {"package_name": "android.content", "class_name": "Entity.NamedContentValues", "full_name": "android.content.Entity.NamedContentValues"}, {"package_name": "android.content", "class_name": "EntityIterator", "full_name": "android.content.EntityIterator"}, {"package_name": "org.xml.sax", "class_name": "EntityResolver", "full_name": "org.xml.sax.EntityResolver"}, {"package_name": "java.lang", "class_name": "EnumConstantNotPresentException", "full_name": "java.lang.EnumConstantNotPresentException"}, {"package_name": "android.os", "class_name": "Environment", "full_name": "android.os.Environment"}, {"package_name": "android.media.audiofx", "class_name": "EnvironmentalReverb", "full_name": "android.media.audiofx.EnvironmentalReverb"}, {"package_name": "android.media.audiofx", "class_name": "EnvironmentalReverb.OnParameterChangeListener", "full_name": "android.media.audiofx.EnvironmentalReverb.OnParameterChangeListener"}, {"package_name": "android.media.audiofx", "class_name": "EnvironmentalReverb.Settings", "full_name": "android.media.audiofx.EnvironmentalReverb.Settings"}, {"package_name": "java.io", "class_name": "EOFException", "full_name": "java.io.EOFException"}, {"package_name": "android.media.audiofx", "class_name": "Equalizer", "full_name": "android.media.audiofx.Equalizer"}, {"package_name": "android.media.audiofx", "class_name": "Equalizer.OnParameterChangeListener", "full_name": "android.media.audiofx.Equalizer.OnParameterChangeListener"}, {"package_name": "android.media.audiofx", "class_name": "Equalizer.Settings", "full_name": "android.media.audiofx.Equalizer.Settings"}, {"package_name": "java.time.chrono", "class_name": "Era", "full_name": "java.time.chrono.Era"}, {"package_name": "android.system", "class_name": "ErrnoException", "full_name": "android.system.ErrnoException"}, {"package_name": "java.lang", "class_name": "Error", "full_name": "java.lang.Error"}, {"package_name": "org.xml.sax", "class_name": "ErrorHandler", "full_name": "org.xml.sax.ErrorHandler"}, {"package_name": "javax.xml.transform", "class_name": "ErrorListener", "full_name": "javax.xml.transform.ErrorListener"}, {"package_name": "java.util.logging", "class_name": "ErrorManager", "full_name": "java.util.logging.ErrorManager"}, {"package_name": "android.icu.util", "class_name": "EthiopicCalendar", "full_name": "android.icu.util.EthiopicCalendar"}, {"package_name": "android.telephony.euicc", "class_name": "EuiccInfo", "full_name": "android.telephony.euicc.EuiccInfo"}, {"package_name": "android.telephony.euicc", "class_name": "EuiccManager", "full_name": "android.telephony.euicc.EuiccManager"}, {"package_name": "java.util", "class_name": "EventListener", "full_name": "java.util.EventListener"}, {"package_name": "android.util", "class_name": "EventLog", "full_name": "android.util.EventLog"}, {"package_name": "android.util", "class_name": "EventLog.Event", "full_name": "android.util.EventLog.Event"}, {"package_name": "android.util", "class_name": "EventLogTags", "full_name": "android.util.EventLogTags"}, {"package_name": "android.util", "class_name": "EventLogTags.Description", "full_name": "android.util.EventLogTags.Description"}, {"package_name": "java.util", "class_name": "EventObject", "full_name": "java.util.EventObject"}, {"package_name": "android.app.usage", "class_name": "EventStats", "full_name": "android.app.usage.EventStats"}, {"package_name": "java.lang", "class_name": "Exception", "full_name": "java.lang.Exception"}, {"package_name": "java.lang", "class_name": "ExceptionInInitializerError", "full_name": "java.lang.ExceptionInInitializerError"}, {"package_name": "java.lang.reflect", "class_name": "Executable", "full_name": "java.lang.reflect.Executable"}, {"package_name": "java.util.concurrent", "class_name": "ExecutionException", "full_name": "java.util.concurrent.ExecutionException"}, {"package_name": "java.util.concurrent", "class_name": "Executor", "full_name": "java.util.concurrent.Executor"}, {"package_name": "java.util.concurrent", "class_name": "Executors", "full_name": "java.util.concurrent.Executors"}, {"package_name": "java.util.concurrent", "class_name": "ExecutorService", "full_name": "java.util.concurrent.ExecutorService"}, {"package_name": "javax.crypto", "class_name": "ExemptionMechanism", "full_name": "javax.crypto.ExemptionMechanism"}, {"package_name": "javax.crypto", "class_name": "ExemptionMechanismException", "full_name": "javax.crypto.ExemptionMechanismException"}, {"package_name": "javax.crypto", "class_name": "ExemptionMechanismSpi", "full_name": "javax.crypto.ExemptionMechanismSpi"}, {"package_name": "android.media", "class_name": "ExifInterface", "full_name": "android.media.ExifInterface"}, {"package_name": "android.app", "class_name": "ExpandableListActivity", "full_name": "android.app.ExpandableListActivity"}, {"package_name": "android.widget", "class_name": "ExpandableListAdapter", "full_name": "android.widget.ExpandableListAdapter"}, {"package_name": "android.widget", "class_name": "ExpandableListView", "full_name": "android.widget.ExpandableListView"}, {"package_name": "android.widget", "class_name": "ExpandableListView.ExpandableListContextMenuInfo", "full_name": "android.widget.ExpandableListView.ExpandableListContextMenuInfo"}, {"package_name": "android.widget", "class_name": "ExpandableListView.OnChildClickListener", "full_name": "android.widget.ExpandableListView.OnChildClickListener"}, {"package_name": "android.widget", "class_name": "ExpandableListView.OnGroupClickListener", "full_name": "android.widget.ExpandableListView.OnGroupClickListener"}, {"package_name": "android.widget", "class_name": "ExpandableListView.OnGroupCollapseListener", "full_name": "android.widget.ExpandableListView.OnGroupCollapseListener"}, {"package_name": "android.widget", "class_name": "ExpandableListView.OnGroupExpandListener", "full_name": "android.widget.ExpandableListView.OnGroupExpandListener"}, {"package_name": "android.transition", "class_name": "Explode", "full_name": "android.transition.Explode"}, {"package_name": "javax.net.ssl", "class_name": "ExtendedSSLSession", "full_name": "javax.net.ssl.ExtendedSSLSession"}, {"package_name": "java.security.cert", "class_name": "Extension", "full_name": "java.security.cert.Extension"}, {"package_name": "java.io", "class_name": "Externalizable", "full_name": "java.io.Externalizable"}, {"package_name": "android.app.usage", "class_name": "ExternalStorageStats", "full_name": "android.app.usage.ExternalStorageStats"}, {"package_name": "android.inputmethodservice", "class_name": "ExtractEditText", "full_name": "android.inputmethodservice.ExtractEditText"}, {"package_name": "android.view.inputmethod", "class_name": "ExtractedText", "full_name": "android.view.inputmethod.ExtractedText"}, {"package_name": "android.view.inputmethod", "class_name": "ExtractedTextRequest", "full_name": "android.view.inputmethod.ExtractedTextRequest"}, {"package_name": "android.media", "class_name": "FaceDetector", "full_name": "android.media.FaceDetector"}, {"package_name": "android.media", "class_name": "FaceDetector.Face", "full_name": "android.media.FaceDetector.Face"}, {"package_name": "javax.xml.parsers", "class_name": "FactoryConfigurationError", "full_name": "javax.xml.parsers.FactoryConfigurationError"}, {"package_name": "android.transition", "class_name": "Fade", "full_name": "android.transition.Fade"}, {"package_name": "android.content.pm", "class_name": "FeatureGroupInfo", "full_name": "android.content.pm.FeatureGroupInfo"}, {"package_name": "android.content.pm", "class_name": "FeatureInfo", "full_name": "android.content.pm.FeatureInfo"}, {"package_name": "java.lang.reflect", "class_name": "Field", "full_name": "java.lang.reflect.Field"}, {"package_name": "android.service.autofill", "class_name": "FieldClassification", "full_name": "android.service.autofill.FieldClassification"}, {"package_name": "android.service.autofill", "class_name": "FieldClassification.Match", "full_name": "android.service.autofill.FieldClassification.Match"}, {"package_name": "android.renderscript", "class_name": "FieldPacker", "full_name": "android.renderscript.FieldPacker"}, {"package_name": "java.text", "class_name": "FieldPosition", "full_name": "java.text.FieldPosition"}, {"package_name": "java.io", "class_name": "File", "full_name": "java.io.File"}, {"package_name": "java.nio.file", "class_name": "FileAlreadyExistsException", "full_name": "java.nio.file.FileAlreadyExistsException"}, {"package_name": "java.nio.file.attribute", "class_name": "FileAttributeView", "full_name": "java.nio.file.attribute.FileAttributeView"}, {"package_name": "android.app.backup", "class_name": "FileBackupHelper", "full_name": "android.app.backup.FileBackupHelper"}, {"package_name": "java.nio.channels", "class_name": "FileChannel", "full_name": "java.nio.channels.FileChannel"}, {"package_name": "java.nio.channels", "class_name": "FileChannel.MapMode", "full_name": "java.nio.channels.FileChannel.MapMode"}, {"package_name": "java.io", "class_name": "FileDescriptor", "full_name": "java.io.FileDescriptor"}, {"package_name": "java.io", "class_name": "FileFilter", "full_name": "java.io.FileFilter"}, {"package_name": "java.util.logging", "class_name": "FileHandler", "full_name": "java.util.logging.FileHandler"}, {"package_name": "android.telephony.mbms", "class_name": "FileInfo", "full_name": "android.telephony.mbms.FileInfo"}, {"package_name": "java.io", "class_name": "FileInputStream", "full_name": "java.io.FileInputStream"}, {"package_name": "java.nio.channels", "class_name": "FileLock", "full_name": "java.nio.channels.FileLock"}, {"package_name": "java.nio.channels", "class_name": "FileLockInterruptionException", "full_name": "java.nio.channels.FileLockInterruptionException"}, {"package_name": "java.io", "class_name": "FilenameFilter", "full_name": "java.io.FilenameFilter"}, {"package_name": "java.net", "class_name": "FileNameMap", "full_name": "java.net.FileNameMap"}, {"package_name": "java.io", "class_name": "FileNotFoundException", "full_name": "java.io.FileNotFoundException"}, {"package_name": "android.os", "class_name": "FileObserver", "full_name": "android.os.FileObserver"}, {"package_name": "java.io", "class_name": "FileOutputStream", "full_name": "java.io.FileOutputStream"}, {"package_name": "java.nio.file.attribute", "class_name": "FileOwnerAttributeView", "full_name": "java.nio.file.attribute.FileOwnerAttributeView"}, {"package_name": "java.io", "class_name": "FilePermission", "full_name": "java.io.FilePermission"}, {"package_name": "java.io", "class_name": "FileReader", "full_name": "java.io.FileReader"}, {"package_name": "java.nio.file", "class_name": "Files", "full_name": "java.nio.file.Files"}, {"package_name": "android.telephony.mbms", "class_name": "FileServiceInfo", "full_name": "android.telephony.mbms.FileServiceInfo"}, {"package_name": "java.nio.file", "class_name": "FileStore", "full_name": "java.nio.file.FileStore"}, {"package_name": "java.nio.file.attribute", "class_name": "FileStoreAttributeView", "full_name": "java.nio.file.attribute.FileStoreAttributeView"}, {"package_name": "java.nio.file", "class_name": "FileSystem", "full_name": "java.nio.file.FileSystem"}, {"package_name": "java.nio.file", "class_name": "FileSystemAlreadyExistsException", "full_name": "java.nio.file.FileSystemAlreadyExistsException"}, {"package_name": "java.nio.file", "class_name": "FileSystemException", "full_name": "java.nio.file.FileSystemException"}, {"package_name": "java.nio.file", "class_name": "FileSystemLoopException", "full_name": "java.nio.file.FileSystemLoopException"}, {"package_name": "java.nio.file", "class_name": "FileSystemNotFoundException", "full_name": "java.nio.file.FileSystemNotFoundException"}, {"package_name": "java.nio.file.spi", "class_name": "FileSystemProvider", "full_name": "java.nio.file.spi.FileSystemProvider"}, {"package_name": "java.nio.file", "class_name": "FileSystems", "full_name": "java.nio.file.FileSystems"}, {"package_name": "java.nio.file.attribute", "class_name": "FileTime", "full_name": "java.nio.file.attribute.FileTime"}, {"package_name": "java.nio.file.spi", "class_name": "FileTypeDetector", "full_name": "java.nio.file.spi.FileTypeDetector"}, {"package_name": "android.os", "class_name": "FileUriExposedException", "full_name": "android.os.FileUriExposedException"}, {"package_name": "android.os.strictmode", "class_name": "FileUriExposedViolation", "full_name": "android.os.strictmode.FileUriExposedViolation"}, {"package_name": "java.nio.file", "class_name": "FileVisitOption", "full_name": "java.nio.file.FileVisitOption"}, {"package_name": "java.nio.file", "class_name": "FileVisitResult", "full_name": "java.nio.file.FileVisitResult"}, {"package_name": "java.io", "class_name": "FileWriter", "full_name": "java.io.FileWriter"}, {"package_name": "android.service.autofill", "class_name": "FillCallback", "full_name": "android.service.autofill.FillCallback"}, {"package_name": "android.service.autofill", "class_name": "FillContext", "full_name": "android.service.autofill.FillContext"}, {"package_name": "android.service.autofill", "class_name": "FillEventHistory", "full_name": "android.service.autofill.FillEventHistory"}, {"package_name": "android.service.autofill", "class_name": "FillEventHistory.Event", "full_name": "android.service.autofill.FillEventHistory.Event"}, {"package_name": "android.service.autofill", "class_name": "FillRequest", "full_name": "android.service.autofill.FillRequest"}, {"package_name": "android.service.autofill", "class_name": "FillResponse", "full_name": "android.service.autofill.FillResponse"}, {"package_name": "android.service.autofill", "class_name": "FillResponse.Builder", "full_name": "android.service.autofill.FillResponse.Builder"}, {"package_name": "android.widget", "class_name": "Filter", "full_name": "android.widget.Filter"}, {"package_name": "java.util.logging", "class_name": "Filter", "full_name": "java.util.logging.Filter"}, {"package_name": "android.widget", "class_name": "Filter.FilterListener", "full_name": "android.widget.Filter.FilterListener"}, {"package_name": "android.widget", "class_name": "Filter.FilterResults", "full_name": "android.widget.Filter.FilterResults"}, {"package_name": "android.widget", "class_name": "Filterable", "full_name": "android.widget.Filterable"}, {"package_name": "java.io", "class_name": "FilterInputStream", "full_name": "java.io.FilterInputStream"}, {"package_name": "java.io", "class_name": "FilterOutputStream", "full_name": "java.io.FilterOutputStream"}, {"package_name": "android.widget", "class_name": "FilterQueryProvider", "full_name": "android.widget.FilterQueryProvider"}, {"package_name": "java.io", "class_name": "FilterReader", "full_name": "java.io.FilterReader"}, {"package_name": "java.io", "class_name": "FilterWriter", "full_name": "java.io.FilterWriter"}, {"package_name": "android.accessibilityservice", "class_name": "FingerprintGestureController", "full_name": "android.accessibilityservice.FingerprintGestureController"}, {"package_name": "android.accessibilityservice", "class_name": "FingerprintGestureController.FingerprintGestureCallback", "full_name": "android.accessibilityservice.FingerprintGestureController.FingerprintGestureCallback"}, {"package_name": "android.hardware.fingerprint", "class_name": "FingerprintManager", "full_name": "android.hardware.fingerprint.FingerprintManager"}, {"package_name": "android.hardware.fingerprint", "class_name": "FingerprintManager.AuthenticationCallback", "full_name": "android.hardware.fingerprint.FingerprintManager.AuthenticationCallback"}, {"package_name": "android.hardware.fingerprint", "class_name": "FingerprintManager.AuthenticationResult", "full_name": "android.hardware.fingerprint.FingerprintManager.AuthenticationResult"}, {"package_name": "android.hardware.fingerprint", "class_name": "FingerprintManager.CryptoObject", "full_name": "android.hardware.fingerprint.FingerprintManager.CryptoObject"}, {"package_name": "android.test", "class_name": "FlakyTest", "full_name": "android.test.FlakyTest"}, {"package_name": "java.lang", "class_name": "Float", "full_name": "java.lang.Float"}, {"package_name": "android.animation", "class_name": "FloatArrayEvaluator", "full_name": "android.animation.FloatArrayEvaluator"}, {"package_name": "java.nio", "class_name": "FloatBuffer", "full_name": "java.nio.FloatBuffer"}, {"package_name": "android.animation", "class_name": "FloatEvaluator", "full_name": "android.animation.FloatEvaluator"}, {"package_name": "android.util", "class_name": "FloatMath", "full_name": "android.util.FloatMath"}, {"package_name": "java.io", "class_name": "Flushable", "full_name": "java.io.Flushable"}, {"package_name": "android.view", "class_name": "FocusFinder", "full_name": "android.view.FocusFinder"}, {"package_name": "android.provider", "class_name": "FontRequest", "full_name": "android.provider.FontRequest"}, {"package_name": "android.provider", "class_name": "FontsContract", "full_name": "android.provider.FontsContract"}, {"package_name": "android.provider", "class_name": "FontsContract.Columns", "full_name": "android.provider.FontsContract.Columns"}, {"package_name": "android.provider", "class_name": "FontsContract.FontFamilyResult", "full_name": "android.provider.FontsContract.FontFamilyResult"}, {"package_name": "android.provider", "class_name": "FontsContract.FontInfo", "full_name": "android.provider.FontsContract.FontInfo"}, {"package_name": "android.provider", "class_name": "FontsContract.FontRequestCallback", "full_name": "android.provider.FontsContract.FontRequestCallback"}, {"package_name": "android.graphics.fonts", "class_name": "FontVariationAxis", "full_name": "android.graphics.fonts.FontVariationAxis"}, {"package_name": "android.text.style", "class_name": "ForegroundColorSpan", "full_name": "android.text.style.ForegroundColorSpan"}, {"package_name": "java.util.concurrent", "class_name": "ForkJoinPool", "full_name": "java.util.concurrent.ForkJoinPool"}, {"package_name": "java.util.concurrent", "class_name": "ForkJoinPool.ForkJoinWorkerThreadFactory", "full_name": "java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory"}, {"package_name": "java.util.concurrent", "class_name": "ForkJoinPool.ManagedBlocker", "full_name": "java.util.concurrent.ForkJoinPool.ManagedBlocker"}, {"package_name": "java.util.concurrent", "class_name": "ForkJoinWorkerThread", "full_name": "java.util.concurrent.ForkJoinWorkerThread"}, {"package_name": "java.text", "class_name": "Format", "full_name": "java.text.Format"}, {"package_name": "java.text", "class_name": "Format.Field", "full_name": "java.text.Format.Field"}, {"package_name": "android.nfc", "class_name": "FormatException", "full_name": "android.nfc.FormatException"}, {"package_name": "java.util", "class_name": "FormatFlagsConversionMismatchException", "full_name": "java.util.FormatFlagsConversionMismatchException"}, {"package_name": "java.time.format", "class_name": "FormatStyle", "full_name": "java.time.format.FormatStyle"}, {"package_name": "java.util", "class_name": "Formattable", "full_name": "java.util.Formattable"}, {"package_name": "java.util", "class_name": "FormattableFlags", "full_name": "java.util.FormattableFlags"}, {"package_name": "android.text.format", "class_name": "Formatter", "full_name": "android.text.format.Formatter"}, {"package_name": "java.util", "class_name": "Formatter", "full_name": "java.util.Formatter"}, {"package_name": "java.util.logging", "class_name": "Formatter", "full_name": "java.util.logging.Formatter"}, {"package_name": "java.util", "class_name": "Formatter.BigDecimalLayoutForm", "full_name": "java.util.Formatter.BigDecimalLayoutForm"}, {"package_name": "java.util", "class_name": "FormatterClosedException", "full_name": "java.util.FormatterClosedException"}, {"package_name": "android.app", "class_name": "Fragment", "full_name": "android.app.Fragment"}, {"package_name": "android.app", "class_name": "Fragment.InstantiationException", "full_name": "android.app.Fragment.InstantiationException"}, {"package_name": "android.app", "class_name": "Fragment.SavedState", "full_name": "android.app.Fragment.SavedState"}, {"package_name": "android.app", "class_name": "FragmentBreadCrumbs", "full_name": "android.app.FragmentBreadCrumbs"}, {"package_name": "android.app", "class_name": "FragmentBreadCrumbs.OnBreadCrumbClickListener", "full_name": "android.app.FragmentBreadCrumbs.OnBreadCrumbClickListener"}, {"package_name": "android.app", "class_name": "FragmentContainer", "full_name": "android.app.FragmentContainer"}, {"package_name": "android.app", "class_name": "FragmentController", "full_name": "android.app.FragmentController"}, {"package_name": "android.app", "class_name": "FragmentManager", "full_name": "android.app.FragmentManager"}, {"package_name": "android.app", "class_name": "FragmentManager.BackStackEntry", "full_name": "android.app.FragmentManager.BackStackEntry"}, {"package_name": "android.app", "class_name": "FragmentManager.FragmentLifecycleCallbacks", "full_name": "android.app.FragmentManager.FragmentLifecycleCallbacks"}, {"package_name": "android.app", "class_name": "FragmentManager.OnBackStackChangedListener", "full_name": "android.app.FragmentManager.OnBackStackChangedListener"}, {"package_name": "android.app", "class_name": "FragmentManagerNonConfig", "full_name": "android.app.FragmentManagerNonConfig"}, {"package_name": "android.app", "class_name": "FragmentTransaction", "full_name": "android.app.FragmentTransaction"}, {"package_name": "android.widget", "class_name": "FrameLayout", "full_name": "android.widget.FrameLayout"}, {"package_name": "android.widget", "class_name": "FrameLayout.LayoutParams", "full_name": "android.widget.FrameLayout.LayoutParams"}, {"package_name": "android.view", "class_name": "FrameMetrics", "full_name": "android.view.FrameMetrics"}, {"package_name": "android.view", "class_name": "FrameStats", "full_name": "android.view.FrameStats"}, {"package_name": "android.app.admin", "class_name": "FreezePeriod", "full_name": "android.app.admin.FreezePeriod"}, {"package_name": "android.app.backup", "class_name": "FullBackupDataOutput", "full_name": "android.app.backup.FullBackupDataOutput"}, {"package_name": "java.lang", "class_name": "FunctionalInterface", "full_name": "java.lang.FunctionalInterface"}, {"package_name": "android.widget", "class_name": "Gallery", "full_name": "android.widget.Gallery"}, {"package_name": "android.widget", "class_name": "Gallery.LayoutParams", "full_name": "android.widget.Gallery.LayoutParams"}, {"package_name": "android.telecom", "class_name": "GatewayInfo", "full_name": "android.telecom.GatewayInfo"}, {"package_name": "java.nio.channels", "class_name": "GatheringByteChannel", "full_name": "java.nio.channels.GatheringByteChannel"}, {"package_name": "javax.crypto.spec", "class_name": "GCMParameterSpec", "full_name": "javax.crypto.spec.GCMParameterSpec"}, {"package_name": "java.security", "class_name": "GeneralSecurityException", "full_name": "java.security.GeneralSecurityException"}, {"package_name": "java.lang.reflect", "class_name": "GenericArrayType", "full_name": "java.lang.reflect.GenericArrayType"}, {"package_name": "java.lang.reflect", "class_name": "GenericDeclaration", "full_name": "java.lang.reflect.GenericDeclaration"}, {"package_name": "java.lang.reflect", "class_name": "GenericSignatureFormatError", "full_name": "java.lang.reflect.GenericSignatureFormatError"}, {"package_name": "android.location", "class_name": "Geocoder", "full_name": "android.location.Geocoder"}, {"package_name": "android.webkit", "class_name": "GeolocationPermissions", "full_name": "android.webkit.GeolocationPermissions"}, {"package_name": "android.webkit", "class_name": "GeolocationPermissions.Callback", "full_name": "android.webkit.GeolocationPermissions.Callback"}, {"package_name": "android.hardware", "class_name": "GeomagneticField", "full_name": "android.hardware.GeomagneticField"}, {"package_name": "android.gesture", "class_name": "Gesture", "full_name": "android.gesture.Gesture"}, {"package_name": "android.accessibilityservice", "class_name": "GestureDescription", "full_name": "android.accessibilityservice.GestureDescription"}, {"package_name": "android.accessibilityservice", "class_name": "GestureDescription.Builder", "full_name": "android.accessibilityservice.GestureDescription.Builder"}, {"package_name": "android.accessibilityservice", "class_name": "GestureDescription.StrokeDescription", "full_name": "android.accessibilityservice.GestureDescription.StrokeDescription"}, {"package_name": "android.view", "class_name": "GestureDetector", "full_name": "android.view.GestureDetector"}, {"package_name": "android.view", "class_name": "GestureDetector.OnContextClickListener", "full_name": "android.view.GestureDetector.OnContextClickListener"}, {"package_name": "android.view", "class_name": "GestureDetector.OnDoubleTapListener", "full_name": "android.view.GestureDetector.OnDoubleTapListener"}, {"package_name": "android.view", "class_name": "GestureDetector.OnGestureListener", "full_name": "android.view.GestureDetector.OnGestureListener"}, {"package_name": "android.view", "class_name": "GestureDetector.SimpleOnGestureListener", "full_name": "android.view.GestureDetector.SimpleOnGestureListener"}, {"package_name": "android.gesture", "class_name": "GestureLibraries", "full_name": "android.gesture.GestureLibraries"}, {"package_name": "android.gesture", "class_name": "GestureLibrary", "full_name": "android.gesture.GestureLibrary"}, {"package_name": "android.gesture", "class_name": "GestureOverlayView", "full_name": "android.gesture.GestureOverlayView"}, {"package_name": "android.gesture", "class_name": "GestureOverlayView.OnGestureListener", "full_name": "android.gesture.GestureOverlayView.OnGestureListener"}, {"package_name": "android.gesture", "class_name": "GestureOverlayView.OnGesturePerformedListener", "full_name": "android.gesture.GestureOverlayView.OnGesturePerformedListener"}, {"package_name": "android.gesture", "class_name": "GestureOverlayView.OnGesturingListener", "full_name": "android.gesture.GestureOverlayView.OnGesturingListener"}, {"package_name": "android.gesture", "class_name": "GesturePoint", "full_name": "android.gesture.GesturePoint"}, {"package_name": "android.gesture", "class_name": "GestureStore", "full_name": "android.gesture.GestureStore"}, {"package_name": "android.gesture", "class_name": "GestureStroke", "full_name": "android.gesture.GestureStroke"}, {"package_name": "android.gesture", "class_name": "GestureUtils", "full_name": "android.gesture.GestureUtils"}, {"package_name": "android.text", "class_name": "GetChars", "full_name": "android.text.GetChars"}, {"package_name": "javax.microedition.khronos.opengles", "class_name": "GL", "full_name": "javax.microedition.khronos.opengles.GL"}, {"package_name": "android.opengl", "class_name": "GLDebugHelper", "full_name": "android.opengl.GLDebugHelper"}, {"package_name": "android.opengl", "class_name": "GLException", "full_name": "android.opengl.GLException"}, {"package_name": "android.opengl", "class_name": "GLSurfaceView", "full_name": "android.opengl.GLSurfaceView"}, {"package_name": "android.opengl", "class_name": "GLSurfaceView.EGLConfigChooser", "full_name": "android.opengl.GLSurfaceView.EGLConfigChooser"}, {"package_name": "android.opengl", "class_name": "GLSurfaceView.EGLContextFactory", "full_name": "android.opengl.GLSurfaceView.EGLContextFactory"}, {"package_name": "android.opengl", "class_name": "GLSurfaceView.EGLWindowSurfaceFactory", "full_name": "android.opengl.GLSurfaceView.EGLWindowSurfaceFactory"}, {"package_name": "android.opengl", "class_name": "GLSurfaceView.GLWrapper", "full_name": "android.opengl.GLSurfaceView.GLWrapper"}, {"package_name": "android.opengl", "class_name": "GLSurfaceView.Renderer", "full_name": "android.opengl.GLSurfaceView.Renderer"}, {"package_name": "android.opengl", "class_name": "GLU", "full_name": "android.opengl.GLU"}, {"package_name": "android.opengl", "class_name": "GLUtils", "full_name": "android.opengl.GLUtils"}, {"package_name": "android.location", "class_name": "GnssClock", "full_name": "android.location.GnssClock"}, {"package_name": "android.location", "class_name": "GnssMeasurement", "full_name": "android.location.GnssMeasurement"}, {"package_name": "android.location", "class_name": "GnssMeasurementsEvent", "full_name": "android.location.GnssMeasurementsEvent"}, {"package_name": "android.location", "class_name": "GnssMeasurementsEvent.Callback", "full_name": "android.location.GnssMeasurementsEvent.Callback"}, {"package_name": "android.location", "class_name": "GnssNavigationMessage", "full_name": "android.location.GnssNavigationMessage"}, {"package_name": "android.location", "class_name": "GnssNavigationMessage.Callback", "full_name": "android.location.GnssNavigationMessage.Callback"}, {"package_name": "android.location", "class_name": "GnssStatus", "full_name": "android.location.GnssStatus"}, {"package_name": "android.location", "class_name": "GnssStatus.Callback", "full_name": "android.location.GnssStatus.Callback"}, {"package_name": "android.location", "class_name": "GpsSatellite", "full_name": "android.location.GpsSatellite"}, {"package_name": "android.location", "class_name": "GpsStatus", "full_name": "android.location.GpsStatus"}, {"package_name": "android.location", "class_name": "GpsStatus.Listener", "full_name": "android.location.GpsStatus.Listener"}, {"package_name": "android.location", "class_name": "GpsStatus.NmeaListener", "full_name": "android.location.GpsStatus.NmeaListener"}, {"package_name": "android.graphics.drawable", "class_name": "GradientDrawable", "full_name": "android.graphics.drawable.GradientDrawable"}, {"package_name": "android.graphics.drawable", "class_name": "GradientDrawable.Orientation", "full_name": "android.graphics.drawable.GradientDrawable.Orientation"}, {"package_name": "android.view", "class_name": "Gravity", "full_name": "android.view.Gravity"}, {"package_name": "android.icu.util", "class_name": "GregorianCalendar", "full_name": "android.icu.util.GregorianCalendar"}, {"package_name": "java.util", "class_name": "GregorianCalendar", "full_name": "java.util.GregorianCalendar"}, {"package_name": "android.widget", "class_name": "GridLayout", "full_name": "android.widget.GridLayout"}, {"package_name": "android.widget", "class_name": "GridLayout.Alignment", "full_name": "android.widget.GridLayout.Alignment"}, {"package_name": "android.widget", "class_name": "GridLayout.LayoutParams", "full_name": "android.widget.GridLayout.LayoutParams"}, {"package_name": "android.widget", "class_name": "GridLayout.Spec", "full_name": "android.widget.GridLayout.Spec"}, {"package_name": "android.view.animation", "class_name": "GridLayoutAnimationController", "full_name": "android.view.animation.GridLayoutAnimationController"}, {"package_name": "android.view.animation", "class_name": "GridLayoutAnimationController.AnimationParameters", "full_name": "android.view.animation.GridLayoutAnimationController.AnimationParameters"}, {"package_name": "android.widget", "class_name": "GridView", "full_name": "android.widget.GridView"}, {"package_name": "java.security.acl", "class_name": "Group", "full_name": "java.security.acl.Group"}, {"package_name": "java.nio.file.attribute", "class_name": "GroupPrincipal", "full_name": "java.nio.file.attribute.GroupPrincipal"}, {"package_name": "android.telephony.gsm", "class_name": "GsmCellLocation", "full_name": "android.telephony.gsm.GsmCellLocation"}, {"package_name": "java.security", "class_name": "Guard", "full_name": "java.security.Guard"}, {"package_name": "java.security", "class_name": "GuardedObject", "full_name": "java.security.GuardedObject"}, {"package_name": "java.util.zip", "class_name": "GZIPInputStream", "full_name": "java.util.zip.GZIPInputStream"}, {"package_name": "java.util.zip", "class_name": "GZIPOutputStream", "full_name": "java.util.zip.GZIPOutputStream"}, {"package_name": "android.util", "class_name": "Half", "full_name": "android.util.Half"}, {"package_name": "android.os", "class_name": "Handler", "full_name": "android.os.Handler"}, {"package_name": "java.util.logging", "class_name": "Handler", "full_name": "java.util.logging.Handler"}, {"package_name": "android.os", "class_name": "Handler.Callback", "full_name": "android.os.Handler.Callback"}, {"package_name": "org.xml.sax", "class_name": "HandlerBase", "full_name": "org.xml.sax.HandlerBase"}, {"package_name": "android.os", "class_name": "HandlerThread", "full_name": "android.os.HandlerThread"}, {"package_name": "javax.net.ssl", "class_name": "HandshakeCompletedEvent", "full_name": "javax.net.ssl.HandshakeCompletedEvent"}, {"package_name": "javax.net.ssl", "class_name": "HandshakeCompletedListener", "full_name": "javax.net.ssl.HandshakeCompletedListener"}, {"package_name": "android.view", "class_name": "HapticFeedbackConstants", "full_name": "android.view.HapticFeedbackConstants"}, {"package_name": "android.hardware", "class_name": "HardwareBuffer", "full_name": "android.hardware.HardwareBuffer"}, {"package_name": "android.os", "class_name": "HardwarePropertiesManager", "full_name": "android.os.HardwarePropertiesManager"}, {"package_name": "android.widget", "class_name": "HeaderViewListAdapter", "full_name": "android.widget.HeaderViewListAdapter"}, {"package_name": "android.os.health", "class_name": "HealthStats", "full_name": "android.os.health.HealthStats"}, {"package_name": "android.icu.util", "class_name": "HebrewCalendar", "full_name": "android.icu.util.HebrewCalendar"}, {"package_name": "android.widget", "class_name": "HeterogeneousExpandableList", "full_name": "android.widget.HeterogeneousExpandableList"}, {"package_name": "android.text.method", "class_name": "HideReturnsTransformationMethod", "full_name": "android.text.method.HideReturnsTransformationMethod"}, {"package_name": "java.time.chrono", "class_name": "HijrahChronology", "full_name": "java.time.chrono.HijrahChronology"}, {"package_name": "java.time.chrono", "class_name": "HijrahDate", "full_name": "java.time.chrono.HijrahDate"}, {"package_name": "java.time.chrono", "class_name": "HijrahEra", "full_name": "java.time.chrono.HijrahEra"}, {"package_name": "android.widget", "class_name": "HorizontalScrollView", "full_name": "android.widget.HorizontalScrollView"}, {"package_name": "android.nfc.cardemulation", "class_name": "HostApduService", "full_name": "android.nfc.cardemulation.HostApduService"}, {"package_name": "org.apache.http.conn.scheme", "class_name": "HostNameResolver", "full_name": "org.apache.http.conn.scheme.HostNameResolver"}, {"package_name": "javax.net.ssl", "class_name": "HostnameVerifier", "full_name": "javax.net.ssl.HostnameVerifier"}, {"package_name": "android.nfc.cardemulation", "class_name": "HostNfcFService", "full_name": "android.nfc.cardemulation.HostNfcFService"}, {"package_name": "android.text", "class_name": "Html", "full_name": "android.text.Html"}, {"package_name": "android.text", "class_name": "Html.ImageGetter", "full_name": "android.text.Html.ImageGetter"}, {"package_name": "android.text", "class_name": "Html.TagHandler", "full_name": "android.text.Html.TagHandler"}, {"package_name": "android.webkit", "class_name": "HttpAuthHandler", "full_name": "android.webkit.HttpAuthHandler"}, {"package_name": "org.apache.http.params", "class_name": "HttpConnectionParams", "full_name": "org.apache.http.params.HttpConnectionParams"}, {"package_name": "java.net", "class_name": "HttpCookie", "full_name": "java.net.HttpCookie"}, {"package_name": "org.apache.http.params", "class_name": "HttpParams", "full_name": "org.apache.http.params.HttpParams"}, {"package_name": "android.net.http", "class_name": "HttpResponseCache", "full_name": "android.net.http.HttpResponseCache"}, {"package_name": "java.net", "class_name": "HttpRetryException", "full_name": "java.net.HttpRetryException"}, {"package_name": "javax.net.ssl", "class_name": "HttpsURLConnection", "full_name": "javax.net.ssl.HttpsURLConnection"}, {"package_name": "java.net", "class_name": "HttpURLConnection", "full_name": "java.net.HttpURLConnection"}, {"package_name": "android.os", "class_name": "IBinder", "full_name": "android.os.IBinder"}, {"package_name": "android.os", "class_name": "IBinder.DeathRecipient", "full_name": "android.os.IBinder.DeathRecipient"}, {"package_name": "android.telephony", "class_name": "IccOpenLogicalChannelResponse", "full_name": "android.telephony.IccOpenLogicalChannelResponse"}, {"package_name": "android.graphics.drawable", "class_name": "Icon", "full_name": "android.graphics.drawable.Icon"}, {"package_name": "android.graphics.drawable", "class_name": "Icon.OnDrawableLoadedListener", "full_name": "android.graphics.drawable.Icon.OnDrawableLoadedListener"}, {"package_name": "android.text.style", "class_name": "IconMarginSpan", "full_name": "android.text.style.IconMarginSpan"}, {"package_name": "android.icu.util", "class_name": "ICUUncheckedIOException", "full_name": "android.icu.util.ICUUncheckedIOException"}, {"package_name": "java.security", "class_name": "Identity", "full_name": "java.security.Identity"}, {"package_name": "android.net.wifi.aware", "class_name": "IdentityChangedListener", "full_name": "android.net.wifi.aware.IdentityChangedListener"}, {"package_name": "java.security", "class_name": "IdentityScope", "full_name": "java.security.IdentityScope"}, {"package_name": "java.net", "class_name": "IDN", "full_name": "java.net.IDN"}, {"package_name": "android.icu.text", "class_name": "IDNA", "full_name": "android.icu.text.IDNA"}, {"package_name": "android.icu.text", "class_name": "IDNA.Error", "full_name": "android.icu.text.IDNA.Error"}, {"package_name": "android.icu.text", "class_name": "IDNA.Info", "full_name": "android.icu.text.IDNA.Info"}, {"package_name": "android.os", "class_name": "IInterface", "full_name": "android.os.IInterface"}, {"package_name": "java.lang", "class_name": "IllegalAccessError", "full_name": "java.lang.IllegalAccessError"}, {"package_name": "java.lang", "class_name": "IllegalAccessException", "full_name": "java.lang.IllegalAccessException"}, {"package_name": "java.lang", "class_name": "IllegalArgumentException", "full_name": "java.lang.IllegalArgumentException"}, {"package_name": "java.nio.channels", "class_name": "IllegalBlockingModeException", "full_name": "java.nio.channels.IllegalBlockingModeException"}, {"package_name": "javax.crypto", "class_name": "IllegalBlockSizeException", "full_name": "javax.crypto.IllegalBlockSizeException"}, {"package_name": "java.nio.channels", "class_name": "IllegalChannelGroupException", "full_name": "java.nio.channels.IllegalChannelGroupException"}, {"package_name": "java.nio.charset", "class_name": "IllegalCharsetNameException", "full_name": "java.nio.charset.IllegalCharsetNameException"}, {"package_name": "java.util", "class_name": "IllegalFormatCodePointException", "full_name": "java.util.IllegalFormatCodePointException"}, {"package_name": "java.util", "class_name": "IllegalFormatConversionException", "full_name": "java.util.IllegalFormatConversionException"}, {"package_name": "java.util", "class_name": "IllegalFormatException", "full_name": "java.util.IllegalFormatException"}, {"package_name": "java.util", "class_name": "IllegalFormatFlagsException", "full_name": "java.util.IllegalFormatFlagsException"}, {"package_name": "java.util", "class_name": "IllegalFormatPrecisionException", "full_name": "java.util.IllegalFormatPrecisionException"}, {"package_name": "java.util", "class_name": "IllegalFormatWidthException", "full_name": "java.util.IllegalFormatWidthException"}, {"package_name": "java.lang", "class_name": "IllegalMonitorStateException", "full_name": "java.lang.IllegalMonitorStateException"}, {"package_name": "java.nio.channels", "class_name": "IllegalSelectorException", "full_name": "java.nio.channels.IllegalSelectorException"}, {"package_name": "java.lang", "class_name": "IllegalStateException", "full_name": "java.lang.IllegalStateException"}, {"package_name": "java.lang", "class_name": "IllegalThreadStateException", "full_name": "java.lang.IllegalThreadStateException"}, {"package_name": "android.icu.util", "class_name": "IllformedLocaleException", "full_name": "android.icu.util.IllformedLocaleException"}, {"package_name": "java.util", "class_name": "IllformedLocaleException", "full_name": "java.util.IllformedLocaleException"}, {"package_name": "android.media", "class_name": "Image", "full_name": "android.media.Image"}, {"package_name": "android.media", "class_name": "Image.Plane", "full_name": "android.media.Image.Plane"}, {"package_name": "android.widget", "class_name": "ImageButton", "full_name": "android.widget.ImageButton"}, {"package_name": "android.graphics", "class_name": "ImageDecoder", "full_name": "android.graphics.ImageDecoder"}, {"package_name": "android.graphics", "class_name": "ImageDecoder.DecodeException", "full_name": "android.graphics.ImageDecoder.DecodeException"}, {"package_name": "android.graphics", "class_name": "ImageDecoder.ImageInfo", "full_name": "android.graphics.ImageDecoder.ImageInfo"}, {"package_name": "android.graphics", "class_name": "ImageDecoder.OnHeaderDecodedListener", "full_name": "android.graphics.ImageDecoder.OnHeaderDecodedListener"}, {"package_name": "android.graphics", "class_name": "ImageDecoder.OnPartialImageListener", "full_name": "android.graphics.ImageDecoder.OnPartialImageListener"}, {"package_name": "android.graphics", "class_name": "ImageDecoder.Source", "full_name": "android.graphics.ImageDecoder.Source"}, {"package_name": "android.graphics", "class_name": "ImageFormat", "full_name": "android.graphics.ImageFormat"}, {"package_name": "android.media", "class_name": "ImageReader", "full_name": "android.media.ImageReader"}, {"package_name": "android.media", "class_name": "ImageReader.OnImageAvailableListener", "full_name": "android.media.ImageReader.OnImageAvailableListener"}, {"package_name": "android.text.style", "class_name": "ImageSpan", "full_name": "android.text.style.ImageSpan"}, {"package_name": "android.widget", "class_name": "ImageSwitcher", "full_name": "android.widget.ImageSwitcher"}, {"package_name": "android.service.autofill", "class_name": "ImageTransformation", "full_name": "android.service.autofill.ImageTransformation"}, {"package_name": "android.service.autofill", "class_name": "ImageTransformation.Builder", "full_name": "android.service.autofill.ImageTransformation.Builder"}, {"package_name": "android.widget", "class_name": "ImageView", "full_name": "android.widget.ImageView"}, {"package_name": "android.widget", "class_name": "ImageView.ScaleType", "full_name": "android.widget.ImageView.ScaleType"}, {"package_name": "android.media", "class_name": "ImageWriter", "full_name": "android.media.ImageWriter"}, {"package_name": "android.media", "class_name": "ImageWriter.OnImageReleasedListener", "full_name": "android.media.ImageWriter.OnImageReleasedListener"}, {"package_name": "android.telecom", "class_name": "InCallService", "full_name": "android.telecom.InCallService"}, {"package_name": "android.telecom", "class_name": "InCallService.VideoCall", "full_name": "android.telecom.InCallService.VideoCall"}, {"package_name": "android.telecom", "class_name": "InCallService.VideoCall.Callback", "full_name": "android.telecom.InCallService.VideoCall.Callback"}, {"package_name": "java.lang", "class_name": "IncompatibleClassChangeError", "full_name": "java.lang.IncompatibleClassChangeError"}, {"package_name": "java.lang.annotation", "class_name": "IncompleteAnnotationException", "full_name": "java.lang.annotation.IncompleteAnnotationException"}, {"package_name": "java.beans", "class_name": "IndexedPropertyChangeEvent", "full_name": "java.beans.IndexedPropertyChangeEvent"}, {"package_name": "java.lang", "class_name": "IndexOutOfBoundsException", "full_name": "java.lang.IndexOutOfBoundsException"}, {"package_name": "android.icu.util", "class_name": "IndianCalendar", "full_name": "android.icu.util.IndianCalendar"}, {"package_name": "java.net", "class_name": "InetAddress", "full_name": "java.net.InetAddress"}, {"package_name": "java.net", "class_name": "InetSocketAddress", "full_name": "java.net.InetSocketAddress"}, {"package_name": "android.view", "class_name": "InflateException", "full_name": "android.view.InflateException"}, {"package_name": "java.util.zip", "class_name": "Inflater", "full_name": "java.util.zip.Inflater"}, {"package_name": "java.util.zip", "class_name": "InflaterInputStream", "full_name": "java.util.zip.InflaterInputStream"}, {"package_name": "java.util.zip", "class_name": "InflaterOutputStream", "full_name": "java.util.zip.InflaterOutputStream"}, {"package_name": "java.lang.annotation", "class_name": "Inherited", "full_name": "java.lang.annotation.Inherited"}, {"package_name": "dalvik.system", "class_name": "InMemoryDexClassLoader", "full_name": "dalvik.system.InMemoryDexClassLoader"}, {"package_name": "android.view.inputmethod", "class_name": "InputBinding", "full_name": "android.view.inputmethod.InputBinding"}, {"package_name": "android.view.inputmethod", "class_name": "InputConnection", "full_name": "android.view.inputmethod.InputConnection"}, {"package_name": "android.view.inputmethod", "class_name": "InputConnectionWrapper", "full_name": "android.view.inputmethod.InputConnectionWrapper"}, {"package_name": "android.view.inputmethod", "class_name": "InputContentInfo", "full_name": "android.view.inputmethod.InputContentInfo"}, {"package_name": "android.view", "class_name": "InputDevice", "full_name": "android.view.InputDevice"}, {"package_name": "android.view", "class_name": "InputDevice.MotionRange", "full_name": "android.view.InputDevice.MotionRange"}, {"package_name": "android.view", "class_name": "InputEvent", "full_name": "android.view.InputEvent"}, {"package_name": "android.text", "class_name": "InputFilter", "full_name": "android.text.InputFilter"}, {"package_name": "android.text", "class_name": "InputFilter.AllCaps", "full_name": "android.text.InputFilter.AllCaps"}, {"package_name": "android.text", "class_name": "InputFilter.LengthFilter", "full_name": "android.text.InputFilter.LengthFilter"}, {"package_name": "android.hardware.input", "class_name": "InputManager", "full_name": "android.hardware.input.InputManager"}, {"package_name": "android.hardware.input", "class_name": "InputManager.InputDeviceListener", "full_name": "android.hardware.input.InputManager.InputDeviceListener"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethod", "full_name": "android.view.inputmethod.InputMethod"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethod.SessionCallback", "full_name": "android.view.inputmethod.InputMethod.SessionCallback"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethodInfo", "full_name": "android.view.inputmethod.InputMethodInfo"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethodManager", "full_name": "android.view.inputmethod.InputMethodManager"}, {"package_name": "android.inputmethodservice", "class_name": "InputMethodService", "full_name": "android.inputmethodservice.InputMethodService"}, {"package_name": "android.inputmethodservice", "class_name": "InputMethodService.InputMethodImpl", "full_name": "android.inputmethodservice.InputMethodService.InputMethodImpl"}, {"package_name": "android.inputmethodservice", "class_name": "InputMethodService.InputMethodSessionImpl", "full_name": "android.inputmethodservice.InputMethodService.InputMethodSessionImpl"}, {"package_name": "android.inputmethodservice", "class_name": "InputMethodService.Insets", "full_name": "android.inputmethodservice.InputMethodService.Insets"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethodSession", "full_name": "android.view.inputmethod.InputMethodSession"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethodSession.EventCallback", "full_name": "android.view.inputmethod.InputMethodSession.EventCallback"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethodSubtype", "full_name": "android.view.inputmethod.InputMethodSubtype"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethodSubtype.InputMethodSubtypeBuilder", "full_name": "android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder"}, {"package_name": "java.util", "class_name": "InputMismatchException", "full_name": "java.util.InputMismatchException"}, {"package_name": "android.view", "class_name": "InputQueue", "full_name": "android.view.InputQueue"}, {"package_name": "android.view", "class_name": "InputQueue.Callback", "full_name": "android.view.InputQueue.Callback"}, {"package_name": "org.xml.sax", "class_name": "InputSource", "full_name": "org.xml.sax.InputSource"}, {"package_name": "java.io", "class_name": "InputStream", "full_name": "java.io.InputStream"}, {"package_name": "java.io", "class_name": "InputStreamReader", "full_name": "java.io.InputStreamReader"}, {"package_name": "android.text", "class_name": "InputType", "full_name": "android.text.InputType"}, {"package_name": "android.graphics.drawable", "class_name": "InsetDrawable", "full_name": "android.graphics.drawable.InsetDrawable"}, {"package_name": "android.os.strictmode", "class_name": "InstanceCountViolation", "full_name": "android.os.strictmode.InstanceCountViolation"}, {"package_name": "java.time", "class_name": "Instant", "full_name": "java.time.Instant"}, {"package_name": "java.lang", "class_name": "InstantiationError", "full_name": "java.lang.InstantiationError"}, {"package_name": "java.lang", "class_name": "InstantiationException", "full_name": "java.lang.InstantiationException"}, {"package_name": "android.app", "class_name": "Instrumentation", "full_name": "android.app.Instrumentation"}, {"package_name": "android.app", "class_name": "Instrumentation.ActivityMonitor", "full_name": "android.app.Instrumentation.ActivityMonitor"}, {"package_name": "android.app", "class_name": "Instrumentation.ActivityResult", "full_name": "android.app.Instrumentation.ActivityResult"}, {"package_name": "android.content.pm", "class_name": "InstrumentationInfo", "full_name": "android.content.pm.InstrumentationInfo"}, {"package_name": "android.test", "class_name": "InstrumentationTestCase", "full_name": "android.test.InstrumentationTestCase"}, {"package_name": "android.test", "class_name": "InstrumentationTestRunner", "full_name": "android.test.InstrumentationTestRunner"}, {"package_name": "android.test", "class_name": "InstrumentationTestSuite", "full_name": "android.test.InstrumentationTestSuite"}, {"package_name": "android.animation", "class_name": "IntArrayEvaluator", "full_name": "android.animation.IntArrayEvaluator"}, {"package_name": "java.util.function", "class_name": "IntBinaryOperator", "full_name": "java.util.function.IntBinaryOperator"}, {"package_name": "java.nio", "class_name": "IntBuffer", "full_name": "java.nio.IntBuffer"}, {"package_name": "java.util.function", "class_name": "IntConsumer", "full_name": "java.util.function.IntConsumer"}, {"package_name": "java.lang", "class_name": "Integer", "full_name": "java.lang.Integer"}, {"package_name": "android.content", "class_name": "Intent", "full_name": "android.content.Intent"}, {"package_name": "android.content", "class_name": "Intent.FilterComparison", "full_name": "android.content.Intent.FilterComparison"}, {"package_name": "android.content", "class_name": "Intent.ShortcutIconResource", "full_name": "android.content.Intent.ShortcutIconResource"}, {"package_name": "android.content", "class_name": "IntentFilter", "full_name": "android.content.IntentFilter"}, {"package_name": "android.content", "class_name": "IntentFilter.AuthorityEntry", "full_name": "android.content.IntentFilter.AuthorityEntry"}, {"package_name": "android.content", "class_name": "IntentFilter.MalformedMimeTypeException", "full_name": "android.content.IntentFilter.MalformedMimeTypeException"}, {"package_name": "android.os.strictmode", "class_name": "IntentReceiverLeakedViolation", "full_name": "android.os.strictmode.IntentReceiverLeakedViolation"}, {"package_name": "android.content", "class_name": "IntentSender", "full_name": "android.content.IntentSender"}, {"package_name": "android.content", "class_name": "IntentSender.OnFinished", "full_name": "android.content.IntentSender.OnFinished"}, {"package_name": "android.content", "class_name": "IntentSender.SendIntentException", "full_name": "android.content.IntentSender.SendIntentException"}, {"package_name": "android.app", "class_name": "IntentService", "full_name": "android.app.IntentService"}, {"package_name": "java.net", "class_name": "InterfaceAddress", "full_name": "java.net.InterfaceAddress"}, {"package_name": "java.lang", "class_name": "InternalError", "full_name": "java.lang.InternalError"}, {"package_name": "android.graphics", "class_name": "Interpolator", "full_name": "android.graphics.Interpolator"}, {"package_name": "android.view.animation", "class_name": "Interpolator", "full_name": "android.view.animation.Interpolator"}, {"package_name": "android.graphics", "class_name": "Interpolator.Result", "full_name": "android.graphics.Interpolator.Result"}, {"package_name": "java.nio.channels", "class_name": "InterruptedByTimeoutException", "full_name": "java.nio.channels.InterruptedByTimeoutException"}, {"package_name": "java.lang", "class_name": "InterruptedException", "full_name": "java.lang.InterruptedException"}, {"package_name": "java.io", "class_name": "InterruptedIOException", "full_name": "java.io.InterruptedIOException"}, {"package_name": "java.nio.channels", "class_name": "InterruptibleChannel", "full_name": "java.nio.channels.InterruptibleChannel"}, {"package_name": "android.animation", "class_name": "IntEvaluator", "full_name": "android.animation.IntEvaluator"}, {"package_name": "java.util.function", "class_name": "IntPredicate", "full_name": "java.util.function.IntPredicate"}, {"package_name": "java.util.stream", "class_name": "IntStream", "full_name": "java.util.stream.IntStream"}, {"package_name": "java.util.stream", "class_name": "IntStream.Builder", "full_name": "java.util.stream.IntStream.Builder"}, {"package_name": "java.util", "class_name": "IntSummaryStatistics", "full_name": "java.util.IntSummaryStatistics"}, {"package_name": "java.util.function", "class_name": "IntSupplier", "full_name": "java.util.function.IntSupplier"}, {"package_name": "java.util.function", "class_name": "IntToDoubleFunction", "full_name": "java.util.function.IntToDoubleFunction"}, {"package_name": "java.util.function", "class_name": "IntToLongFunction", "full_name": "java.util.function.IntToLongFunction"}, {"package_name": "java.util.function", "class_name": "IntUnaryOperator", "full_name": "java.util.function.IntUnaryOperator"}, {"package_name": "java.security", "class_name": "InvalidAlgorithmParameterException", "full_name": "java.security.InvalidAlgorithmParameterException"}, {"package_name": "java.io", "class_name": "InvalidClassException", "full_name": "java.io.InvalidClassException"}, {"package_name": "java.security", "class_name": "InvalidKeyException", "full_name": "java.security.InvalidKeyException"}, {"package_name": "java.security.spec", "class_name": "InvalidKeySpecException", "full_name": "java.security.spec.InvalidKeySpecException"}, {"package_name": "java.nio", "class_name": "InvalidMarkException", "full_name": "java.nio.InvalidMarkException"}, {"package_name": "java.io", "class_name": "InvalidObjectException", "full_name": "java.io.InvalidObjectException"}, {"package_name": "java.security", "class_name": "InvalidParameterException", "full_name": "java.security.InvalidParameterException"}, {"package_name": "java.security.spec", "class_name": "InvalidParameterSpecException", "full_name": "java.security.spec.InvalidParameterSpecException"}, {"package_name": "java.nio.file", "class_name": "InvalidPathException", "full_name": "java.nio.file.InvalidPathException"}, {"package_name": "java.util.prefs", "class_name": "InvalidPreferencesFormatException", "full_name": "java.util.prefs.InvalidPreferencesFormatException"}, {"package_name": "java.util", "class_name": "InvalidPropertiesFormatException", "full_name": "java.util.InvalidPropertiesFormatException"}, {"package_name": "java.lang.reflect", "class_name": "InvocationHandler", "full_name": "java.lang.reflect.InvocationHandler"}, {"package_name": "java.lang.reflect", "class_name": "InvocationTargetException", "full_name": "java.lang.reflect.InvocationTargetException"}, {"package_name": "java.io", "class_name": "IOError", "full_name": "java.io.IOError"}, {"package_name": "java.io", "class_name": "IOException", "full_name": "java.io.IOException"}, {"package_name": "android.net", "class_name": "IpPrefix", "full_name": "android.net.IpPrefix"}, {"package_name": "android.net", "class_name": "IpSecAlgorithm", "full_name": "android.net.IpSecAlgorithm"}, {"package_name": "android.net", "class_name": "IpSecManager", "full_name": "android.net.IpSecManager"}, {"package_name": "android.net", "class_name": "IpSecManager.ResourceUnavailableException", "full_name": "android.net.IpSecManager.ResourceUnavailableException"}, {"package_name": "android.net", "class_name": "IpSecManager.SecurityParameterIndex", "full_name": "android.net.IpSecManager.SecurityParameterIndex"}, {"package_name": "android.net", "class_name": "IpSecManager.SpiUnavailableException", "full_name": "android.net.IpSecManager.SpiUnavailableException"}, {"package_name": "android.net", "class_name": "IpSecManager.UdpEncapsulationSocket", "full_name": "android.net.IpSecManager.UdpEncapsulationSocket"}, {"package_name": "android.net", "class_name": "IpSecTransform", "full_name": "android.net.IpSecTransform"}, {"package_name": "android.net", "class_name": "IpSecTransform.Builder", "full_name": "android.net.IpSecTransform.Builder"}, {"package_name": "android.icu.util", "class_name": "IslamicCalendar", "full_name": "android.icu.util.IslamicCalendar"}, {"package_name": "android.icu.util", "class_name": "IslamicCalendar.CalculationType", "full_name": "android.icu.util.IslamicCalendar.CalculationType"}, {"package_name": "java.time.chrono", "class_name": "IsoChronology", "full_name": "java.time.chrono.IsoChronology"}, {"package_name": "android.nfc.tech", "class_name": "IsoDep", "full_name": "android.nfc.tech.IsoDep"}, {"package_name": "java.time.chrono", "class_name": "IsoEra", "full_name": "java.time.chrono.IsoEra"}, {"package_name": "java.time.temporal", "class_name": "IsoFields", "full_name": "java.time.temporal.IsoFields"}, {"package_name": "android.test", "class_name": "IsolatedContext", "full_name": "android.test.IsolatedContext"}, {"package_name": "javax.crypto.spec", "class_name": "IvParameterSpec", "full_name": "javax.crypto.spec.IvParameterSpec"}, {"package_name": "android.icu.util", "class_name": "JapaneseCalendar", "full_name": "android.icu.util.JapaneseCalendar"}, {"package_name": "java.time.chrono", "class_name": "JapaneseChronology", "full_name": "java.time.chrono.JapaneseChronology"}, {"package_name": "java.time.chrono", "class_name": "JapaneseDate", "full_name": "java.time.chrono.JapaneseDate"}, {"package_name": "java.time.chrono", "class_name": "JapaneseEra", "full_name": "java.time.chrono.JapaneseEra"}, {"package_name": "java.util.jar", "class_name": "JarEntry", "full_name": "java.util.jar.JarEntry"}, {"package_name": "java.util.jar", "class_name": "JarException", "full_name": "java.util.jar.JarException"}, {"package_name": "java.util.jar", "class_name": "JarFile", "full_name": "java.util.jar.JarFile"}, {"package_name": "java.util.jar", "class_name": "JarInputStream", "full_name": "java.util.jar.JarInputStream"}, {"package_name": "java.util.jar", "class_name": "JarOutputStream", "full_name": "java.util.jar.JarOutputStream"}, {"package_name": "java.net", "class_name": "JarURLConnection", "full_name": "java.net.JarURLConnection"}, {"package_name": "android.webkit", "class_name": "JavascriptInterface", "full_name": "android.webkit.JavascriptInterface"}, {"package_name": "android.media", "class_name": "JetPlayer", "full_name": "android.media.JetPlayer"}, {"package_name": "android.media", "class_name": "JetPlayer.OnJetEventListener", "full_name": "android.media.JetPlayer.OnJetEventListener"}, {"package_name": "android.app.job", "class_name": "JobInfo", "full_name": "android.app.job.JobInfo"}, {"package_name": "android.app.job", "class_name": "JobInfo.Builder", "full_name": "android.app.job.JobInfo.Builder"}, {"package_name": "android.app.job", "class_name": "JobInfo.TriggerContentUri", "full_name": "android.app.job.JobInfo.TriggerContentUri"}, {"package_name": "android.app.job", "class_name": "JobParameters", "full_name": "android.app.job.JobParameters"}, {"package_name": "android.app.job", "class_name": "JobScheduler", "full_name": "android.app.job.JobScheduler"}, {"package_name": "android.app.job", "class_name": "JobService", "full_name": "android.app.job.JobService"}, {"package_name": "android.app.job", "class_name": "JobServiceEngine", "full_name": "android.app.job.JobServiceEngine"}, {"package_name": "android.app.job", "class_name": "JobWorkItem", "full_name": "android.app.job.JobWorkItem"}, {"package_name": "org.json", "class_name": "JSONArray", "full_name": "org.json.JSONArray"}, {"package_name": "org.json", "class_name": "JSONException", "full_name": "org.json.JSONException"}, {"package_name": "org.json", "class_name": "JSONObject", "full_name": "org.json.JSONObject"}, {"package_name": "android.util", "class_name": "JsonReader", "full_name": "android.util.JsonReader"}, {"package_name": "org.json", "class_name": "JSONStringer", "full_name": "org.json.JSONStringer"}, {"package_name": "android.util", "class_name": "JsonToken", "full_name": "android.util.JsonToken"}, {"package_name": "org.json", "class_name": "JSONTokener", "full_name": "org.json.JSONTokener"}, {"package_name": "android.util", "class_name": "JsonWriter", "full_name": "android.util.JsonWriter"}, {"package_name": "android.webkit", "class_name": "JsPromptResult", "full_name": "android.webkit.JsPromptResult"}, {"package_name": "android.webkit", "class_name": "JsResult", "full_name": "android.webkit.JsResult"}, {"package_name": "java.time.temporal", "class_name": "JulianFields", "full_name": "java.time.temporal.JulianFields"}, {"package_name": "java.security", "class_name": "Key", "full_name": "java.security.Key"}, {"package_name": "javax.crypto", "class_name": "KeyAgreement", "full_name": "javax.crypto.KeyAgreement"}, {"package_name": "javax.crypto", "class_name": "KeyAgreementSpi", "full_name": "javax.crypto.KeyAgreementSpi"}, {"package_name": "android.inputmethodservice", "class_name": "Keyboard", "full_name": "android.inputmethodservice.Keyboard"}, {"package_name": "android.inputmethodservice", "class_name": "Keyboard.Key", "full_name": "android.inputmethodservice.Keyboard.Key"}, {"package_name": "android.inputmethodservice", "class_name": "Keyboard.Row", "full_name": "android.inputmethodservice.Keyboard.Row"}, {"package_name": "android.view", "class_name": "KeyboardShortcutGroup", "full_name": "android.view.KeyboardShortcutGroup"}, {"package_name": "android.view", "class_name": "KeyboardShortcutInfo", "full_name": "android.view.KeyboardShortcutInfo"}, {"package_name": "android.inputmethodservice", "class_name": "KeyboardView", "full_name": "android.inputmethodservice.KeyboardView"}, {"package_name": "android.inputmethodservice", "class_name": "KeyboardView.OnKeyboardActionListener", "full_name": "android.inputmethodservice.KeyboardView.OnKeyboardActionListener"}, {"package_name": "android.security", "class_name": "KeyChain", "full_name": "android.security.KeyChain"}, {"package_name": "android.security", "class_name": "KeyChainAliasCallback", "full_name": "android.security.KeyChainAliasCallback"}, {"package_name": "android.security", "class_name": "KeyChainException", "full_name": "android.security.KeyChainException"}, {"package_name": "android.view", "class_name": "KeyCharacterMap", "full_name": "android.view.KeyCharacterMap"}, {"package_name": "android.view", "class_name": "KeyCharacterMap.KeyData", "full_name": "android.view.KeyCharacterMap.KeyData"}, {"package_name": "android.view", "class_name": "KeyCharacterMap.UnavailableException", "full_name": "android.view.KeyCharacterMap.UnavailableException"}, {"package_name": "android.view", "class_name": "KeyEvent", "full_name": "android.view.KeyEvent"}, {"package_name": "android.view", "class_name": "KeyEvent.Callback", "full_name": "android.view.KeyEvent.Callback"}, {"package_name": "android.view", "class_name": "KeyEvent.DispatcherState", "full_name": "android.view.KeyEvent.DispatcherState"}, {"package_name": "java.security", "class_name": "KeyException", "full_name": "java.security.KeyException"}, {"package_name": "android.security.keystore", "class_name": "KeyExpiredException", "full_name": "android.security.keystore.KeyExpiredException"}, {"package_name": "java.security", "class_name": "KeyFactory", "full_name": "java.security.KeyFactory"}, {"package_name": "java.security", "class_name": "KeyFactorySpi", "full_name": "java.security.KeyFactorySpi"}, {"package_name": "android.animation", "class_name": "Keyframe", "full_name": "android.animation.Keyframe"}, {"package_name": "javax.crypto", "class_name": "KeyGenerator", "full_name": "javax.crypto.KeyGenerator"}, {"package_name": "javax.crypto", "class_name": "KeyGeneratorSpi", "full_name": "javax.crypto.KeyGeneratorSpi"}, {"package_name": "android.security.keystore", "class_name": "KeyGenParameterSpec", "full_name": "android.security.keystore.KeyGenParameterSpec"}, {"package_name": "android.security.keystore", "class_name": "KeyGenParameterSpec.Builder", "full_name": "android.security.keystore.KeyGenParameterSpec.Builder"}, {"package_name": "android.app", "class_name": "KeyguardManager", "full_name": "android.app.KeyguardManager"}, {"package_name": "android.app", "class_name": "KeyguardManager.KeyguardDismissCallback", "full_name": "android.app.KeyguardManager.KeyguardDismissCallback"}, {"package_name": "android.app", "class_name": "KeyguardManager.KeyguardLock", "full_name": "android.app.KeyguardManager.KeyguardLock"}, {"package_name": "android.app", "class_name": "KeyguardManager.OnKeyguardExitResult", "full_name": "android.app.KeyguardManager.OnKeyguardExitResult"}, {"package_name": "android.security.keystore", "class_name": "KeyInfo", "full_name": "android.security.keystore.KeyInfo"}, {"package_name": "android.text.method", "class_name": "KeyListener", "full_name": "android.text.method.KeyListener"}, {"package_name": "java.security", "class_name": "KeyManagementException", "full_name": "java.security.KeyManagementException"}, {"package_name": "javax.net.ssl", "class_name": "KeyManager", "full_name": "javax.net.ssl.KeyManager"}, {"package_name": "javax.net.ssl", "class_name": "KeyManagerFactory", "full_name": "javax.net.ssl.KeyManagerFactory"}, {"package_name": "javax.net.ssl", "class_name": "KeyManagerFactorySpi", "full_name": "javax.net.ssl.KeyManagerFactorySpi"}, {"package_name": "android.security.keystore", "class_name": "KeyNotYetValidException", "full_name": "android.security.keystore.KeyNotYetValidException"}, {"package_name": "java.security", "class_name": "KeyPair", "full_name": "java.security.KeyPair"}, {"package_name": "java.security", "class_name": "KeyPairGenerator", "full_name": "java.security.KeyPairGenerator"}, {"package_name": "android.security", "class_name": "KeyPairGeneratorSpec", "full_name": "android.security.KeyPairGeneratorSpec"}, {"package_name": "android.security", "class_name": "KeyPairGeneratorSpec.Builder", "full_name": "android.security.KeyPairGeneratorSpec.Builder"}, {"package_name": "java.security", "class_name": "KeyPairGeneratorSpi", "full_name": "java.security.KeyPairGeneratorSpi"}, {"package_name": "android.security.keystore", "class_name": "KeyPermanentlyInvalidatedException", "full_name": "android.security.keystore.KeyPermanentlyInvalidatedException"}, {"package_name": "android.security.keystore", "class_name": "KeyProperties", "full_name": "android.security.keystore.KeyProperties"}, {"package_name": "android.security.keystore", "class_name": "KeyProtection", "full_name": "android.security.keystore.KeyProtection"}, {"package_name": "android.security.keystore", "class_name": "KeyProtection.Builder", "full_name": "android.security.keystore.KeyProtection.Builder"}, {"package_name": "java.security", "class_name": "KeyRep", "full_name": "java.security.KeyRep"}, {"package_name": "java.security", "class_name": "KeyRep.Type", "full_name": "java.security.KeyRep.Type"}, {"package_name": "java.security.spec", "class_name": "KeySpec", "full_name": "java.security.spec.KeySpec"}, {"package_name": "java.security", "class_name": "KeyStore", "full_name": "java.security.KeyStore"}, {"package_name": "java.security", "class_name": "KeyStore.Builder", "full_name": "java.security.KeyStore.Builder"}, {"package_name": "java.security", "class_name": "KeyStore.CallbackHandlerProtection", "full_name": "java.security.KeyStore.CallbackHandlerProtection"}, {"package_name": "java.security", "class_name": "KeyStore.Entry", "full_name": "java.security.KeyStore.Entry"}, {"package_name": "java.security", "class_name": "KeyStore.Entry.Attribute", "full_name": "java.security.KeyStore.Entry.Attribute"}, {"package_name": "java.security", "class_name": "KeyStore.LoadStoreParameter", "full_name": "java.security.KeyStore.LoadStoreParameter"}, {"package_name": "java.security", "class_name": "KeyStore.PasswordProtection", "full_name": "java.security.KeyStore.PasswordProtection"}, {"package_name": "java.security", "class_name": "KeyStore.PrivateKeyEntry", "full_name": "java.security.KeyStore.PrivateKeyEntry"}, {"package_name": "java.security", "class_name": "KeyStore.ProtectionParameter", "full_name": "java.security.KeyStore.ProtectionParameter"}, {"package_name": "java.security", "class_name": "KeyStore.SecretKeyEntry", "full_name": "java.security.KeyStore.SecretKeyEntry"}, {"package_name": "java.security", "class_name": "KeyStore.TrustedCertificateEntry", "full_name": "java.security.KeyStore.TrustedCertificateEntry"}, {"package_name": "javax.net.ssl", "class_name": "KeyStoreBuilderParameters", "full_name": "javax.net.ssl.KeyStoreBuilderParameters"}, {"package_name": "java.security", "class_name": "KeyStoreException", "full_name": "java.security.KeyStoreException"}, {"package_name": "android.security", "class_name": "KeyStoreParameter", "full_name": "android.security.KeyStoreParameter"}, {"package_name": "android.security", "class_name": "KeyStoreParameter.Builder", "full_name": "android.security.KeyStoreParameter.Builder"}, {"package_name": "java.security", "class_name": "KeyStoreSpi", "full_name": "java.security.KeyStoreSpi"}, {"package_name": "android.content.pm", "class_name": "LabeledIntent", "full_name": "android.content.pm.LabeledIntent"}, {"package_name": "java.lang.invoke", "class_name": "LambdaConversionException", "full_name": "java.lang.invoke.LambdaConversionException"}, {"package_name": "android.test.suitebuilder.annotation", "class_name": "LargeTest", "full_name": "android.test.suitebuilder.annotation.LargeTest"}, {"package_name": "java.security.acl", "class_name": "LastOwnerException", "full_name": "java.security.acl.LastOwnerException"}, {"package_name": "android.app", "class_name": "LauncherActivity", "full_name": "android.app.LauncherActivity"}, {"package_name": "android.app", "class_name": "LauncherActivity.IconResizer", "full_name": "android.app.LauncherActivity.IconResizer"}, {"package_name": "android.app", "class_name": "LauncherActivity.ListItem", "full_name": "android.app.LauncherActivity.ListItem"}, {"package_name": "android.content.pm", "class_name": "LauncherActivityInfo", "full_name": "android.content.pm.LauncherActivityInfo"}, {"package_name": "android.content.pm", "class_name": "LauncherApps", "full_name": "android.content.pm.LauncherApps"}, {"package_name": "android.content.pm", "class_name": "LauncherApps.Callback", "full_name": "android.content.pm.LauncherApps.Callback"}, {"package_name": "android.content.pm", "class_name": "LauncherApps.PinItemRequest", "full_name": "android.content.pm.LauncherApps.PinItemRequest"}, {"package_name": "android.content.pm", "class_name": "LauncherApps.ShortcutQuery", "full_name": "android.content.pm.LauncherApps.ShortcutQuery"}, {"package_name": "android.graphics.drawable", "class_name": "LayerDrawable", "full_name": "android.graphics.drawable.LayerDrawable"}, {"package_name": "org.apache.http.conn.scheme", "class_name": "LayeredSocketFactory", "full_name": "org.apache.http.conn.scheme.LayeredSocketFactory"}, {"package_name": "android.text", "class_name": "Layout", "full_name": "android.text.Layout"}, {"package_name": "android.text", "class_name": "Layout.Alignment", "full_name": "android.text.Layout.Alignment"}, {"package_name": "android.text", "class_name": "Layout.Directions", "full_name": "android.text.Layout.Directions"}, {"package_name": "android.view.animation", "class_name": "LayoutAnimationController", "full_name": "android.view.animation.LayoutAnimationController"}, {"package_name": "android.view.animation", "class_name": "LayoutAnimationController.AnimationParameters", "full_name": "android.view.animation.LayoutAnimationController.AnimationParameters"}, {"package_name": "android.util", "class_name": "LayoutDirection", "full_name": "android.util.LayoutDirection"}, {"package_name": "android.view", "class_name": "LayoutInflater", "full_name": "android.view.LayoutInflater"}, {"package_name": "android.view", "class_name": "LayoutInflater.Factory", "full_name": "android.view.LayoutInflater.Factory"}, {"package_name": "android.view", "class_name": "LayoutInflater.Filter", "full_name": "android.view.LayoutInflater.Filter"}, {"package_name": "android.animation", "class_name": "LayoutTransition", "full_name": "android.animation.LayoutTransition"}, {"package_name": "android.animation", "class_name": "LayoutTransition.TransitionListener", "full_name": "android.animation.LayoutTransition.TransitionListener"}, {"package_name": "java.security.cert", "class_name": "LDAPCertStoreParameters", "full_name": "java.security.cert.LDAPCertStoreParameters"}, {"package_name": "android.text.style", "class_name": "LeadingMarginSpan", "full_name": "android.text.style.LeadingMarginSpan"}, {"package_name": "android.text.style", "class_name": "LeadingMarginSpan.Standard", "full_name": "android.text.style.LeadingMarginSpan.Standard"}, {"package_name": "android.os.strictmode", "class_name": "LeakedClosableViolation", "full_name": "android.os.strictmode.LeakedClosableViolation"}, {"package_name": "java.util.logging", "class_name": "Level", "full_name": "java.util.logging.Level"}, {"package_name": "android.graphics.drawable", "class_name": "LevelListDrawable", "full_name": "android.graphics.drawable.LevelListDrawable"}, {"package_name": "org.xml.sax.ext", "class_name": "LexicalHandler", "full_name": "org.xml.sax.ext.LexicalHandler"}, {"package_name": "android.graphics", "class_name": "LightingColorFilter", "full_name": "android.graphics.LightingColorFilter"}, {"package_name": "android.graphics", "class_name": "LinearGradient", "full_name": "android.graphics.LinearGradient"}, {"package_name": "android.view.animation", "class_name": "LinearInterpolator", "full_name": "android.view.animation.LinearInterpolator"}, {"package_name": "android.widget", "class_name": "LinearLayout", "full_name": "android.widget.LinearLayout"}, {"package_name": "android.widget", "class_name": "LinearLayout.LayoutParams", "full_name": "android.widget.LinearLayout.LayoutParams"}, {"package_name": "android.text.style", "class_name": "LineBackgroundSpan", "full_name": "android.text.style.LineBackgroundSpan"}, {"package_name": "android.text.style", "class_name": "LineHeightSpan", "full_name": "android.text.style.LineHeightSpan"}, {"package_name": "android.text.style", "class_name": "LineHeightSpan.WithDensity", "full_name": "android.text.style.LineHeightSpan.WithDensity"}, {"package_name": "java.io", "class_name": "LineNumberInputStream", "full_name": "java.io.LineNumberInputStream"}, {"package_name": "java.io", "class_name": "LineNumberReader", "full_name": "java.io.LineNumberReader"}, {"package_name": "android.net", "class_name": "LinkAddress", "full_name": "android.net.LinkAddress"}, {"package_name": "java.lang", "class_name": "LinkageError", "full_name": "java.lang.LinkageError"}, {"package_name": "android.text.util", "class_name": "Linkify", "full_name": "android.text.util.Linkify"}, {"package_name": "android.text.util", "class_name": "Linkify.MatchFilter", "full_name": "android.text.util.Linkify.MatchFilter"}, {"package_name": "android.text.util", "class_name": "Linkify.TransformFilter", "full_name": "android.text.util.Linkify.TransformFilter"}, {"package_name": "android.text.method", "class_name": "LinkMovementMethod", "full_name": "android.text.method.LinkMovementMethod"}, {"package_name": "java.nio.file", "class_name": "LinkOption", "full_name": "java.nio.file.LinkOption"}, {"package_name": "java.nio.file", "class_name": "LinkPermission", "full_name": "java.nio.file.LinkPermission"}, {"package_name": "android.net", "class_name": "LinkProperties", "full_name": "android.net.LinkProperties"}, {"package_name": "android.app", "class_name": "ListActivity", "full_name": "android.app.ListActivity"}, {"package_name": "android.widget", "class_name": "ListAdapter", "full_name": "android.widget.ListAdapter"}, {"package_name": "android.icu.text", "class_name": "ListFormatter", "full_name": "android.icu.text.ListFormatter"}, {"package_name": "android.app", "class_name": "ListFragment", "full_name": "android.app.ListFragment"}, {"package_name": "android.widget", "class_name": "ListPopupWindow", "full_name": "android.widget.ListPopupWindow"}, {"package_name": "android.preference", "class_name": "ListPreference", "full_name": "android.preference.ListPreference"}, {"package_name": "java.util", "class_name": "ListResourceBundle", "full_name": "java.util.ListResourceBundle"}, {"package_name": "android.widget", "class_name": "ListView", "full_name": "android.widget.ListView"}, {"package_name": "android.widget", "class_name": "ListView.FixedViewInfo", "full_name": "android.widget.ListView.FixedViewInfo"}, {"package_name": "android.provider", "class_name": "LiveFolders", "full_name": "android.provider.LiveFolders"}, {"package_name": "android.content", "class_name": "Loader.ForceLoadContentObserver", "full_name": "android.content.Loader.ForceLoadContentObserver"}, {"package_name": "android.app", "class_name": "LoaderManager", "full_name": "android.app.LoaderManager"}, {"package_name": "android.test", "class_name": "LoaderTestCase", "full_name": "android.test.LoaderTestCase"}, {"package_name": "android.app", "class_name": "LocalActivityManager", "full_name": "android.app.LocalActivityManager"}, {"package_name": "java.time", "class_name": "LocalDate", "full_name": "java.time.LocalDate"}, {"package_name": "java.time", "class_name": "LocalDateTime", "full_name": "java.time.LocalDateTime"}, {"package_name": "java.util", "class_name": "Locale", "full_name": "java.util.Locale"}, {"package_name": "java.util", "class_name": "Locale.Builder", "full_name": "java.util.Locale.Builder"}, {"package_name": "java.util", "class_name": "Locale.Category", "full_name": "java.util.Locale.Category"}, {"package_name": "java.util", "class_name": "Locale.FilteringMode", "full_name": "java.util.Locale.FilteringMode"}, {"package_name": "java.util", "class_name": "Locale.LanguageRange", "full_name": "java.util.Locale.LanguageRange"}, {"package_name": "android.icu.util", "class_name": "LocaleData", "full_name": "android.icu.util.LocaleData"}, {"package_name": "android.icu.util", "class_name": "LocaleData.MeasurementSystem", "full_name": "android.icu.util.LocaleData.MeasurementSystem"}, {"package_name": "android.icu.util", "class_name": "LocaleData.PaperSize", "full_name": "android.icu.util.LocaleData.PaperSize"}, {"package_name": "android.icu.text", "class_name": "LocaleDisplayNames", "full_name": "android.icu.text.LocaleDisplayNames"}, {"package_name": "android.icu.text", "class_name": "LocaleDisplayNames.DialectHandling", "full_name": "android.icu.text.LocaleDisplayNames.DialectHandling"}, {"package_name": "android.icu.text", "class_name": "LocaleDisplayNames.UiListItem", "full_name": "android.icu.text.LocaleDisplayNames.UiListItem"}, {"package_name": "android.os", "class_name": "LocaleList", "full_name": "android.os.LocaleList"}, {"package_name": "android.text.style", "class_name": "LocaleSpan", "full_name": "android.text.style.LocaleSpan"}, {"package_name": "android.net", "class_name": "LocalServerSocket", "full_name": "android.net.LocalServerSocket"}, {"package_name": "android.net", "class_name": "LocalSocket", "full_name": "android.net.LocalSocket"}, {"package_name": "android.net", "class_name": "LocalSocketAddress", "full_name": "android.net.LocalSocketAddress"}, {"package_name": "android.net", "class_name": "LocalSocketAddress.Namespace", "full_name": "android.net.LocalSocketAddress.Namespace"}, {"package_name": "java.time", "class_name": "LocalTime", "full_name": "java.time.LocalTime"}, {"package_name": "android.location", "class_name": "Location", "full_name": "android.location.Location"}, {"package_name": "android.location", "class_name": "LocationListener", "full_name": "android.location.LocationListener"}, {"package_name": "android.location", "class_name": "LocationManager", "full_name": "android.location.LocationManager"}, {"package_name": "android.location", "class_name": "LocationProvider", "full_name": "android.location.LocationProvider"}, {"package_name": "org.xml.sax", "class_name": "Locator", "full_name": "org.xml.sax.Locator"}, {"package_name": "org.xml.sax.helpers", "class_name": "LocatorImpl", "full_name": "org.xml.sax.helpers.LocatorImpl"}, {"package_name": "java.util.concurrent.locks", "class_name": "Lock", "full_name": "java.util.concurrent.locks.Lock"}, {"package_name": "java.util.concurrent.locks", "class_name": "LockSupport", "full_name": "java.util.concurrent.locks.LockSupport"}, {"package_name": "android.util", "class_name": "Log", "full_name": "android.util.Log"}, {"package_name": "java.util.logging", "class_name": "Logger", "full_name": "java.util.logging.Logger"}, {"package_name": "java.util.logging", "class_name": "LoggingMXBean", "full_name": "java.util.logging.LoggingMXBean"}, {"package_name": "java.util.logging", "class_name": "LoggingPermission", "full_name": "java.util.logging.LoggingPermission"}, {"package_name": "javax.security.auth.login", "class_name": "LoginException", "full_name": "javax.security.auth.login.LoginException"}, {"package_name": "android.text", "class_name": "LoginFilter", "full_name": "android.text.LoginFilter"}, {"package_name": "android.text", "class_name": "LoginFilter.PasswordFilterGMail", "full_name": "android.text.LoginFilter.PasswordFilterGMail"}, {"package_name": "android.text", "class_name": "LoginFilter.UsernameFilterGeneric", "full_name": "android.text.LoginFilter.UsernameFilterGeneric"}, {"package_name": "android.text", "class_name": "LoginFilter.UsernameFilterGMail", "full_name": "android.text.LoginFilter.UsernameFilterGMail"}, {"package_name": "java.util.logging", "class_name": "LogManager", "full_name": "java.util.logging.LogManager"}, {"package_name": "android.util", "class_name": "LogPrinter", "full_name": "android.util.LogPrinter"}, {"package_name": "java.util.logging", "class_name": "LogRecord", "full_name": "java.util.logging.LogRecord"}, {"package_name": "java.lang", "class_name": "Long", "full_name": "java.lang.Long"}, {"package_name": "java.util.concurrent.atomic", "class_name": "LongAccumulator", "full_name": "java.util.concurrent.atomic.LongAccumulator"}, {"package_name": "java.util.concurrent.atomic", "class_name": "LongAdder", "full_name": "java.util.concurrent.atomic.LongAdder"}, {"package_name": "java.util.function", "class_name": "LongBinaryOperator", "full_name": "java.util.function.LongBinaryOperator"}, {"package_name": "java.nio", "class_name": "LongBuffer", "full_name": "java.nio.LongBuffer"}, {"package_name": "java.util.function", "class_name": "LongConsumer", "full_name": "java.util.function.LongConsumer"}, {"package_name": "java.util.function", "class_name": "LongPredicate", "full_name": "java.util.function.LongPredicate"}, {"package_name": "java.util.stream", "class_name": "LongStream", "full_name": "java.util.stream.LongStream"}, {"package_name": "java.util.stream", "class_name": "LongStream.Builder", "full_name": "java.util.stream.LongStream.Builder"}, {"package_name": "java.util", "class_name": "LongSummaryStatistics", "full_name": "java.util.LongSummaryStatistics"}, {"package_name": "java.util.function", "class_name": "LongSupplier", "full_name": "java.util.function.LongSupplier"}, {"package_name": "java.util.function", "class_name": "LongToDoubleFunction", "full_name": "java.util.function.LongToDoubleFunction"}, {"package_name": "java.util.function", "class_name": "LongToIntFunction", "full_name": "java.util.function.LongToIntFunction"}, {"package_name": "java.util.function", "class_name": "LongUnaryOperator", "full_name": "java.util.function.LongUnaryOperator"}, {"package_name": "android.os", "class_name": "Looper", "full_name": "android.os.Looper"}, {"package_name": "android.media.audiofx", "class_name": "LoudnessEnhancer", "full_name": "android.media.audiofx.LoudnessEnhancer"}, {"package_name": "android.service.autofill", "class_name": "LuhnChecksumValidator", "full_name": "android.service.autofill.LuhnChecksumValidator"}, {"package_name": "javax.crypto", "class_name": "Mac", "full_name": "javax.crypto.Mac"}, {"package_name": "android.net", "class_name": "MacAddress", "full_name": "android.net.MacAddress"}, {"package_name": "javax.crypto", "class_name": "MacSpi", "full_name": "javax.crypto.MacSpi"}, {"package_name": "android.widget", "class_name": "Magnifier", "full_name": "android.widget.Magnifier"}, {"package_name": "android.net", "class_name": "MailTo", "full_name": "android.net.MailTo"}, {"package_name": "java.nio.charset", "class_name": "MalformedInputException", "full_name": "java.nio.charset.MalformedInputException"}, {"package_name": "android.util", "class_name": "MalformedJsonException", "full_name": "android.util.MalformedJsonException"}, {"package_name": "java.lang.reflect", "class_name": "MalformedParameterizedTypeException", "full_name": "java.lang.reflect.MalformedParameterizedTypeException"}, {"package_name": "java.lang.reflect", "class_name": "MalformedParametersException", "full_name": "java.lang.reflect.MalformedParametersException"}, {"package_name": "java.net", "class_name": "MalformedURLException", "full_name": "java.net.MalformedURLException"}, {"package_name": "javax.net.ssl", "class_name": "ManagerFactoryParameters", "full_name": "javax.net.ssl.ManagerFactoryParameters"}, {"package_name": "android", "class_name": "Manifest", "full_name": "android.Manifest"}, {"package_name": "java.util.jar", "class_name": "Manifest", "full_name": "java.util.jar.Manifest"}, {"package_name": "android", "class_name": "Manifest.permission", "full_name": "android.Manifest.permission"}, {"package_name": "android", "class_name": "Manifest.permission_group", "full_name": "android.Manifest.permission_group"}, {"package_name": "java.nio", "class_name": "MappedByteBuffer", "full_name": "java.nio.MappedByteBuffer"}, {"package_name": "android.graphics", "class_name": "MaskFilter", "full_name": "android.graphics.MaskFilter"}, {"package_name": "android.text.style", "class_name": "MaskFilterSpan", "full_name": "android.text.style.MaskFilterSpan"}, {"package_name": "java.util.regex", "class_name": "Matcher", "full_name": "java.util.regex.Matcher"}, {"package_name": "java.util.regex", "class_name": "MatchResult", "full_name": "java.util.regex.MatchResult"}, {"package_name": "java.lang", "class_name": "Math", "full_name": "java.lang.Math"}, {"package_name": "android.icu.math", "class_name": "MathContext", "full_name": "android.icu.math.MathContext"}, {"package_name": "java.math", "class_name": "MathContext", "full_name": "java.math.MathContext"}, {"package_name": "android.graphics", "class_name": "Matrix", "full_name": "android.graphics.Matrix"}, {"package_name": "android.opengl", "class_name": "Matrix", "full_name": "android.opengl.Matrix"}, {"package_name": "android.graphics", "class_name": "Matrix.ScaleToFit", "full_name": "android.graphics.Matrix.ScaleToFit"}, {"package_name": "android.database", "class_name": "MatrixCursor", "full_name": "android.database.MatrixCursor"}, {"package_name": "android.database", "class_name": "MatrixCursor.RowBuilder", "full_name": "android.database.MatrixCursor.RowBuilder"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsDownloadReceiver", "full_name": "android.telephony.mbms.MbmsDownloadReceiver"}, {"package_name": "android.telephony", "class_name": "MbmsDownloadSession", "full_name": "android.telephony.MbmsDownloadSession"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsDownloadSessionCallback", "full_name": "android.telephony.mbms.MbmsDownloadSessionCallback"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsErrors", "full_name": "android.telephony.mbms.MbmsErrors"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsErrors.DownloadErrors", "full_name": "android.telephony.mbms.MbmsErrors.DownloadErrors"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsErrors.GeneralErrors", "full_name": "android.telephony.mbms.MbmsErrors.GeneralErrors"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsErrors.InitializationErrors", "full_name": "android.telephony.mbms.MbmsErrors.InitializationErrors"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsErrors.StreamingErrors", "full_name": "android.telephony.mbms.MbmsErrors.StreamingErrors"}, {"package_name": "android.telephony", "class_name": "MbmsStreamingSession", "full_name": "android.telephony.MbmsStreamingSession"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsStreamingSessionCallback", "full_name": "android.telephony.mbms.MbmsStreamingSessionCallback"}, {"package_name": "android.icu.util", "class_name": "Measure", "full_name": "android.icu.util.Measure"}, {"package_name": "android.icu.text", "class_name": "MeasureFormat", "full_name": "android.icu.text.MeasureFormat"}, {"package_name": "android.icu.text", "class_name": "MeasureFormat.FormatWidth", "full_name": "android.icu.text.MeasureFormat.FormatWidth"}, {"package_name": "android.icu.util", "class_name": "MeasureUnit", "full_name": "android.icu.util.MeasureUnit"}, {"package_name": "android.media", "class_name": "MediaActionSound", "full_name": "android.media.MediaActionSound"}, {"package_name": "android.media.browse", "class_name": "MediaBrowser", "full_name": "android.media.browse.MediaBrowser"}, {"package_name": "android.media.browse", "class_name": "MediaBrowser.ConnectionCallback", "full_name": "android.media.browse.MediaBrowser.ConnectionCallback"}, {"package_name": "android.media.browse", "class_name": "MediaBrowser.ItemCallback", "full_name": "android.media.browse.MediaBrowser.ItemCallback"}, {"package_name": "android.media.browse", "class_name": "MediaBrowser.MediaItem", "full_name": "android.media.browse.MediaBrowser.MediaItem"}, {"package_name": "android.media.browse", "class_name": "MediaBrowser.SubscriptionCallback", "full_name": "android.media.browse.MediaBrowser.SubscriptionCallback"}, {"package_name": "android.service.media", "class_name": "MediaBrowserService", "full_name": "android.service.media.MediaBrowserService"}, {"package_name": "android.service.media", "class_name": "MediaBrowserService.BrowserRoot", "full_name": "android.service.media.MediaBrowserService.BrowserRoot"}, {"package_name": "android.media", "class_name": "MediaCas", "full_name": "android.media.MediaCas"}, {"package_name": "android.media", "class_name": "MediaCas.EventListener", "full_name": "android.media.MediaCas.EventListener"}, {"package_name": "android.media", "class_name": "MediaCas.PluginDescriptor", "full_name": "android.media.MediaCas.PluginDescriptor"}, {"package_name": "android.media", "class_name": "MediaCas.Session", "full_name": "android.media.MediaCas.Session"}, {"package_name": "android.media", "class_name": "MediaCasException", "full_name": "android.media.MediaCasException"}, {"package_name": "android.media", "class_name": "MediaCasException.DeniedByServerException", "full_name": "android.media.MediaCasException.DeniedByServerException"}, {"package_name": "android.media", "class_name": "MediaCasException.NotProvisionedException", "full_name": "android.media.MediaCasException.NotProvisionedException"}, {"package_name": "android.media", "class_name": "MediaCasException.ResourceBusyException", "full_name": "android.media.MediaCasException.ResourceBusyException"}, {"package_name": "android.media", "class_name": "MediaCasException.UnsupportedCasException", "full_name": "android.media.MediaCasException.UnsupportedCasException"}, {"package_name": "android.media", "class_name": "MediaCasStateException", "full_name": "android.media.MediaCasStateException"}, {"package_name": "android.media", "class_name": "MediaCodec", "full_name": "android.media.MediaCodec"}, {"package_name": "android.media", "class_name": "MediaCodec.BufferInfo", "full_name": "android.media.MediaCodec.BufferInfo"}, {"package_name": "android.media", "class_name": "MediaCodec.Callback", "full_name": "android.media.MediaCodec.Callback"}, {"package_name": "android.media", "class_name": "MediaCodec.CodecException", "full_name": "android.media.MediaCodec.CodecException"}, {"package_name": "android.media", "class_name": "MediaCodec.CryptoException", "full_name": "android.media.MediaCodec.CryptoException"}, {"package_name": "android.media", "class_name": "MediaCodec.CryptoInfo", "full_name": "android.media.MediaCodec.CryptoInfo"}, {"package_name": "android.media", "class_name": "MediaCodec.CryptoInfo.Pattern", "full_name": "android.media.MediaCodec.CryptoInfo.Pattern"}, {"package_name": "android.media", "class_name": "MediaCodec.MetricsConstants", "full_name": "android.media.MediaCodec.MetricsConstants"}, {"package_name": "android.media", "class_name": "MediaCodec.OnFrameRenderedListener", "full_name": "android.media.MediaCodec.OnFrameRenderedListener"}, {"package_name": "android.media", "class_name": "MediaCodecInfo", "full_name": "android.media.MediaCodecInfo"}, {"package_name": "android.media", "class_name": "MediaCodecInfo.AudioCapabilities", "full_name": "android.media.MediaCodecInfo.AudioCapabilities"}, {"package_name": "android.media", "class_name": "MediaCodecInfo.CodecCapabilities", "full_name": "android.media.MediaCodecInfo.CodecCapabilities"}, {"package_name": "android.media", "class_name": "MediaCodecInfo.CodecProfileLevel", "full_name": "android.media.MediaCodecInfo.CodecProfileLevel"}, {"package_name": "android.media", "class_name": "MediaCodecInfo.EncoderCapabilities", "full_name": "android.media.MediaCodecInfo.EncoderCapabilities"}, {"package_name": "android.media", "class_name": "MediaCodecInfo.VideoCapabilities", "full_name": "android.media.MediaCodecInfo.VideoCapabilities"}, {"package_name": "android.media", "class_name": "MediaCodecList", "full_name": "android.media.MediaCodecList"}, {"package_name": "android.media.session", "class_name": "MediaController", "full_name": "android.media.session.MediaController"}, {"package_name": "android.widget", "class_name": "MediaController", "full_name": "android.widget.MediaController"}, {"package_name": "android.media.session", "class_name": "MediaController.Callback", "full_name": "android.media.session.MediaController.Callback"}, {"package_name": "android.widget", "class_name": "MediaController.MediaPlayerControl", "full_name": "android.widget.MediaController.MediaPlayerControl"}, {"package_name": "android.media.session", "class_name": "MediaController.PlaybackInfo", "full_name": "android.media.session.MediaController.PlaybackInfo"}, {"package_name": "android.media.session", "class_name": "MediaController.TransportControls", "full_name": "android.media.session.MediaController.TransportControls"}, {"package_name": "android.media", "class_name": "MediaCrypto", "full_name": "android.media.MediaCrypto"}, {"package_name": "android.media", "class_name": "MediaCryptoException", "full_name": "android.media.MediaCryptoException"}, {"package_name": "android.media", "class_name": "MediaDataSource", "full_name": "android.media.MediaDataSource"}, {"package_name": "android.media", "class_name": "MediaDescrambler", "full_name": "android.media.MediaDescrambler"}, {"package_name": "android.media", "class_name": "MediaDescription", "full_name": "android.media.MediaDescription"}, {"package_name": "android.media", "class_name": "MediaDescription.Builder", "full_name": "android.media.MediaDescription.Builder"}, {"package_name": "android.media", "class_name": "MediaDrm", "full_name": "android.media.MediaDrm"}, {"package_name": "android.media", "class_name": "MediaDrm.CryptoSession", "full_name": "android.media.MediaDrm.CryptoSession"}, {"package_name": "android.media", "class_name": "MediaDrm.HdcpLevel", "full_name": "android.media.MediaDrm.HdcpLevel"}, {"package_name": "android.media", "class_name": "MediaDrm.KeyRequest", "full_name": "android.media.MediaDrm.KeyRequest"}, {"package_name": "android.media", "class_name": "MediaDrm.KeyStatus", "full_name": "android.media.MediaDrm.KeyStatus"}, {"package_name": "android.media", "class_name": "MediaDrm.MediaDrmStateException", "full_name": "android.media.MediaDrm.MediaDrmStateException"}, {"package_name": "android.media", "class_name": "MediaDrm.MetricsConstants", "full_name": "android.media.MediaDrm.MetricsConstants"}, {"package_name": "android.media", "class_name": "MediaDrm.OnEventListener", "full_name": "android.media.MediaDrm.OnEventListener"}, {"package_name": "android.media", "class_name": "MediaDrm.OnExpirationUpdateListener", "full_name": "android.media.MediaDrm.OnExpirationUpdateListener"}, {"package_name": "android.media", "class_name": "MediaDrm.OnKeyStatusChangeListener", "full_name": "android.media.MediaDrm.OnKeyStatusChangeListener"}, {"package_name": "android.media", "class_name": "MediaDrm.ProvisionRequest", "full_name": "android.media.MediaDrm.ProvisionRequest"}, {"package_name": "android.media", "class_name": "MediaDrm.SecurityLevel", "full_name": "android.media.MediaDrm.SecurityLevel"}, {"package_name": "android.media", "class_name": "MediaDrmException", "full_name": "android.media.MediaDrmException"}, {"package_name": "android.media", "class_name": "MediaDrmResetException", "full_name": "android.media.MediaDrmResetException"}, {"package_name": "android.media", "class_name": "MediaExtractor", "full_name": "android.media.MediaExtractor"}, {"package_name": "android.media", "class_name": "MediaExtractor.CasInfo", "full_name": "android.media.MediaExtractor.CasInfo"}, {"package_name": "android.media", "class_name": "MediaExtractor.MetricsConstants", "full_name": "android.media.MediaExtractor.MetricsConstants"}, {"package_name": "android.media", "class_name": "MediaFormat", "full_name": "android.media.MediaFormat"}, {"package_name": "android.media", "class_name": "MediaMetadata", "full_name": "android.media.MediaMetadata"}, {"package_name": "android.media", "class_name": "MediaMetadata.Builder", "full_name": "android.media.MediaMetadata.Builder"}, {"package_name": "android.media", "class_name": "MediaMetadataEditor", "full_name": "android.media.MediaMetadataEditor"}, {"package_name": "android.media", "class_name": "MediaMetadataRetriever", "full_name": "android.media.MediaMetadataRetriever"}, {"package_name": "android.media", "class_name": "MediaMetadataRetriever.BitmapParams", "full_name": "android.media.MediaMetadataRetriever.BitmapParams"}, {"package_name": "android.media", "class_name": "MediaMuxer", "full_name": "android.media.MediaMuxer"}, {"package_name": "android.media", "class_name": "MediaMuxer.OutputFormat", "full_name": "android.media.MediaMuxer.OutputFormat"}, {"package_name": "android.media", "class_name": "MediaPlayer", "full_name": "android.media.MediaPlayer"}, {"package_name": "android.media", "class_name": "MediaPlayer.DrmInfo", "full_name": "android.media.MediaPlayer.DrmInfo"}, {"package_name": "android.media", "class_name": "MediaPlayer.MetricsConstants", "full_name": "android.media.MediaPlayer.MetricsConstants"}, {"package_name": "android.media", "class_name": "MediaPlayer.NoDrmSchemeException", "full_name": "android.media.MediaPlayer.NoDrmSchemeException"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnBufferingUpdateListener", "full_name": "android.media.MediaPlayer.OnBufferingUpdateListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnCompletionListener", "full_name": "android.media.MediaPlayer.OnCompletionListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnDrmConfigHelper", "full_name": "android.media.MediaPlayer.OnDrmConfigHelper"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnDrmInfoListener", "full_name": "android.media.MediaPlayer.OnDrmInfoListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnDrmPreparedListener", "full_name": "android.media.MediaPlayer.OnDrmPreparedListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnErrorListener", "full_name": "android.media.MediaPlayer.OnErrorListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnInfoListener", "full_name": "android.media.MediaPlayer.OnInfoListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnMediaTimeDiscontinuityListener", "full_name": "android.media.MediaPlayer.OnMediaTimeDiscontinuityListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnPreparedListener", "full_name": "android.media.MediaPlayer.OnPreparedListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnSeekCompleteListener", "full_name": "android.media.MediaPlayer.OnSeekCompleteListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnSubtitleDataListener", "full_name": "android.media.MediaPlayer.OnSubtitleDataListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnTimedMetaDataAvailableListener", "full_name": "android.media.MediaPlayer.OnTimedMetaDataAvailableListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnTimedTextListener", "full_name": "android.media.MediaPlayer.OnTimedTextListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnVideoSizeChangedListener", "full_name": "android.media.MediaPlayer.OnVideoSizeChangedListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.ProvisioningNetworkErrorException", "full_name": "android.media.MediaPlayer.ProvisioningNetworkErrorException"}, {"package_name": "android.media", "class_name": "MediaPlayer.ProvisioningServerErrorException", "full_name": "android.media.MediaPlayer.ProvisioningServerErrorException"}, {"package_name": "android.media", "class_name": "MediaPlayer.TrackInfo", "full_name": "android.media.MediaPlayer.TrackInfo"}, {"package_name": "android.media.projection", "class_name": "MediaProjection", "full_name": "android.media.projection.MediaProjection"}, {"package_name": "android.media.projection", "class_name": "MediaProjection.Callback", "full_name": "android.media.projection.MediaProjection.Callback"}, {"package_name": "android.media.projection", "class_name": "MediaProjectionManager", "full_name": "android.media.projection.MediaProjectionManager"}, {"package_name": "android.media", "class_name": "MediaRecorder", "full_name": "android.media.MediaRecorder"}, {"package_name": "android.media", "class_name": "MediaRecorder.AudioEncoder", "full_name": "android.media.MediaRecorder.AudioEncoder"}, {"package_name": "android.media", "class_name": "MediaRecorder.AudioSource", "full_name": "android.media.MediaRecorder.AudioSource"}, {"package_name": "android.media", "class_name": "MediaRecorder.MetricsConstants", "full_name": "android.media.MediaRecorder.MetricsConstants"}, {"package_name": "android.media", "class_name": "MediaRecorder.OnErrorListener", "full_name": "android.media.MediaRecorder.OnErrorListener"}, {"package_name": "android.media", "class_name": "MediaRecorder.OnInfoListener", "full_name": "android.media.MediaRecorder.OnInfoListener"}, {"package_name": "android.media", "class_name": "MediaRecorder.OutputFormat", "full_name": "android.media.MediaRecorder.OutputFormat"}, {"package_name": "android.media", "class_name": "MediaRecorder.VideoEncoder", "full_name": "android.media.MediaRecorder.VideoEncoder"}, {"package_name": "android.media", "class_name": "MediaRecorder.VideoSource", "full_name": "android.media.MediaRecorder.VideoSource"}, {"package_name": "android.app", "class_name": "MediaRouteActionProvider", "full_name": "android.app.MediaRouteActionProvider"}, {"package_name": "android.app", "class_name": "MediaRouteButton", "full_name": "android.app.MediaRouteButton"}, {"package_name": "android.media", "class_name": "MediaRouter", "full_name": "android.media.MediaRouter"}, {"package_name": "android.media", "class_name": "MediaRouter.Callback", "full_name": "android.media.MediaRouter.Callback"}, {"package_name": "android.media", "class_name": "MediaRouter.RouteCategory", "full_name": "android.media.MediaRouter.RouteCategory"}, {"package_name": "android.media", "class_name": "MediaRouter.RouteGroup", "full_name": "android.media.MediaRouter.RouteGroup"}, {"package_name": "android.media", "class_name": "MediaRouter.RouteInfo", "full_name": "android.media.MediaRouter.RouteInfo"}, {"package_name": "android.media", "class_name": "MediaRouter.SimpleCallback", "full_name": "android.media.MediaRouter.SimpleCallback"}, {"package_name": "android.media", "class_name": "MediaRouter.UserRouteInfo", "full_name": "android.media.MediaRouter.UserRouteInfo"}, {"package_name": "android.media", "class_name": "MediaRouter.VolumeCallback", "full_name": "android.media.MediaRouter.VolumeCallback"}, {"package_name": "android.media", "class_name": "MediaScannerConnection", "full_name": "android.media.MediaScannerConnection"}, {"package_name": "android.media", "class_name": "MediaScannerConnection.MediaScannerConnectionClient", "full_name": "android.media.MediaScannerConnection.MediaScannerConnectionClient"}, {"package_name": "android.media", "class_name": "MediaScannerConnection.OnScanCompletedListener", "full_name": "android.media.MediaScannerConnection.OnScanCompletedListener"}, {"package_name": "android.media.session", "class_name": "MediaSession", "full_name": "android.media.session.MediaSession"}, {"package_name": "android.media.session", "class_name": "MediaSession.Callback", "full_name": "android.media.session.MediaSession.Callback"}, {"package_name": "android.media.session", "class_name": "MediaSession.QueueItem", "full_name": "android.media.session.MediaSession.QueueItem"}, {"package_name": "android.media.session", "class_name": "MediaSession.Token", "full_name": "android.media.session.MediaSession.Token"}, {"package_name": "android.media.session", "class_name": "MediaSessionManager", "full_name": "android.media.session.MediaSessionManager"}, {"package_name": "android.media.session", "class_name": "MediaSessionManager.OnActiveSessionsChangedListener", "full_name": "android.media.session.MediaSessionManager.OnActiveSessionsChangedListener"}, {"package_name": "android.media.session", "class_name": "MediaSessionManager.RemoteUserInfo", "full_name": "android.media.session.MediaSessionManager.RemoteUserInfo"}, {"package_name": "android.provider", "class_name": "MediaStore", "full_name": "android.provider.MediaStore"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio", "full_name": "android.provider.MediaStore.Audio"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.AlbumColumns", "full_name": "android.provider.MediaStore.Audio.AlbumColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Albums", "full_name": "android.provider.MediaStore.Audio.Albums"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.ArtistColumns", "full_name": "android.provider.MediaStore.Audio.ArtistColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Artists", "full_name": "android.provider.MediaStore.Audio.Artists"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Artists.Albums", "full_name": "android.provider.MediaStore.Audio.Artists.Albums"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.AudioColumns", "full_name": "android.provider.MediaStore.Audio.AudioColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Genres", "full_name": "android.provider.MediaStore.Audio.Genres"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Genres.Members", "full_name": "android.provider.MediaStore.Audio.Genres.Members"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.GenresColumns", "full_name": "android.provider.MediaStore.Audio.GenresColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Media", "full_name": "android.provider.MediaStore.Audio.Media"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Playlists", "full_name": "android.provider.MediaStore.Audio.Playlists"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Playlists.Members", "full_name": "android.provider.MediaStore.Audio.Playlists.Members"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.PlaylistsColumns", "full_name": "android.provider.MediaStore.Audio.PlaylistsColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Radio", "full_name": "android.provider.MediaStore.Audio.Radio"}, {"package_name": "android.provider", "class_name": "MediaStore.Files", "full_name": "android.provider.MediaStore.Files"}, {"package_name": "android.provider", "class_name": "MediaStore.Files.FileColumns", "full_name": "android.provider.MediaStore.Files.FileColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Images", "full_name": "android.provider.MediaStore.Images"}, {"package_name": "android.provider", "class_name": "MediaStore.Images.ImageColumns", "full_name": "android.provider.MediaStore.Images.ImageColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Images.Media", "full_name": "android.provider.MediaStore.Images.Media"}, {"package_name": "android.provider", "class_name": "MediaStore.Images.Thumbnails", "full_name": "android.provider.MediaStore.Images.Thumbnails"}, {"package_name": "android.provider", "class_name": "MediaStore.MediaColumns", "full_name": "android.provider.MediaStore.MediaColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Video", "full_name": "android.provider.MediaStore.Video"}, {"package_name": "android.provider", "class_name": "MediaStore.Video.Media", "full_name": "android.provider.MediaStore.Video.Media"}, {"package_name": "android.provider", "class_name": "MediaStore.Video.Thumbnails", "full_name": "android.provider.MediaStore.Video.Thumbnails"}, {"package_name": "android.provider", "class_name": "MediaStore.Video.VideoColumns", "full_name": "android.provider.MediaStore.Video.VideoColumns"}, {"package_name": "android.media", "class_name": "MediaSync", "full_name": "android.media.MediaSync"}, {"package_name": "android.media", "class_name": "MediaSync.Callback", "full_name": "android.media.MediaSync.Callback"}, {"package_name": "android.media", "class_name": "MediaSync.OnErrorListener", "full_name": "android.media.MediaSync.OnErrorListener"}, {"package_name": "android.media", "class_name": "MediaSyncEvent", "full_name": "android.media.MediaSyncEvent"}, {"package_name": "android.media", "class_name": "MediaTimestamp", "full_name": "android.media.MediaTimestamp"}, {"package_name": "android.test.suitebuilder.annotation", "class_name": "MediumTest", "full_name": "android.test.suitebuilder.annotation.MediumTest"}, {"package_name": "java.lang.reflect", "class_name": "Member", "full_name": "java.lang.reflect.Member"}, {"package_name": "java.nio.channels", "class_name": "MembershipKey", "full_name": "java.nio.channels.MembershipKey"}, {"package_name": "android.os", "class_name": "MemoryFile", "full_name": "android.os.MemoryFile"}, {"package_name": "java.util.logging", "class_name": "MemoryHandler", "full_name": "java.util.logging.MemoryHandler"}, {"package_name": "android.view", "class_name": "Menu", "full_name": "android.view.Menu"}, {"package_name": "android.view", "class_name": "MenuInflater", "full_name": "android.view.MenuInflater"}, {"package_name": "android.view", "class_name": "MenuItem", "full_name": "android.view.MenuItem"}, {"package_name": "android.view", "class_name": "MenuItem.OnActionExpandListener", "full_name": "android.view.MenuItem.OnActionExpandListener"}, {"package_name": "android.view", "class_name": "MenuItem.OnMenuItemClickListener", "full_name": "android.view.MenuItem.OnMenuItemClickListener"}, {"package_name": "android.database", "class_name": "MergeCursor", "full_name": "android.database.MergeCursor"}, {"package_name": "android.os", "class_name": "Message", "full_name": "android.os.Message"}, {"package_name": "java.security", "class_name": "MessageDigest", "full_name": "java.security.MessageDigest"}, {"package_name": "java.security", "class_name": "MessageDigestSpi", "full_name": "java.security.MessageDigestSpi"}, {"package_name": "android.icu.text", "class_name": "MessageFormat", "full_name": "android.icu.text.MessageFormat"}, {"package_name": "java.text", "class_name": "MessageFormat", "full_name": "java.text.MessageFormat"}, {"package_name": "android.icu.text", "class_name": "MessageFormat.Field", "full_name": "android.icu.text.MessageFormat.Field"}, {"package_name": "java.text", "class_name": "MessageFormat.Field", "full_name": "java.text.MessageFormat.Field"}, {"package_name": "android.icu.text", "class_name": "MessagePattern", "full_name": "android.icu.text.MessagePattern"}, {"package_name": "android.icu.text", "class_name": "MessagePattern.ApostropheMode", "full_name": "android.icu.text.MessagePattern.ApostropheMode"}, {"package_name": "android.icu.text", "class_name": "MessagePattern.ArgType", "full_name": "android.icu.text.MessagePattern.ArgType"}, {"package_name": "android.icu.text", "class_name": "MessagePattern.Part", "full_name": "android.icu.text.MessagePattern.Part"}, {"package_name": "android.icu.text", "class_name": "MessagePattern.Part.Type", "full_name": "android.icu.text.MessagePattern.Part.Type"}, {"package_name": "android.service.carrier", "class_name": "MessagePdu", "full_name": "android.service.carrier.MessagePdu"}, {"package_name": "android.os", "class_name": "MessageQueue", "full_name": "android.os.MessageQueue"}, {"package_name": "android.os", "class_name": "MessageQueue.IdleHandler", "full_name": "android.os.MessageQueue.IdleHandler"}, {"package_name": "android.os", "class_name": "MessageQueue.OnFileDescriptorEventListener", "full_name": "android.os.MessageQueue.OnFileDescriptorEventListener"}, {"package_name": "android.os", "class_name": "Messenger", "full_name": "android.os.Messenger"}, {"package_name": "android.text.method", "class_name": "MetaKeyKeyListener", "full_name": "android.text.method.MetaKeyKeyListener"}, {"package_name": "java.lang.reflect", "class_name": "Method", "full_name": "java.lang.reflect.Method"}, {"package_name": "java.lang.invoke", "class_name": "MethodHandle", "full_name": "java.lang.invoke.MethodHandle"}, {"package_name": "java.lang.invoke", "class_name": "MethodHandleInfo", "full_name": "java.lang.invoke.MethodHandleInfo"}, {"package_name": "java.lang.invoke", "class_name": "MethodHandles", "full_name": "java.lang.invoke.MethodHandles"}, {"package_name": "java.lang.invoke", "class_name": "MethodHandles.Lookup", "full_name": "java.lang.invoke.MethodHandles.Lookup"}, {"package_name": "java.lang.invoke", "class_name": "MethodType", "full_name": "java.lang.invoke.MethodType"}, {"package_name": "android.text.style", "class_name": "MetricAffectingSpan", "full_name": "android.text.style.MetricAffectingSpan"}, {"package_name": "android.media", "class_name": "MicrophoneInfo", "full_name": "android.media.MicrophoneInfo"}, {"package_name": "android.media.midi", "class_name": "MidiDevice", "full_name": "android.media.midi.MidiDevice"}, {"package_name": "android.media.midi", "class_name": "MidiDevice.MidiConnection", "full_name": "android.media.midi.MidiDevice.MidiConnection"}, {"package_name": "android.media.midi", "class_name": "MidiDeviceInfo", "full_name": "android.media.midi.MidiDeviceInfo"}, {"package_name": "android.media.midi", "class_name": "MidiDeviceInfo.PortInfo", "full_name": "android.media.midi.MidiDeviceInfo.PortInfo"}, {"package_name": "android.media.midi", "class_name": "MidiDeviceService", "full_name": "android.media.midi.MidiDeviceService"}, {"package_name": "android.media.midi", "class_name": "MidiDeviceStatus", "full_name": "android.media.midi.MidiDeviceStatus"}, {"package_name": "android.media.midi", "class_name": "MidiInputPort", "full_name": "android.media.midi.MidiInputPort"}, {"package_name": "android.media.midi", "class_name": "MidiManager", "full_name": "android.media.midi.MidiManager"}, {"package_name": "android.media.midi", "class_name": "MidiManager.DeviceCallback", "full_name": "android.media.midi.MidiManager.DeviceCallback"}, {"package_name": "android.media.midi", "class_name": "MidiManager.OnDeviceOpenedListener", "full_name": "android.media.midi.MidiManager.OnDeviceOpenedListener"}, {"package_name": "android.media.midi", "class_name": "MidiOutputPort", "full_name": "android.media.midi.MidiOutputPort"}, {"package_name": "android.media.midi", "class_name": "MidiReceiver", "full_name": "android.media.midi.MidiReceiver"}, {"package_name": "android.media.midi", "class_name": "MidiSender", "full_name": "android.media.midi.MidiSender"}, {"package_name": "android.nfc.tech", "class_name": "MifareClassic", "full_name": "android.nfc.tech.MifareClassic"}, {"package_name": "android.nfc.tech", "class_name": "MifareUltralight", "full_name": "android.nfc.tech.MifareUltralight"}, {"package_name": "android.webkit", "class_name": "MimeTypeMap", "full_name": "android.webkit.MimeTypeMap"}, {"package_name": "java.time.chrono", "class_name": "MinguoChronology", "full_name": "java.time.chrono.MinguoChronology"}, {"package_name": "java.time.chrono", "class_name": "MinguoDate", "full_name": "java.time.chrono.MinguoDate"}, {"package_name": "java.time.chrono", "class_name": "MinguoEra", "full_name": "java.time.chrono.MinguoEra"}, {"package_name": "java.util", "class_name": "MissingFormatArgumentException", "full_name": "java.util.MissingFormatArgumentException"}, {"package_name": "java.util", "class_name": "MissingFormatWidthException", "full_name": "java.util.MissingFormatWidthException"}, {"package_name": "java.util", "class_name": "MissingResourceException", "full_name": "java.util.MissingResourceException"}, {"package_name": "android.test.mock", "class_name": "MockAccountManager", "full_name": "android.test.mock.MockAccountManager"}, {"package_name": "android.test.mock", "class_name": "MockApplication", "full_name": "android.test.mock.MockApplication"}, {"package_name": "android.test.mock", "class_name": "MockContentProvider", "full_name": "android.test.mock.MockContentProvider"}, {"package_name": "android.test.mock", "class_name": "MockContentResolver", "full_name": "android.test.mock.MockContentResolver"}, {"package_name": "android.test.mock", "class_name": "MockContext", "full_name": "android.test.mock.MockContext"}, {"package_name": "android.test.mock", "class_name": "MockCursor", "full_name": "android.test.mock.MockCursor"}, {"package_name": "android.test.mock", "class_name": "MockDialogInterface", "full_name": "android.test.mock.MockDialogInterface"}, {"package_name": "android.test.mock", "class_name": "MockPackageManager", "full_name": "android.test.mock.MockPackageManager"}, {"package_name": "android.test.mock", "class_name": "MockResources", "full_name": "android.test.mock.MockResources"}, {"package_name": "android.test.mock", "class_name": "MockService", "full_name": "android.test.mock.MockService"}, {"package_name": "java.lang.reflect", "class_name": "Modifier", "full_name": "java.lang.reflect.Modifier"}, {"package_name": "java.time", "class_name": "Month", "full_name": "java.time.Month"}, {"package_name": "java.time", "class_name": "MonthDay", "full_name": "java.time.MonthDay"}, {"package_name": "android.util", "class_name": "MonthDisplayHelper", "full_name": "android.util.MonthDisplayHelper"}, {"package_name": "android.test", "class_name": "MoreAsserts", "full_name": "android.test.MoreAsserts"}, {"package_name": "android.view", "class_name": "MotionEvent", "full_name": "android.view.MotionEvent"}, {"package_name": "android.view", "class_name": "MotionEvent.PointerCoords", "full_name": "android.view.MotionEvent.PointerCoords"}, {"package_name": "android.view", "class_name": "MotionEvent.PointerProperties", "full_name": "android.view.MotionEvent.PointerProperties"}, {"package_name": "android.text.method", "class_name": "MovementMethod", "full_name": "android.text.method.MovementMethod"}, {"package_name": "android.graphics", "class_name": "Movie", "full_name": "android.graphics.Movie"}, {"package_name": "android.mtp", "class_name": "MtpConstants", "full_name": "android.mtp.MtpConstants"}, {"package_name": "android.mtp", "class_name": "MtpDevice", "full_name": "android.mtp.MtpDevice"}, {"package_name": "android.mtp", "class_name": "MtpDeviceInfo", "full_name": "android.mtp.MtpDeviceInfo"}, {"package_name": "android.mtp", "class_name": "MtpEvent", "full_name": "android.mtp.MtpEvent"}, {"package_name": "android.mtp", "class_name": "MtpObjectInfo", "full_name": "android.mtp.MtpObjectInfo"}, {"package_name": "android.mtp", "class_name": "MtpObjectInfo.Builder", "full_name": "android.mtp.MtpObjectInfo.Builder"}, {"package_name": "android.mtp", "class_name": "MtpStorageInfo", "full_name": "android.mtp.MtpStorageInfo"}, {"package_name": "android.widget", "class_name": "MultiAutoCompleteTextView", "full_name": "android.widget.MultiAutoCompleteTextView"}, {"package_name": "android.widget", "class_name": "MultiAutoCompleteTextView.CommaTokenizer", "full_name": "android.widget.MultiAutoCompleteTextView.CommaTokenizer"}, {"package_name": "android.widget", "class_name": "MultiAutoCompleteTextView.Tokenizer", "full_name": "android.widget.MultiAutoCompleteTextView.Tokenizer"}, {"package_name": "java.nio.channels", "class_name": "MulticastChannel", "full_name": "java.nio.channels.MulticastChannel"}, {"package_name": "java.net", "class_name": "MulticastSocket", "full_name": "java.net.MulticastSocket"}, {"package_name": "android.preference", "class_name": "MultiSelectListPreference", "full_name": "android.preference.MultiSelectListPreference"}, {"package_name": "android.text.method", "class_name": "MultiTapKeyListener", "full_name": "android.text.method.MultiTapKeyListener"}, {"package_name": "android.util", "class_name": "MutableBoolean", "full_name": "android.util.MutableBoolean"}, {"package_name": "android.util", "class_name": "MutableByte", "full_name": "android.util.MutableByte"}, {"package_name": "java.lang.invoke", "class_name": "MutableCallSite", "full_name": "java.lang.invoke.MutableCallSite"}, {"package_name": "android.util", "class_name": "MutableChar", "full_name": "android.util.MutableChar"}, {"package_name": "android.content", "class_name": "MutableContextWrapper", "full_name": "android.content.MutableContextWrapper"}, {"package_name": "android.util", "class_name": "MutableDouble", "full_name": "android.util.MutableDouble"}, {"package_name": "android.util", "class_name": "MutableFloat", "full_name": "android.util.MutableFloat"}, {"package_name": "android.util", "class_name": "MutableInt", "full_name": "android.util.MutableInt"}, {"package_name": "android.util", "class_name": "MutableLong", "full_name": "android.util.MutableLong"}, {"package_name": "android.util", "class_name": "MutableShort", "full_name": "android.util.MutableShort"}, {"package_name": "javax.xml.namespace", "class_name": "NamespaceContext", "full_name": "javax.xml.namespace.NamespaceContext"}, {"package_name": "org.xml.sax.helpers", "class_name": "NamespaceSupport", "full_name": "org.xml.sax.helpers.NamespaceSupport"}, {"package_name": "java.lang.annotation", "class_name": "Native", "full_name": "java.lang.annotation.Native"}, {"package_name": "android.app", "class_name": "NativeActivity", "full_name": "android.app.NativeActivity"}, {"package_name": "java.sql", "class_name": "NClob", "full_name": "java.sql.NClob"}, {"package_name": "android.nfc.tech", "class_name": "Ndef", "full_name": "android.nfc.tech.Ndef"}, {"package_name": "android.nfc.tech", "class_name": "NdefFormatable", "full_name": "android.nfc.tech.NdefFormatable"}, {"package_name": "android.nfc", "class_name": "NdefMessage", "full_name": "android.nfc.NdefMessage"}, {"package_name": "android.nfc", "class_name": "NdefRecord", "full_name": "android.nfc.NdefRecord"}, {"package_name": "java.lang", "class_name": "NegativeArraySizeException", "full_name": "java.lang.NegativeArraySizeException"}, {"package_name": "android.telephony", "class_name": "NeighboringCellInfo", "full_name": "android.telephony.NeighboringCellInfo"}, {"package_name": "java.net", "class_name": "NetPermission", "full_name": "java.net.NetPermission"}, {"package_name": "android.net", "class_name": "Network", "full_name": "android.net.Network"}, {"package_name": "android.net", "class_name": "NetworkCapabilities", "full_name": "android.net.NetworkCapabilities"}, {"package_name": "java.nio.channels", "class_name": "NetworkChannel", "full_name": "java.nio.channels.NetworkChannel"}, {"package_name": "android.accounts", "class_name": "NetworkErrorException", "full_name": "android.accounts.NetworkErrorException"}, {"package_name": "android.app.admin", "class_name": "NetworkEvent", "full_name": "android.app.admin.NetworkEvent"}, {"package_name": "android.net", "class_name": "NetworkInfo", "full_name": "android.net.NetworkInfo"}, {"package_name": "android.net", "class_name": "NetworkInfo.DetailedState", "full_name": "android.net.NetworkInfo.DetailedState"}, {"package_name": "android.net", "class_name": "NetworkInfo.State", "full_name": "android.net.NetworkInfo.State"}, {"package_name": "java.net", "class_name": "NetworkInterface", "full_name": "java.net.NetworkInterface"}, {"package_name": "android.os", "class_name": "NetworkOnMainThreadException", "full_name": "android.os.NetworkOnMainThreadException"}, {"package_name": "android.net", "class_name": "NetworkRequest", "full_name": "android.net.NetworkRequest"}, {"package_name": "android.net", "class_name": "NetworkRequest.Builder", "full_name": "android.net.NetworkRequest.Builder"}, {"package_name": "android.telephony", "class_name": "NetworkScan", "full_name": "android.telephony.NetworkScan"}, {"package_name": "android.telephony", "class_name": "NetworkScanRequest", "full_name": "android.telephony.NetworkScanRequest"}, {"package_name": "android.security", "class_name": "NetworkSecurityPolicy", "full_name": "android.security.NetworkSecurityPolicy"}, {"package_name": "android.net", "class_name": "NetworkSpecifier", "full_name": "android.net.NetworkSpecifier"}, {"package_name": "android.app.usage", "class_name": "NetworkStats", "full_name": "android.app.usage.NetworkStats"}, {"package_name": "android.app.usage", "class_name": "NetworkStats.Bucket", "full_name": "android.app.usage.NetworkStats.Bucket"}, {"package_name": "android.app.usage", "class_name": "NetworkStatsManager", "full_name": "android.app.usage.NetworkStatsManager"}, {"package_name": "android.app.usage", "class_name": "NetworkStatsManager.UsageCallback", "full_name": "android.app.usage.NetworkStatsManager.UsageCallback"}, {"package_name": "android.os.strictmode", "class_name": "NetworkViolation", "full_name": "android.os.strictmode.NetworkViolation"}, {"package_name": "android.nfc.tech", "class_name": "NfcA", "full_name": "android.nfc.tech.NfcA"}, {"package_name": "android.nfc", "class_name": "NfcAdapter", "full_name": "android.nfc.NfcAdapter"}, {"package_name": "android.nfc", "class_name": "NfcAdapter.CreateBeamUrisCallback", "full_name": "android.nfc.NfcAdapter.CreateBeamUrisCallback"}, {"package_name": "android.nfc", "class_name": "NfcAdapter.CreateNdefMessageCallback", "full_name": "android.nfc.NfcAdapter.CreateNdefMessageCallback"}, {"package_name": "android.nfc", "class_name": "NfcAdapter.OnNdefPushCompleteCallback", "full_name": "android.nfc.NfcAdapter.OnNdefPushCompleteCallback"}, {"package_name": "android.nfc", "class_name": "NfcAdapter.OnTagRemovedListener", "full_name": "android.nfc.NfcAdapter.OnTagRemovedListener"}, {"package_name": "android.nfc", "class_name": "NfcAdapter.ReaderCallback", "full_name": "android.nfc.NfcAdapter.ReaderCallback"}, {"package_name": "android.nfc.tech", "class_name": "NfcB", "full_name": "android.nfc.tech.NfcB"}, {"package_name": "android.nfc.tech", "class_name": "NfcBarcode", "full_name": "android.nfc.tech.NfcBarcode"}, {"package_name": "android.nfc", "class_name": "NfcEvent", "full_name": "android.nfc.NfcEvent"}, {"package_name": "android.nfc.tech", "class_name": "NfcF", "full_name": "android.nfc.tech.NfcF"}, {"package_name": "android.nfc.cardemulation", "class_name": "NfcFCardEmulation", "full_name": "android.nfc.cardemulation.NfcFCardEmulation"}, {"package_name": "android.nfc", "class_name": "NfcManager", "full_name": "android.nfc.NfcManager"}, {"package_name": "android.nfc.tech", "class_name": "NfcV", "full_name": "android.nfc.tech.NfcV"}, {"package_name": "android.graphics", "class_name": "NinePatch", "full_name": "android.graphics.NinePatch"}, {"package_name": "android.graphics.drawable", "class_name": "NinePatchDrawable", "full_name": "android.graphics.drawable.NinePatchDrawable"}, {"package_name": "java.lang", "class_name": "NoClassDefFoundError", "full_name": "java.lang.NoClassDefFoundError"}, {"package_name": "java.nio.channels", "class_name": "NoConnectionPendingException", "full_name": "java.nio.channels.NoConnectionPendingException"}, {"package_name": "android.text", "class_name": "NoCopySpan", "full_name": "android.text.NoCopySpan"}, {"package_name": "android.text", "class_name": "NoCopySpan.Concrete", "full_name": "android.text.NoCopySpan.Concrete"}, {"package_name": "java.util.prefs", "class_name": "NodeChangeEvent", "full_name": "java.util.prefs.NodeChangeEvent"}, {"package_name": "java.util.prefs", "class_name": "NodeChangeListener", "full_name": "java.util.prefs.NodeChangeListener"}, {"package_name": "android.media.audiofx", "class_name": "NoiseSuppressor", "full_name": "android.media.audiofx.NoiseSuppressor"}, {"package_name": "java.nio.channels", "class_name": "NonReadableChannelException", "full_name": "java.nio.channels.NonReadableChannelException"}, {"package_name": "android.os.strictmode", "class_name": "NonSdkApiUsedViolation", "full_name": "android.os.strictmode.NonSdkApiUsedViolation"}, {"package_name": "java.nio.channels", "class_name": "NonWritableChannelException", "full_name": "java.nio.channels.NonWritableChannelException"}, {"package_name": "android.icu.text", "class_name": "Normalizer", "full_name": "android.icu.text.Normalizer"}, {"package_name": "java.text", "class_name": "Normalizer", "full_name": "java.text.Normalizer"}, {"package_name": "java.text", "class_name": "Normalizer.Form", "full_name": "java.text.Normalizer.Form"}, {"package_name": "android.icu.text", "class_name": "Normalizer.QuickCheckResult", "full_name": "android.icu.text.Normalizer.QuickCheckResult"}, {"package_name": "java.net", "class_name": "NoRouteToHostException", "full_name": "java.net.NoRouteToHostException"}, {"package_name": "java.security", "class_name": "NoSuchAlgorithmException", "full_name": "java.security.NoSuchAlgorithmException"}, {"package_name": "java.util", "class_name": "NoSuchElementException", "full_name": "java.util.NoSuchElementException"}, {"package_name": "java.lang", "class_name": "NoSuchFieldError", "full_name": "java.lang.NoSuchFieldError"}, {"package_name": "java.lang", "class_name": "NoSuchFieldException", "full_name": "java.lang.NoSuchFieldException"}, {"package_name": "java.nio.file", "class_name": "NoSuchFileException", "full_name": "java.nio.file.NoSuchFileException"}, {"package_name": "java.lang", "class_name": "NoSuchMethodError", "full_name": "java.lang.NoSuchMethodError"}, {"package_name": "java.lang", "class_name": "NoSuchMethodException", "full_name": "java.lang.NoSuchMethodException"}, {"package_name": "javax.crypto", "class_name": "NoSuchPaddingException", "full_name": "javax.crypto.NoSuchPaddingException"}, {"package_name": "android.util", "class_name": "NoSuchPropertyException", "full_name": "android.util.NoSuchPropertyException"}, {"package_name": "java.security", "class_name": "NoSuchProviderException", "full_name": "java.security.NoSuchProviderException"}, {"package_name": "java.io", "class_name": "NotActiveException", "full_name": "java.io.NotActiveException"}, {"package_name": "java.nio.file", "class_name": "NotDirectoryException", "full_name": "java.nio.file.NotDirectoryException"}, {"package_name": "android.app", "class_name": "Notification", "full_name": "android.app.Notification"}, {"package_name": "android.app", "class_name": "Notification.Action", "full_name": "android.app.Notification.Action"}, {"package_name": "android.app", "class_name": "Notification.Action.Builder", "full_name": "android.app.Notification.Action.Builder"}, {"package_name": "android.app", "class_name": "Notification.Action.Extender", "full_name": "android.app.Notification.Action.Extender"}, {"package_name": "android.app", "class_name": "Notification.Action.WearableExtender", "full_name": "android.app.Notification.Action.WearableExtender"}, {"package_name": "android.app", "class_name": "Notification.BigPictureStyle", "full_name": "android.app.Notification.BigPictureStyle"}, {"package_name": "android.app", "class_name": "Notification.BigTextStyle", "full_name": "android.app.Notification.BigTextStyle"}, {"package_name": "android.app", "class_name": "Notification.Builder", "full_name": "android.app.Notification.Builder"}, {"package_name": "android.app", "class_name": "Notification.CarExtender", "full_name": "android.app.Notification.CarExtender"}, {"package_name": "android.app", "class_name": "Notification.CarExtender.Builder", "full_name": "android.app.Notification.CarExtender.Builder"}, {"package_name": "android.app", "class_name": "Notification.CarExtender.UnreadConversation", "full_name": "android.app.Notification.CarExtender.UnreadConversation"}, {"package_name": "android.app", "class_name": "Notification.DecoratedCustomViewStyle", "full_name": "android.app.Notification.DecoratedCustomViewStyle"}, {"package_name": "android.app", "class_name": "Notification.DecoratedMediaCustomViewStyle", "full_name": "android.app.Notification.DecoratedMediaCustomViewStyle"}, {"package_name": "android.app", "class_name": "Notification.Extender", "full_name": "android.app.Notification.Extender"}, {"package_name": "android.app", "class_name": "Notification.InboxStyle", "full_name": "android.app.Notification.InboxStyle"}, {"package_name": "android.app", "class_name": "Notification.MediaStyle", "full_name": "android.app.Notification.MediaStyle"}, {"package_name": "android.app", "class_name": "Notification.MessagingStyle", "full_name": "android.app.Notification.MessagingStyle"}, {"package_name": "android.app", "class_name": "Notification.MessagingStyle.Message", "full_name": "android.app.Notification.MessagingStyle.Message"}, {"package_name": "android.app", "class_name": "Notification.Style", "full_name": "android.app.Notification.Style"}, {"package_name": "android.app", "class_name": "Notification.WearableExtender", "full_name": "android.app.Notification.WearableExtender"}, {"package_name": "android.app", "class_name": "NotificationChannel", "full_name": "android.app.NotificationChannel"}, {"package_name": "android.app", "class_name": "NotificationChannelGroup", "full_name": "android.app.NotificationChannelGroup"}, {"package_name": "android.service.notification", "class_name": "NotificationListenerService", "full_name": "android.service.notification.NotificationListenerService"}, {"package_name": "android.service.notification", "class_name": "NotificationListenerService.Ranking", "full_name": "android.service.notification.NotificationListenerService.Ranking"}, {"package_name": "android.service.notification", "class_name": "NotificationListenerService.RankingMap", "full_name": "android.service.notification.NotificationListenerService.RankingMap"}, {"package_name": "android.app", "class_name": "NotificationManager", "full_name": "android.app.NotificationManager"}, {"package_name": "android.app", "class_name": "NotificationManager.Policy", "full_name": "android.app.NotificationManager.Policy"}, {"package_name": "java.nio.file", "class_name": "NotLinkException", "full_name": "java.nio.file.NotLinkException"}, {"package_name": "java.security.acl", "class_name": "NotOwnerException", "full_name": "java.security.acl.NotOwnerException"}, {"package_name": "android.media", "class_name": "NotProvisionedException", "full_name": "android.media.NotProvisionedException"}, {"package_name": "java.io", "class_name": "NotSerializableException", "full_name": "java.io.NotSerializableException"}, {"package_name": "java.nio.channels", "class_name": "NotYetBoundException", "full_name": "java.nio.channels.NotYetBoundException"}, {"package_name": "java.nio.channels", "class_name": "NotYetConnectedException", "full_name": "java.nio.channels.NotYetConnectedException"}, {"package_name": "android.net.nsd", "class_name": "NsdManager", "full_name": "android.net.nsd.NsdManager"}, {"package_name": "android.net.nsd", "class_name": "NsdManager.DiscoveryListener", "full_name": "android.net.nsd.NsdManager.DiscoveryListener"}, {"package_name": "android.net.nsd", "class_name": "NsdManager.RegistrationListener", "full_name": "android.net.nsd.NsdManager.RegistrationListener"}, {"package_name": "android.net.nsd", "class_name": "NsdManager.ResolveListener", "full_name": "android.net.nsd.NsdManager.ResolveListener"}, {"package_name": "android.net.nsd", "class_name": "NsdServiceInfo", "full_name": "android.net.nsd.NsdServiceInfo"}, {"package_name": "javax.crypto", "class_name": "NullCipher", "full_name": "javax.crypto.NullCipher"}, {"package_name": "java.lang", "class_name": "NullPointerException", "full_name": "java.lang.NullPointerException"}, {"package_name": "java.lang", "class_name": "Number", "full_name": "java.lang.Number"}, {"package_name": "android.icu.text", "class_name": "NumberFormat", "full_name": "android.icu.text.NumberFormat"}, {"package_name": "java.text", "class_name": "NumberFormat", "full_name": "java.text.NumberFormat"}, {"package_name": "android.icu.text", "class_name": "NumberFormat.Field", "full_name": "android.icu.text.NumberFormat.Field"}, {"package_name": "java.text", "class_name": "NumberFormat.Field", "full_name": "java.text.NumberFormat.Field"}, {"package_name": "java.lang", "class_name": "NumberFormatException", "full_name": "java.lang.NumberFormatException"}, {"package_name": "android.icu.text", "class_name": "NumberingSystem", "full_name": "android.icu.text.NumberingSystem"}, {"package_name": "android.text.method", "class_name": "NumberKeyListener", "full_name": "android.text.method.NumberKeyListener"}, {"package_name": "android.widget", "class_name": "NumberPicker", "full_name": "android.widget.NumberPicker"}, {"package_name": "android.widget", "class_name": "NumberPicker.Formatter", "full_name": "android.widget.NumberPicker.Formatter"}, {"package_name": "android.widget", "class_name": "NumberPicker.OnScrollListener", "full_name": "android.widget.NumberPicker.OnScrollListener"}, {"package_name": "android.widget", "class_name": "NumberPicker.OnValueChangeListener", "full_name": "android.widget.NumberPicker.OnValueChangeListener"}, {"package_name": "java.awt.font", "class_name": "NumericShaper", "full_name": "java.awt.font.NumericShaper"}, {"package_name": "java.awt.font", "class_name": "NumericShaper.Range", "full_name": "java.awt.font.NumericShaper.Range"}, {"package_name": "javax.crypto.spec", "class_name": "OAEPParameterSpec", "full_name": "javax.crypto.spec.OAEPParameterSpec"}, {"package_name": "android.content.res", "class_name": "ObbInfo", "full_name": "android.content.res.ObbInfo"}, {"package_name": "android.content.res", "class_name": "ObbScanner", "full_name": "android.content.res.ObbScanner"}, {"package_name": "java.lang", "class_name": "Object", "full_name": "java.lang.Object"}, {"package_name": "android.animation", "class_name": "ObjectAnimator", "full_name": "android.animation.ObjectAnimator"}, {"package_name": "java.io", "class_name": "ObjectInput", "full_name": "java.io.ObjectInput"}, {"package_name": "java.io", "class_name": "ObjectInputStream", "full_name": "java.io.ObjectInputStream"}, {"package_name": "java.io", "class_name": "ObjectInputStream.GetField", "full_name": "java.io.ObjectInputStream.GetField"}, {"package_name": "java.io", "class_name": "ObjectInputValidation", "full_name": "java.io.ObjectInputValidation"}, {"package_name": "java.io", "class_name": "ObjectOutput", "full_name": "java.io.ObjectOutput"}, {"package_name": "java.io", "class_name": "ObjectOutputStream", "full_name": "java.io.ObjectOutputStream"}, {"package_name": "java.io", "class_name": "ObjectOutputStream.PutField", "full_name": "java.io.ObjectOutputStream.PutField"}, {"package_name": "java.util", "class_name": "Objects", "full_name": "java.util.Objects"}, {"package_name": "java.io", "class_name": "ObjectStreamClass", "full_name": "java.io.ObjectStreamClass"}, {"package_name": "java.io", "class_name": "ObjectStreamConstants", "full_name": "java.io.ObjectStreamConstants"}, {"package_name": "java.io", "class_name": "ObjectStreamException", "full_name": "java.io.ObjectStreamException"}, {"package_name": "java.io", "class_name": "ObjectStreamField", "full_name": "java.io.ObjectStreamField"}, {"package_name": "java.util", "class_name": "Observable", "full_name": "java.util.Observable"}, {"package_name": "java.util", "class_name": "Observer", "full_name": "java.util.Observer"}, {"package_name": "android.nfc.cardemulation", "class_name": "OffHostApduService", "full_name": "android.nfc.cardemulation.OffHostApduService"}, {"package_name": "java.time", "class_name": "OffsetDateTime", "full_name": "java.time.OffsetDateTime"}, {"package_name": "java.time", "class_name": "OffsetTime", "full_name": "java.time.OffsetTime"}, {"package_name": "android.accounts", "class_name": "OnAccountsUpdateListener", "full_name": "android.accounts.OnAccountsUpdateListener"}, {"package_name": "android.location", "class_name": "OnNmeaMessageListener", "full_name": "android.location.OnNmeaMessageListener"}, {"package_name": "android.os.storage", "class_name": "OnObbStateChangeListener", "full_name": "android.os.storage.OnObbStateChangeListener"}, {"package_name": "dalvik.bytecode", "class_name": "OpcodeInfo", "full_name": "dalvik.bytecode.OpcodeInfo"}, {"package_name": "dalvik.bytecode", "class_name": "Opcodes", "full_name": "dalvik.bytecode.Opcodes"}, {"package_name": "android.provider", "class_name": "OpenableColumns", "full_name": "android.provider.OpenableColumns"}, {"package_name": "java.nio.file", "class_name": "OpenOption", "full_name": "java.nio.file.OpenOption"}, {"package_name": "android.content", "class_name": "OperationApplicationException", "full_name": "android.content.OperationApplicationException"}, {"package_name": "android.accounts", "class_name": "OperationCanceledException", "full_name": "android.accounts.OperationCanceledException"}, {"package_name": "android.os", "class_name": "OperationCanceledException", "full_name": "android.os.OperationCanceledException"}, {"package_name": "java.io", "class_name": "OptionalDataException", "full_name": "java.io.OptionalDataException"}, {"package_name": "java.util", "class_name": "OptionalDouble", "full_name": "java.util.OptionalDouble"}, {"package_name": "java.util", "class_name": "OptionalInt", "full_name": "java.util.OptionalInt"}, {"package_name": "java.util", "class_name": "OptionalLong", "full_name": "java.util.OptionalLong"}, {"package_name": "android.view", "class_name": "OrientationEventListener", "full_name": "android.view.OrientationEventListener"}, {"package_name": "android.view", "class_name": "OrientationListener", "full_name": "android.view.OrientationListener"}, {"package_name": "android.gesture", "class_name": "OrientedBoundingBox", "full_name": "android.gesture.OrientedBoundingBox"}, {"package_name": "android.system", "class_name": "Os", "full_name": "android.system.Os"}, {"package_name": "android.system", "class_name": "OsConstants", "full_name": "android.system.OsConstants"}, {"package_name": "android.graphics", "class_name": "Outline", "full_name": "android.graphics.Outline"}, {"package_name": "java.lang", "class_name": "OutOfMemoryError", "full_name": "java.lang.OutOfMemoryError"}, {"package_name": "javax.xml.transform", "class_name": "OutputKeys", "full_name": "javax.xml.transform.OutputKeys"}, {"package_name": "java.io", "class_name": "OutputStream", "full_name": "java.io.OutputStream"}, {"package_name": "java.io", "class_name": "OutputStreamWriter", "full_name": "java.io.OutputStreamWriter"}, {"package_name": "android.graphics.drawable.shapes", "class_name": "OvalShape", "full_name": "android.graphics.drawable.shapes.OvalShape"}, {"package_name": "java.nio.channels", "class_name": "OverlappingFileLockException", "full_name": "java.nio.channels.OverlappingFileLockException"}, {"package_name": "java.lang", "class_name": "Override", "full_name": "java.lang.Override"}, {"package_name": "android.widget", "class_name": "OverScroller", "full_name": "android.widget.OverScroller"}, {"package_name": "android.view.animation", "class_name": "OvershootInterpolator", "full_name": "android.view.animation.OvershootInterpolator"}, {"package_name": "java.security.acl", "class_name": "Owner", "full_name": "java.security.acl.Owner"}, {"package_name": "java.lang", "class_name": "Package", "full_name": "java.lang.Package"}, {"package_name": "android.os.health", "class_name": "PackageHealthStats", "full_name": "android.os.health.PackageHealthStats"}, {"package_name": "android.content.pm", "class_name": "PackageInfo", "full_name": "android.content.pm.PackageInfo"}, {"package_name": "android.content.pm", "class_name": "PackageInstaller", "full_name": "android.content.pm.PackageInstaller"}, {"package_name": "android.content.pm", "class_name": "PackageInstaller.Session", "full_name": "android.content.pm.PackageInstaller.Session"}, {"package_name": "android.content.pm", "class_name": "PackageInstaller.SessionCallback", "full_name": "android.content.pm.PackageInstaller.SessionCallback"}, {"package_name": "android.content.pm", "class_name": "PackageInstaller.SessionInfo", "full_name": "android.content.pm.PackageInstaller.SessionInfo"}, {"package_name": "android.content.pm", "class_name": "PackageInstaller.SessionParams", "full_name": "android.content.pm.PackageInstaller.SessionParams"}, {"package_name": "android.content.pm", "class_name": "PackageItemInfo", "full_name": "android.content.pm.PackageItemInfo"}, {"package_name": "android.content.pm", "class_name": "PackageItemInfo.DisplayNameComparator", "full_name": "android.content.pm.PackageItemInfo.DisplayNameComparator"}, {"package_name": "android.content.pm", "class_name": "PackageManager", "full_name": "android.content.pm.PackageManager"}, {"package_name": "android.content.pm", "class_name": "PackageManager.NameNotFoundException", "full_name": "android.content.pm.PackageManager.NameNotFoundException"}, {"package_name": "android.content.pm", "class_name": "PackageStats", "full_name": "android.content.pm.PackageStats"}, {"package_name": "android.print", "class_name": "PageRange", "full_name": "android.print.PageRange"}, {"package_name": "android.graphics", "class_name": "Paint", "full_name": "android.graphics.Paint"}, {"package_name": "android.graphics", "class_name": "Paint.Align", "full_name": "android.graphics.Paint.Align"}, {"package_name": "android.graphics", "class_name": "Paint.Cap", "full_name": "android.graphics.Paint.Cap"}, {"package_name": "android.graphics", "class_name": "Paint.FontMetrics", "full_name": "android.graphics.Paint.FontMetrics"}, {"package_name": "android.graphics", "class_name": "Paint.FontMetricsInt", "full_name": "android.graphics.Paint.FontMetricsInt"}, {"package_name": "android.graphics", "class_name": "Paint.Join", "full_name": "android.graphics.Paint.Join"}, {"package_name": "android.graphics", "class_name": "Paint.Style", "full_name": "android.graphics.Paint.Style"}, {"package_name": "android.graphics.drawable", "class_name": "PaintDrawable", "full_name": "android.graphics.drawable.PaintDrawable"}, {"package_name": "android.graphics", "class_name": "PaintFlagsDrawFilter", "full_name": "android.graphics.PaintFlagsDrawFilter"}, {"package_name": "android.text.style", "class_name": "ParagraphStyle", "full_name": "android.text.style.ParagraphStyle"}, {"package_name": "java.lang.reflect", "class_name": "Parameter", "full_name": "java.lang.reflect.Parameter"}, {"package_name": "java.lang.reflect", "class_name": "ParameterizedType", "full_name": "java.lang.reflect.ParameterizedType"}, {"package_name": "java.sql", "class_name": "ParameterMetaData", "full_name": "java.sql.ParameterMetaData"}, {"package_name": "android.os", "class_name": "Parcel", "full_name": "android.os.Parcel"}, {"package_name": "android.os", "class_name": "Parcelable", "full_name": "android.os.Parcelable"}, {"package_name": "android.text", "class_name": "ParcelableSpan", "full_name": "android.text.ParcelableSpan"}, {"package_name": "android.os", "class_name": "ParcelFileDescriptor", "full_name": "android.os.ParcelFileDescriptor"}, {"package_name": "android.os", "class_name": "ParcelFileDescriptor.AutoCloseInputStream", "full_name": "android.os.ParcelFileDescriptor.AutoCloseInputStream"}, {"package_name": "android.os", "class_name": "ParcelFileDescriptor.AutoCloseOutputStream", "full_name": "android.os.ParcelFileDescriptor.AutoCloseOutputStream"}, {"package_name": "android.os", "class_name": "ParcelFileDescriptor.FileDescriptorDetachedException", "full_name": "android.os.ParcelFileDescriptor.FileDescriptorDetachedException"}, {"package_name": "android.os", "class_name": "ParcelFileDescriptor.OnCloseListener", "full_name": "android.os.ParcelFileDescriptor.OnCloseListener"}, {"package_name": "android.os", "class_name": "ParcelFormatException", "full_name": "android.os.ParcelFormatException"}, {"package_name": "android.os", "class_name": "ParcelUuid", "full_name": "android.os.ParcelUuid"}, {"package_name": "android.net", "class_name": "ParseException", "full_name": "android.net.ParseException"}, {"package_name": "java.text", "class_name": "ParseException", "full_name": "java.text.ParseException"}, {"package_name": "java.text", "class_name": "ParsePosition", "full_name": "java.text.ParsePosition"}, {"package_name": "org.xml.sax", "class_name": "Parser", "full_name": "org.xml.sax.Parser"}, {"package_name": "org.xml.sax.helpers", "class_name": "ParserAdapter", "full_name": "org.xml.sax.helpers.ParserAdapter"}, {"package_name": "javax.xml.parsers", "class_name": "ParserConfigurationException", "full_name": "javax.xml.parsers.ParserConfigurationException"}, {"package_name": "org.xml.sax.helpers", "class_name": "ParserFactory", "full_name": "org.xml.sax.helpers.ParserFactory"}, {"package_name": "java.net", "class_name": "PasswordAuthentication", "full_name": "java.net.PasswordAuthentication"}, {"package_name": "javax.security.auth.callback", "class_name": "PasswordCallback", "full_name": "javax.security.auth.callback.PasswordCallback"}, {"package_name": "android.text.method", "class_name": "PasswordTransformationMethod", "full_name": "android.text.method.PasswordTransformationMethod"}, {"package_name": "android.graphics", "class_name": "Path", "full_name": "android.graphics.Path"}, {"package_name": "java.nio.file", "class_name": "Path", "full_name": "java.nio.file.Path"}, {"package_name": "android.graphics", "class_name": "Path.Direction", "full_name": "android.graphics.Path.Direction"}, {"package_name": "android.graphics", "class_name": "Path.FillType", "full_name": "android.graphics.Path.FillType"}, {"package_name": "android.graphics", "class_name": "Path.Op", "full_name": "android.graphics.Path.Op"}, {"package_name": "dalvik.system", "class_name": "PathClassLoader", "full_name": "dalvik.system.PathClassLoader"}, {"package_name": "android.graphics", "class_name": "PathDashPathEffect", "full_name": "android.graphics.PathDashPathEffect"}, {"package_name": "android.graphics", "class_name": "PathDashPathEffect.Style", "full_name": "android.graphics.PathDashPathEffect.Style"}, {"package_name": "android.graphics", "class_name": "PathEffect", "full_name": "android.graphics.PathEffect"}, {"package_name": "android.view.animation", "class_name": "PathInterpolator", "full_name": "android.view.animation.PathInterpolator"}, {"package_name": "java.nio.file", "class_name": "PathMatcher", "full_name": "java.nio.file.PathMatcher"}, {"package_name": "android.graphics", "class_name": "PathMeasure", "full_name": "android.graphics.PathMeasure"}, {"package_name": "android.transition", "class_name": "PathMotion", "full_name": "android.transition.PathMotion"}, {"package_name": "android.content.pm", "class_name": "PathPermission", "full_name": "android.content.pm.PathPermission"}, {"package_name": "java.nio.file", "class_name": "Paths", "full_name": "java.nio.file.Paths"}, {"package_name": "android.graphics.drawable.shapes", "class_name": "PathShape", "full_name": "android.graphics.drawable.shapes.PathShape"}, {"package_name": "java.util.regex", "class_name": "Pattern", "full_name": "java.util.regex.Pattern"}, {"package_name": "android.os", "class_name": "PatternMatcher", "full_name": "android.os.PatternMatcher"}, {"package_name": "android.transition", "class_name": "PatternPathMotion", "full_name": "android.transition.PatternPathMotion"}, {"package_name": "android.util", "class_name": "Patterns", "full_name": "android.util.Patterns"}, {"package_name": "java.util.regex", "class_name": "PatternSyntaxException", "full_name": "java.util.regex.PatternSyntaxException"}, {"package_name": "javax.crypto.interfaces", "class_name": "PBEKey", "full_name": "javax.crypto.interfaces.PBEKey"}, {"package_name": "javax.crypto.spec", "class_name": "PBEKeySpec", "full_name": "javax.crypto.spec.PBEKeySpec"}, {"package_name": "javax.crypto.spec", "class_name": "PBEParameterSpec", "full_name": "javax.crypto.spec.PBEParameterSpec"}, {"package_name": "android.graphics.pdf", "class_name": "PdfDocument", "full_name": "android.graphics.pdf.PdfDocument"}, {"package_name": "android.graphics.pdf", "class_name": "PdfDocument.Page", "full_name": "android.graphics.pdf.PdfDocument.Page"}, {"package_name": "android.graphics.pdf", "class_name": "PdfDocument.PageInfo", "full_name": "android.graphics.pdf.PdfDocument.PageInfo"}, {"package_name": "android.graphics.pdf", "class_name": "PdfDocument.PageInfo.Builder", "full_name": "android.graphics.pdf.PdfDocument.PageInfo.Builder"}, {"package_name": "android.graphics.pdf", "class_name": "PdfRenderer", "full_name": "android.graphics.pdf.PdfRenderer"}, {"package_name": "android.graphics.pdf", "class_name": "PdfRenderer.Page", "full_name": "android.graphics.pdf.PdfRenderer.Page"}, {"package_name": "android.net.wifi.aware", "class_name": "PeerHandle", "full_name": "android.net.wifi.aware.PeerHandle"}, {"package_name": "android.app", "class_name": "PendingIntent", "full_name": "android.app.PendingIntent"}, {"package_name": "android.app", "class_name": "PendingIntent.CanceledException", "full_name": "android.app.PendingIntent.CanceledException"}, {"package_name": "android.app", "class_name": "PendingIntent.OnFinished", "full_name": "android.app.PendingIntent.OnFinished"}, {"package_name": "android.test", "class_name": "PerformanceTestCase", "full_name": "android.test.PerformanceTestCase"}, {"package_name": "android.test", "class_name": "PerformanceTestCase.Intermediates", "full_name": "android.test.PerformanceTestCase.Intermediates"}, {"package_name": "java.time", "class_name": "Period", "full_name": "java.time.Period"}, {"package_name": "android.bluetooth.le", "class_name": "PeriodicAdvertisingParameters", "full_name": "android.bluetooth.le.PeriodicAdvertisingParameters"}, {"package_name": "android.bluetooth.le", "class_name": "PeriodicAdvertisingParameters.Builder", "full_name": "android.bluetooth.le.PeriodicAdvertisingParameters.Builder"}, {"package_name": "android.content", "class_name": "PeriodicSync", "full_name": "android.content.PeriodicSync"}, {"package_name": "java.security", "class_name": "Permission", "full_name": "java.security.Permission"}, {"package_name": "java.security.acl", "class_name": "Permission", "full_name": "java.security.acl.Permission"}, {"package_name": "java.security", "class_name": "PermissionCollection", "full_name": "java.security.PermissionCollection"}, {"package_name": "android.content.pm", "class_name": "PermissionGroupInfo", "full_name": "android.content.pm.PermissionGroupInfo"}, {"package_name": "android.content.pm", "class_name": "PermissionInfo", "full_name": "android.content.pm.PermissionInfo"}, {"package_name": "android.webkit", "class_name": "PermissionRequest", "full_name": "android.webkit.PermissionRequest"}, {"package_name": "java.security", "class_name": "Permissions", "full_name": "java.security.Permissions"}, {"package_name": "android.os", "class_name": "PersistableBundle", "full_name": "android.os.PersistableBundle"}, {"package_name": "android.app", "class_name": "Person", "full_name": "android.app.Person"}, {"package_name": "android.app", "class_name": "Person.Builder", "full_name": "android.app.Person.Builder"}, {"package_name": "java.util.concurrent", "class_name": "Phaser", "full_name": "java.util.concurrent.Phaser"}, {"package_name": "android.telecom", "class_name": "PhoneAccount", "full_name": "android.telecom.PhoneAccount"}, {"package_name": "android.telecom", "class_name": "PhoneAccount.Builder", "full_name": "android.telecom.PhoneAccount.Builder"}, {"package_name": "android.telecom", "class_name": "PhoneAccountHandle", "full_name": "android.telecom.PhoneAccountHandle"}, {"package_name": "android.telephony", "class_name": "PhoneNumberFormattingTextWatcher", "full_name": "android.telephony.PhoneNumberFormattingTextWatcher"}, {"package_name": "android.telephony", "class_name": "PhoneNumberUtils", "full_name": "android.telephony.PhoneNumberUtils"}, {"package_name": "android.telephony", "class_name": "PhoneStateListener", "full_name": "android.telephony.PhoneStateListener"}, {"package_name": "android.graphics", "class_name": "Picture", "full_name": "android.graphics.Picture"}, {"package_name": "android.graphics.drawable", "class_name": "PictureDrawable", "full_name": "android.graphics.drawable.PictureDrawable"}, {"package_name": "android.app", "class_name": "PictureInPictureParams", "full_name": "android.app.PictureInPictureParams"}, {"package_name": "android.app", "class_name": "PictureInPictureParams.Builder", "full_name": "android.app.PictureInPictureParams.Builder"}, {"package_name": "android.os.health", "class_name": "PidHealthStats", "full_name": "android.os.health.PidHealthStats"}, {"package_name": "java.nio.channels", "class_name": "Pipe", "full_name": "java.nio.channels.Pipe"}, {"package_name": "java.nio.channels", "class_name": "Pipe.SinkChannel", "full_name": "java.nio.channels.Pipe.SinkChannel"}, {"package_name": "java.nio.channels", "class_name": "Pipe.SourceChannel", "full_name": "java.nio.channels.Pipe.SourceChannel"}, {"package_name": "java.io", "class_name": "PipedInputStream", "full_name": "java.io.PipedInputStream"}, {"package_name": "java.io", "class_name": "PipedOutputStream", "full_name": "java.io.PipedOutputStream"}, {"package_name": "java.io", "class_name": "PipedReader", "full_name": "java.io.PipedReader"}, {"package_name": "java.io", "class_name": "PipedWriter", "full_name": "java.io.PipedWriter"}, {"package_name": "android.view", "class_name": "PixelCopy", "full_name": "android.view.PixelCopy"}, {"package_name": "android.view", "class_name": "PixelCopy.OnPixelCopyFinishedListener", "full_name": "android.view.PixelCopy.OnPixelCopyFinishedListener"}, {"package_name": "android.graphics", "class_name": "PixelFormat", "full_name": "android.graphics.PixelFormat"}, {"package_name": "java.security.cert", "class_name": "PKIXBuilderParameters", "full_name": "java.security.cert.PKIXBuilderParameters"}, {"package_name": "java.security.cert", "class_name": "PKIXCertPathBuilderResult", "full_name": "java.security.cert.PKIXCertPathBuilderResult"}, {"package_name": "java.security.cert", "class_name": "PKIXCertPathChecker", "full_name": "java.security.cert.PKIXCertPathChecker"}, {"package_name": "java.security.cert", "class_name": "PKIXCertPathValidatorResult", "full_name": "java.security.cert.PKIXCertPathValidatorResult"}, {"package_name": "java.security.cert", "class_name": "PKIXParameters", "full_name": "java.security.cert.PKIXParameters"}, {"package_name": "java.security.cert", "class_name": "PKIXReason", "full_name": "java.security.cert.PKIXReason"}, {"package_name": "java.security.cert", "class_name": "PKIXRevocationChecker", "full_name": "java.security.cert.PKIXRevocationChecker"}, {"package_name": "java.security.cert", "class_name": "PKIXRevocationChecker.Option", "full_name": "java.security.cert.PKIXRevocationChecker.Option"}, {"package_name": "android.media", "class_name": "PlaybackParams", "full_name": "android.media.PlaybackParams"}, {"package_name": "android.media.session", "class_name": "PlaybackState", "full_name": "android.media.session.PlaybackState"}, {"package_name": "android.media.session", "class_name": "PlaybackState.Builder", "full_name": "android.media.session.PlaybackState.Builder"}, {"package_name": "android.media.session", "class_name": "PlaybackState.CustomAction", "full_name": "android.media.session.PlaybackState.CustomAction"}, {"package_name": "android.media.session", "class_name": "PlaybackState.CustomAction.Builder", "full_name": "android.media.session.PlaybackState.CustomAction.Builder"}, {"package_name": "android.webkit", "class_name": "PluginStub", "full_name": "android.webkit.PluginStub"}, {"package_name": "android.icu.text", "class_name": "PluralFormat", "full_name": "android.icu.text.PluralFormat"}, {"package_name": "android.icu.text", "class_name": "PluralRules", "full_name": "android.icu.text.PluralRules"}, {"package_name": "android.icu.text", "class_name": "PluralRules.PluralType", "full_name": "android.icu.text.PluralRules.PluralType"}, {"package_name": "android.graphics", "class_name": "Point", "full_name": "android.graphics.Point"}, {"package_name": "android.view", "class_name": "PointerIcon", "full_name": "android.view.PointerIcon"}, {"package_name": "android.graphics", "class_name": "PointF", "full_name": "android.graphics.PointF"}, {"package_name": "android.animation", "class_name": "PointFEvaluator", "full_name": "android.animation.PointFEvaluator"}, {"package_name": "java.security", "class_name": "Policy", "full_name": "java.security.Policy"}, {"package_name": "java.security", "class_name": "Policy.Parameters", "full_name": "java.security.Policy.Parameters"}, {"package_name": "java.security.cert", "class_name": "PolicyNode", "full_name": "java.security.cert.PolicyNode"}, {"package_name": "java.security.cert", "class_name": "PolicyQualifierInfo", "full_name": "java.security.cert.PolicyQualifierInfo"}, {"package_name": "java.security", "class_name": "PolicySpi", "full_name": "java.security.PolicySpi"}, {"package_name": "javax.sql", "class_name": "PooledConnection", "full_name": "javax.sql.PooledConnection"}, {"package_name": "android.widget", "class_name": "PopupMenu", "full_name": "android.widget.PopupMenu"}, {"package_name": "android.widget", "class_name": "PopupMenu.OnDismissListener", "full_name": "android.widget.PopupMenu.OnDismissListener"}, {"package_name": "android.widget", "class_name": "PopupMenu.OnMenuItemClickListener", "full_name": "android.widget.PopupMenu.OnMenuItemClickListener"}, {"package_name": "android.widget", "class_name": "PopupWindow", "full_name": "android.widget.PopupWindow"}, {"package_name": "android.widget", "class_name": "PopupWindow.OnDismissListener", "full_name": "android.widget.PopupWindow.OnDismissListener"}, {"package_name": "android.graphics", "class_name": "PorterDuff", "full_name": "android.graphics.PorterDuff"}, {"package_name": "android.graphics", "class_name": "PorterDuff.Mode", "full_name": "android.graphics.PorterDuff.Mode"}, {"package_name": "android.graphics", "class_name": "PorterDuffColorFilter", "full_name": "android.graphics.PorterDuffColorFilter"}, {"package_name": "android.graphics", "class_name": "PorterDuffXfermode", "full_name": "android.graphics.PorterDuffXfermode"}, {"package_name": "java.net", "class_name": "PortUnreachableException", "full_name": "java.net.PortUnreachableException"}, {"package_name": "java.nio.file.attribute", "class_name": "PosixFileAttributes", "full_name": "java.nio.file.attribute.PosixFileAttributes"}, {"package_name": "java.nio.file.attribute", "class_name": "PosixFileAttributeView", "full_name": "java.nio.file.attribute.PosixFileAttributeView"}, {"package_name": "java.nio.file.attribute", "class_name": "PosixFilePermission", "full_name": "java.nio.file.attribute.PosixFilePermission"}, {"package_name": "java.nio.file.attribute", "class_name": "PosixFilePermissions", "full_name": "java.nio.file.attribute.PosixFilePermissions"}, {"package_name": "android.graphics", "class_name": "PostProcessor", "full_name": "android.graphics.PostProcessor"}, {"package_name": "android.os", "class_name": "PowerManager", "full_name": "android.os.PowerManager"}, {"package_name": "android.os", "class_name": "PowerManager.WakeLock", "full_name": "android.os.PowerManager.WakeLock"}, {"package_name": "android.text", "class_name": "PrecomputedText", "full_name": "android.text.PrecomputedText"}, {"package_name": "android.text", "class_name": "PrecomputedText.Params", "full_name": "android.text.PrecomputedText.Params"}, {"package_name": "android.text", "class_name": "PrecomputedText.Params.Builder", "full_name": "android.text.PrecomputedText.Params.Builder"}, {"package_name": "android.gesture", "class_name": "Prediction", "full_name": "android.gesture.Prediction"}, {"package_name": "android.preference", "class_name": "Preference", "full_name": "android.preference.Preference"}, {"package_name": "android.preference", "class_name": "Preference.BaseSavedState", "full_name": "android.preference.Preference.BaseSavedState"}, {"package_name": "android.preference", "class_name": "Preference.OnPreferenceChangeListener", "full_name": "android.preference.Preference.OnPreferenceChangeListener"}, {"package_name": "android.preference", "class_name": "Preference.OnPreferenceClickListener", "full_name": "android.preference.Preference.OnPreferenceClickListener"}, {"package_name": "android.preference", "class_name": "PreferenceActivity", "full_name": "android.preference.PreferenceActivity"}, {"package_name": "android.preference", "class_name": "PreferenceActivity.Header", "full_name": "android.preference.PreferenceActivity.Header"}, {"package_name": "android.preference", "class_name": "PreferenceCategory", "full_name": "android.preference.PreferenceCategory"}, {"package_name": "java.util.prefs", "class_name": "PreferenceChangeEvent", "full_name": "java.util.prefs.PreferenceChangeEvent"}, {"package_name": "java.util.prefs", "class_name": "PreferenceChangeListener", "full_name": "java.util.prefs.PreferenceChangeListener"}, {"package_name": "android.preference", "class_name": "PreferenceDataStore", "full_name": "android.preference.PreferenceDataStore"}, {"package_name": "android.preference", "class_name": "PreferenceFragment", "full_name": "android.preference.PreferenceFragment"}, {"package_name": "android.preference", "class_name": "PreferenceFragment.OnPreferenceStartFragmentCallback", "full_name": "android.preference.PreferenceFragment.OnPreferenceStartFragmentCallback"}, {"package_name": "android.preference", "class_name": "PreferenceGroup", "full_name": "android.preference.PreferenceGroup"}, {"package_name": "android.preference", "class_name": "PreferenceManager", "full_name": "android.preference.PreferenceManager"}, {"package_name": "android.preference", "class_name": "PreferenceManager.OnActivityDestroyListener", "full_name": "android.preference.PreferenceManager.OnActivityDestroyListener"}, {"package_name": "android.preference", "class_name": "PreferenceManager.OnActivityResultListener", "full_name": "android.preference.PreferenceManager.OnActivityResultListener"}, {"package_name": "android.preference", "class_name": "PreferenceManager.OnActivityStopListener", "full_name": "android.preference.PreferenceManager.OnActivityStopListener"}, {"package_name": "java.util.prefs", "class_name": "Preferences", "full_name": "java.util.prefs.Preferences"}, {"package_name": "android.preference", "class_name": "PreferenceScreen", "full_name": "android.preference.PreferenceScreen"}, {"package_name": "java.util.prefs", "class_name": "PreferencesFactory", "full_name": "java.util.prefs.PreferencesFactory"}, {"package_name": "java.sql", "class_name": "PreparedStatement", "full_name": "java.sql.PreparedStatement"}, {"package_name": "android.app", "class_name": "Presentation", "full_name": "android.app.Presentation"}, {"package_name": "android.media.audiofx", "class_name": "PresetReverb", "full_name": "android.media.audiofx.PresetReverb"}, {"package_name": "android.media.audiofx", "class_name": "PresetReverb.OnParameterChangeListener", "full_name": "android.media.audiofx.PresetReverb.OnParameterChangeListener"}, {"package_name": "android.media.audiofx", "class_name": "PresetReverb.Settings", "full_name": "android.media.audiofx.PresetReverb.Settings"}, {"package_name": "java.util", "class_name": "PrimitiveIterator.OfDouble", "full_name": "java.util.PrimitiveIterator.OfDouble"}, {"package_name": "java.util", "class_name": "PrimitiveIterator.OfInt", "full_name": "java.util.PrimitiveIterator.OfInt"}, {"package_name": "java.util", "class_name": "PrimitiveIterator.OfLong", "full_name": "java.util.PrimitiveIterator.OfLong"}, {"package_name": "java.security", "class_name": "Principal", "full_name": "java.security.Principal"}, {"package_name": "android.print", "class_name": "PrintAttributes", "full_name": "android.print.PrintAttributes"}, {"package_name": "android.print", "class_name": "PrintAttributes.Builder", "full_name": "android.print.PrintAttributes.Builder"}, {"package_name": "android.print", "class_name": "PrintAttributes.Margins", "full_name": "android.print.PrintAttributes.Margins"}, {"package_name": "android.print", "class_name": "PrintAttributes.MediaSize", "full_name": "android.print.PrintAttributes.MediaSize"}, {"package_name": "android.print", "class_name": "PrintAttributes.Resolution", "full_name": "android.print.PrintAttributes.Resolution"}, {"package_name": "android.printservice", "class_name": "PrintDocument", "full_name": "android.printservice.PrintDocument"}, {"package_name": "android.print", "class_name": "PrintDocumentAdapter", "full_name": "android.print.PrintDocumentAdapter"}, {"package_name": "android.print", "class_name": "PrintDocumentAdapter.LayoutResultCallback", "full_name": "android.print.PrintDocumentAdapter.LayoutResultCallback"}, {"package_name": "android.print", "class_name": "PrintDocumentAdapter.WriteResultCallback", "full_name": "android.print.PrintDocumentAdapter.WriteResultCallback"}, {"package_name": "android.print", "class_name": "PrintDocumentInfo", "full_name": "android.print.PrintDocumentInfo"}, {"package_name": "android.print", "class_name": "PrintDocumentInfo.Builder", "full_name": "android.print.PrintDocumentInfo.Builder"}, {"package_name": "android.print.pdf", "class_name": "PrintedPdfDocument", "full_name": "android.print.pdf.PrintedPdfDocument"}, {"package_name": "android.util", "class_name": "Printer", "full_name": "android.util.Printer"}, {"package_name": "android.print", "class_name": "PrinterCapabilitiesInfo", "full_name": "android.print.PrinterCapabilitiesInfo"}, {"package_name": "android.print", "class_name": "PrinterCapabilitiesInfo.Builder", "full_name": "android.print.PrinterCapabilitiesInfo.Builder"}, {"package_name": "android.printservice", "class_name": "PrinterDiscoverySession", "full_name": "android.printservice.PrinterDiscoverySession"}, {"package_name": "android.print", "class_name": "PrinterId", "full_name": "android.print.PrinterId"}, {"package_name": "android.print", "class_name": "PrinterInfo", "full_name": "android.print.PrinterInfo"}, {"package_name": "android.print", "class_name": "PrinterInfo.Builder", "full_name": "android.print.PrinterInfo.Builder"}, {"package_name": "android.print", "class_name": "PrintJob", "full_name": "android.print.PrintJob"}, {"package_name": "android.printservice", "class_name": "PrintJob", "full_name": "android.printservice.PrintJob"}, {"package_name": "android.print", "class_name": "PrintJobId", "full_name": "android.print.PrintJobId"}, {"package_name": "android.print", "class_name": "PrintJobInfo", "full_name": "android.print.PrintJobInfo"}, {"package_name": "android.print", "class_name": "PrintJobInfo.Builder", "full_name": "android.print.PrintJobInfo.Builder"}, {"package_name": "android.print", "class_name": "PrintManager", "full_name": "android.print.PrintManager"}, {"package_name": "android.printservice", "class_name": "PrintService", "full_name": "android.printservice.PrintService"}, {"package_name": "java.io", "class_name": "PrintStream", "full_name": "java.io.PrintStream"}, {"package_name": "android.util", "class_name": "PrintStreamPrinter", "full_name": "android.util.PrintStreamPrinter"}, {"package_name": "java.io", "class_name": "PrintWriter", "full_name": "java.io.PrintWriter"}, {"package_name": "android.util", "class_name": "PrintWriterPrinter", "full_name": "android.util.PrintWriterPrinter"}, {"package_name": "javax.security.auth", "class_name": "PrivateCredentialPermission", "full_name": "javax.security.auth.PrivateCredentialPermission"}, {"package_name": "java.security", "class_name": "PrivateKey", "full_name": "java.security.PrivateKey"}, {"package_name": "java.security", "class_name": "PrivilegedActionException", "full_name": "java.security.PrivilegedActionException"}, {"package_name": "android.os", "class_name": "Process", "full_name": "android.os.Process"}, {"package_name": "java.lang", "class_name": "Process", "full_name": "java.lang.Process"}, {"package_name": "java.lang", "class_name": "ProcessBuilder", "full_name": "java.lang.ProcessBuilder"}, {"package_name": "java.lang", "class_name": "ProcessBuilder.Redirect", "full_name": "java.lang.ProcessBuilder.Redirect"}, {"package_name": "java.lang", "class_name": "ProcessBuilder.Redirect.Type", "full_name": "java.lang.ProcessBuilder.Redirect.Type"}, {"package_name": "android.drm", "class_name": "ProcessedData", "full_name": "android.drm.ProcessedData"}, {"package_name": "android.os.health", "class_name": "ProcessHealthStats", "full_name": "android.os.health.ProcessHealthStats"}, {"package_name": "android.widget", "class_name": "ProgressBar", "full_name": "android.widget.ProgressBar"}, {"package_name": "android.app", "class_name": "ProgressDialog", "full_name": "android.app.ProgressDialog"}, {"package_name": "java.util", "class_name": "Properties", "full_name": "java.util.Properties"}, {"package_name": "java.beans", "class_name": "PropertyChangeEvent", "full_name": "java.beans.PropertyChangeEvent"}, {"package_name": "java.beans", "class_name": "PropertyChangeListener", "full_name": "java.beans.PropertyChangeListener"}, {"package_name": "java.beans", "class_name": "PropertyChangeListenerProxy", "full_name": "java.beans.PropertyChangeListenerProxy"}, {"package_name": "java.beans", "class_name": "PropertyChangeSupport", "full_name": "java.beans.PropertyChangeSupport"}, {"package_name": "java.util", "class_name": "PropertyPermission", "full_name": "java.util.PropertyPermission"}, {"package_name": "java.util", "class_name": "PropertyResourceBundle", "full_name": "java.util.PropertyResourceBundle"}, {"package_name": "android.animation", "class_name": "PropertyValuesHolder", "full_name": "android.animation.PropertyValuesHolder"}, {"package_name": "junit.framework", "class_name": "Protectable", "full_name": "junit.framework.Protectable"}, {"package_name": "java.security", "class_name": "ProtectionDomain", "full_name": "java.security.ProtectionDomain"}, {"package_name": "java.net", "class_name": "ProtocolException", "full_name": "java.net.ProtocolException"}, {"package_name": "java.net", "class_name": "ProtocolFamily", "full_name": "java.net.ProtocolFamily"}, {"package_name": "java.security", "class_name": "Provider", "full_name": "java.security.Provider"}, {"package_name": "java.security", "class_name": "Provider.Service", "full_name": "java.security.Provider.Service"}, {"package_name": "java.security", "class_name": "ProviderException", "full_name": "java.security.ProviderException"}, {"package_name": "android.content.pm", "class_name": "ProviderInfo", "full_name": "android.content.pm.ProviderInfo"}, {"package_name": "java.nio.file", "class_name": "ProviderMismatchException", "full_name": "java.nio.file.ProviderMismatchException"}, {"package_name": "java.nio.file", "class_name": "ProviderNotFoundException", "full_name": "java.nio.file.ProviderNotFoundException"}, {"package_name": "android.net", "class_name": "Proxy", "full_name": "android.net.Proxy"}, {"package_name": "java.lang.reflect", "class_name": "Proxy", "full_name": "java.lang.reflect.Proxy"}, {"package_name": "java.net", "class_name": "Proxy", "full_name": "java.net.Proxy"}, {"package_name": "java.net", "class_name": "Proxy.Type", "full_name": "java.net.Proxy.Type"}, {"package_name": "android.os", "class_name": "ProxyFileDescriptorCallback", "full_name": "android.os.ProxyFileDescriptorCallback"}, {"package_name": "android.net", "class_name": "ProxyInfo", "full_name": "android.net.ProxyInfo"}, {"package_name": "java.net", "class_name": "ProxySelector", "full_name": "java.net.ProxySelector"}, {"package_name": "javax.crypto.spec", "class_name": "PSource", "full_name": "javax.crypto.spec.PSource"}, {"package_name": "javax.crypto.spec", "class_name": "PSource.PSpecified", "full_name": "javax.crypto.spec.PSource.PSpecified"}, {"package_name": "java.security.spec", "class_name": "PSSParameterSpec", "full_name": "java.security.spec.PSSParameterSpec"}, {"package_name": "java.security", "class_name": "PublicKey", "full_name": "java.security.PublicKey"}, {"package_name": "android.net.wifi.aware", "class_name": "PublishConfig", "full_name": "android.net.wifi.aware.PublishConfig"}, {"package_name": "android.net.wifi.aware", "class_name": "PublishConfig.Builder", "full_name": "android.net.wifi.aware.PublishConfig.Builder"}, {"package_name": "android.net.wifi.aware", "class_name": "PublishDiscoverySession", "full_name": "android.net.wifi.aware.PublishDiscoverySession"}, {"package_name": "java.io", "class_name": "PushbackInputStream", "full_name": "java.io.PushbackInputStream"}, {"package_name": "java.io", "class_name": "PushbackReader", "full_name": "java.io.PushbackReader"}, {"package_name": "javax.xml.namespace", "class_name": "QName", "full_name": "javax.xml.namespace.QName"}, {"package_name": "android.widget", "class_name": "QuickContactBadge", "full_name": "android.widget.QuickContactBadge"}, {"package_name": "android.content", "class_name": "QuickViewConstants", "full_name": "android.content.QuickViewConstants"}, {"package_name": "android.text.style", "class_name": "QuoteSpan", "full_name": "android.text.style.QuoteSpan"}, {"package_name": "android.text.method", "class_name": "QwertyKeyListener", "full_name": "android.text.method.QwertyKeyListener"}, {"package_name": "android", "class_name": "R", "full_name": "android.R"}, {"package_name": "android", "class_name": "R.anim", "full_name": "android.R.anim"}, {"package_name": "android", "class_name": "R.animator", "full_name": "android.R.animator"}, {"package_name": "android", "class_name": "R.array", "full_name": "android.R.array"}, {"package_name": "android", "class_name": "R.attr", "full_name": "android.R.attr"}, {"package_name": "android", "class_name": "R.bool", "full_name": "android.R.bool"}, {"package_name": "android", "class_name": "R.color", "full_name": "android.R.color"}, {"package_name": "android", "class_name": "R.dimen", "full_name": "android.R.dimen"}, {"package_name": "android", "class_name": "R.drawable", "full_name": "android.R.drawable"}, {"package_name": "android", "class_name": "R.fraction", "full_name": "android.R.fraction"}, {"package_name": "android", "class_name": "R.id", "full_name": "android.R.id"}, {"package_name": "android", "class_name": "R.integer", "full_name": "android.R.integer"}, {"package_name": "android", "class_name": "R.interpolator", "full_name": "android.R.interpolator"}, {"package_name": "android", "class_name": "R.layout", "full_name": "android.R.layout"}, {"package_name": "android", "class_name": "R.menu", "full_name": "android.R.menu"}, {"package_name": "android", "class_name": "R.mipmap", "full_name": "android.R.mipmap"}, {"package_name": "android", "class_name": "R.plurals", "full_name": "android.R.plurals"}, {"package_name": "android", "class_name": "R.raw", "full_name": "android.R.raw"}, {"package_name": "android", "class_name": "R.string", "full_name": "android.R.string"}, {"package_name": "android", "class_name": "R.style", "full_name": "android.R.style"}, {"package_name": "android", "class_name": "R.styleable", "full_name": "android.R.styleable"}, {"package_name": "android", "class_name": "R.transition", "full_name": "android.R.transition"}, {"package_name": "android", "class_name": "R.xml", "full_name": "android.R.xml"}, {"package_name": "android.graphics", "class_name": "RadialGradient", "full_name": "android.graphics.RadialGradient"}, {"package_name": "android.telephony", "class_name": "RadioAccessSpecifier", "full_name": "android.telephony.RadioAccessSpecifier"}, {"package_name": "android.widget", "class_name": "RadioButton", "full_name": "android.widget.RadioButton"}, {"package_name": "android.widget", "class_name": "RadioGroup", "full_name": "android.widget.RadioGroup"}, {"package_name": "android.widget", "class_name": "RadioGroup.LayoutParams", "full_name": "android.widget.RadioGroup.LayoutParams"}, {"package_name": "android.widget", "class_name": "RadioGroup.OnCheckedChangeListener", "full_name": "android.widget.RadioGroup.OnCheckedChangeListener"}, {"package_name": "java.util", "class_name": "Random", "full_name": "java.util.Random"}, {"package_name": "java.util", "class_name": "RandomAccess", "full_name": "java.util.RandomAccess"}, {"package_name": "java.io", "class_name": "RandomAccessFile", "full_name": "java.io.RandomAccessFile"}, {"package_name": "android.icu.util", "class_name": "RangeValueIterator", "full_name": "android.icu.util.RangeValueIterator"}, {"package_name": "android.icu.util", "class_name": "RangeValueIterator.Element", "full_name": "android.icu.util.RangeValueIterator.Element"}, {"package_name": "android.net.wifi.rtt", "class_name": "RangingRequest", "full_name": "android.net.wifi.rtt.RangingRequest"}, {"package_name": "android.net.wifi.rtt", "class_name": "RangingRequest.Builder", "full_name": "android.net.wifi.rtt.RangingRequest.Builder"}, {"package_name": "android.net.wifi.rtt", "class_name": "RangingResult", "full_name": "android.net.wifi.rtt.RangingResult"}, {"package_name": "android.net.wifi.rtt", "class_name": "RangingResultCallback", "full_name": "android.net.wifi.rtt.RangingResultCallback"}, {"package_name": "android.media", "class_name": "Rating", "full_name": "android.media.Rating"}, {"package_name": "android.widget", "class_name": "RatingBar", "full_name": "android.widget.RatingBar"}, {"package_name": "android.widget", "class_name": "RatingBar.OnRatingBarChangeListener", "full_name": "android.widget.RatingBar.OnRatingBarChangeListener"}, {"package_name": "android.util", "class_name": "Rational", "full_name": "android.util.Rational"}, {"package_name": "java.lang", "class_name": "Readable", "full_name": "java.lang.Readable"}, {"package_name": "java.nio.channels", "class_name": "ReadableByteChannel", "full_name": "java.nio.channels.ReadableByteChannel"}, {"package_name": "android.se.omapi", "class_name": "Reader", "full_name": "android.se.omapi.Reader"}, {"package_name": "java.io", "class_name": "Reader", "full_name": "java.io.Reader"}, {"package_name": "java.nio", "class_name": "ReadOnlyBufferException", "full_name": "java.nio.ReadOnlyBufferException"}, {"package_name": "java.nio.file", "class_name": "ReadOnlyFileSystemException", "full_name": "java.nio.file.ReadOnlyFileSystemException"}, {"package_name": "java.nio.channels", "class_name": "ReadPendingException", "full_name": "java.nio.channels.ReadPendingException"}, {"package_name": "java.util.concurrent.locks", "class_name": "ReadWriteLock", "full_name": "java.util.concurrent.locks.ReadWriteLock"}, {"package_name": "android.content", "class_name": "ReceiverCallNotAllowedException", "full_name": "android.content.ReceiverCallNotAllowedException"}, {"package_name": "android.speech", "class_name": "RecognitionListener", "full_name": "android.speech.RecognitionListener"}, {"package_name": "android.speech", "class_name": "RecognitionService", "full_name": "android.speech.RecognitionService"}, {"package_name": "android.speech", "class_name": "RecognitionService.Callback", "full_name": "android.speech.RecognitionService.Callback"}, {"package_name": "android.speech", "class_name": "RecognizerIntent", "full_name": "android.speech.RecognizerIntent"}, {"package_name": "android.speech", "class_name": "RecognizerResultsIntent", "full_name": "android.speech.RecognizerResultsIntent"}, {"package_name": "android.os", "class_name": "RecoverySystem", "full_name": "android.os.RecoverySystem"}, {"package_name": "android.os", "class_name": "RecoverySystem.ProgressListener", "full_name": "android.os.RecoverySystem.ProgressListener"}, {"package_name": "android.graphics", "class_name": "Rect", "full_name": "android.graphics.Rect"}, {"package_name": "android.animation", "class_name": "RectEvaluator", "full_name": "android.animation.RectEvaluator"}, {"package_name": "android.graphics", "class_name": "RectF", "full_name": "android.graphics.RectF"}, {"package_name": "android.graphics.drawable.shapes", "class_name": "RectShape", "full_name": "android.graphics.drawable.shapes.RectShape"}, {"package_name": "java.util.concurrent", "class_name": "RecursiveAction", "full_name": "java.util.concurrent.RecursiveAction"}, {"package_name": "java.util.concurrent.locks", "class_name": "ReentrantLock", "full_name": "java.util.concurrent.locks.ReentrantLock"}, {"package_name": "java.util.concurrent.locks", "class_name": "ReentrantReadWriteLock", "full_name": "java.util.concurrent.locks.ReentrantReadWriteLock"}, {"package_name": "java.util.concurrent.locks", "class_name": "ReentrantReadWriteLock.ReadLock", "full_name": "java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock"}, {"package_name": "java.util.concurrent.locks", "class_name": "ReentrantReadWriteLock.WriteLock", "full_name": "java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock"}, {"package_name": "java.sql", "class_name": "Ref", "full_name": "java.sql.Ref"}, {"package_name": "java.lang", "class_name": "ReflectiveOperationException", "full_name": "java.lang.ReflectiveOperationException"}, {"package_name": "java.lang.reflect", "class_name": "ReflectPermission", "full_name": "java.lang.reflect.ReflectPermission"}, {"package_name": "android.service.autofill", "class_name": "RegexValidator", "full_name": "android.service.autofill.RegexValidator"}, {"package_name": "android.graphics", "class_name": "Region", "full_name": "android.graphics.Region"}, {"package_name": "android.graphics", "class_name": "Region.Op", "full_name": "android.graphics.Region.Op"}, {"package_name": "android.graphics", "class_name": "RegionIterator", "full_name": "android.graphics.RegionIterator"}, {"package_name": "java.util.concurrent", "class_name": "RejectedExecutionException", "full_name": "java.util.concurrent.RejectedExecutionException"}, {"package_name": "java.util.concurrent", "class_name": "RejectedExecutionHandler", "full_name": "java.util.concurrent.RejectedExecutionHandler"}, {"package_name": "android.icu.text", "class_name": "RelativeDateTimeFormatter", "full_name": "android.icu.text.RelativeDateTimeFormatter"}, {"package_name": "android.icu.text", "class_name": "RelativeDateTimeFormatter.AbsoluteUnit", "full_name": "android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit"}, {"package_name": "android.icu.text", "class_name": "RelativeDateTimeFormatter.Direction", "full_name": "android.icu.text.RelativeDateTimeFormatter.Direction"}, {"package_name": "android.icu.text", "class_name": "RelativeDateTimeFormatter.RelativeDateTimeUnit", "full_name": "android.icu.text.RelativeDateTimeFormatter.RelativeDateTimeUnit"}, {"package_name": "android.icu.text", "class_name": "RelativeDateTimeFormatter.RelativeUnit", "full_name": "android.icu.text.RelativeDateTimeFormatter.RelativeUnit"}, {"package_name": "android.icu.text", "class_name": "RelativeDateTimeFormatter.Style", "full_name": "android.icu.text.RelativeDateTimeFormatter.Style"}, {"package_name": "android.widget", "class_name": "RelativeLayout", "full_name": "android.widget.RelativeLayout"}, {"package_name": "android.widget", "class_name": "RelativeLayout.LayoutParams", "full_name": "android.widget.RelativeLayout.LayoutParams"}, {"package_name": "android.text.style", "class_name": "RelativeSizeSpan", "full_name": "android.text.style.RelativeSizeSpan"}, {"package_name": "android.app", "class_name": "RemoteAction", "full_name": "android.app.RemoteAction"}, {"package_name": "android.telecom", "class_name": "RemoteConference", "full_name": "android.telecom.RemoteConference"}, {"package_name": "android.telecom", "class_name": "RemoteConference.Callback", "full_name": "android.telecom.RemoteConference.Callback"}, {"package_name": "android.telecom", "class_name": "RemoteConnection", "full_name": "android.telecom.RemoteConnection"}, {"package_name": "android.telecom", "class_name": "RemoteConnection.Callback", "full_name": "android.telecom.RemoteConnection.Callback"}, {"package_name": "android.telecom", "class_name": "RemoteConnection.VideoProvider", "full_name": "android.telecom.RemoteConnection.VideoProvider"}, {"package_name": "android.telecom", "class_name": "RemoteConnection.VideoProvider.Callback", "full_name": "android.telecom.RemoteConnection.VideoProvider.Callback"}, {"package_name": "android.media", "class_name": "RemoteControlClient", "full_name": "android.media.RemoteControlClient"}, {"package_name": "android.media", "class_name": "RemoteControlClient.MetadataEditor", "full_name": "android.media.RemoteControlClient.MetadataEditor"}, {"package_name": "android.media", "class_name": "RemoteControlClient.OnGetPlaybackPositionListener", "full_name": "android.media.RemoteControlClient.OnGetPlaybackPositionListener"}, {"package_name": "android.media", "class_name": "RemoteControlClient.OnMetadataUpdateListener", "full_name": "android.media.RemoteControlClient.OnMetadataUpdateListener"}, {"package_name": "android.media", "class_name": "RemoteControlClient.OnPlaybackPositionUpdateListener", "full_name": "android.media.RemoteControlClient.OnPlaybackPositionUpdateListener"}, {"package_name": "android.media", "class_name": "RemoteController", "full_name": "android.media.RemoteController"}, {"package_name": "android.media", "class_name": "RemoteController.MetadataEditor", "full_name": "android.media.RemoteController.MetadataEditor"}, {"package_name": "android.media", "class_name": "RemoteController.OnClientUpdateListener", "full_name": "android.media.RemoteController.OnClientUpdateListener"}, {"package_name": "android.os", "class_name": "RemoteException", "full_name": "android.os.RemoteException"}, {"package_name": "android.app", "class_name": "RemoteInput", "full_name": "android.app.RemoteInput"}, {"package_name": "android.app", "class_name": "RemoteInput.Builder", "full_name": "android.app.RemoteInput.Builder"}, {"package_name": "android.widget", "class_name": "RemoteViews", "full_name": "android.widget.RemoteViews"}, {"package_name": "android.widget", "class_name": "RemoteViews.ActionException", "full_name": "android.widget.RemoteViews.ActionException"}, {"package_name": "android.widget", "class_name": "RemoteViews.RemoteView", "full_name": "android.widget.RemoteViews.RemoteView"}, {"package_name": "android.widget", "class_name": "RemoteViewsService", "full_name": "android.widget.RemoteViewsService"}, {"package_name": "android.widget", "class_name": "RemoteViewsService.RemoteViewsFactory", "full_name": "android.widget.RemoteViewsService.RemoteViewsFactory"}, {"package_name": "android.test", "class_name": "RenamingDelegatingContext", "full_name": "android.test.RenamingDelegatingContext"}, {"package_name": "android.webkit", "class_name": "RenderProcessGoneDetail", "full_name": "android.webkit.RenderProcessGoneDetail"}, {"package_name": "android.renderscript", "class_name": "RenderScript", "full_name": "android.renderscript.RenderScript"}, {"package_name": "android.renderscript", "class_name": "RenderScript.ContextType", "full_name": "android.renderscript.RenderScript.ContextType"}, {"package_name": "android.renderscript", "class_name": "RenderScript.Priority", "full_name": "android.renderscript.RenderScript.Priority"}, {"package_name": "android.renderscript", "class_name": "RenderScript.RSErrorHandler", "full_name": "android.renderscript.RenderScript.RSErrorHandler"}, {"package_name": "android.renderscript", "class_name": "RenderScript.RSMessageHandler", "full_name": "android.renderscript.RenderScript.RSMessageHandler"}, {"package_name": "java.lang.annotation", "class_name": "Repeatable", "full_name": "java.lang.annotation.Repeatable"}, {"package_name": "android.icu.text", "class_name": "Replaceable", "full_name": "android.icu.text.Replaceable"}, {"package_name": "android.text.style", "class_name": "ReplacementSpan", "full_name": "android.text.style.ReplacementSpan"}, {"package_name": "android.text.method", "class_name": "ReplacementTransformationMethod", "full_name": "android.text.method.ReplacementTransformationMethod"}, {"package_name": "android.content.pm", "class_name": "ResolveInfo", "full_name": "android.content.pm.ResolveInfo"}, {"package_name": "android.content.pm", "class_name": "ResolveInfo.DisplayNameComparator", "full_name": "android.content.pm.ResolveInfo.DisplayNameComparator"}, {"package_name": "java.time.format", "class_name": "ResolverStyle", "full_name": "java.time.format.ResolverStyle"}, {"package_name": "java.util", "class_name": "ResourceBundle", "full_name": "java.util.ResourceBundle"}, {"package_name": "java.util", "class_name": "ResourceBundle.Control", "full_name": "java.util.ResourceBundle.Control"}, {"package_name": "android.media", "class_name": "ResourceBusyException", "full_name": "android.media.ResourceBusyException"}, {"package_name": "android.widget", "class_name": "ResourceCursorAdapter", "full_name": "android.widget.ResourceCursorAdapter"}, {"package_name": "android.widget", "class_name": "ResourceCursorTreeAdapter", "full_name": "android.widget.ResourceCursorTreeAdapter"}, {"package_name": "android.os.strictmode", "class_name": "ResourceMismatchViolation", "full_name": "android.os.strictmode.ResourceMismatchViolation"}, {"package_name": "android.content.res", "class_name": "Resources", "full_name": "android.content.res.Resources"}, {"package_name": "android.content.res", "class_name": "Resources.NotFoundException", "full_name": "android.content.res.Resources.NotFoundException"}, {"package_name": "android.content.res", "class_name": "Resources.Theme", "full_name": "android.content.res.Resources.Theme"}, {"package_name": "java.net", "class_name": "ResponseCache", "full_name": "java.net.ResponseCache"}, {"package_name": "android.app.backup", "class_name": "RestoreObserver", "full_name": "android.app.backup.RestoreObserver"}, {"package_name": "android.content", "class_name": "RestrictionEntry", "full_name": "android.content.RestrictionEntry"}, {"package_name": "android.content", "class_name": "RestrictionsManager", "full_name": "android.content.RestrictionsManager"}, {"package_name": "android.service.restrictions", "class_name": "RestrictionsReceiver", "full_name": "android.service.restrictions.RestrictionsReceiver"}, {"package_name": "javax.xml.transform", "class_name": "Result", "full_name": "javax.xml.transform.Result"}, {"package_name": "android.os", "class_name": "ResultReceiver", "full_name": "android.os.ResultReceiver"}, {"package_name": "java.sql", "class_name": "ResultSet", "full_name": "java.sql.ResultSet"}, {"package_name": "java.sql", "class_name": "ResultSetMetaData", "full_name": "java.sql.ResultSetMetaData"}, {"package_name": "java.lang.annotation", "class_name": "Retention", "full_name": "java.lang.annotation.Retention"}, {"package_name": "java.lang.annotation", "class_name": "RetentionPolicy", "full_name": "java.lang.annotation.RetentionPolicy"}, {"package_name": "android.media", "class_name": "Ringtone", "full_name": "android.media.Ringtone"}, {"package_name": "android.media", "class_name": "RingtoneManager", "full_name": "android.media.RingtoneManager"}, {"package_name": "android.preference", "class_name": "RingtonePreference", "full_name": "android.preference.RingtonePreference"}, {"package_name": "android.graphics.drawable", "class_name": "RippleDrawable", "full_name": "android.graphics.drawable.RippleDrawable"}, {"package_name": "android.sax", "class_name": "RootElement", "full_name": "android.sax.RootElement"}, {"package_name": "android.view.animation", "class_name": "RotateAnimation", "full_name": "android.view.animation.RotateAnimation"}, {"package_name": "android.graphics.drawable", "class_name": "RotateDrawable", "full_name": "android.graphics.drawable.RotateDrawable"}, {"package_name": "java.math", "class_name": "RoundingMode", "full_name": "java.math.RoundingMode"}, {"package_name": "android.graphics.drawable.shapes", "class_name": "RoundRectShape", "full_name": "android.graphics.drawable.shapes.RoundRectShape"}, {"package_name": "android.net", "class_name": "RouteInfo", "full_name": "android.net.RouteInfo"}, {"package_name": "java.sql", "class_name": "RowId", "full_name": "java.sql.RowId"}, {"package_name": "java.sql", "class_name": "RowIdLifetime", "full_name": "java.sql.RowIdLifetime"}, {"package_name": "javax.sql", "class_name": "RowSet", "full_name": "javax.sql.RowSet"}, {"package_name": "javax.sql", "class_name": "RowSetEvent", "full_name": "javax.sql.RowSetEvent"}, {"package_name": "javax.sql", "class_name": "RowSetInternal", "full_name": "javax.sql.RowSetInternal"}, {"package_name": "javax.sql", "class_name": "RowSetListener", "full_name": "javax.sql.RowSetListener"}, {"package_name": "javax.sql", "class_name": "RowSetMetaData", "full_name": "javax.sql.RowSetMetaData"}, {"package_name": "javax.sql", "class_name": "RowSetReader", "full_name": "javax.sql.RowSetReader"}, {"package_name": "javax.sql", "class_name": "RowSetWriter", "full_name": "javax.sql.RowSetWriter"}, {"package_name": "java.security.interfaces", "class_name": "RSAKey", "full_name": "java.security.interfaces.RSAKey"}, {"package_name": "java.security.spec", "class_name": "RSAKeyGenParameterSpec", "full_name": "java.security.spec.RSAKeyGenParameterSpec"}, {"package_name": "java.security.interfaces", "class_name": "RSAMultiPrimePrivateCrtKey", "full_name": "java.security.interfaces.RSAMultiPrimePrivateCrtKey"}, {"package_name": "java.security.spec", "class_name": "RSAMultiPrimePrivateCrtKeySpec", "full_name": "java.security.spec.RSAMultiPrimePrivateCrtKeySpec"}, {"package_name": "java.security.spec", "class_name": "RSAOtherPrimeInfo", "full_name": "java.security.spec.RSAOtherPrimeInfo"}, {"package_name": "java.security.interfaces", "class_name": "RSAPrivateCrtKey", "full_name": "java.security.interfaces.RSAPrivateCrtKey"}, {"package_name": "java.security.spec", "class_name": "RSAPrivateCrtKeySpec", "full_name": "java.security.spec.RSAPrivateCrtKeySpec"}, {"package_name": "java.security.interfaces", "class_name": "RSAPrivateKey", "full_name": "java.security.interfaces.RSAPrivateKey"}, {"package_name": "java.security.spec", "class_name": "RSAPrivateKeySpec", "full_name": "java.security.spec.RSAPrivateKeySpec"}, {"package_name": "java.security.interfaces", "class_name": "RSAPublicKey", "full_name": "java.security.interfaces.RSAPublicKey"}, {"package_name": "java.security.spec", "class_name": "RSAPublicKeySpec", "full_name": "java.security.spec.RSAPublicKeySpec"}, {"package_name": "android.renderscript", "class_name": "RSDriverException", "full_name": "android.renderscript.RSDriverException"}, {"package_name": "android.renderscript", "class_name": "RSIllegalArgumentException", "full_name": "android.renderscript.RSIllegalArgumentException"}, {"package_name": "android.renderscript", "class_name": "RSInvalidStateException", "full_name": "android.renderscript.RSInvalidStateException"}, {"package_name": "android.renderscript", "class_name": "RSRuntimeException", "full_name": "android.renderscript.RSRuntimeException"}, {"package_name": "android.net.rtp", "class_name": "RtpStream", "full_name": "android.net.rtp.RtpStream"}, {"package_name": "android.icu.text", "class_name": "RuleBasedCollator", "full_name": "android.icu.text.RuleBasedCollator"}, {"package_name": "java.text", "class_name": "RuleBasedCollator", "full_name": "java.text.RuleBasedCollator"}, {"package_name": "java.lang", "class_name": "Runnable", "full_name": "java.lang.Runnable"}, {"package_name": "java.lang", "class_name": "Runtime", "full_name": "java.lang.Runtime"}, {"package_name": "java.lang", "class_name": "RuntimeException", "full_name": "java.lang.RuntimeException"}, {"package_name": "java.lang", "class_name": "RuntimePermission", "full_name": "java.lang.RuntimePermission"}, {"package_name": "android.webkit", "class_name": "SafeBrowsingResponse", "full_name": "android.webkit.SafeBrowsingResponse"}, {"package_name": "java.lang", "class_name": "SafeVarargs", "full_name": "java.lang.SafeVarargs"}, {"package_name": "android.renderscript", "class_name": "Sampler", "full_name": "android.renderscript.Sampler"}, {"package_name": "android.renderscript", "class_name": "Sampler.Builder", "full_name": "android.renderscript.Sampler.Builder"}, {"package_name": "android.renderscript", "class_name": "Sampler.Value", "full_name": "android.renderscript.Sampler.Value"}, {"package_name": "android.service.autofill", "class_name": "Sanitizer", "full_name": "android.service.autofill.Sanitizer"}, {"package_name": "android.service.autofill", "class_name": "SaveCallback", "full_name": "android.service.autofill.SaveCallback"}, {"package_name": "android.service.autofill", "class_name": "SaveInfo", "full_name": "android.service.autofill.SaveInfo"}, {"package_name": "android.service.autofill", "class_name": "SaveInfo.Builder", "full_name": "android.service.autofill.SaveInfo.Builder"}, {"package_name": "java.sql", "class_name": "Savepoint", "full_name": "java.sql.Savepoint"}, {"package_name": "android.service.autofill", "class_name": "SaveRequest", "full_name": "android.service.autofill.SaveRequest"}, {"package_name": "org.xml.sax", "class_name": "SAXException", "full_name": "org.xml.sax.SAXException"}, {"package_name": "org.xml.sax", "class_name": "SAXNotRecognizedException", "full_name": "org.xml.sax.SAXNotRecognizedException"}, {"package_name": "org.xml.sax", "class_name": "SAXNotSupportedException", "full_name": "org.xml.sax.SAXNotSupportedException"}, {"package_name": "org.xml.sax", "class_name": "SAXParseException", "full_name": "org.xml.sax.SAXParseException"}, {"package_name": "javax.xml.parsers", "class_name": "SAXParser", "full_name": "javax.xml.parsers.SAXParser"}, {"package_name": "javax.xml.parsers", "class_name": "SAXParserFactory", "full_name": "javax.xml.parsers.SAXParserFactory"}, {"package_name": "javax.xml.transform.sax", "class_name": "SAXResult", "full_name": "javax.xml.transform.sax.SAXResult"}, {"package_name": "javax.xml.transform.sax", "class_name": "SAXSource", "full_name": "javax.xml.transform.sax.SAXSource"}, {"package_name": "javax.xml.transform.sax", "class_name": "SAXTransformerFactory", "full_name": "javax.xml.transform.sax.SAXTransformerFactory"}, {"package_name": "android.view.animation", "class_name": "ScaleAnimation", "full_name": "android.view.animation.ScaleAnimation"}, {"package_name": "android.graphics.drawable", "class_name": "ScaleDrawable", "full_name": "android.graphics.drawable.ScaleDrawable"}, {"package_name": "android.view", "class_name": "ScaleGestureDetector", "full_name": "android.view.ScaleGestureDetector"}, {"package_name": "android.view", "class_name": "ScaleGestureDetector.OnScaleGestureListener", "full_name": "android.view.ScaleGestureDetector.OnScaleGestureListener"}, {"package_name": "android.view", "class_name": "ScaleGestureDetector.SimpleOnScaleGestureListener", "full_name": "android.view.ScaleGestureDetector.SimpleOnScaleGestureListener"}, {"package_name": "android.text.style", "class_name": "ScaleXSpan", "full_name": "android.text.style.ScaleXSpan"}, {"package_name": "android.bluetooth.le", "class_name": "ScanCallback", "full_name": "android.bluetooth.le.ScanCallback"}, {"package_name": "android.bluetooth.le", "class_name": "ScanFilter", "full_name": "android.bluetooth.le.ScanFilter"}, {"package_name": "android.bluetooth.le", "class_name": "ScanFilter.Builder", "full_name": "android.bluetooth.le.ScanFilter.Builder"}, {"package_name": "java.util", "class_name": "Scanner", "full_name": "java.util.Scanner"}, {"package_name": "android.bluetooth.le", "class_name": "ScanRecord", "full_name": "android.bluetooth.le.ScanRecord"}, {"package_name": "android.bluetooth.le", "class_name": "ScanResult", "full_name": "android.bluetooth.le.ScanResult"}, {"package_name": "android.net.wifi", "class_name": "ScanResult", "full_name": "android.net.wifi.ScanResult"}, {"package_name": "android.bluetooth.le", "class_name": "ScanSettings", "full_name": "android.bluetooth.le.ScanSettings"}, {"package_name": "android.bluetooth.le", "class_name": "ScanSettings.Builder", "full_name": "android.bluetooth.le.ScanSettings.Builder"}, {"package_name": "java.nio.channels", "class_name": "ScatteringByteChannel", "full_name": "java.nio.channels.ScatteringByteChannel"}, {"package_name": "android.transition", "class_name": "Scene", "full_name": "android.transition.Scene"}, {"package_name": "java.util.concurrent", "class_name": "ScheduledExecutorService", "full_name": "java.util.concurrent.ScheduledExecutorService"}, {"package_name": "java.util.concurrent", "class_name": "ScheduledThreadPoolExecutor", "full_name": "java.util.concurrent.ScheduledThreadPoolExecutor"}, {"package_name": "javax.xml.validation", "class_name": "Schema", "full_name": "javax.xml.validation.Schema"}, {"package_name": "javax.xml.validation", "class_name": "SchemaFactory", "full_name": "javax.xml.validation.SchemaFactory"}, {"package_name": "javax.xml.validation", "class_name": "SchemaFactoryLoader", "full_name": "javax.xml.validation.SchemaFactoryLoader"}, {"package_name": "android.icu.text", "class_name": "ScientificNumberFormatter", "full_name": "android.icu.text.ScientificNumberFormatter"}, {"package_name": "android.renderscript", "class_name": "Script", "full_name": "android.renderscript.Script"}, {"package_name": "android.renderscript", "class_name": "Script.Builder", "full_name": "android.renderscript.Script.Builder"}, {"package_name": "android.renderscript", "class_name": "Script.FieldBase", "full_name": "android.renderscript.Script.FieldBase"}, {"package_name": "android.renderscript", "class_name": "Script.FieldID", "full_name": "android.renderscript.Script.FieldID"}, {"package_name": "android.renderscript", "class_name": "Script.InvokeID", "full_name": "android.renderscript.Script.InvokeID"}, {"package_name": "android.renderscript", "class_name": "Script.KernelID", "full_name": "android.renderscript.Script.KernelID"}, {"package_name": "android.renderscript", "class_name": "Script.LaunchOptions", "full_name": "android.renderscript.Script.LaunchOptions"}, {"package_name": "android.renderscript", "class_name": "ScriptC", "full_name": "android.renderscript.ScriptC"}, {"package_name": "android.renderscript", "class_name": "ScriptGroup", "full_name": "android.renderscript.ScriptGroup"}, {"package_name": "android.renderscript", "class_name": "ScriptGroup.Binding", "full_name": "android.renderscript.ScriptGroup.Binding"}, {"package_name": "android.renderscript", "class_name": "ScriptGroup.Builder", "full_name": "android.renderscript.ScriptGroup.Builder"}, {"package_name": "android.renderscript", "class_name": "ScriptGroup.Closure", "full_name": "android.renderscript.ScriptGroup.Closure"}, {"package_name": "android.renderscript", "class_name": "ScriptGroup.Future", "full_name": "android.renderscript.ScriptGroup.Future"}, {"package_name": "android.renderscript", "class_name": "ScriptGroup.Input", "full_name": "android.renderscript.ScriptGroup.Input"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsic", "full_name": "android.renderscript.ScriptIntrinsic"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicBLAS", "full_name": "android.renderscript.ScriptIntrinsicBLAS"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicBlend", "full_name": "android.renderscript.ScriptIntrinsicBlend"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicBlur", "full_name": "android.renderscript.ScriptIntrinsicBlur"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicColorMatrix", "full_name": "android.renderscript.ScriptIntrinsicColorMatrix"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicHistogram", "full_name": "android.renderscript.ScriptIntrinsicHistogram"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicLUT", "full_name": "android.renderscript.ScriptIntrinsicLUT"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicResize", "full_name": "android.renderscript.ScriptIntrinsicResize"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicYuvToRGB", "full_name": "android.renderscript.ScriptIntrinsicYuvToRGB"}, {"package_name": "android.widget", "class_name": "Scroller", "full_name": "android.widget.Scroller"}, {"package_name": "android.text.method", "class_name": "ScrollingMovementMethod", "full_name": "android.text.method.ScrollingMovementMethod"}, {"package_name": "android.widget", "class_name": "ScrollView", "full_name": "android.widget.ScrollView"}, {"package_name": "javax.crypto", "class_name": "SealedObject", "full_name": "javax.crypto.SealedObject"}, {"package_name": "android.app", "class_name": "SearchableInfo", "full_name": "android.app.SearchableInfo"}, {"package_name": "android.view", "class_name": "SearchEvent", "full_name": "android.view.SearchEvent"}, {"package_name": "android.icu.text", "class_name": "SearchIterator", "full_name": "android.icu.text.SearchIterator"}, {"package_name": "android.icu.text", "class_name": "SearchIterator.ElementComparisonType", "full_name": "android.icu.text.SearchIterator.ElementComparisonType"}, {"package_name": "android.app", "class_name": "SearchManager", "full_name": "android.app.SearchManager"}, {"package_name": "android.app", "class_name": "SearchManager.OnCancelListener", "full_name": "android.app.SearchManager.OnCancelListener"}, {"package_name": "android.app", "class_name": "SearchManager.OnDismissListener", "full_name": "android.app.SearchManager.OnDismissListener"}, {"package_name": "android.provider", "class_name": "SearchRecentSuggestions", "full_name": "android.provider.SearchRecentSuggestions"}, {"package_name": "android.content", "class_name": "SearchRecentSuggestionsProvider", "full_name": "android.content.SearchRecentSuggestionsProvider"}, {"package_name": "android.widget", "class_name": "SearchView", "full_name": "android.widget.SearchView"}, {"package_name": "android.widget", "class_name": "SearchView.OnCloseListener", "full_name": "android.widget.SearchView.OnCloseListener"}, {"package_name": "android.widget", "class_name": "SearchView.OnQueryTextListener", "full_name": "android.widget.SearchView.OnQueryTextListener"}, {"package_name": "android.widget", "class_name": "SearchView.OnSuggestionListener", "full_name": "android.widget.SearchView.OnSuggestionListener"}, {"package_name": "javax.crypto", "class_name": "SecretKey", "full_name": "javax.crypto.SecretKey"}, {"package_name": "javax.crypto", "class_name": "SecretKeyFactory", "full_name": "javax.crypto.SecretKeyFactory"}, {"package_name": "javax.crypto", "class_name": "SecretKeyFactorySpi", "full_name": "javax.crypto.SecretKeyFactorySpi"}, {"package_name": "javax.crypto.spec", "class_name": "SecretKeySpec", "full_name": "javax.crypto.spec.SecretKeySpec"}, {"package_name": "android.widget", "class_name": "SectionIndexer", "full_name": "android.widget.SectionIndexer"}, {"package_name": "java.net", "class_name": "SecureCacheResponse", "full_name": "java.net.SecureCacheResponse"}, {"package_name": "java.security", "class_name": "SecureClassLoader", "full_name": "java.security.SecureClassLoader"}, {"package_name": "android.security.keystore", "class_name": "SecureKeyImportUnavailableException", "full_name": "android.security.keystore.SecureKeyImportUnavailableException"}, {"package_name": "java.security", "class_name": "SecureRandom", "full_name": "java.security.SecureRandom"}, {"package_name": "java.security", "class_name": "SecureRandomSpi", "full_name": "java.security.SecureRandomSpi"}, {"package_name": "java.security", "class_name": "Security", "full_name": "java.security.Security"}, {"package_name": "java.lang", "class_name": "SecurityException", "full_name": "java.lang.SecurityException"}, {"package_name": "android.app.admin", "class_name": "SecurityLog", "full_name": "android.app.admin.SecurityLog"}, {"package_name": "android.app.admin", "class_name": "SecurityLog.SecurityEvent", "full_name": "android.app.admin.SecurityLog.SecurityEvent"}, {"package_name": "java.lang", "class_name": "SecurityManager", "full_name": "java.lang.SecurityManager"}, {"package_name": "java.security", "class_name": "SecurityPermission", "full_name": "java.security.SecurityPermission"}, {"package_name": "java.nio.channels", "class_name": "SeekableByteChannel", "full_name": "java.nio.channels.SeekableByteChannel"}, {"package_name": "android.widget", "class_name": "SeekBar", "full_name": "android.widget.SeekBar"}, {"package_name": "android.widget", "class_name": "SeekBar.OnSeekBarChangeListener", "full_name": "android.widget.SeekBar.OnSeekBarChangeListener"}, {"package_name": "java.nio.channels", "class_name": "SelectableChannel", "full_name": "java.nio.channels.SelectableChannel"}, {"package_name": "android.icu.text", "class_name": "SelectFormat", "full_name": "android.icu.text.SelectFormat"}, {"package_name": "android.text", "class_name": "Selection", "full_name": "android.text.Selection"}, {"package_name": "android.view.textclassifier", "class_name": "SelectionEvent", "full_name": "android.view.textclassifier.SelectionEvent"}, {"package_name": "java.nio.channels", "class_name": "SelectionKey", "full_name": "java.nio.channels.SelectionKey"}, {"package_name": "java.nio.channels", "class_name": "Selector", "full_name": "java.nio.channels.Selector"}, {"package_name": "java.nio.channels.spi", "class_name": "SelectorProvider", "full_name": "java.nio.channels.spi.SelectorProvider"}, {"package_name": "java.util.concurrent", "class_name": "Semaphore", "full_name": "java.util.concurrent.Semaphore"}, {"package_name": "android.hardware", "class_name": "Sensor", "full_name": "android.hardware.Sensor"}, {"package_name": "android.hardware", "class_name": "SensorAdditionalInfo", "full_name": "android.hardware.SensorAdditionalInfo"}, {"package_name": "android.hardware", "class_name": "SensorDirectChannel", "full_name": "android.hardware.SensorDirectChannel"}, {"package_name": "android.hardware", "class_name": "SensorEvent", "full_name": "android.hardware.SensorEvent"}, {"package_name": "android.hardware", "class_name": "SensorEventCallback", "full_name": "android.hardware.SensorEventCallback"}, {"package_name": "android.hardware", "class_name": "SensorEventListener", "full_name": "android.hardware.SensorEventListener"}, {"package_name": "android.hardware", "class_name": "SensorListener", "full_name": "android.hardware.SensorListener"}, {"package_name": "android.hardware", "class_name": "SensorManager", "full_name": "android.hardware.SensorManager"}, {"package_name": "android.hardware", "class_name": "SensorManager.DynamicSensorCallback", "full_name": "android.hardware.SensorManager.DynamicSensorCallback"}, {"package_name": "android.view.textservice", "class_name": "SentenceSuggestionsInfo", "full_name": "android.view.textservice.SentenceSuggestionsInfo"}, {"package_name": "java.io", "class_name": "SequenceInputStream", "full_name": "java.io.SequenceInputStream"}, {"package_name": "java.io", "class_name": "Serializable", "full_name": "java.io.Serializable"}, {"package_name": "java.io", "class_name": "SerializablePermission", "full_name": "java.io.SerializablePermission"}, {"package_name": "java.net", "class_name": "ServerSocket", "full_name": "java.net.ServerSocket"}, {"package_name": "java.nio.channels", "class_name": "ServerSocketChannel", "full_name": "java.nio.channels.ServerSocketChannel"}, {"package_name": "javax.net", "class_name": "ServerSocketFactory", "full_name": "javax.net.ServerSocketFactory"}, {"package_name": "android.app", "class_name": "Service", "full_name": "android.app.Service"}, {"package_name": "java.util", "class_name": "ServiceConfigurationError", "full_name": "java.util.ServiceConfigurationError"}, {"package_name": "android.content", "class_name": "ServiceConnection", "full_name": "android.content.ServiceConnection"}, {"package_name": "android.os.strictmode", "class_name": "ServiceConnectionLeakedViolation", "full_name": "android.os.strictmode.ServiceConnectionLeakedViolation"}, {"package_name": "android.os.health", "class_name": "ServiceHealthStats", "full_name": "android.os.health.ServiceHealthStats"}, {"package_name": "android.content.pm", "class_name": "ServiceInfo", "full_name": "android.content.pm.ServiceInfo"}, {"package_name": "android.telephony.mbms", "class_name": "ServiceInfo", "full_name": "android.telephony.mbms.ServiceInfo"}, {"package_name": "android.telephony", "class_name": "ServiceState", "full_name": "android.telephony.ServiceState"}, {"package_name": "android.webkit", "class_name": "ServiceWorkerClient", "full_name": "android.webkit.ServiceWorkerClient"}, {"package_name": "android.webkit", "class_name": "ServiceWorkerController", "full_name": "android.webkit.ServiceWorkerController"}, {"package_name": "android.webkit", "class_name": "ServiceWorkerWebSettings", "full_name": "android.webkit.ServiceWorkerWebSettings"}, {"package_name": "android.se.omapi", "class_name": "SEService", "full_name": "android.se.omapi.SEService"}, {"package_name": "android.se.omapi", "class_name": "SEService.OnConnectedListener", "full_name": "android.se.omapi.SEService.OnConnectedListener"}, {"package_name": "android.se.omapi", "class_name": "Session", "full_name": "android.se.omapi.Session"}, {"package_name": "android.location", "class_name": "SettingInjectorService", "full_name": "android.location.SettingInjectorService"}, {"package_name": "android.provider", "class_name": "Settings", "full_name": "android.provider.Settings"}, {"package_name": "android.provider", "class_name": "Settings.Global", "full_name": "android.provider.Settings.Global"}, {"package_name": "android.provider", "class_name": "Settings.NameValueTable", "full_name": "android.provider.Settings.NameValueTable"}, {"package_name": "android.provider", "class_name": "Settings.Secure", "full_name": "android.provider.Settings.Secure"}, {"package_name": "android.provider", "class_name": "Settings.SettingNotFoundException", "full_name": "android.provider.Settings.SettingNotFoundException"}, {"package_name": "android.provider", "class_name": "Settings.System", "full_name": "android.provider.Settings.System"}, {"package_name": "android.provider", "class_name": "SettingsSlicesContract", "full_name": "android.provider.SettingsSlicesContract"}, {"package_name": "android.graphics", "class_name": "Shader", "full_name": "android.graphics.Shader"}, {"package_name": "android.graphics", "class_name": "Shader.TileMode", "full_name": "android.graphics.Shader.TileMode"}, {"package_name": "android.graphics.drawable.shapes", "class_name": "Shape", "full_name": "android.graphics.drawable.shapes.Shape"}, {"package_name": "android.graphics.drawable", "class_name": "ShapeDrawable", "full_name": "android.graphics.drawable.ShapeDrawable"}, {"package_name": "android.graphics.drawable", "class_name": "ShapeDrawable.ShaderFactory", "full_name": "android.graphics.drawable.ShapeDrawable.ShaderFactory"}, {"package_name": "android.widget", "class_name": "ShareActionProvider", "full_name": "android.widget.ShareActionProvider"}, {"package_name": "android.widget", "class_name": "ShareActionProvider.OnShareTargetSelectedListener", "full_name": "android.widget.ShareActionProvider.OnShareTargetSelectedListener"}, {"package_name": "android.app", "class_name": "SharedElementCallback", "full_name": "android.app.SharedElementCallback"}, {"package_name": "android.app", "class_name": "SharedElementCallback.OnSharedElementsReadyListener", "full_name": "android.app.SharedElementCallback.OnSharedElementsReadyListener"}, {"package_name": "android.content.pm", "class_name": "SharedLibraryInfo", "full_name": "android.content.pm.SharedLibraryInfo"}, {"package_name": "android.os", "class_name": "SharedMemory", "full_name": "android.os.SharedMemory"}, {"package_name": "android.content", "class_name": "SharedPreferences", "full_name": "android.content.SharedPreferences"}, {"package_name": "android.content", "class_name": "SharedPreferences.Editor", "full_name": "android.content.SharedPreferences.Editor"}, {"package_name": "android.content", "class_name": "SharedPreferences.OnSharedPreferenceChangeListener", "full_name": "android.content.SharedPreferences.OnSharedPreferenceChangeListener"}, {"package_name": "android.app.backup", "class_name": "SharedPreferencesBackupHelper", "full_name": "android.app.backup.SharedPreferencesBackupHelper"}, {"package_name": "java.lang", "class_name": "Short", "full_name": "java.lang.Short"}, {"package_name": "java.nio", "class_name": "ShortBuffer", "full_name": "java.nio.ShortBuffer"}, {"package_name": "javax.crypto", "class_name": "ShortBufferException", "full_name": "javax.crypto.ShortBufferException"}, {"package_name": "android.content.pm", "class_name": "ShortcutInfo", "full_name": "android.content.pm.ShortcutInfo"}, {"package_name": "android.content.pm", "class_name": "ShortcutInfo.Builder", "full_name": "android.content.pm.ShortcutInfo.Builder"}, {"package_name": "android.content.pm", "class_name": "ShortcutManager", "full_name": "android.content.pm.ShortcutManager"}, {"package_name": "java.nio.channels", "class_name": "ShutdownChannelGroupException", "full_name": "java.nio.channels.ShutdownChannelGroupException"}, {"package_name": "android.transition", "class_name": "SidePropagation", "full_name": "android.transition.SidePropagation"}, {"package_name": "android.telephony", "class_name": "SignalStrength", "full_name": "android.telephony.SignalStrength"}, {"package_name": "android.content.pm", "class_name": "Signature", "full_name": "android.content.pm.Signature"}, {"package_name": "java.security", "class_name": "Signature", "full_name": "java.security.Signature"}, {"package_name": "java.security", "class_name": "SignatureException", "full_name": "java.security.SignatureException"}, {"package_name": "java.security", "class_name": "SignatureSpi", "full_name": "java.security.SignatureSpi"}, {"package_name": "java.security", "class_name": "SignedObject", "full_name": "java.security.SignedObject"}, {"package_name": "java.security", "class_name": "Signer", "full_name": "java.security.Signer"}, {"package_name": "android.content.pm", "class_name": "SigningInfo", "full_name": "android.content.pm.SigningInfo"}, {"package_name": "java.time.format", "class_name": "SignStyle", "full_name": "java.time.format.SignStyle"}, {"package_name": "android.widget", "class_name": "SimpleAdapter", "full_name": "android.widget.SimpleAdapter"}, {"package_name": "android.widget", "class_name": "SimpleAdapter.ViewBinder", "full_name": "android.widget.SimpleAdapter.ViewBinder"}, {"package_name": "android.widget", "class_name": "SimpleCursorAdapter", "full_name": "android.widget.SimpleCursorAdapter"}, {"package_name": "android.widget", "class_name": "SimpleCursorAdapter.CursorToStringConverter", "full_name": "android.widget.SimpleCursorAdapter.CursorToStringConverter"}, {"package_name": "android.widget", "class_name": "SimpleCursorAdapter.ViewBinder", "full_name": "android.widget.SimpleCursorAdapter.ViewBinder"}, {"package_name": "android.widget", "class_name": "SimpleCursorTreeAdapter", "full_name": "android.widget.SimpleCursorTreeAdapter"}, {"package_name": "android.widget", "class_name": "SimpleCursorTreeAdapter.ViewBinder", "full_name": "android.widget.SimpleCursorTreeAdapter.ViewBinder"}, {"package_name": "android.icu.text", "class_name": "SimpleDateFormat", "full_name": "android.icu.text.SimpleDateFormat"}, {"package_name": "java.text", "class_name": "SimpleDateFormat", "full_name": "java.text.SimpleDateFormat"}, {"package_name": "android.widget", "class_name": "SimpleExpandableListAdapter", "full_name": "android.widget.SimpleExpandableListAdapter"}, {"package_name": "java.util.logging", "class_name": "SimpleFormatter", "full_name": "java.util.logging.SimpleFormatter"}, {"package_name": "java.util", "class_name": "SimpleTimeZone", "full_name": "java.util.SimpleTimeZone"}, {"package_name": "android.text.method", "class_name": "SingleLineTransformationMethod", "full_name": "android.text.method.SingleLineTransformationMethod"}, {"package_name": "android.net.sip", "class_name": "SipAudioCall", "full_name": "android.net.sip.SipAudioCall"}, {"package_name": "android.net.sip", "class_name": "SipAudioCall.Listener", "full_name": "android.net.sip.SipAudioCall.Listener"}, {"package_name": "android.net.sip", "class_name": "SipErrorCode", "full_name": "android.net.sip.SipErrorCode"}, {"package_name": "android.net.sip", "class_name": "SipException", "full_name": "android.net.sip.SipException"}, {"package_name": "android.net.sip", "class_name": "SipManager", "full_name": "android.net.sip.SipManager"}, {"package_name": "android.net.sip", "class_name": "SipProfile", "full_name": "android.net.sip.SipProfile"}, {"package_name": "android.net.sip", "class_name": "SipProfile.Builder", "full_name": "android.net.sip.SipProfile.Builder"}, {"package_name": "android.net.sip", "class_name": "SipRegistrationListener", "full_name": "android.net.sip.SipRegistrationListener"}, {"package_name": "android.net.sip", "class_name": "SipSession", "full_name": "android.net.sip.SipSession"}, {"package_name": "android.net.sip", "class_name": "SipSession.Listener", "full_name": "android.net.sip.SipSession.Listener"}, {"package_name": "android.net.sip", "class_name": "SipSession.State", "full_name": "android.net.sip.SipSession.State"}, {"package_name": "android.util", "class_name": "Size", "full_name": "android.util.Size"}, {"package_name": "android.util", "class_name": "SizeF", "full_name": "android.util.SizeF"}, {"package_name": "android.app.slice", "class_name": "Slice", "full_name": "android.app.slice.Slice"}, {"package_name": "android.app.slice", "class_name": "Slice.Builder", "full_name": "android.app.slice.Slice.Builder"}, {"package_name": "android.app.slice", "class_name": "SliceItem", "full_name": "android.app.slice.SliceItem"}, {"package_name": "android.app.slice", "class_name": "SliceManager", "full_name": "android.app.slice.SliceManager"}, {"package_name": "android.app.slice", "class_name": "SliceMetrics", "full_name": "android.app.slice.SliceMetrics"}, {"package_name": "android.app.slice", "class_name": "SliceProvider", "full_name": "android.app.slice.SliceProvider"}, {"package_name": "android.app.slice", "class_name": "SliceSpec", "full_name": "android.app.slice.SliceSpec"}, {"package_name": "android.transition", "class_name": "Slide", "full_name": "android.transition.Slide"}, {"package_name": "android.widget", "class_name": "SlidingDrawer", "full_name": "android.widget.SlidingDrawer"}, {"package_name": "android.widget", "class_name": "SlidingDrawer.OnDrawerCloseListener", "full_name": "android.widget.SlidingDrawer.OnDrawerCloseListener"}, {"package_name": "android.widget", "class_name": "SlidingDrawer.OnDrawerOpenListener", "full_name": "android.widget.SlidingDrawer.OnDrawerOpenListener"}, {"package_name": "android.widget", "class_name": "SlidingDrawer.OnDrawerScrollListener", "full_name": "android.widget.SlidingDrawer.OnDrawerScrollListener"}, {"package_name": "android.test.suitebuilder.annotation", "class_name": "SmallTest", "full_name": "android.test.suitebuilder.annotation.SmallTest"}, {"package_name": "android.test.suitebuilder.annotation", "class_name": "Smoke", "full_name": "android.test.suitebuilder.annotation.Smoke"}, {"package_name": "android.telephony", "class_name": "SmsManager", "full_name": "android.telephony.SmsManager"}, {"package_name": "android.telephony.gsm", "class_name": "SmsManager", "full_name": "android.telephony.gsm.SmsManager"}, {"package_name": "android.telephony", "class_name": "SmsMessage", "full_name": "android.telephony.SmsMessage"}, {"package_name": "android.telephony.gsm", "class_name": "SmsMessage", "full_name": "android.telephony.gsm.SmsMessage"}, {"package_name": "android.telephony", "class_name": "SmsMessage.MessageClass", "full_name": "android.telephony.SmsMessage.MessageClass"}, {"package_name": "android.telephony.gsm", "class_name": "SmsMessage.MessageClass", "full_name": "android.telephony.gsm.SmsMessage.MessageClass"}, {"package_name": "android.telephony", "class_name": "SmsMessage.SubmitPdu", "full_name": "android.telephony.SmsMessage.SubmitPdu"}, {"package_name": "android.telephony.gsm", "class_name": "SmsMessage.SubmitPdu", "full_name": "android.telephony.gsm.SmsMessage.SubmitPdu"}, {"package_name": "javax.net.ssl", "class_name": "SNIHostName", "full_name": "javax.net.ssl.SNIHostName"}, {"package_name": "javax.net.ssl", "class_name": "SNIMatcher", "full_name": "javax.net.ssl.SNIMatcher"}, {"package_name": "javax.net.ssl", "class_name": "SNIServerName", "full_name": "javax.net.ssl.SNIServerName"}, {"package_name": "java.net", "class_name": "Socket", "full_name": "java.net.Socket"}, {"package_name": "java.net", "class_name": "SocketAddress", "full_name": "java.net.SocketAddress"}, {"package_name": "java.nio.channels", "class_name": "SocketChannel", "full_name": "java.nio.channels.SocketChannel"}, {"package_name": "java.net", "class_name": "SocketException", "full_name": "java.net.SocketException"}, {"package_name": "javax.net", "class_name": "SocketFactory", "full_name": "javax.net.SocketFactory"}, {"package_name": "org.apache.http.conn.scheme", "class_name": "SocketFactory", "full_name": "org.apache.http.conn.scheme.SocketFactory"}, {"package_name": "java.util.logging", "class_name": "SocketHandler", "full_name": "java.util.logging.SocketHandler"}, {"package_name": "java.net", "class_name": "SocketImpl", "full_name": "java.net.SocketImpl"}, {"package_name": "java.net", "class_name": "SocketImplFactory", "full_name": "java.net.SocketImplFactory"}, {"package_name": "java.net", "class_name": "SocketOptions", "full_name": "java.net.SocketOptions"}, {"package_name": "java.net", "class_name": "SocketPermission", "full_name": "java.net.SocketPermission"}, {"package_name": "java.net", "class_name": "SocketTimeoutException", "full_name": "java.net.SocketTimeoutException"}, {"package_name": "android.view", "class_name": "SoundEffectConstants", "full_name": "android.view.SoundEffectConstants"}, {"package_name": "android.media", "class_name": "SoundPool", "full_name": "android.media.SoundPool"}, {"package_name": "android.media", "class_name": "SoundPool.Builder", "full_name": "android.media.SoundPool.Builder"}, {"package_name": "android.media", "class_name": "SoundPool.OnLoadCompleteListener", "full_name": "android.media.SoundPool.OnLoadCompleteListener"}, {"package_name": "javax.xml.transform", "class_name": "Source", "full_name": "javax.xml.transform.Source"}, {"package_name": "javax.xml.transform", "class_name": "SourceLocator", "full_name": "javax.xml.transform.SourceLocator"}, {"package_name": "android.widget", "class_name": "Space", "full_name": "android.widget.Space"}, {"package_name": "android.text", "class_name": "Spannable", "full_name": "android.text.Spannable"}, {"package_name": "android.text", "class_name": "Spannable.Factory", "full_name": "android.text.Spannable.Factory"}, {"package_name": "android.text", "class_name": "SpannableString", "full_name": "android.text.SpannableString"}, {"package_name": "android.text", "class_name": "SpannableStringBuilder", "full_name": "android.text.SpannableStringBuilder"}, {"package_name": "android.text", "class_name": "Spanned", "full_name": "android.text.Spanned"}, {"package_name": "android.text", "class_name": "SpannedString", "full_name": "android.text.SpannedString"}, {"package_name": "android.text", "class_name": "SpanWatcher", "full_name": "android.text.SpanWatcher"}, {"package_name": "android.util", "class_name": "SparseBooleanArray", "full_name": "android.util.SparseBooleanArray"}, {"package_name": "android.util", "class_name": "SparseIntArray", "full_name": "android.util.SparseIntArray"}, {"package_name": "android.util", "class_name": "SparseLongArray", "full_name": "android.util.SparseLongArray"}, {"package_name": "android.speech", "class_name": "SpeechRecognizer", "full_name": "android.speech.SpeechRecognizer"}, {"package_name": "android.view.textservice", "class_name": "SpellCheckerInfo", "full_name": "android.view.textservice.SpellCheckerInfo"}, {"package_name": "android.service.textservice", "class_name": "SpellCheckerService", "full_name": "android.service.textservice.SpellCheckerService"}, {"package_name": "android.service.textservice", "class_name": "SpellCheckerService.Session", "full_name": "android.service.textservice.SpellCheckerService.Session"}, {"package_name": "android.view.textservice", "class_name": "SpellCheckerSession", "full_name": "android.view.textservice.SpellCheckerSession"}, {"package_name": "android.view.textservice", "class_name": "SpellCheckerSession.SpellCheckerSessionListener", "full_name": "android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener"}, {"package_name": "android.view.textservice", "class_name": "SpellCheckerSubtype", "full_name": "android.view.textservice.SpellCheckerSubtype"}, {"package_name": "android.widget", "class_name": "Spinner", "full_name": "android.widget.Spinner"}, {"package_name": "android.widget", "class_name": "SpinnerAdapter", "full_name": "android.widget.SpinnerAdapter"}, {"package_name": "java.util", "class_name": "Spliterator.OfDouble", "full_name": "java.util.Spliterator.OfDouble"}, {"package_name": "java.util", "class_name": "Spliterator.OfInt", "full_name": "java.util.Spliterator.OfInt"}, {"package_name": "java.util", "class_name": "Spliterator.OfLong", "full_name": "java.util.Spliterator.OfLong"}, {"package_name": "java.util", "class_name": "Spliterators", "full_name": "java.util.Spliterators"}, {"package_name": "java.util", "class_name": "Spliterators.AbstractDoubleSpliterator", "full_name": "java.util.Spliterators.AbstractDoubleSpliterator"}, {"package_name": "java.util", "class_name": "Spliterators.AbstractIntSpliterator", "full_name": "java.util.Spliterators.AbstractIntSpliterator"}, {"package_name": "java.util", "class_name": "Spliterators.AbstractLongSpliterator", "full_name": "java.util.Spliterators.AbstractLongSpliterator"}, {"package_name": "java.util", "class_name": "SplittableRandom", "full_name": "java.util.SplittableRandom"}, {"package_name": "java.sql", "class_name": "SQLClientInfoException", "full_name": "java.sql.SQLClientInfoException"}, {"package_name": "java.sql", "class_name": "SQLData", "full_name": "java.sql.SQLData"}, {"package_name": "java.sql", "class_name": "SQLDataException", "full_name": "java.sql.SQLDataException"}, {"package_name": "android.database", "class_name": "SQLException", "full_name": "android.database.SQLException"}, {"package_name": "java.sql", "class_name": "SQLException", "full_name": "java.sql.SQLException"}, {"package_name": "java.sql", "class_name": "SQLFeatureNotSupportedException", "full_name": "java.sql.SQLFeatureNotSupportedException"}, {"package_name": "java.sql", "class_name": "SQLInput", "full_name": "java.sql.SQLInput"}, {"package_name": "java.sql", "class_name": "SQLIntegrityConstraintViolationException", "full_name": "java.sql.SQLIntegrityConstraintViolationException"}, {"package_name": "java.sql", "class_name": "SQLInvalidAuthorizationSpecException", "full_name": "java.sql.SQLInvalidAuthorizationSpecException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteAbortException", "full_name": "android.database.sqlite.SQLiteAbortException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteAccessPermException", "full_name": "android.database.sqlite.SQLiteAccessPermException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteBindOrColumnIndexOutOfRangeException", "full_name": "android.database.sqlite.SQLiteBindOrColumnIndexOutOfRangeException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteBlobTooBigException", "full_name": "android.database.sqlite.SQLiteBlobTooBigException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteCantOpenDatabaseException", "full_name": "android.database.sqlite.SQLiteCantOpenDatabaseException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteClosable", "full_name": "android.database.sqlite.SQLiteClosable"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteConstraintException", "full_name": "android.database.sqlite.SQLiteConstraintException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteCursor", "full_name": "android.database.sqlite.SQLiteCursor"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteCursorDriver", "full_name": "android.database.sqlite.SQLiteCursorDriver"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDatabase", "full_name": "android.database.sqlite.SQLiteDatabase"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDatabase.CursorFactory", "full_name": "android.database.sqlite.SQLiteDatabase.CursorFactory"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDatabase.OpenParams", "full_name": "android.database.sqlite.SQLiteDatabase.OpenParams"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDatabase.OpenParams.Builder", "full_name": "android.database.sqlite.SQLiteDatabase.OpenParams.Builder"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDatabaseCorruptException", "full_name": "android.database.sqlite.SQLiteDatabaseCorruptException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDatabaseLockedException", "full_name": "android.database.sqlite.SQLiteDatabaseLockedException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDatatypeMismatchException", "full_name": "android.database.sqlite.SQLiteDatatypeMismatchException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDiskIOException", "full_name": "android.database.sqlite.SQLiteDiskIOException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDoneException", "full_name": "android.database.sqlite.SQLiteDoneException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteException", "full_name": "android.database.sqlite.SQLiteException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteFullException", "full_name": "android.database.sqlite.SQLiteFullException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteMisuseException", "full_name": "android.database.sqlite.SQLiteMisuseException"}, {"package_name": "android.os.strictmode", "class_name": "SqliteObjectLeakedViolation", "full_name": "android.os.strictmode.SqliteObjectLeakedViolation"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteOpenHelper", "full_name": "android.database.sqlite.SQLiteOpenHelper"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteOutOfMemoryException", "full_name": "android.database.sqlite.SQLiteOutOfMemoryException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteProgram", "full_name": "android.database.sqlite.SQLiteProgram"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteQuery", "full_name": "android.database.sqlite.SQLiteQuery"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteQueryBuilder", "full_name": "android.database.sqlite.SQLiteQueryBuilder"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteReadOnlyDatabaseException", "full_name": "android.database.sqlite.SQLiteReadOnlyDatabaseException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteStatement", "full_name": "android.database.sqlite.SQLiteStatement"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteTableLockedException", "full_name": "android.database.sqlite.SQLiteTableLockedException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteTransactionListener", "full_name": "android.database.sqlite.SQLiteTransactionListener"}, {"package_name": "java.sql", "class_name": "SQLNonTransientConnectionException", "full_name": "java.sql.SQLNonTransientConnectionException"}, {"package_name": "java.sql", "class_name": "SQLNonTransientException", "full_name": "java.sql.SQLNonTransientException"}, {"package_name": "java.sql", "class_name": "SQLOutput", "full_name": "java.sql.SQLOutput"}, {"package_name": "java.sql", "class_name": "SQLPermission", "full_name": "java.sql.SQLPermission"}, {"package_name": "java.sql", "class_name": "SQLRecoverableException", "full_name": "java.sql.SQLRecoverableException"}, {"package_name": "java.sql", "class_name": "SQLSyntaxErrorException", "full_name": "java.sql.SQLSyntaxErrorException"}, {"package_name": "java.sql", "class_name": "SQLTimeoutException", "full_name": "java.sql.SQLTimeoutException"}, {"package_name": "java.sql", "class_name": "SQLTransactionRollbackException", "full_name": "java.sql.SQLTransactionRollbackException"}, {"package_name": "java.sql", "class_name": "SQLTransientConnectionException", "full_name": "java.sql.SQLTransientConnectionException"}, {"package_name": "java.sql", "class_name": "SQLTransientException", "full_name": "java.sql.SQLTransientException"}, {"package_name": "java.sql", "class_name": "SQLWarning", "full_name": "java.sql.SQLWarning"}, {"package_name": "java.sql", "class_name": "SQLXML", "full_name": "java.sql.SQLXML"}, {"package_name": "android.net.http", "class_name": "SslCertificate", "full_name": "android.net.http.SslCertificate"}, {"package_name": "android.net.http", "class_name": "SslCertificate.DName", "full_name": "android.net.http.SslCertificate.DName"}, {"package_name": "android.net", "class_name": "SSLCertificateSocketFactory", "full_name": "android.net.SSLCertificateSocketFactory"}, {"package_name": "javax.net.ssl", "class_name": "SSLContext", "full_name": "javax.net.ssl.SSLContext"}, {"package_name": "javax.net.ssl", "class_name": "SSLContextSpi", "full_name": "javax.net.ssl.SSLContextSpi"}, {"package_name": "javax.net.ssl", "class_name": "SSLEngine", "full_name": "javax.net.ssl.SSLEngine"}, {"package_name": "javax.net.ssl", "class_name": "SSLEngineResult", "full_name": "javax.net.ssl.SSLEngineResult"}, {"package_name": "javax.net.ssl", "class_name": "SSLEngineResult.HandshakeStatus", "full_name": "javax.net.ssl.SSLEngineResult.HandshakeStatus"}, {"package_name": "javax.net.ssl", "class_name": "SSLEngineResult.Status", "full_name": "javax.net.ssl.SSLEngineResult.Status"}, {"package_name": "android.net.http", "class_name": "SslError", "full_name": "android.net.http.SslError"}, {"package_name": "android.webkit", "class_name": "SslErrorHandler", "full_name": "android.webkit.SslErrorHandler"}, {"package_name": "javax.net.ssl", "class_name": "SSLException", "full_name": "javax.net.ssl.SSLException"}, {"package_name": "javax.net.ssl", "class_name": "SSLHandshakeException", "full_name": "javax.net.ssl.SSLHandshakeException"}, {"package_name": "javax.net.ssl", "class_name": "SSLKeyException", "full_name": "javax.net.ssl.SSLKeyException"}, {"package_name": "javax.net.ssl", "class_name": "SSLParameters", "full_name": "javax.net.ssl.SSLParameters"}, {"package_name": "javax.net.ssl", "class_name": "SSLPeerUnverifiedException", "full_name": "javax.net.ssl.SSLPeerUnverifiedException"}, {"package_name": "javax.net.ssl", "class_name": "SSLPermission", "full_name": "javax.net.ssl.SSLPermission"}, {"package_name": "javax.net.ssl", "class_name": "SSLProtocolException", "full_name": "javax.net.ssl.SSLProtocolException"}, {"package_name": "javax.net.ssl", "class_name": "SSLServerSocket", "full_name": "javax.net.ssl.SSLServerSocket"}, {"package_name": "javax.net.ssl", "class_name": "SSLServerSocketFactory", "full_name": "javax.net.ssl.SSLServerSocketFactory"}, {"package_name": "javax.net.ssl", "class_name": "SSLSession", "full_name": "javax.net.ssl.SSLSession"}, {"package_name": "javax.net.ssl", "class_name": "SSLSessionBindingEvent", "full_name": "javax.net.ssl.SSLSessionBindingEvent"}, {"package_name": "javax.net.ssl", "class_name": "SSLSessionBindingListener", "full_name": "javax.net.ssl.SSLSessionBindingListener"}, {"package_name": "android.net", "class_name": "SSLSessionCache", "full_name": "android.net.SSLSessionCache"}, {"package_name": "javax.net.ssl", "class_name": "SSLSessionContext", "full_name": "javax.net.ssl.SSLSessionContext"}, {"package_name": "javax.net.ssl", "class_name": "SSLSocket", "full_name": "javax.net.ssl.SSLSocket"}, {"package_name": "javax.net.ssl", "class_name": "SSLSocketFactory", "full_name": "javax.net.ssl.SSLSocketFactory"}, {"package_name": "org.apache.http.conn.ssl", "class_name": "SSLSocketFactory", "full_name": "org.apache.http.conn.ssl.SSLSocketFactory"}, {"package_name": "java.lang", "class_name": "StackOverflowError", "full_name": "java.lang.StackOverflowError"}, {"package_name": "java.lang", "class_name": "StackTraceElement", "full_name": "java.lang.StackTraceElement"}, {"package_name": "android.widget", "class_name": "StackView", "full_name": "android.widget.StackView"}, {"package_name": "android.database", "class_name": "StaleDataException", "full_name": "android.database.StaleDataException"}, {"package_name": "java.util.concurrent.locks", "class_name": "StampedLock", "full_name": "java.util.concurrent.locks.StampedLock"}, {"package_name": "java.nio.charset", "class_name": "StandardCharsets", "full_name": "java.nio.charset.StandardCharsets"}, {"package_name": "javax.net.ssl", "class_name": "StandardConstants", "full_name": "javax.net.ssl.StandardConstants"}, {"package_name": "java.nio.file", "class_name": "StandardCopyOption", "full_name": "java.nio.file.StandardCopyOption"}, {"package_name": "java.nio.file", "class_name": "StandardOpenOption", "full_name": "java.nio.file.StandardOpenOption"}, {"package_name": "java.net", "class_name": "StandardProtocolFamily", "full_name": "java.net.StandardProtocolFamily"}, {"package_name": "java.net", "class_name": "StandardSocketOptions", "full_name": "java.net.StandardSocketOptions"}, {"package_name": "java.nio.file", "class_name": "StandardWatchEventKinds", "full_name": "java.nio.file.StandardWatchEventKinds"}, {"package_name": "android.sax", "class_name": "StartElementListener", "full_name": "android.sax.StartElementListener"}, {"package_name": "android.animation", "class_name": "StateListAnimator", "full_name": "android.animation.StateListAnimator"}, {"package_name": "android.graphics.drawable", "class_name": "StateListDrawable", "full_name": "android.graphics.drawable.StateListDrawable"}, {"package_name": "java.sql", "class_name": "Statement", "full_name": "java.sql.Statement"}, {"package_name": "javax.sql", "class_name": "StatementEvent", "full_name": "javax.sql.StatementEvent"}, {"package_name": "javax.sql", "class_name": "StatementEventListener", "full_name": "javax.sql.StatementEventListener"}, {"package_name": "android.util", "class_name": "StateSet", "full_name": "android.util.StateSet"}, {"package_name": "android.os", "class_name": "StatFs", "full_name": "android.os.StatFs"}, {"package_name": "android.text", "class_name": "StaticLayout", "full_name": "android.text.StaticLayout"}, {"package_name": "android.text", "class_name": "StaticLayout.Builder", "full_name": "android.text.StaticLayout.Builder"}, {"package_name": "android.util", "class_name": "StatsLog", "full_name": "android.util.StatsLog"}, {"package_name": "android.service.notification", "class_name": "StatusBarNotification", "full_name": "android.service.notification.StatusBarNotification"}, {"package_name": "android.telecom", "class_name": "StatusHints", "full_name": "android.telecom.StatusHints"}, {"package_name": "android.os.storage", "class_name": "StorageManager", "full_name": "android.os.storage.StorageManager"}, {"package_name": "android.app.usage", "class_name": "StorageStats", "full_name": "android.app.usage.StorageStats"}, {"package_name": "android.app.usage", "class_name": "StorageStatsManager", "full_name": "android.app.usage.StorageStatsManager"}, {"package_name": "android.os.storage", "class_name": "StorageVolume", "full_name": "android.os.storage.StorageVolume"}, {"package_name": "java.io", "class_name": "StreamCorruptedException", "full_name": "java.io.StreamCorruptedException"}, {"package_name": "java.util.logging", "class_name": "StreamHandler", "full_name": "java.util.logging.StreamHandler"}, {"package_name": "android.telephony.mbms", "class_name": "StreamingService", "full_name": "android.telephony.mbms.StreamingService"}, {"package_name": "android.telephony.mbms", "class_name": "StreamingServiceCallback", "full_name": "android.telephony.mbms.StreamingServiceCallback"}, {"package_name": "android.telephony.mbms", "class_name": "StreamingServiceInfo", "full_name": "android.telephony.mbms.StreamingServiceInfo"}, {"package_name": "javax.xml.transform.stream", "class_name": "StreamResult", "full_name": "javax.xml.transform.stream.StreamResult"}, {"package_name": "javax.xml.transform.stream", "class_name": "StreamSource", "full_name": "javax.xml.transform.stream.StreamSource"}, {"package_name": "java.util.stream", "class_name": "StreamSupport", "full_name": "java.util.stream.StreamSupport"}, {"package_name": "java.io", "class_name": "StreamTokenizer", "full_name": "java.io.StreamTokenizer"}, {"package_name": "org.apache.http.conn.ssl", "class_name": "StrictHostnameVerifier", "full_name": "org.apache.http.conn.ssl.StrictHostnameVerifier"}, {"package_name": "java.lang", "class_name": "StrictMath", "full_name": "java.lang.StrictMath"}, {"package_name": "android.os", "class_name": "StrictMode", "full_name": "android.os.StrictMode"}, {"package_name": "android.os", "class_name": "StrictMode.OnThreadViolationListener", "full_name": "android.os.StrictMode.OnThreadViolationListener"}, {"package_name": "android.os", "class_name": "StrictMode.OnVmViolationListener", "full_name": "android.os.StrictMode.OnVmViolationListener"}, {"package_name": "android.os", "class_name": "StrictMode.ThreadPolicy", "full_name": "android.os.StrictMode.ThreadPolicy"}, {"package_name": "android.os", "class_name": "StrictMode.ThreadPolicy.Builder", "full_name": "android.os.StrictMode.ThreadPolicy.Builder"}, {"package_name": "android.os", "class_name": "StrictMode.VmPolicy", "full_name": "android.os.StrictMode.VmPolicy"}, {"package_name": "android.os", "class_name": "StrictMode.VmPolicy.Builder", "full_name": "android.os.StrictMode.VmPolicy.Builder"}, {"package_name": "android.text.style", "class_name": "StrikethroughSpan", "full_name": "android.text.style.StrikethroughSpan"}, {"package_name": "java.lang", "class_name": "String", "full_name": "java.lang.String"}, {"package_name": "java.lang", "class_name": "StringBuffer", "full_name": "java.lang.StringBuffer"}, {"package_name": "java.io", "class_name": "StringBufferInputStream", "full_name": "java.io.StringBufferInputStream"}, {"package_name": "java.lang", "class_name": "StringBuilder", "full_name": "java.lang.StringBuilder"}, {"package_name": "android.util", "class_name": "StringBuilderPrinter", "full_name": "android.util.StringBuilderPrinter"}, {"package_name": "java.text", "class_name": "StringCharacterIterator", "full_name": "java.text.StringCharacterIterator"}, {"package_name": "java.lang", "class_name": "StringIndexOutOfBoundsException", "full_name": "java.lang.StringIndexOutOfBoundsException"}, {"package_name": "java.util", "class_name": "StringJoiner", "full_name": "java.util.StringJoiner"}, {"package_name": "android.icu.text", "class_name": "StringPrepParseException", "full_name": "android.icu.text.StringPrepParseException"}, {"package_name": "java.io", "class_name": "StringReader", "full_name": "java.io.StringReader"}, {"package_name": "android.icu.text", "class_name": "StringSearch", "full_name": "android.icu.text.StringSearch"}, {"package_name": "java.util", "class_name": "StringTokenizer", "full_name": "java.util.StringTokenizer"}, {"package_name": "java.io", "class_name": "StringWriter", "full_name": "java.io.StringWriter"}, {"package_name": "android.security.keystore", "class_name": "StrongBoxUnavailableException", "full_name": "android.security.keystore.StrongBoxUnavailableException"}, {"package_name": "java.sql", "class_name": "Struct", "full_name": "java.sql.Struct"}, {"package_name": "android.system", "class_name": "StructPollfd", "full_name": "android.system.StructPollfd"}, {"package_name": "android.system", "class_name": "StructStat", "full_name": "android.system.StructStat"}, {"package_name": "android.system", "class_name": "StructStatVfs", "full_name": "android.system.StructStatVfs"}, {"package_name": "android.system", "class_name": "StructTimespec", "full_name": "android.system.StructTimespec"}, {"package_name": "android.system", "class_name": "StructUtsname", "full_name": "android.system.StructUtsname"}, {"package_name": "android.text.style", "class_name": "StyleSpan", "full_name": "android.text.style.StyleSpan"}, {"package_name": "javax.security.auth", "class_name": "Subject", "full_name": "javax.security.auth.Subject"}, {"package_name": "javax.security.auth", "class_name": "SubjectDomainCombiner", "full_name": "javax.security.auth.SubjectDomainCombiner"}, {"package_name": "android.view", "class_name": "SubMenu", "full_name": "android.view.SubMenu"}, {"package_name": "android.net.wifi.aware", "class_name": "SubscribeConfig", "full_name": "android.net.wifi.aware.SubscribeConfig"}, {"package_name": "android.net.wifi.aware", "class_name": "SubscribeConfig.Builder", "full_name": "android.net.wifi.aware.SubscribeConfig.Builder"}, {"package_name": "android.net.wifi.aware", "class_name": "SubscribeDiscoverySession", "full_name": "android.net.wifi.aware.SubscribeDiscoverySession"}, {"package_name": "android.telephony", "class_name": "SubscriptionInfo", "full_name": "android.telephony.SubscriptionInfo"}, {"package_name": "android.telephony", "class_name": "SubscriptionManager", "full_name": "android.telephony.SubscriptionManager"}, {"package_name": "android.telephony", "class_name": "SubscriptionManager.OnSubscriptionsChangedListener", "full_name": "android.telephony.SubscriptionManager.OnSubscriptionsChangedListener"}, {"package_name": "android.telephony", "class_name": "SubscriptionPlan", "full_name": "android.telephony.SubscriptionPlan"}, {"package_name": "android.telephony", "class_name": "SubscriptionPlan.Builder", "full_name": "android.telephony.SubscriptionPlan.Builder"}, {"package_name": "android.text.style", "class_name": "SubscriptSpan", "full_name": "android.text.style.SubscriptSpan"}, {"package_name": "android.media", "class_name": "SubtitleData", "full_name": "android.media.SubtitleData"}, {"package_name": "android.view.textservice", "class_name": "SuggestionsInfo", "full_name": "android.view.textservice.SuggestionsInfo"}, {"package_name": "android.text.style", "class_name": "SuggestionSpan", "full_name": "android.text.style.SuggestionSpan"}, {"package_name": "android.graphics", "class_name": "SumPathEffect", "full_name": "android.graphics.SumPathEffect"}, {"package_name": "android.text.style", "class_name": "SuperscriptSpan", "full_name": "android.text.style.SuperscriptSpan"}, {"package_name": "android.net.wifi", "class_name": "SupplicantState", "full_name": "android.net.wifi.SupplicantState"}, {"package_name": "android.test.suitebuilder.annotation", "class_name": "Suppress", "full_name": "android.test.suitebuilder.annotation.Suppress"}, {"package_name": "android.annotation", "class_name": "SuppressLint", "full_name": "android.annotation.SuppressLint"}, {"package_name": "java.lang", "class_name": "SuppressWarnings", "full_name": "java.lang.SuppressWarnings"}, {"package_name": "android.view", "class_name": "Surface", "full_name": "android.view.Surface"}, {"package_name": "android.view", "class_name": "Surface.OutOfResourcesException", "full_name": "android.view.Surface.OutOfResourcesException"}, {"package_name": "android.view", "class_name": "SurfaceHolder", "full_name": "android.view.SurfaceHolder"}, {"package_name": "android.view", "class_name": "SurfaceHolder.BadSurfaceTypeException", "full_name": "android.view.SurfaceHolder.BadSurfaceTypeException"}, {"package_name": "android.view", "class_name": "SurfaceHolder.Callback", "full_name": "android.view.SurfaceHolder.Callback"}, {"package_name": "android.graphics", "class_name": "SurfaceTexture", "full_name": "android.graphics.SurfaceTexture"}, {"package_name": "android.graphics", "class_name": "SurfaceTexture.OnFrameAvailableListener", "full_name": "android.graphics.SurfaceTexture.OnFrameAvailableListener"}, {"package_name": "android.graphics", "class_name": "SurfaceTexture.OutOfResourcesException", "full_name": "android.graphics.SurfaceTexture.OutOfResourcesException"}, {"package_name": "android.view", "class_name": "SurfaceView", "full_name": "android.view.SurfaceView"}, {"package_name": "android.graphics", "class_name": "SweepGradient", "full_name": "android.graphics.SweepGradient"}, {"package_name": "android.widget", "class_name": "Switch", "full_name": "android.widget.Switch"}, {"package_name": "android.preference", "class_name": "SwitchPreference", "full_name": "android.preference.SwitchPreference"}, {"package_name": "android.icu.text", "class_name": "SymbolTable", "full_name": "android.icu.text.SymbolTable"}, {"package_name": "android.content", "class_name": "SyncAdapterType", "full_name": "android.content.SyncAdapterType"}, {"package_name": "android.test", "class_name": "SyncBaseInstrumentation", "full_name": "android.test.SyncBaseInstrumentation"}, {"package_name": "android.content", "class_name": "SyncContext", "full_name": "android.content.SyncContext"}, {"package_name": "java.io", "class_name": "SyncFailedException", "full_name": "java.io.SyncFailedException"}, {"package_name": "android.content", "class_name": "SyncInfo", "full_name": "android.content.SyncInfo"}, {"package_name": "android.media", "class_name": "SyncParams", "full_name": "android.media.SyncParams"}, {"package_name": "android.content", "class_name": "SyncRequest", "full_name": "android.content.SyncRequest"}, {"package_name": "android.content", "class_name": "SyncRequest.Builder", "full_name": "android.content.SyncRequest.Builder"}, {"package_name": "android.content", "class_name": "SyncResult", "full_name": "android.content.SyncResult"}, {"package_name": "android.provider", "class_name": "SyncStateContract", "full_name": "android.provider.SyncStateContract"}, {"package_name": "android.provider", "class_name": "SyncStateContract.Columns", "full_name": "android.provider.SyncStateContract.Columns"}, {"package_name": "android.provider", "class_name": "SyncStateContract.Constants", "full_name": "android.provider.SyncStateContract.Constants"}, {"package_name": "android.provider", "class_name": "SyncStateContract.Helpers", "full_name": "android.provider.SyncStateContract.Helpers"}, {"package_name": "android.content", "class_name": "SyncStats", "full_name": "android.content.SyncStats"}, {"package_name": "android.content", "class_name": "SyncStatusObserver", "full_name": "android.content.SyncStatusObserver"}, {"package_name": "android.speech.tts", "class_name": "SynthesisCallback", "full_name": "android.speech.tts.SynthesisCallback"}, {"package_name": "android.speech.tts", "class_name": "SynthesisRequest", "full_name": "android.speech.tts.SynthesisRequest"}, {"package_name": "java.lang", "class_name": "System", "full_name": "java.lang.System"}, {"package_name": "android.os", "class_name": "SystemClock", "full_name": "android.os.SystemClock"}, {"package_name": "android.os.health", "class_name": "SystemHealthManager", "full_name": "android.os.health.SystemHealthManager"}, {"package_name": "android.app.admin", "class_name": "SystemUpdateInfo", "full_name": "android.app.admin.SystemUpdateInfo"}, {"package_name": "android.app.admin", "class_name": "SystemUpdatePolicy", "full_name": "android.app.admin.SystemUpdatePolicy"}, {"package_name": "android.app.admin", "class_name": "SystemUpdatePolicy.ValidationFailedException", "full_name": "android.app.admin.SystemUpdatePolicy.ValidationFailedException"}, {"package_name": "android.app", "class_name": "TabActivity", "full_name": "android.app.TabActivity"}, {"package_name": "android.widget", "class_name": "TabHost", "full_name": "android.widget.TabHost"}, {"package_name": "android.widget", "class_name": "TabHost.OnTabChangeListener", "full_name": "android.widget.TabHost.OnTabChangeListener"}, {"package_name": "android.widget", "class_name": "TabHost.TabContentFactory", "full_name": "android.widget.TabHost.TabContentFactory"}, {"package_name": "android.widget", "class_name": "TabHost.TabSpec", "full_name": "android.widget.TabHost.TabSpec"}, {"package_name": "android.widget", "class_name": "TableLayout", "full_name": "android.widget.TableLayout"}, {"package_name": "android.widget", "class_name": "TableLayout.LayoutParams", "full_name": "android.widget.TableLayout.LayoutParams"}, {"package_name": "android.widget", "class_name": "TableRow", "full_name": "android.widget.TableRow"}, {"package_name": "android.widget", "class_name": "TableRow.LayoutParams", "full_name": "android.widget.TableRow.LayoutParams"}, {"package_name": "android.text.style", "class_name": "TabStopSpan", "full_name": "android.text.style.TabStopSpan"}, {"package_name": "android.text.style", "class_name": "TabStopSpan.Standard", "full_name": "android.text.style.TabStopSpan.Standard"}, {"package_name": "android.widget", "class_name": "TabWidget", "full_name": "android.widget.TabWidget"}, {"package_name": "android.nfc", "class_name": "Tag", "full_name": "android.nfc.Tag"}, {"package_name": "android.nfc", "class_name": "TagLostException", "full_name": "android.nfc.TagLostException"}, {"package_name": "android.nfc.tech", "class_name": "TagTechnology", "full_name": "android.nfc.tech.TagTechnology"}, {"package_name": "android.icu.util", "class_name": "TaiwanCalendar", "full_name": "android.icu.util.TaiwanCalendar"}, {"package_name": "java.lang.annotation", "class_name": "Target", "full_name": "java.lang.annotation.Target"}, {"package_name": "android.annotation", "class_name": "TargetApi", "full_name": "android.annotation.TargetApi"}, {"package_name": "android.app", "class_name": "TaskStackBuilder", "full_name": "android.app.TaskStackBuilder"}, {"package_name": "android.telecom", "class_name": "TelecomManager", "full_name": "android.telecom.TelecomManager"}, {"package_name": "android.provider", "class_name": "Telephony", "full_name": "android.provider.Telephony"}, {"package_name": "android.provider", "class_name": "Telephony.BaseMmsColumns", "full_name": "android.provider.Telephony.BaseMmsColumns"}, {"package_name": "android.provider", "class_name": "Telephony.CanonicalAddressesColumns", "full_name": "android.provider.Telephony.CanonicalAddressesColumns"}, {"package_name": "android.provider", "class_name": "Telephony.CarrierId", "full_name": "android.provider.Telephony.CarrierId"}, {"package_name": "android.provider", "class_name": "Telephony.Carriers", "full_name": "android.provider.Telephony.Carriers"}, {"package_name": "android.provider", "class_name": "Telephony.Mms", "full_name": "android.provider.Telephony.Mms"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Addr", "full_name": "android.provider.Telephony.Mms.Addr"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Draft", "full_name": "android.provider.Telephony.Mms.Draft"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Inbox", "full_name": "android.provider.Telephony.Mms.Inbox"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Intents", "full_name": "android.provider.Telephony.Mms.Intents"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Outbox", "full_name": "android.provider.Telephony.Mms.Outbox"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Part", "full_name": "android.provider.Telephony.Mms.Part"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Rate", "full_name": "android.provider.Telephony.Mms.Rate"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Sent", "full_name": "android.provider.Telephony.Mms.Sent"}, {"package_name": "android.provider", "class_name": "Telephony.MmsSms", "full_name": "android.provider.Telephony.MmsSms"}, {"package_name": "android.provider", "class_name": "Telephony.MmsSms.PendingMessages", "full_name": "android.provider.Telephony.MmsSms.PendingMessages"}, {"package_name": "android.provider", "class_name": "Telephony.ServiceStateTable", "full_name": "android.provider.Telephony.ServiceStateTable"}, {"package_name": "android.provider", "class_name": "Telephony.Sms", "full_name": "android.provider.Telephony.Sms"}, {"package_name": "android.provider", "class_name": "Telephony.Sms.Conversations", "full_name": "android.provider.Telephony.Sms.Conversations"}, {"package_name": "android.provider", "class_name": "Telephony.Sms.Draft", "full_name": "android.provider.Telephony.Sms.Draft"}, {"package_name": "android.provider", "class_name": "Telephony.Sms.Inbox", "full_name": "android.provider.Telephony.Sms.Inbox"}, {"package_name": "android.provider", "class_name": "Telephony.Sms.Intents", "full_name": "android.provider.Telephony.Sms.Intents"}, {"package_name": "android.provider", "class_name": "Telephony.Sms.Outbox", "full_name": "android.provider.Telephony.Sms.Outbox"}, {"package_name": "android.provider", "class_name": "Telephony.Sms.Sent", "full_name": "android.provider.Telephony.Sms.Sent"}, {"package_name": "android.provider", "class_name": "Telephony.TextBasedSmsColumns", "full_name": "android.provider.Telephony.TextBasedSmsColumns"}, {"package_name": "android.provider", "class_name": "Telephony.Threads", "full_name": "android.provider.Telephony.Threads"}, {"package_name": "android.provider", "class_name": "Telephony.ThreadsColumns", "full_name": "android.provider.Telephony.ThreadsColumns"}, {"package_name": "android.telephony", "class_name": "TelephonyManager", "full_name": "android.telephony.TelephonyManager"}, {"package_name": "android.telephony", "class_name": "TelephonyManager.UssdResponseCallback", "full_name": "android.telephony.TelephonyManager.UssdResponseCallback"}, {"package_name": "android.telephony", "class_name": "TelephonyScanManager", "full_name": "android.telephony.TelephonyScanManager"}, {"package_name": "android.telephony", "class_name": "TelephonyScanManager.NetworkScanCallback", "full_name": "android.telephony.TelephonyScanManager.NetworkScanCallback"}, {"package_name": "javax.xml.transform", "class_name": "Templates", "full_name": "javax.xml.transform.Templates"}, {"package_name": "javax.xml.transform.sax", "class_name": "TemplatesHandler", "full_name": "javax.xml.transform.sax.TemplatesHandler"}, {"package_name": "java.time.temporal", "class_name": "Temporal", "full_name": "java.time.temporal.Temporal"}, {"package_name": "java.time.temporal", "class_name": "TemporalAccessor", "full_name": "java.time.temporal.TemporalAccessor"}, {"package_name": "java.time.temporal", "class_name": "TemporalAdjuster", "full_name": "java.time.temporal.TemporalAdjuster"}, {"package_name": "java.time.temporal", "class_name": "TemporalAdjusters", "full_name": "java.time.temporal.TemporalAdjusters"}, {"package_name": "java.time.temporal", "class_name": "TemporalAmount", "full_name": "java.time.temporal.TemporalAmount"}, {"package_name": "java.time.temporal", "class_name": "TemporalField", "full_name": "java.time.temporal.TemporalField"}, {"package_name": "java.time.temporal", "class_name": "TemporalQueries", "full_name": "java.time.temporal.TemporalQueries"}, {"package_name": "java.time.temporal", "class_name": "TemporalUnit", "full_name": "java.time.temporal.TemporalUnit"}, {"package_name": "junit.framework", "class_name": "Test", "full_name": "junit.framework.Test"}, {"package_name": "junit.framework", "class_name": "TestCase", "full_name": "junit.framework.TestCase"}, {"package_name": "junit.framework", "class_name": "TestFailure", "full_name": "junit.framework.TestFailure"}, {"package_name": "junit.framework", "class_name": "TestListener", "full_name": "junit.framework.TestListener"}, {"package_name": "android.os", "class_name": "TestLooperManager", "full_name": "android.os.TestLooperManager"}, {"package_name": "android.test.suitebuilder", "class_name": "TestMethod", "full_name": "android.test.suitebuilder.TestMethod"}, {"package_name": "junit.framework", "class_name": "TestResult", "full_name": "junit.framework.TestResult"}, {"package_name": "junit.framework", "class_name": "TestSuite", "full_name": "junit.framework.TestSuite"}, {"package_name": "android.test.suitebuilder", "class_name": "TestSuiteBuilder", "full_name": "android.test.suitebuilder.TestSuiteBuilder"}, {"package_name": "android.test.suitebuilder", "class_name": "TestSuiteBuilder.FailedToCreateTests", "full_name": "android.test.suitebuilder.TestSuiteBuilder.FailedToCreateTests"}, {"package_name": "junit.runner", "class_name": "TestSuiteLoader", "full_name": "junit.runner.TestSuiteLoader"}, {"package_name": "android.test", "class_name": "TestSuiteProvider", "full_name": "android.test.TestSuiteProvider"}, {"package_name": "dalvik.annotation", "class_name": "TestTarget", "full_name": "dalvik.annotation.TestTarget"}, {"package_name": "dalvik.annotation", "class_name": "TestTargetClass", "full_name": "dalvik.annotation.TestTargetClass"}, {"package_name": "android.text.style", "class_name": "TextAppearanceSpan", "full_name": "android.text.style.TextAppearanceSpan"}, {"package_name": "java.awt.font", "class_name": "TextAttribute", "full_name": "java.awt.font.TextAttribute"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassification", "full_name": "android.view.textclassifier.TextClassification"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassification.Builder", "full_name": "android.view.textclassifier.TextClassification.Builder"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassification.Request", "full_name": "android.view.textclassifier.TextClassification.Request"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassification.Request.Builder", "full_name": "android.view.textclassifier.TextClassification.Request.Builder"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassificationContext", "full_name": "android.view.textclassifier.TextClassificationContext"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassificationContext.Builder", "full_name": "android.view.textclassifier.TextClassificationContext.Builder"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassificationManager", "full_name": "android.view.textclassifier.TextClassificationManager"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassificationSessionFactory", "full_name": "android.view.textclassifier.TextClassificationSessionFactory"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassificationSessionId", "full_name": "android.view.textclassifier.TextClassificationSessionId"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassifier", "full_name": "android.view.textclassifier.TextClassifier"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassifier.EntityConfig", "full_name": "android.view.textclassifier.TextClassifier.EntityConfig"}, {"package_name": "android.widget", "class_name": "TextClock", "full_name": "android.widget.TextClock"}, {"package_name": "android.text", "class_name": "TextDirectionHeuristic", "full_name": "android.text.TextDirectionHeuristic"}, {"package_name": "android.text", "class_name": "TextDirectionHeuristics", "full_name": "android.text.TextDirectionHeuristics"}, {"package_name": "android.sax", "class_name": "TextElementListener", "full_name": "android.sax.TextElementListener"}, {"package_name": "android.view.textservice", "class_name": "TextInfo", "full_name": "android.view.textservice.TextInfo"}, {"package_name": "android.text.method", "class_name": "TextKeyListener", "full_name": "android.text.method.TextKeyListener"}, {"package_name": "android.text.method", "class_name": "TextKeyListener.Capitalize", "full_name": "android.text.method.TextKeyListener.Capitalize"}, {"package_name": "android.view.textclassifier", "class_name": "TextLinks", "full_name": "android.view.textclassifier.TextLinks"}, {"package_name": "android.view.textclassifier", "class_name": "TextLinks.Builder", "full_name": "android.view.textclassifier.TextLinks.Builder"}, {"package_name": "android.view.textclassifier", "class_name": "TextLinks.Request", "full_name": "android.view.textclassifier.TextLinks.Request"}, {"package_name": "android.view.textclassifier", "class_name": "TextLinks.Request.Builder", "full_name": "android.view.textclassifier.TextLinks.Request.Builder"}, {"package_name": "android.view.textclassifier", "class_name": "TextLinks.TextLink", "full_name": "android.view.textclassifier.TextLinks.TextLink"}, {"package_name": "android.view.textclassifier", "class_name": "TextLinks.TextLinkSpan", "full_name": "android.view.textclassifier.TextLinks.TextLinkSpan"}, {"package_name": "android.text", "class_name": "TextPaint", "full_name": "android.text.TextPaint"}, {"package_name": "android.view.textclassifier", "class_name": "TextSelection", "full_name": "android.view.textclassifier.TextSelection"}, {"package_name": "android.view.textclassifier", "class_name": "TextSelection.Builder", "full_name": "android.view.textclassifier.TextSelection.Builder"}, {"package_name": "android.view.textclassifier", "class_name": "TextSelection.Request", "full_name": "android.view.textclassifier.TextSelection.Request"}, {"package_name": "android.view.textclassifier", "class_name": "TextSelection.Request.Builder", "full_name": "android.view.textclassifier.TextSelection.Request.Builder"}, {"package_name": "android.view.textservice", "class_name": "TextServicesManager", "full_name": "android.view.textservice.TextServicesManager"}, {"package_name": "java.time.format", "class_name": "TextStyle", "full_name": "java.time.format.TextStyle"}, {"package_name": "android.widget", "class_name": "TextSwitcher", "full_name": "android.widget.TextSwitcher"}, {"package_name": "android.speech.tts", "class_name": "TextToSpeech", "full_name": "android.speech.tts.TextToSpeech"}, {"package_name": "android.speech.tts", "class_name": "TextToSpeech.Engine", "full_name": "android.speech.tts.TextToSpeech.Engine"}, {"package_name": "android.speech.tts", "class_name": "TextToSpeech.EngineInfo", "full_name": "android.speech.tts.TextToSpeech.EngineInfo"}, {"package_name": "android.speech.tts", "class_name": "TextToSpeech.OnInitListener", "full_name": "android.speech.tts.TextToSpeech.OnInitListener"}, {"package_name": "android.speech.tts", "class_name": "TextToSpeech.OnUtteranceCompletedListener", "full_name": "android.speech.tts.TextToSpeech.OnUtteranceCompletedListener"}, {"package_name": "android.speech.tts", "class_name": "TextToSpeechService", "full_name": "android.speech.tts.TextToSpeechService"}, {"package_name": "android.view", "class_name": "TextureView", "full_name": "android.view.TextureView"}, {"package_name": "android.view", "class_name": "TextureView.SurfaceTextureListener", "full_name": "android.view.TextureView.SurfaceTextureListener"}, {"package_name": "android.text", "class_name": "TextUtils", "full_name": "android.text.TextUtils"}, {"package_name": "android.text", "class_name": "TextUtils.EllipsizeCallback", "full_name": "android.text.TextUtils.EllipsizeCallback"}, {"package_name": "android.text", "class_name": "TextUtils.SimpleStringSplitter", "full_name": "android.text.TextUtils.SimpleStringSplitter"}, {"package_name": "android.text", "class_name": "TextUtils.StringSplitter", "full_name": "android.text.TextUtils.StringSplitter"}, {"package_name": "android.text", "class_name": "TextUtils.TruncateAt", "full_name": "android.text.TextUtils.TruncateAt"}, {"package_name": "android.service.autofill", "class_name": "TextValueSanitizer", "full_name": "android.service.autofill.TextValueSanitizer"}, {"package_name": "android.widget", "class_name": "TextView", "full_name": "android.widget.TextView"}, {"package_name": "android.widget", "class_name": "TextView.BufferType", "full_name": "android.widget.TextView.BufferType"}, {"package_name": "android.widget", "class_name": "TextView.OnEditorActionListener", "full_name": "android.widget.TextView.OnEditorActionListener"}, {"package_name": "android.widget", "class_name": "TextView.SavedState", "full_name": "android.widget.TextView.SavedState"}, {"package_name": "android.text", "class_name": "TextWatcher", "full_name": "android.text.TextWatcher"}, {"package_name": "java.time.chrono", "class_name": "ThaiBuddhistChronology", "full_name": "java.time.chrono.ThaiBuddhistChronology"}, {"package_name": "java.time.chrono", "class_name": "ThaiBuddhistDate", "full_name": "java.time.chrono.ThaiBuddhistDate"}, {"package_name": "java.time.chrono", "class_name": "ThaiBuddhistEra", "full_name": "java.time.chrono.ThaiBuddhistEra"}, {"package_name": "android.widget", "class_name": "ThemedSpinnerAdapter", "full_name": "android.widget.ThemedSpinnerAdapter"}, {"package_name": "java.lang", "class_name": "Thread", "full_name": "java.lang.Thread"}, {"package_name": "java.lang", "class_name": "Thread.State", "full_name": "java.lang.Thread.State"}, {"package_name": "java.lang", "class_name": "Thread.UncaughtExceptionHandler", "full_name": "java.lang.Thread.UncaughtExceptionHandler"}, {"package_name": "java.lang", "class_name": "ThreadDeath", "full_name": "java.lang.ThreadDeath"}, {"package_name": "java.util.concurrent", "class_name": "ThreadFactory", "full_name": "java.util.concurrent.ThreadFactory"}, {"package_name": "java.lang", "class_name": "ThreadGroup", "full_name": "java.lang.ThreadGroup"}, {"package_name": "java.util.concurrent", "class_name": "ThreadLocalRandom", "full_name": "java.util.concurrent.ThreadLocalRandom"}, {"package_name": "java.util.concurrent", "class_name": "ThreadPoolExecutor", "full_name": "java.util.concurrent.ThreadPoolExecutor"}, {"package_name": "java.util.concurrent", "class_name": "ThreadPoolExecutor.AbortPolicy", "full_name": "java.util.concurrent.ThreadPoolExecutor.AbortPolicy"}, {"package_name": "java.util.concurrent", "class_name": "ThreadPoolExecutor.CallerRunsPolicy", "full_name": "java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy"}, {"package_name": "java.util.concurrent", "class_name": "ThreadPoolExecutor.DiscardOldestPolicy", "full_name": "java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy"}, {"package_name": "java.util.concurrent", "class_name": "ThreadPoolExecutor.DiscardPolicy", "full_name": "java.util.concurrent.ThreadPoolExecutor.DiscardPolicy"}, {"package_name": "java.lang", "class_name": "Throwable", "full_name": "java.lang.Throwable"}, {"package_name": "android.media", "class_name": "ThumbnailUtils", "full_name": "android.media.ThumbnailUtils"}, {"package_name": "android.service.quicksettings", "class_name": "Tile", "full_name": "android.service.quicksettings.Tile"}, {"package_name": "android.service.quicksettings", "class_name": "TileService", "full_name": "android.service.quicksettings.TileService"}, {"package_name": "android.text.format", "class_name": "Time", "full_name": "android.text.format.Time"}, {"package_name": "java.sql", "class_name": "Time", "full_name": "java.sql.Time"}, {"package_name": "android.animation", "class_name": "TimeAnimator", "full_name": "android.animation.TimeAnimator"}, {"package_name": "android.animation", "class_name": "TimeAnimator.TimeListener", "full_name": "android.animation.TimeAnimator.TimeListener"}, {"package_name": "android.media", "class_name": "TimedMetaData", "full_name": "android.media.TimedMetaData"}, {"package_name": "android.media", "class_name": "TimedText", "full_name": "android.media.TimedText"}, {"package_name": "android.util", "class_name": "TimeFormatException", "full_name": "android.util.TimeFormatException"}, {"package_name": "android.animation", "class_name": "TimeInterpolator", "full_name": "android.animation.TimeInterpolator"}, {"package_name": "android.text.method", "class_name": "TimeKeyListener", "full_name": "android.text.method.TimeKeyListener"}, {"package_name": "java.util.concurrent", "class_name": "TimeoutException", "full_name": "java.util.concurrent.TimeoutException"}, {"package_name": "android.widget", "class_name": "TimePicker", "full_name": "android.widget.TimePicker"}, {"package_name": "android.widget", "class_name": "TimePicker.OnTimeChangedListener", "full_name": "android.widget.TimePicker.OnTimeChangedListener"}, {"package_name": "android.app", "class_name": "TimePickerDialog", "full_name": "android.app.TimePickerDialog"}, {"package_name": "android.app", "class_name": "TimePickerDialog.OnTimeSetListener", "full_name": "android.app.TimePickerDialog.OnTimeSetListener"}, {"package_name": "java.util", "class_name": "Timer", "full_name": "java.util.Timer"}, {"package_name": "android.os.health", "class_name": "TimerStat", "full_name": "android.os.health.TimerStat"}, {"package_name": "java.util", "class_name": "TimerTask", "full_name": "java.util.TimerTask"}, {"package_name": "java.security", "class_name": "Timestamp", "full_name": "java.security.Timestamp"}, {"package_name": "java.sql", "class_name": "Timestamp", "full_name": "java.sql.Timestamp"}, {"package_name": "android.icu.util", "class_name": "TimeUnit", "full_name": "android.icu.util.TimeUnit"}, {"package_name": "java.util.concurrent", "class_name": "TimeUnit", "full_name": "java.util.concurrent.TimeUnit"}, {"package_name": "android.util", "class_name": "TimeUtils", "full_name": "android.util.TimeUtils"}, {"package_name": "android.icu.util", "class_name": "TimeZone", "full_name": "android.icu.util.TimeZone"}, {"package_name": "java.util", "class_name": "TimeZone", "full_name": "java.util.TimeZone"}, {"package_name": "android.icu.util", "class_name": "TimeZone.SystemTimeZoneType", "full_name": "android.icu.util.TimeZone.SystemTimeZoneType"}, {"package_name": "android.icu.text", "class_name": "TimeZoneFormat", "full_name": "android.icu.text.TimeZoneFormat"}, {"package_name": "android.icu.text", "class_name": "TimeZoneFormat.GMTOffsetPatternType", "full_name": "android.icu.text.TimeZoneFormat.GMTOffsetPatternType"}, {"package_name": "android.icu.text", "class_name": "TimeZoneFormat.ParseOption", "full_name": "android.icu.text.TimeZoneFormat.ParseOption"}, {"package_name": "android.icu.text", "class_name": "TimeZoneFormat.Style", "full_name": "android.icu.text.TimeZoneFormat.Style"}, {"package_name": "android.icu.text", "class_name": "TimeZoneFormat.TimeType", "full_name": "android.icu.text.TimeZoneFormat.TimeType"}, {"package_name": "android.icu.text", "class_name": "TimeZoneNames", "full_name": "android.icu.text.TimeZoneNames"}, {"package_name": "android.icu.text", "class_name": "TimeZoneNames.NameType", "full_name": "android.icu.text.TimeZoneNames.NameType"}, {"package_name": "android.util", "class_name": "TimingLogger", "full_name": "android.util.TimingLogger"}, {"package_name": "android.widget", "class_name": "Toast", "full_name": "android.widget.Toast"}, {"package_name": "android.widget", "class_name": "ToggleButton", "full_name": "android.widget.ToggleButton"}, {"package_name": "android.os", "class_name": "TokenWatcher", "full_name": "android.os.TokenWatcher"}, {"package_name": "android.media", "class_name": "ToneGenerator", "full_name": "android.media.ToneGenerator"}, {"package_name": "android.widget", "class_name": "Toolbar", "full_name": "android.widget.Toolbar"}, {"package_name": "android.widget", "class_name": "Toolbar.LayoutParams", "full_name": "android.widget.Toolbar.LayoutParams"}, {"package_name": "android.widget", "class_name": "Toolbar.OnMenuItemClickListener", "full_name": "android.widget.Toolbar.OnMenuItemClickListener"}, {"package_name": "java.util", "class_name": "TooManyListenersException", "full_name": "java.util.TooManyListenersException"}, {"package_name": "android.text.method", "class_name": "Touch", "full_name": "android.text.method.Touch"}, {"package_name": "android.view", "class_name": "TouchDelegate", "full_name": "android.view.TouchDelegate"}, {"package_name": "android.test", "class_name": "TouchUtils", "full_name": "android.test.TouchUtils"}, {"package_name": "android.os", "class_name": "Trace", "full_name": "android.os.Trace"}, {"package_name": "android.webkit", "class_name": "TracingConfig", "full_name": "android.webkit.TracingConfig"}, {"package_name": "android.webkit", "class_name": "TracingConfig.Builder", "full_name": "android.webkit.TracingConfig.Builder"}, {"package_name": "android.webkit", "class_name": "TracingController", "full_name": "android.webkit.TracingController"}, {"package_name": "android.net", "class_name": "TrafficStats", "full_name": "android.net.TrafficStats"}, {"package_name": "android.os", "class_name": "TransactionTooLargeException", "full_name": "android.os.TransactionTooLargeException"}, {"package_name": "android.service.autofill", "class_name": "Transformation", "full_name": "android.service.autofill.Transformation"}, {"package_name": "android.view.animation", "class_name": "Transformation", "full_name": "android.view.animation.Transformation"}, {"package_name": "android.text.method", "class_name": "TransformationMethod", "full_name": "android.text.method.TransformationMethod"}, {"package_name": "javax.xml.transform", "class_name": "Transformer", "full_name": "javax.xml.transform.Transformer"}, {"package_name": "javax.xml.transform", "class_name": "TransformerConfigurationException", "full_name": "javax.xml.transform.TransformerConfigurationException"}, {"package_name": "javax.xml.transform", "class_name": "TransformerException", "full_name": "javax.xml.transform.TransformerException"}, {"package_name": "javax.xml.transform", "class_name": "TransformerFactory", "full_name": "javax.xml.transform.TransformerFactory"}, {"package_name": "javax.xml.transform", "class_name": "TransformerFactoryConfigurationError", "full_name": "javax.xml.transform.TransformerFactoryConfigurationError"}, {"package_name": "javax.xml.transform.sax", "class_name": "TransformerHandler", "full_name": "javax.xml.transform.sax.TransformerHandler"}, {"package_name": "android.transition", "class_name": "Transition", "full_name": "android.transition.Transition"}, {"package_name": "android.transition", "class_name": "Transition.EpicenterCallback", "full_name": "android.transition.Transition.EpicenterCallback"}, {"package_name": "android.transition", "class_name": "Transition.TransitionListener", "full_name": "android.transition.Transition.TransitionListener"}, {"package_name": "android.graphics.drawable", "class_name": "TransitionDrawable", "full_name": "android.graphics.drawable.TransitionDrawable"}, {"package_name": "android.transition", "class_name": "TransitionInflater", "full_name": "android.transition.TransitionInflater"}, {"package_name": "android.transition", "class_name": "TransitionListenerAdapter", "full_name": "android.transition.TransitionListenerAdapter"}, {"package_name": "android.transition", "class_name": "TransitionManager", "full_name": "android.transition.TransitionManager"}, {"package_name": "android.transition", "class_name": "TransitionPropagation", "full_name": "android.transition.TransitionPropagation"}, {"package_name": "android.transition", "class_name": "TransitionSet", "full_name": "android.transition.TransitionSet"}, {"package_name": "android.transition", "class_name": "TransitionValues", "full_name": "android.transition.TransitionValues"}, {"package_name": "android.view.animation", "class_name": "TranslateAnimation", "full_name": "android.view.animation.TranslateAnimation"}, {"package_name": "android.hardware", "class_name": "TriggerEvent", "full_name": "android.hardware.TriggerEvent"}, {"package_name": "android.hardware", "class_name": "TriggerEventListener", "full_name": "android.hardware.TriggerEventListener"}, {"package_name": "java.security.cert", "class_name": "TrustAnchor", "full_name": "java.security.cert.TrustAnchor"}, {"package_name": "javax.net.ssl", "class_name": "TrustManager", "full_name": "javax.net.ssl.TrustManager"}, {"package_name": "javax.net.ssl", "class_name": "TrustManagerFactory", "full_name": "javax.net.ssl.TrustManagerFactory"}, {"package_name": "javax.net.ssl", "class_name": "TrustManagerFactorySpi", "full_name": "javax.net.ssl.TrustManagerFactorySpi"}, {"package_name": "android.text.style", "class_name": "TtsSpan", "full_name": "android.text.style.TtsSpan"}, {"package_name": "android.text.style", "class_name": "TtsSpan.CardinalBuilder", "full_name": "android.text.style.TtsSpan.CardinalBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.DateBuilder", "full_name": "android.text.style.TtsSpan.DateBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.DecimalBuilder", "full_name": "android.text.style.TtsSpan.DecimalBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.DigitsBuilder", "full_name": "android.text.style.TtsSpan.DigitsBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.ElectronicBuilder", "full_name": "android.text.style.TtsSpan.ElectronicBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.FractionBuilder", "full_name": "android.text.style.TtsSpan.FractionBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.MeasureBuilder", "full_name": "android.text.style.TtsSpan.MeasureBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.MoneyBuilder", "full_name": "android.text.style.TtsSpan.MoneyBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.OrdinalBuilder", "full_name": "android.text.style.TtsSpan.OrdinalBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.TelephoneBuilder", "full_name": "android.text.style.TtsSpan.TelephoneBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.TextBuilder", "full_name": "android.text.style.TtsSpan.TextBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.TimeBuilder", "full_name": "android.text.style.TtsSpan.TimeBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.VerbatimBuilder", "full_name": "android.text.style.TtsSpan.VerbatimBuilder"}, {"package_name": "android.media.tv", "class_name": "TvContentRating", "full_name": "android.media.tv.TvContentRating"}, {"package_name": "android.media.tv", "class_name": "TvContract", "full_name": "android.media.tv.TvContract"}, {"package_name": "android.media.tv", "class_name": "TvContract.BaseTvColumns", "full_name": "android.media.tv.TvContract.BaseTvColumns"}, {"package_name": "android.media.tv", "class_name": "TvContract.Channels", "full_name": "android.media.tv.TvContract.Channels"}, {"package_name": "android.media.tv", "class_name": "TvContract.Channels.Logo", "full_name": "android.media.tv.TvContract.Channels.Logo"}, {"package_name": "android.media.tv", "class_name": "TvContract.PreviewPrograms", "full_name": "android.media.tv.TvContract.PreviewPrograms"}, {"package_name": "android.media.tv", "class_name": "TvContract.Programs", "full_name": "android.media.tv.TvContract.Programs"}, {"package_name": "android.media.tv", "class_name": "TvContract.Programs.Genres", "full_name": "android.media.tv.TvContract.Programs.Genres"}, {"package_name": "android.media.tv", "class_name": "TvContract.RecordedPrograms", "full_name": "android.media.tv.TvContract.RecordedPrograms"}, {"package_name": "android.media.tv", "class_name": "TvContract.WatchNextPrograms", "full_name": "android.media.tv.TvContract.WatchNextPrograms"}, {"package_name": "android.media.tv", "class_name": "TvInputInfo", "full_name": "android.media.tv.TvInputInfo"}, {"package_name": "android.media.tv", "class_name": "TvInputInfo.Builder", "full_name": "android.media.tv.TvInputInfo.Builder"}, {"package_name": "android.media.tv", "class_name": "TvInputManager", "full_name": "android.media.tv.TvInputManager"}, {"package_name": "android.media.tv", "class_name": "TvInputManager.TvInputCallback", "full_name": "android.media.tv.TvInputManager.TvInputCallback"}, {"package_name": "android.media.tv", "class_name": "TvInputService", "full_name": "android.media.tv.TvInputService"}, {"package_name": "android.media.tv", "class_name": "TvInputService.HardwareSession", "full_name": "android.media.tv.TvInputService.HardwareSession"}, {"package_name": "android.media.tv", "class_name": "TvInputService.RecordingSession", "full_name": "android.media.tv.TvInputService.RecordingSession"}, {"package_name": "android.media.tv", "class_name": "TvInputService.Session", "full_name": "android.media.tv.TvInputService.Session"}, {"package_name": "android.media.tv", "class_name": "TvRecordingClient", "full_name": "android.media.tv.TvRecordingClient"}, {"package_name": "android.media.tv", "class_name": "TvRecordingClient.RecordingCallback", "full_name": "android.media.tv.TvRecordingClient.RecordingCallback"}, {"package_name": "android.media.tv", "class_name": "TvTrackInfo", "full_name": "android.media.tv.TvTrackInfo"}, {"package_name": "android.media.tv", "class_name": "TvTrackInfo.Builder", "full_name": "android.media.tv.TvTrackInfo.Builder"}, {"package_name": "android.media.tv", "class_name": "TvView", "full_name": "android.media.tv.TvView"}, {"package_name": "android.media.tv", "class_name": "TvView.OnUnhandledInputEventListener", "full_name": "android.media.tv.TvView.OnUnhandledInputEventListener"}, {"package_name": "android.media.tv", "class_name": "TvView.TimeShiftPositionCallback", "full_name": "android.media.tv.TvView.TimeShiftPositionCallback"}, {"package_name": "android.media.tv", "class_name": "TvView.TvInputCallback", "full_name": "android.media.tv.TvView.TvInputCallback"}, {"package_name": "android.widget", "class_name": "TwoLineListItem", "full_name": "android.widget.TwoLineListItem"}, {"package_name": "android.preference", "class_name": "TwoStatePreference", "full_name": "android.preference.TwoStatePreference"}, {"package_name": "android.renderscript", "class_name": "Type", "full_name": "android.renderscript.Type"}, {"package_name": "java.lang.reflect", "class_name": "Type", "full_name": "java.lang.reflect.Type"}, {"package_name": "android.renderscript", "class_name": "Type.Builder", "full_name": "android.renderscript.Type.Builder"}, {"package_name": "android.renderscript", "class_name": "Type.CubemapFace", "full_name": "android.renderscript.Type.CubemapFace"}, {"package_name": "android.content.res", "class_name": "TypedArray", "full_name": "android.content.res.TypedArray"}, {"package_name": "android.util", "class_name": "TypedValue", "full_name": "android.util.TypedValue"}, {"package_name": "android.graphics", "class_name": "Typeface", "full_name": "android.graphics.Typeface"}, {"package_name": "android.graphics", "class_name": "Typeface.Builder", "full_name": "android.graphics.Typeface.Builder"}, {"package_name": "android.text.style", "class_name": "TypefaceSpan", "full_name": "android.text.style.TypefaceSpan"}, {"package_name": "javax.xml.validation", "class_name": "TypeInfoProvider", "full_name": "javax.xml.validation.TypeInfoProvider"}, {"package_name": "java.lang", "class_name": "TypeNotPresentException", "full_name": "java.lang.TypeNotPresentException"}, {"package_name": "java.sql", "class_name": "Types", "full_name": "java.sql.Types"}, {"package_name": "android.icu.lang", "class_name": "UCharacter", "full_name": "android.icu.lang.UCharacter"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.BidiPairedBracketType", "full_name": "android.icu.lang.UCharacter.BidiPairedBracketType"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.DecompositionType", "full_name": "android.icu.lang.UCharacter.DecompositionType"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.EastAsianWidth", "full_name": "android.icu.lang.UCharacter.EastAsianWidth"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.GraphemeClusterBreak", "full_name": "android.icu.lang.UCharacter.GraphemeClusterBreak"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.HangulSyllableType", "full_name": "android.icu.lang.UCharacter.HangulSyllableType"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.JoiningGroup", "full_name": "android.icu.lang.UCharacter.JoiningGroup"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.JoiningType", "full_name": "android.icu.lang.UCharacter.JoiningType"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.LineBreak", "full_name": "android.icu.lang.UCharacter.LineBreak"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.NumericType", "full_name": "android.icu.lang.UCharacter.NumericType"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.SentenceBreak", "full_name": "android.icu.lang.UCharacter.SentenceBreak"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.UnicodeBlock", "full_name": "android.icu.lang.UCharacter.UnicodeBlock"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.WordBreak", "full_name": "android.icu.lang.UCharacter.WordBreak"}, {"package_name": "android.icu.lang", "class_name": "UCharacterCategory", "full_name": "android.icu.lang.UCharacterCategory"}, {"package_name": "android.icu.lang", "class_name": "UCharacterDirection", "full_name": "android.icu.lang.UCharacterDirection"}, {"package_name": "android.icu.lang", "class_name": "UCharacterEnums", "full_name": "android.icu.lang.UCharacterEnums"}, {"package_name": "android.icu.lang", "class_name": "UCharacterEnums.ECharacterCategory", "full_name": "android.icu.lang.UCharacterEnums.ECharacterCategory"}, {"package_name": "android.icu.lang", "class_name": "UCharacterEnums.ECharacterDirection", "full_name": "android.icu.lang.UCharacterEnums.ECharacterDirection"}, {"package_name": "android.icu.text", "class_name": "UCharacterIterator", "full_name": "android.icu.text.UCharacterIterator"}, {"package_name": "android.icu.text", "class_name": "UFormat", "full_name": "android.icu.text.UFormat"}, {"package_name": "android.app", "class_name": "UiAutomation", "full_name": "android.app.UiAutomation"}, {"package_name": "android.app", "class_name": "UiAutomation.AccessibilityEventFilter", "full_name": "android.app.UiAutomation.AccessibilityEventFilter"}, {"package_name": "android.app", "class_name": "UiAutomation.OnAccessibilityEventListener", "full_name": "android.app.UiAutomation.OnAccessibilityEventListener"}, {"package_name": "android.os.health", "class_name": "UidHealthStats", "full_name": "android.os.health.UidHealthStats"}, {"package_name": "android.app", "class_name": "UiModeManager", "full_name": "android.app.UiModeManager"}, {"package_name": "android.test", "class_name": "UiThreadTest", "full_name": "android.test.UiThreadTest"}, {"package_name": "android.icu.util", "class_name": "ULocale", "full_name": "android.icu.util.ULocale"}, {"package_name": "android.icu.util", "class_name": "ULocale.Builder", "full_name": "android.icu.util.ULocale.Builder"}, {"package_name": "android.icu.util", "class_name": "ULocale.Category", "full_name": "android.icu.util.ULocale.Category"}, {"package_name": "android.os.strictmode", "class_name": "UnbufferedIoViolation", "full_name": "android.os.strictmode.UnbufferedIoViolation"}, {"package_name": "java.io", "class_name": "UncheckedIOException", "full_name": "java.io.UncheckedIOException"}, {"package_name": "java.lang.reflect", "class_name": "UndeclaredThrowableException", "full_name": "java.lang.reflect.UndeclaredThrowableException"}, {"package_name": "android.text.style", "class_name": "UnderlineSpan", "full_name": "android.text.style.UnderlineSpan"}, {"package_name": "android.icu.text", "class_name": "UnicodeFilter", "full_name": "android.icu.text.UnicodeFilter"}, {"package_name": "android.icu.text", "class_name": "UnicodeMatcher", "full_name": "android.icu.text.UnicodeMatcher"}, {"package_name": "android.icu.text", "class_name": "UnicodeSet", "full_name": "android.icu.text.UnicodeSet"}, {"package_name": "android.icu.text", "class_name": "UnicodeSet.ComparisonStyle", "full_name": "android.icu.text.UnicodeSet.ComparisonStyle"}, {"package_name": "android.icu.text", "class_name": "UnicodeSet.EntryRange", "full_name": "android.icu.text.UnicodeSet.EntryRange"}, {"package_name": "android.icu.text", "class_name": "UnicodeSet.SpanCondition", "full_name": "android.icu.text.UnicodeSet.SpanCondition"}, {"package_name": "android.icu.text", "class_name": "UnicodeSetIterator", "full_name": "android.icu.text.UnicodeSetIterator"}, {"package_name": "android.icu.text", "class_name": "UnicodeSetSpanner", "full_name": "android.icu.text.UnicodeSetSpanner"}, {"package_name": "android.icu.text", "class_name": "UnicodeSetSpanner.CountMethod", "full_name": "android.icu.text.UnicodeSetSpanner.CountMethod"}, {"package_name": "android.icu.text", "class_name": "UnicodeSetSpanner.TrimOption", "full_name": "android.icu.text.UnicodeSetSpanner.TrimOption"}, {"package_name": "android.icu.util", "class_name": "UniversalTimeScale", "full_name": "android.icu.util.UniversalTimeScale"}, {"package_name": "java.lang", "class_name": "UnknownError", "full_name": "java.lang.UnknownError"}, {"package_name": "java.util", "class_name": "UnknownFormatConversionException", "full_name": "java.util.UnknownFormatConversionException"}, {"package_name": "java.util", "class_name": "UnknownFormatFlagsException", "full_name": "java.util.UnknownFormatFlagsException"}, {"package_name": "java.net", "class_name": "UnknownHostException", "full_name": "java.net.UnknownHostException"}, {"package_name": "java.net", "class_name": "UnknownServiceException", "full_name": "java.net.UnknownServiceException"}, {"package_name": "java.nio.charset", "class_name": "UnmappableCharacterException", "full_name": "java.nio.charset.UnmappableCharacterException"}, {"package_name": "java.security", "class_name": "UnrecoverableEntryException", "full_name": "java.security.UnrecoverableEntryException"}, {"package_name": "java.security", "class_name": "UnrecoverableKeyException", "full_name": "java.security.UnrecoverableKeyException"}, {"package_name": "java.nio.channels", "class_name": "UnresolvedAddressException", "full_name": "java.nio.channels.UnresolvedAddressException"}, {"package_name": "java.security", "class_name": "UnresolvedPermission", "full_name": "java.security.UnresolvedPermission"}, {"package_name": "java.lang", "class_name": "UnsatisfiedLinkError", "full_name": "java.lang.UnsatisfiedLinkError"}, {"package_name": "java.nio.channels", "class_name": "UnsupportedAddressTypeException", "full_name": "java.nio.channels.UnsupportedAddressTypeException"}, {"package_name": "javax.security.auth.callback", "class_name": "UnsupportedCallbackException", "full_name": "javax.security.auth.callback.UnsupportedCallbackException"}, {"package_name": "java.nio.charset", "class_name": "UnsupportedCharsetException", "full_name": "java.nio.charset.UnsupportedCharsetException"}, {"package_name": "java.lang", "class_name": "UnsupportedClassVersionError", "full_name": "java.lang.UnsupportedClassVersionError"}, {"package_name": "java.io", "class_name": "UnsupportedEncodingException", "full_name": "java.io.UnsupportedEncodingException"}, {"package_name": "java.lang", "class_name": "UnsupportedOperationException", "full_name": "java.lang.UnsupportedOperationException"}, {"package_name": "android.media", "class_name": "UnsupportedSchemeException", "full_name": "android.media.UnsupportedSchemeException"}, {"package_name": "java.time.temporal", "class_name": "UnsupportedTemporalTypeException", "full_name": "java.time.temporal.UnsupportedTemporalTypeException"}, {"package_name": "android.os.strictmode", "class_name": "UntaggedSocketViolation", "full_name": "android.os.strictmode.UntaggedSocketViolation"}, {"package_name": "android.text.style", "class_name": "UpdateAppearance", "full_name": "android.text.style.UpdateAppearance"}, {"package_name": "android.text.style", "class_name": "UpdateLayout", "full_name": "android.text.style.UpdateLayout"}, {"package_name": "android.icu.lang", "class_name": "UProperty", "full_name": "android.icu.lang.UProperty"}, {"package_name": "android.icu.lang", "class_name": "UProperty.NameChoice", "full_name": "android.icu.lang.UProperty.NameChoice"}, {"package_name": "android.net", "class_name": "Uri", "full_name": "android.net.Uri"}, {"package_name": "java.net", "class_name": "URI", "full_name": "java.net.URI"}, {"package_name": "android.net", "class_name": "Uri.Builder", "full_name": "android.net.Uri.Builder"}, {"package_name": "android.content", "class_name": "UriMatcher", "full_name": "android.content.UriMatcher"}, {"package_name": "android.content", "class_name": "UriPermission", "full_name": "android.content.UriPermission"}, {"package_name": "javax.xml.transform", "class_name": "URIResolver", "full_name": "javax.xml.transform.URIResolver"}, {"package_name": "java.net", "class_name": "URISyntaxException", "full_name": "java.net.URISyntaxException"}, {"package_name": "java.net", "class_name": "URL", "full_name": "java.net.URL"}, {"package_name": "java.net", "class_name": "URLClassLoader", "full_name": "java.net.URLClassLoader"}, {"package_name": "java.net", "class_name": "URLConnection", "full_name": "java.net.URLConnection"}, {"package_name": "java.net", "class_name": "URLDecoder", "full_name": "java.net.URLDecoder"}, {"package_name": "java.net", "class_name": "URLEncoder", "full_name": "java.net.URLEncoder"}, {"package_name": "android.net", "class_name": "UrlQuerySanitizer", "full_name": "android.net.UrlQuerySanitizer"}, {"package_name": "android.net", "class_name": "UrlQuerySanitizer.IllegalCharacterValueSanitizer", "full_name": "android.net.UrlQuerySanitizer.IllegalCharacterValueSanitizer"}, {"package_name": "android.net", "class_name": "UrlQuerySanitizer.ParameterValuePair", "full_name": "android.net.UrlQuerySanitizer.ParameterValuePair"}, {"package_name": "android.net", "class_name": "UrlQuerySanitizer.ValueSanitizer", "full_name": "android.net.UrlQuerySanitizer.ValueSanitizer"}, {"package_name": "android.text.style", "class_name": "URLSpan", "full_name": "android.text.style.URLSpan"}, {"package_name": "java.net", "class_name": "URLStreamHandler", "full_name": "java.net.URLStreamHandler"}, {"package_name": "java.net", "class_name": "URLStreamHandlerFactory", "full_name": "java.net.URLStreamHandlerFactory"}, {"package_name": "android.webkit", "class_name": "URLUtil", "full_name": "android.webkit.URLUtil"}, {"package_name": "android.app.usage", "class_name": "UsageEvents", "full_name": "android.app.usage.UsageEvents"}, {"package_name": "android.app.usage", "class_name": "UsageEvents.Event", "full_name": "android.app.usage.UsageEvents.Event"}, {"package_name": "android.app.usage", "class_name": "UsageStats", "full_name": "android.app.usage.UsageStats"}, {"package_name": "android.app.usage", "class_name": "UsageStatsManager", "full_name": "android.app.usage.UsageStatsManager"}, {"package_name": "android.hardware.usb", "class_name": "UsbAccessory", "full_name": "android.hardware.usb.UsbAccessory"}, {"package_name": "android.hardware.usb", "class_name": "UsbConfiguration", "full_name": "android.hardware.usb.UsbConfiguration"}, {"package_name": "android.hardware.usb", "class_name": "UsbConstants", "full_name": "android.hardware.usb.UsbConstants"}, {"package_name": "android.hardware.usb", "class_name": "UsbDevice", "full_name": "android.hardware.usb.UsbDevice"}, {"package_name": "android.hardware.usb", "class_name": "UsbDeviceConnection", "full_name": "android.hardware.usb.UsbDeviceConnection"}, {"package_name": "android.hardware.usb", "class_name": "UsbEndpoint", "full_name": "android.hardware.usb.UsbEndpoint"}, {"package_name": "android.hardware.usb", "class_name": "UsbInterface", "full_name": "android.hardware.usb.UsbInterface"}, {"package_name": "android.hardware.usb", "class_name": "UsbManager", "full_name": "android.hardware.usb.UsbManager"}, {"package_name": "android.hardware.usb", "class_name": "UsbRequest", "full_name": "android.hardware.usb.UsbRequest"}, {"package_name": "android.icu.lang", "class_name": "UScript", "full_name": "android.icu.lang.UScript"}, {"package_name": "android.icu.lang", "class_name": "UScript.ScriptUsage", "full_name": "android.icu.lang.UScript.ScriptUsage"}, {"package_name": "android.service.autofill", "class_name": "UserData", "full_name": "android.service.autofill.UserData"}, {"package_name": "android.service.autofill", "class_name": "UserData.Builder", "full_name": "android.service.autofill.UserData.Builder"}, {"package_name": "java.nio.file.attribute", "class_name": "UserDefinedFileAttributeView", "full_name": "java.nio.file.attribute.UserDefinedFileAttributeView"}, {"package_name": "android.provider", "class_name": "UserDictionary", "full_name": "android.provider.UserDictionary"}, {"package_name": "android.provider", "class_name": "UserDictionary.Words", "full_name": "android.provider.UserDictionary.Words"}, {"package_name": "android.os", "class_name": "UserHandle", "full_name": "android.os.UserHandle"}, {"package_name": "android.os", "class_name": "UserManager", "full_name": "android.os.UserManager"}, {"package_name": "android.os", "class_name": "UserManager.UserOperationException", "full_name": "android.os.UserManager.UserOperationException"}, {"package_name": "android.security.keystore", "class_name": "UserNotAuthenticatedException", "full_name": "android.security.keystore.UserNotAuthenticatedException"}, {"package_name": "android.security.keystore", "class_name": "UserPresenceUnavailableException", "full_name": "android.security.keystore.UserPresenceUnavailableException"}, {"package_name": "java.nio.file.attribute", "class_name": "UserPrincipal", "full_name": "java.nio.file.attribute.UserPrincipal"}, {"package_name": "java.nio.file.attribute", "class_name": "UserPrincipalLookupService", "full_name": "java.nio.file.attribute.UserPrincipalLookupService"}, {"package_name": "java.nio.file.attribute", "class_name": "UserPrincipalNotFoundException", "full_name": "java.nio.file.attribute.UserPrincipalNotFoundException"}, {"package_name": "java.io", "class_name": "UTFDataFormatException", "full_name": "java.io.UTFDataFormatException"}, {"package_name": "android.speech.tts", "class_name": "UtteranceProgressListener", "full_name": "android.speech.tts.UtteranceProgressListener"}, {"package_name": "java.util", "class_name": "UUID", "full_name": "java.util.UUID"}, {"package_name": "android.service.autofill", "class_name": "Validator", "full_name": "android.service.autofill.Validator"}, {"package_name": "javax.xml.validation", "class_name": "Validator", "full_name": "javax.xml.validation.Validator"}, {"package_name": "javax.xml.validation", "class_name": "ValidatorHandler", "full_name": "javax.xml.validation.ValidatorHandler"}, {"package_name": "android.service.autofill", "class_name": "Validators", "full_name": "android.service.autofill.Validators"}, {"package_name": "android.animation", "class_name": "ValueAnimator", "full_name": "android.animation.ValueAnimator"}, {"package_name": "android.animation", "class_name": "ValueAnimator.AnimatorUpdateListener", "full_name": "android.animation.ValueAnimator.AnimatorUpdateListener"}, {"package_name": "android.icu.util", "class_name": "ValueIterator", "full_name": "android.icu.util.ValueIterator"}, {"package_name": "android.icu.util", "class_name": "ValueIterator.Element", "full_name": "android.icu.util.ValueIterator.Element"}, {"package_name": "java.time.temporal", "class_name": "ValueRange", "full_name": "java.time.temporal.ValueRange"}, {"package_name": "android.graphics.drawable", "class_name": "VectorDrawable", "full_name": "android.graphics.drawable.VectorDrawable"}, {"package_name": "android.view", "class_name": "VelocityTracker", "full_name": "android.view.VelocityTracker"}, {"package_name": "java.lang", "class_name": "VerifyError", "full_name": "java.lang.VerifyError"}, {"package_name": "junit.runner", "class_name": "Version", "full_name": "junit.runner.Version"}, {"package_name": "android.content.pm", "class_name": "VersionedPackage", "full_name": "android.content.pm.VersionedPackage"}, {"package_name": "android.icu.util", "class_name": "VersionInfo", "full_name": "android.icu.util.VersionInfo"}, {"package_name": "android.os", "class_name": "VibrationEffect", "full_name": "android.os.VibrationEffect"}, {"package_name": "android.os", "class_name": "Vibrator", "full_name": "android.os.Vibrator"}, {"package_name": "android.telecom", "class_name": "VideoProfile", "full_name": "android.telecom.VideoProfile"}, {"package_name": "android.telecom", "class_name": "VideoProfile.CameraCapabilities", "full_name": "android.telecom.VideoProfile.CameraCapabilities"}, {"package_name": "android.widget", "class_name": "VideoView", "full_name": "android.widget.VideoView"}, {"package_name": "android.view", "class_name": "View", "full_name": "android.view.View"}, {"package_name": "android.view", "class_name": "View.AccessibilityDelegate", "full_name": "android.view.View.AccessibilityDelegate"}, {"package_name": "android.view", "class_name": "View.BaseSavedState", "full_name": "android.view.View.BaseSavedState"}, {"package_name": "android.view", "class_name": "View.DragShadowBuilder", "full_name": "android.view.View.DragShadowBuilder"}, {"package_name": "android.view", "class_name": "View.MeasureSpec", "full_name": "android.view.View.MeasureSpec"}, {"package_name": "android.view", "class_name": "View.OnApplyWindowInsetsListener", "full_name": "android.view.View.OnApplyWindowInsetsListener"}, {"package_name": "android.view", "class_name": "View.OnAttachStateChangeListener", "full_name": "android.view.View.OnAttachStateChangeListener"}, {"package_name": "android.view", "class_name": "View.OnCapturedPointerListener", "full_name": "android.view.View.OnCapturedPointerListener"}, {"package_name": "android.view", "class_name": "View.OnClickListener", "full_name": "android.view.View.OnClickListener"}, {"package_name": "android.view", "class_name": "View.OnContextClickListener", "full_name": "android.view.View.OnContextClickListener"}, {"package_name": "android.view", "class_name": "View.OnCreateContextMenuListener", "full_name": "android.view.View.OnCreateContextMenuListener"}, {"package_name": "android.view", "class_name": "View.OnDragListener", "full_name": "android.view.View.OnDragListener"}, {"package_name": "android.view", "class_name": "View.OnFocusChangeListener", "full_name": "android.view.View.OnFocusChangeListener"}, {"package_name": "android.view", "class_name": "View.OnGenericMotionListener", "full_name": "android.view.View.OnGenericMotionListener"}, {"package_name": "android.view", "class_name": "View.OnHoverListener", "full_name": "android.view.View.OnHoverListener"}, {"package_name": "android.view", "class_name": "View.OnKeyListener", "full_name": "android.view.View.OnKeyListener"}, {"package_name": "android.view", "class_name": "View.OnLayoutChangeListener", "full_name": "android.view.View.OnLayoutChangeListener"}, {"package_name": "android.view", "class_name": "View.OnLongClickListener", "full_name": "android.view.View.OnLongClickListener"}, {"package_name": "android.view", "class_name": "View.OnScrollChangeListener", "full_name": "android.view.View.OnScrollChangeListener"}, {"package_name": "android.view", "class_name": "View.OnSystemUiVisibilityChangeListener", "full_name": "android.view.View.OnSystemUiVisibilityChangeListener"}, {"package_name": "android.view", "class_name": "View.OnTouchListener", "full_name": "android.view.View.OnTouchListener"}, {"package_name": "android.view", "class_name": "View.OnUnhandledKeyEventListener", "full_name": "android.view.View.OnUnhandledKeyEventListener"}, {"package_name": "android.view", "class_name": "ViewAnimationUtils", "full_name": "android.view.ViewAnimationUtils"}, {"package_name": "android.widget", "class_name": "ViewAnimator", "full_name": "android.widget.ViewAnimator"}, {"package_name": "android.test", "class_name": "ViewAsserts", "full_name": "android.test.ViewAsserts"}, {"package_name": "android.view", "class_name": "ViewConfiguration", "full_name": "android.view.ViewConfiguration"}, {"package_name": "android.view", "class_name": "ViewDebug", "full_name": "android.view.ViewDebug"}, {"package_name": "android.view", "class_name": "ViewDebug.CapturedViewProperty", "full_name": "android.view.ViewDebug.CapturedViewProperty"}, {"package_name": "android.view", "class_name": "ViewDebug.ExportedProperty", "full_name": "android.view.ViewDebug.ExportedProperty"}, {"package_name": "android.view", "class_name": "ViewDebug.FlagToString", "full_name": "android.view.ViewDebug.FlagToString"}, {"package_name": "android.view", "class_name": "ViewDebug.HierarchyTraceType", "full_name": "android.view.ViewDebug.HierarchyTraceType"}, {"package_name": "android.view", "class_name": "ViewDebug.IntToString", "full_name": "android.view.ViewDebug.IntToString"}, {"package_name": "android.view", "class_name": "ViewDebug.RecyclerTraceType", "full_name": "android.view.ViewDebug.RecyclerTraceType"}, {"package_name": "android.widget", "class_name": "ViewFlipper", "full_name": "android.widget.ViewFlipper"}, {"package_name": "android.view", "class_name": "ViewGroup", "full_name": "android.view.ViewGroup"}, {"package_name": "android.view", "class_name": "ViewGroup.LayoutParams", "full_name": "android.view.ViewGroup.LayoutParams"}, {"package_name": "android.view", "class_name": "ViewGroup.MarginLayoutParams", "full_name": "android.view.ViewGroup.MarginLayoutParams"}, {"package_name": "android.view", "class_name": "ViewGroup.OnHierarchyChangeListener", "full_name": "android.view.ViewGroup.OnHierarchyChangeListener"}, {"package_name": "android.view", "class_name": "ViewGroupOverlay", "full_name": "android.view.ViewGroupOverlay"}, {"package_name": "android.view", "class_name": "ViewManager", "full_name": "android.view.ViewManager"}, {"package_name": "android.view", "class_name": "ViewOutlineProvider", "full_name": "android.view.ViewOutlineProvider"}, {"package_name": "android.view", "class_name": "ViewOverlay", "full_name": "android.view.ViewOverlay"}, {"package_name": "android.view", "class_name": "ViewParent", "full_name": "android.view.ViewParent"}, {"package_name": "android.view", "class_name": "ViewPropertyAnimator", "full_name": "android.view.ViewPropertyAnimator"}, {"package_name": "android.view", "class_name": "ViewStructure", "full_name": "android.view.ViewStructure"}, {"package_name": "android.view", "class_name": "ViewStructure.HtmlInfo", "full_name": "android.view.ViewStructure.HtmlInfo"}, {"package_name": "android.view", "class_name": "ViewStructure.HtmlInfo.Builder", "full_name": "android.view.ViewStructure.HtmlInfo.Builder"}, {"package_name": "android.view", "class_name": "ViewStub", "full_name": "android.view.ViewStub"}, {"package_name": "android.view", "class_name": "ViewStub.OnInflateListener", "full_name": "android.view.ViewStub.OnInflateListener"}, {"package_name": "android.widget", "class_name": "ViewSwitcher", "full_name": "android.widget.ViewSwitcher"}, {"package_name": "android.widget", "class_name": "ViewSwitcher.ViewFactory", "full_name": "android.widget.ViewSwitcher.ViewFactory"}, {"package_name": "android.view", "class_name": "ViewTreeObserver", "full_name": "android.view.ViewTreeObserver"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnDrawListener", "full_name": "android.view.ViewTreeObserver.OnDrawListener"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnGlobalFocusChangeListener", "full_name": "android.view.ViewTreeObserver.OnGlobalFocusChangeListener"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnGlobalLayoutListener", "full_name": "android.view.ViewTreeObserver.OnGlobalLayoutListener"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnPreDrawListener", "full_name": "android.view.ViewTreeObserver.OnPreDrawListener"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnScrollChangedListener", "full_name": "android.view.ViewTreeObserver.OnScrollChangedListener"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnTouchModeChangeListener", "full_name": "android.view.ViewTreeObserver.OnTouchModeChangeListener"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnWindowAttachListener", "full_name": "android.view.ViewTreeObserver.OnWindowAttachListener"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnWindowFocusChangeListener", "full_name": "android.view.ViewTreeObserver.OnWindowFocusChangeListener"}, {"package_name": "android.os.strictmode", "class_name": "Violation", "full_name": "android.os.strictmode.Violation"}, {"package_name": "android.hardware.display", "class_name": "VirtualDisplay", "full_name": "android.hardware.display.VirtualDisplay"}, {"package_name": "android.hardware.display", "class_name": "VirtualDisplay.Callback", "full_name": "android.hardware.display.VirtualDisplay.Callback"}, {"package_name": "android.media.audiofx", "class_name": "Virtualizer", "full_name": "android.media.audiofx.Virtualizer"}, {"package_name": "android.media.audiofx", "class_name": "Virtualizer.OnParameterChangeListener", "full_name": "android.media.audiofx.Virtualizer.OnParameterChangeListener"}, {"package_name": "android.media.audiofx", "class_name": "Virtualizer.Settings", "full_name": "android.media.audiofx.Virtualizer.Settings"}, {"package_name": "java.lang", "class_name": "VirtualMachineError", "full_name": "java.lang.VirtualMachineError"}, {"package_name": "android.opengl", "class_name": "Visibility", "full_name": "android.opengl.Visibility"}, {"package_name": "android.transition", "class_name": "Visibility", "full_name": "android.transition.Visibility"}, {"package_name": "android.transition", "class_name": "VisibilityPropagation", "full_name": "android.transition.VisibilityPropagation"}, {"package_name": "android.media.audiofx", "class_name": "Visualizer", "full_name": "android.media.audiofx.Visualizer"}, {"package_name": "android.media.audiofx", "class_name": "Visualizer.MeasurementPeakRms", "full_name": "android.media.audiofx.Visualizer.MeasurementPeakRms"}, {"package_name": "android.media.audiofx", "class_name": "Visualizer.OnDataCaptureListener", "full_name": "android.media.audiofx.Visualizer.OnDataCaptureListener"}, {"package_name": "android.telephony", "class_name": "VisualVoicemailService", "full_name": "android.telephony.VisualVoicemailService"}, {"package_name": "android.telephony", "class_name": "VisualVoicemailService.VisualVoicemailTask", "full_name": "android.telephony.VisualVoicemailService.VisualVoicemailTask"}, {"package_name": "android.telephony", "class_name": "VisualVoicemailSms", "full_name": "android.telephony.VisualVoicemailSms"}, {"package_name": "android.telephony", "class_name": "VisualVoicemailSmsFilterSettings", "full_name": "android.telephony.VisualVoicemailSmsFilterSettings"}, {"package_name": "android.telephony", "class_name": "VisualVoicemailSmsFilterSettings.Builder", "full_name": "android.telephony.VisualVoicemailSmsFilterSettings.Builder"}, {"package_name": "android.speech.tts", "class_name": "Voice", "full_name": "android.speech.tts.Voice"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionService", "full_name": "android.service.voice.VoiceInteractionService"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession", "full_name": "android.service.voice.VoiceInteractionSession"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession.AbortVoiceRequest", "full_name": "android.service.voice.VoiceInteractionSession.AbortVoiceRequest"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession.CommandRequest", "full_name": "android.service.voice.VoiceInteractionSession.CommandRequest"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession.CompleteVoiceRequest", "full_name": "android.service.voice.VoiceInteractionSession.CompleteVoiceRequest"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession.ConfirmationRequest", "full_name": "android.service.voice.VoiceInteractionSession.ConfirmationRequest"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession.Insets", "full_name": "android.service.voice.VoiceInteractionSession.Insets"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession.PickOptionRequest", "full_name": "android.service.voice.VoiceInteractionSession.PickOptionRequest"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession.Request", "full_name": "android.service.voice.VoiceInteractionSession.Request"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSessionService", "full_name": "android.service.voice.VoiceInteractionSessionService"}, {"package_name": "android.app", "class_name": "VoiceInteractor", "full_name": "android.app.VoiceInteractor"}, {"package_name": "android.app", "class_name": "VoiceInteractor.AbortVoiceRequest", "full_name": "android.app.VoiceInteractor.AbortVoiceRequest"}, {"package_name": "android.app", "class_name": "VoiceInteractor.CommandRequest", "full_name": "android.app.VoiceInteractor.CommandRequest"}, {"package_name": "android.app", "class_name": "VoiceInteractor.CompleteVoiceRequest", "full_name": "android.app.VoiceInteractor.CompleteVoiceRequest"}, {"package_name": "android.app", "class_name": "VoiceInteractor.ConfirmationRequest", "full_name": "android.app.VoiceInteractor.ConfirmationRequest"}, {"package_name": "android.app", "class_name": "VoiceInteractor.PickOptionRequest", "full_name": "android.app.VoiceInteractor.PickOptionRequest"}, {"package_name": "android.app", "class_name": "VoiceInteractor.PickOptionRequest.Option", "full_name": "android.app.VoiceInteractor.PickOptionRequest.Option"}, {"package_name": "android.app", "class_name": "VoiceInteractor.Prompt", "full_name": "android.app.VoiceInteractor.Prompt"}, {"package_name": "android.app", "class_name": "VoiceInteractor.Request", "full_name": "android.app.VoiceInteractor.Request"}, {"package_name": "android.provider", "class_name": "VoicemailContract", "full_name": "android.provider.VoicemailContract"}, {"package_name": "android.provider", "class_name": "VoicemailContract.Status", "full_name": "android.provider.VoicemailContract.Status"}, {"package_name": "android.provider", "class_name": "VoicemailContract.Voicemails", "full_name": "android.provider.VoicemailContract.Voicemails"}, {"package_name": "java.lang", "class_name": "Void", "full_name": "java.lang.Void"}, {"package_name": "java.lang.invoke", "class_name": "VolatileCallSite", "full_name": "java.lang.invoke.VolatileCallSite"}, {"package_name": "android.media", "class_name": "VolumeAutomation", "full_name": "android.media.VolumeAutomation"}, {"package_name": "android.media", "class_name": "VolumeProvider", "full_name": "android.media.VolumeProvider"}, {"package_name": "android.media", "class_name": "VolumeShaper", "full_name": "android.media.VolumeShaper"}, {"package_name": "android.media", "class_name": "VolumeShaper.Configuration", "full_name": "android.media.VolumeShaper.Configuration"}, {"package_name": "android.media", "class_name": "VolumeShaper.Configuration.Builder", "full_name": "android.media.VolumeShaper.Configuration.Builder"}, {"package_name": "android.media", "class_name": "VolumeShaper.Operation", "full_name": "android.media.VolumeShaper.Operation"}, {"package_name": "android.net", "class_name": "VpnService", "full_name": "android.net.VpnService"}, {"package_name": "android.net", "class_name": "VpnService.Builder", "full_name": "android.net.VpnService.Builder"}, {"package_name": "android.service.vr", "class_name": "VrListenerService", "full_name": "android.service.vr.VrListenerService"}, {"package_name": "android.app", "class_name": "WallpaperColors", "full_name": "android.app.WallpaperColors"}, {"package_name": "android.app", "class_name": "WallpaperInfo", "full_name": "android.app.WallpaperInfo"}, {"package_name": "android.app", "class_name": "WallpaperManager", "full_name": "android.app.WallpaperManager"}, {"package_name": "android.app", "class_name": "WallpaperManager.OnColorsChangedListener", "full_name": "android.app.WallpaperManager.OnColorsChangedListener"}, {"package_name": "android.service.wallpaper", "class_name": "WallpaperService", "full_name": "android.service.wallpaper.WallpaperService"}, {"package_name": "android.service.wallpaper", "class_name": "WallpaperService.Engine", "full_name": "android.service.wallpaper.WallpaperService.Engine"}, {"package_name": "java.nio.file", "class_name": "Watchable", "full_name": "java.nio.file.Watchable"}, {"package_name": "java.nio.file", "class_name": "WatchEvent.Modifier", "full_name": "java.nio.file.WatchEvent.Modifier"}, {"package_name": "java.nio.file", "class_name": "WatchKey", "full_name": "java.nio.file.WatchKey"}, {"package_name": "java.nio.file", "class_name": "WatchService", "full_name": "java.nio.file.WatchService"}, {"package_name": "android.webkit", "class_name": "WebBackForwardList", "full_name": "android.webkit.WebBackForwardList"}, {"package_name": "android.webkit", "class_name": "WebChromeClient", "full_name": "android.webkit.WebChromeClient"}, {"package_name": "android.webkit", "class_name": "WebChromeClient.CustomViewCallback", "full_name": "android.webkit.WebChromeClient.CustomViewCallback"}, {"package_name": "android.webkit", "class_name": "WebChromeClient.FileChooserParams", "full_name": "android.webkit.WebChromeClient.FileChooserParams"}, {"package_name": "android.webkit", "class_name": "WebHistoryItem", "full_name": "android.webkit.WebHistoryItem"}, {"package_name": "android.webkit", "class_name": "WebIconDatabase", "full_name": "android.webkit.WebIconDatabase"}, {"package_name": "android.webkit", "class_name": "WebIconDatabase.IconListener", "full_name": "android.webkit.WebIconDatabase.IconListener"}, {"package_name": "android.webkit", "class_name": "WebMessage", "full_name": "android.webkit.WebMessage"}, {"package_name": "android.webkit", "class_name": "WebMessagePort", "full_name": "android.webkit.WebMessagePort"}, {"package_name": "android.webkit", "class_name": "WebMessagePort.WebMessageCallback", "full_name": "android.webkit.WebMessagePort.WebMessageCallback"}, {"package_name": "android.webkit", "class_name": "WebResourceError", "full_name": "android.webkit.WebResourceError"}, {"package_name": "android.webkit", "class_name": "WebResourceRequest", "full_name": "android.webkit.WebResourceRequest"}, {"package_name": "android.webkit", "class_name": "WebResourceResponse", "full_name": "android.webkit.WebResourceResponse"}, {"package_name": "android.webkit", "class_name": "WebSettings", "full_name": "android.webkit.WebSettings"}, {"package_name": "android.webkit", "class_name": "WebSettings.LayoutAlgorithm", "full_name": "android.webkit.WebSettings.LayoutAlgorithm"}, {"package_name": "android.webkit", "class_name": "WebSettings.PluginState", "full_name": "android.webkit.WebSettings.PluginState"}, {"package_name": "android.webkit", "class_name": "WebSettings.RenderPriority", "full_name": "android.webkit.WebSettings.RenderPriority"}, {"package_name": "android.webkit", "class_name": "WebSettings.TextSize", "full_name": "android.webkit.WebSettings.TextSize"}, {"package_name": "android.webkit", "class_name": "WebSettings.ZoomDensity", "full_name": "android.webkit.WebSettings.ZoomDensity"}, {"package_name": "android.webkit", "class_name": "WebStorage", "full_name": "android.webkit.WebStorage"}, {"package_name": "android.webkit", "class_name": "WebStorage.Origin", "full_name": "android.webkit.WebStorage.Origin"}, {"package_name": "android.webkit", "class_name": "WebStorage.QuotaUpdater", "full_name": "android.webkit.WebStorage.QuotaUpdater"}, {"package_name": "android.webkit", "class_name": "WebView", "full_name": "android.webkit.WebView"}, {"package_name": "android.webkit", "class_name": "WebView.FindListener", "full_name": "android.webkit.WebView.FindListener"}, {"package_name": "android.webkit", "class_name": "WebView.HitTestResult", "full_name": "android.webkit.WebView.HitTestResult"}, {"package_name": "android.webkit", "class_name": "WebView.PictureListener", "full_name": "android.webkit.WebView.PictureListener"}, {"package_name": "android.webkit", "class_name": "WebView.VisualStateCallback", "full_name": "android.webkit.WebView.VisualStateCallback"}, {"package_name": "android.webkit", "class_name": "WebView.WebViewTransport", "full_name": "android.webkit.WebView.WebViewTransport"}, {"package_name": "android.webkit", "class_name": "WebViewClient", "full_name": "android.webkit.WebViewClient"}, {"package_name": "android.webkit", "class_name": "WebViewDatabase", "full_name": "android.webkit.WebViewDatabase"}, {"package_name": "android.webkit", "class_name": "WebViewFragment", "full_name": "android.webkit.WebViewFragment"}, {"package_name": "android.os.strictmode", "class_name": "WebViewMethodCalledOnWrongThreadViolation", "full_name": "android.os.strictmode.WebViewMethodCalledOnWrongThreadViolation"}, {"package_name": "java.time.temporal", "class_name": "WeekFields", "full_name": "java.time.temporal.WeekFields"}, {"package_name": "android.net.wifi.aware", "class_name": "WifiAwareManager", "full_name": "android.net.wifi.aware.WifiAwareManager"}, {"package_name": "android.net.wifi.aware", "class_name": "WifiAwareSession", "full_name": "android.net.wifi.aware.WifiAwareSession"}, {"package_name": "android.net.wifi", "class_name": "WifiConfiguration", "full_name": "android.net.wifi.WifiConfiguration"}, {"package_name": "android.net.wifi", "class_name": "WifiConfiguration.AuthAlgorithm", "full_name": "android.net.wifi.WifiConfiguration.AuthAlgorithm"}, {"package_name": "android.net.wifi", "class_name": "WifiConfiguration.GroupCipher", "full_name": "android.net.wifi.WifiConfiguration.GroupCipher"}, {"package_name": "android.net.wifi", "class_name": "WifiConfiguration.KeyMgmt", "full_name": "android.net.wifi.WifiConfiguration.KeyMgmt"}, {"package_name": "android.net.wifi", "class_name": "WifiConfiguration.PairwiseCipher", "full_name": "android.net.wifi.WifiConfiguration.PairwiseCipher"}, {"package_name": "android.net.wifi", "class_name": "WifiConfiguration.Protocol", "full_name": "android.net.wifi.WifiConfiguration.Protocol"}, {"package_name": "android.net.wifi", "class_name": "WifiConfiguration.Status", "full_name": "android.net.wifi.WifiConfiguration.Status"}, {"package_name": "android.companion", "class_name": "WifiDeviceFilter", "full_name": "android.companion.WifiDeviceFilter"}, {"package_name": "android.companion", "class_name": "WifiDeviceFilter.Builder", "full_name": "android.companion.WifiDeviceFilter.Builder"}, {"package_name": "android.net.wifi", "class_name": "WifiEnterpriseConfig", "full_name": "android.net.wifi.WifiEnterpriseConfig"}, {"package_name": "android.net.wifi", "class_name": "WifiEnterpriseConfig.Eap", "full_name": "android.net.wifi.WifiEnterpriseConfig.Eap"}, {"package_name": "android.net.wifi", "class_name": "WifiInfo", "full_name": "android.net.wifi.WifiInfo"}, {"package_name": "android.net.wifi", "class_name": "WifiManager", "full_name": "android.net.wifi.WifiManager"}, {"package_name": "android.net.wifi", "class_name": "WifiManager.LocalOnlyHotspotCallback", "full_name": "android.net.wifi.WifiManager.LocalOnlyHotspotCallback"}, {"package_name": "android.net.wifi", "class_name": "WifiManager.LocalOnlyHotspotReservation", "full_name": "android.net.wifi.WifiManager.LocalOnlyHotspotReservation"}, {"package_name": "android.net.wifi", "class_name": "WifiManager.MulticastLock", "full_name": "android.net.wifi.WifiManager.MulticastLock"}, {"package_name": "android.net.wifi", "class_name": "WifiManager.WifiLock", "full_name": "android.net.wifi.WifiManager.WifiLock"}, {"package_name": "android.net.wifi", "class_name": "WifiManager.WpsCallback", "full_name": "android.net.wifi.WifiManager.WpsCallback"}, {"package_name": "android.net.wifi.rtt", "class_name": "WifiRttManager", "full_name": "android.net.wifi.rtt.WifiRttManager"}, {"package_name": "java.lang.reflect", "class_name": "WildcardType", "full_name": "java.lang.reflect.WildcardType"}, {"package_name": "android.view", "class_name": "Window", "full_name": "android.view.Window"}, {"package_name": "android.view", "class_name": "Window.Callback", "full_name": "android.view.Window.Callback"}, {"package_name": "android.view", "class_name": "Window.OnFrameMetricsAvailableListener", "full_name": "android.view.Window.OnFrameMetricsAvailableListener"}, {"package_name": "android.view", "class_name": "Window.OnRestrictedCaptionAreaChangedListener", "full_name": "android.view.Window.OnRestrictedCaptionAreaChangedListener"}, {"package_name": "android.view", "class_name": "WindowAnimationFrameStats", "full_name": "android.view.WindowAnimationFrameStats"}, {"package_name": "android.view", "class_name": "WindowContentFrameStats", "full_name": "android.view.WindowContentFrameStats"}, {"package_name": "android.view", "class_name": "WindowId", "full_name": "android.view.WindowId"}, {"package_name": "android.view", "class_name": "WindowId.FocusObserver", "full_name": "android.view.WindowId.FocusObserver"}, {"package_name": "android.view", "class_name": "WindowInsets", "full_name": "android.view.WindowInsets"}, {"package_name": "android.view", "class_name": "WindowManager", "full_name": "android.view.WindowManager"}, {"package_name": "android.view", "class_name": "WindowManager.BadTokenException", "full_name": "android.view.WindowManager.BadTokenException"}, {"package_name": "android.view", "class_name": "WindowManager.InvalidDisplayException", "full_name": "android.view.WindowManager.InvalidDisplayException"}, {"package_name": "android.view", "class_name": "WindowManager.LayoutParams", "full_name": "android.view.WindowManager.LayoutParams"}, {"package_name": "android.os", "class_name": "WorkSource", "full_name": "android.os.WorkSource"}, {"package_name": "android.net.wifi", "class_name": "WpsInfo", "full_name": "android.net.wifi.WpsInfo"}, {"package_name": "android.security.keystore", "class_name": "WrappedKeyEntry", "full_name": "android.security.keystore.WrappedKeyEntry"}, {"package_name": "java.sql", "class_name": "Wrapper", "full_name": "java.sql.Wrapper"}, {"package_name": "android.widget", "class_name": "WrapperListAdapter", "full_name": "android.widget.WrapperListAdapter"}, {"package_name": "android.text.style", "class_name": "WrapTogetherSpan", "full_name": "android.text.style.WrapTogetherSpan"}, {"package_name": "java.nio.channels", "class_name": "WritableByteChannel", "full_name": "java.nio.channels.WritableByteChannel"}, {"package_name": "java.io", "class_name": "WriteAbortedException", "full_name": "java.io.WriteAbortedException"}, {"package_name": "java.nio.channels", "class_name": "WritePendingException", "full_name": "java.nio.channels.WritePendingException"}, {"package_name": "java.io", "class_name": "Writer", "full_name": "java.io.Writer"}, {"package_name": "java.lang.invoke", "class_name": "WrongMethodTypeException", "full_name": "java.lang.invoke.WrongMethodTypeException"}, {"package_name": "android.graphics", "class_name": "Xfermode", "full_name": "android.graphics.Xfermode"}, {"package_name": "android.util", "class_name": "Xml", "full_name": "android.util.Xml"}, {"package_name": "android.util", "class_name": "Xml.Encoding", "full_name": "android.util.Xml.Encoding"}, {"package_name": "javax.xml", "class_name": "XMLConstants", "full_name": "javax.xml.XMLConstants"}, {"package_name": "org.xml.sax", "class_name": "XMLFilter", "full_name": "org.xml.sax.XMLFilter"}, {"package_name": "org.xml.sax.helpers", "class_name": "XMLFilterImpl", "full_name": "org.xml.sax.helpers.XMLFilterImpl"}, {"package_name": "java.util.logging", "class_name": "XMLFormatter", "full_name": "java.util.logging.XMLFormatter"}, {"package_name": "javax.xml.datatype", "class_name": "XMLGregorianCalendar", "full_name": "javax.xml.datatype.XMLGregorianCalendar"}, {"package_name": "org.xml.sax", "class_name": "XMLReader", "full_name": "org.xml.sax.XMLReader"}, {"package_name": "org.xml.sax.helpers", "class_name": "XMLReaderAdapter", "full_name": "org.xml.sax.helpers.XMLReaderAdapter"}, {"package_name": "org.xml.sax.helpers", "class_name": "XMLReaderFactory", "full_name": "org.xml.sax.helpers.XMLReaderFactory"}, {"package_name": "android.content.res", "class_name": "XmlResourceParser", "full_name": "android.content.res.XmlResourceParser"}, {"package_name": "javax.xml.xpath", "class_name": "XPath", "full_name": "javax.xml.xpath.XPath"}, {"package_name": "javax.xml.xpath", "class_name": "XPathConstants", "full_name": "javax.xml.xpath.XPathConstants"}, {"package_name": "javax.xml.xpath", "class_name": "XPathException", "full_name": "javax.xml.xpath.XPathException"}, {"package_name": "javax.xml.xpath", "class_name": "XPathExpression", "full_name": "javax.xml.xpath.XPathExpression"}, {"package_name": "javax.xml.xpath", "class_name": "XPathExpressionException", "full_name": "javax.xml.xpath.XPathExpressionException"}, {"package_name": "javax.xml.xpath", "class_name": "XPathFactory", "full_name": "javax.xml.xpath.XPathFactory"}, {"package_name": "javax.xml.xpath", "class_name": "XPathFactoryConfigurationException", "full_name": "javax.xml.xpath.XPathFactoryConfigurationException"}, {"package_name": "javax.xml.xpath", "class_name": "XPathFunction", "full_name": "javax.xml.xpath.XPathFunction"}, {"package_name": "javax.xml.xpath", "class_name": "XPathFunctionException", "full_name": "javax.xml.xpath.XPathFunctionException"}, {"package_name": "javax.xml.xpath", "class_name": "XPathFunctionResolver", "full_name": "javax.xml.xpath.XPathFunctionResolver"}, {"package_name": "javax.xml.xpath", "class_name": "XPathVariableResolver", "full_name": "javax.xml.xpath.XPathVariableResolver"}, {"package_name": "java.time", "class_name": "Year", "full_name": "java.time.Year"}, {"package_name": "java.time", "class_name": "YearMonth", "full_name": "java.time.YearMonth"}, {"package_name": "android.graphics", "class_name": "YuvImage", "full_name": "android.graphics.YuvImage"}, {"package_name": "java.util.zip", "class_name": "ZipEntry", "full_name": "java.util.zip.ZipEntry"}, {"package_name": "java.util.zip", "class_name": "ZipError", "full_name": "java.util.zip.ZipError"}, {"package_name": "java.util.zip", "class_name": "ZipException", "full_name": "java.util.zip.ZipException"}, {"package_name": "java.util.zip", "class_name": "ZipFile", "full_name": "java.util.zip.ZipFile"}, {"package_name": "java.util.zip", "class_name": "ZipInputStream", "full_name": "java.util.zip.ZipInputStream"}, {"package_name": "java.util.zip", "class_name": "ZipOutputStream", "full_name": "java.util.zip.ZipOutputStream"}, {"package_name": "java.time", "class_name": "ZonedDateTime", "full_name": "java.time.ZonedDateTime"}, {"package_name": "java.time", "class_name": "ZoneId", "full_name": "java.time.ZoneId"}, {"package_name": "java.time", "class_name": "ZoneOffset", "full_name": "java.time.ZoneOffset"}, {"package_name": "java.time.zone", "class_name": "ZoneOffsetTransition", "full_name": "java.time.zone.ZoneOffsetTransition"}, {"package_name": "java.time.zone", "class_name": "ZoneOffsetTransitionRule", "full_name": "java.time.zone.ZoneOffsetTransitionRule"}, {"package_name": "java.time.zone", "class_name": "ZoneOffsetTransitionRule.TimeDefinition", "full_name": "java.time.zone.ZoneOffsetTransitionRule.TimeDefinition"}, {"package_name": "java.time.zone", "class_name": "ZoneRules", "full_name": "java.time.zone.ZoneRules"}, {"package_name": "java.time.zone", "class_name": "ZoneRulesException", "full_name": "java.time.zone.ZoneRulesException"}, {"package_name": "android.widget", "class_name": "ZoomButton", "full_name": "android.widget.ZoomButton"}, {"package_name": "android.widget", "class_name": "ZoomButtonsController", "full_name": "android.widget.ZoomButtonsController"}, {"package_name": "android.widget", "class_name": "ZoomButtonsController.OnZoomListener", "full_name": "android.widget.ZoomButtonsController.OnZoomListener"}, {"package_name": "android.widget", "class_name": "ZoomControls", "full_name": "android.widget.ZoomControls"}]
\ No newline at end of file
+[{"package_name": "android.widget", "class_name": "AbsListView", "full_name": "android.widget.AbsListView"}, {"package_name": "android.widget", "class_name": "AbsListView.LayoutParams", "full_name": "android.widget.AbsListView.LayoutParams"}, {"package_name": "android.widget", "class_name": "AbsListView.MultiChoiceModeListener", "full_name": "android.widget.AbsListView.MultiChoiceModeListener"}, {"package_name": "android.widget", "class_name": "AbsListView.OnScrollListener", "full_name": "android.widget.AbsListView.OnScrollListener"}, {"package_name": "android.widget", "class_name": "AbsListView.RecyclerListener", "full_name": "android.widget.AbsListView.RecyclerListener"}, {"package_name": "android.widget", "class_name": "AbsListView.SelectionBoundsAdjuster", "full_name": "android.widget.AbsListView.SelectionBoundsAdjuster"}, {"package_name": "android.widget", "class_name": "AbsoluteLayout", "full_name": "android.widget.AbsoluteLayout"}, {"package_name": "android.widget", "class_name": "AbsoluteLayout.LayoutParams", "full_name": "android.widget.AbsoluteLayout.LayoutParams"}, {"package_name": "android.text.style", "class_name": "AbsoluteSizeSpan", "full_name": "android.text.style.AbsoluteSizeSpan"}, {"package_name": "android.view", "class_name": "AbsSavedState", "full_name": "android.view.AbsSavedState"}, {"package_name": "android.widget", "class_name": "AbsSeekBar", "full_name": "android.widget.AbsSeekBar"}, {"package_name": "android.widget", "class_name": "AbsSpinner", "full_name": "android.widget.AbsSpinner"}, {"package_name": "android.accounts", "class_name": "AbstractAccountAuthenticator", "full_name": "android.accounts.AbstractAccountAuthenticator"}, {"package_name": "java.time.chrono", "class_name": "AbstractChronology", "full_name": "java.time.chrono.AbstractChronology"}, {"package_name": "android.database", "class_name": "AbstractCursor", "full_name": "android.database.AbstractCursor"}, {"package_name": "android.database", "class_name": "AbstractCursor.SelfContentObserver", "full_name": "android.database.AbstractCursor.SelfContentObserver"}, {"package_name": "java.util.concurrent", "class_name": "AbstractExecutorService", "full_name": "java.util.concurrent.AbstractExecutorService"}, {"package_name": "android.inputmethodservice", "class_name": "AbstractInputMethodService", "full_name": "android.inputmethodservice.AbstractInputMethodService"}, {"package_name": "android.inputmethodservice", "class_name": "AbstractInputMethodService.AbstractInputMethodImpl", "full_name": "android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodImpl"}, {"package_name": "android.inputmethodservice", "class_name": "AbstractInputMethodService.AbstractInputMethodSessionImpl", "full_name": "android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl"}, {"package_name": "java.nio.channels.spi", "class_name": "AbstractInterruptibleChannel", "full_name": "java.nio.channels.spi.AbstractInterruptibleChannel"}, {"package_name": "java.lang", "class_name": "AbstractMethodError", "full_name": "java.lang.AbstractMethodError"}, {"package_name": "java.util.concurrent.locks", "class_name": "AbstractOwnableSynchronizer", "full_name": "java.util.concurrent.locks.AbstractOwnableSynchronizer"}, {"package_name": "java.util.prefs", "class_name": "AbstractPreferences", "full_name": "java.util.prefs.AbstractPreferences"}, {"package_name": "java.util.concurrent.locks", "class_name": "AbstractQueuedLongSynchronizer", "full_name": "java.util.concurrent.locks.AbstractQueuedLongSynchronizer"}, {"package_name": "java.util.concurrent.locks", "class_name": "AbstractQueuedLongSynchronizer.ConditionObject", "full_name": "java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject"}, {"package_name": "java.util.concurrent.locks", "class_name": "AbstractQueuedSynchronizer", "full_name": "java.util.concurrent.locks.AbstractQueuedSynchronizer"}, {"package_name": "java.util.concurrent.locks", "class_name": "AbstractQueuedSynchronizer.ConditionObject", "full_name": "java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject"}, {"package_name": "java.nio.channels.spi", "class_name": "AbstractSelectableChannel", "full_name": "java.nio.channels.spi.AbstractSelectableChannel"}, {"package_name": "java.nio.channels.spi", "class_name": "AbstractSelectionKey", "full_name": "java.nio.channels.spi.AbstractSelectionKey"}, {"package_name": "java.nio.channels.spi", "class_name": "AbstractSelector", "full_name": "java.nio.channels.spi.AbstractSelector"}, {"package_name": "android.content", "class_name": "AbstractThreadedSyncAdapter", "full_name": "android.content.AbstractThreadedSyncAdapter"}, {"package_name": "org.apache.http.conn.ssl", "class_name": "AbstractVerifier", "full_name": "org.apache.http.conn.ssl.AbstractVerifier"}, {"package_name": "android.database", "class_name": "AbstractWindowedCursor", "full_name": "android.database.AbstractWindowedCursor"}, {"package_name": "android.view.animation", "class_name": "AccelerateDecelerateInterpolator", "full_name": "android.view.animation.AccelerateDecelerateInterpolator"}, {"package_name": "android.view.animation", "class_name": "AccelerateInterpolator", "full_name": "android.view.animation.AccelerateInterpolator"}, {"package_name": "java.nio.channels", "class_name": "AcceptPendingException", "full_name": "java.nio.channels.AcceptPendingException"}, {"package_name": "java.security", "class_name": "AccessControlContext", "full_name": "java.security.AccessControlContext"}, {"package_name": "java.security", "class_name": "AccessControlException", "full_name": "java.security.AccessControlException"}, {"package_name": "java.security", "class_name": "AccessController", "full_name": "java.security.AccessController"}, {"package_name": "java.nio.file", "class_name": "AccessDeniedException", "full_name": "java.nio.file.AccessDeniedException"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityButtonController", "full_name": "android.accessibilityservice.AccessibilityButtonController"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityButtonController.AccessibilityButtonCallback", "full_name": "android.accessibilityservice.AccessibilityButtonController.AccessibilityButtonCallback"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityEvent", "full_name": "android.view.accessibility.AccessibilityEvent"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityEventSource", "full_name": "android.view.accessibility.AccessibilityEventSource"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityManager", "full_name": "android.view.accessibility.AccessibilityManager"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityManager.AccessibilityStateChangeListener", "full_name": "android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityManager.TouchExplorationStateChangeListener", "full_name": "android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityNodeInfo", "full_name": "android.view.accessibility.AccessibilityNodeInfo"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityNodeInfo.AccessibilityAction", "full_name": "android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityNodeInfo.CollectionInfo", "full_name": "android.view.accessibility.AccessibilityNodeInfo.CollectionInfo"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityNodeInfo.CollectionItemInfo", "full_name": "android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityNodeInfo.RangeInfo", "full_name": "android.view.accessibility.AccessibilityNodeInfo.RangeInfo"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityNodeProvider", "full_name": "android.view.accessibility.AccessibilityNodeProvider"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityRecord", "full_name": "android.view.accessibility.AccessibilityRecord"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityRequestPreparer", "full_name": "android.view.accessibility.AccessibilityRequestPreparer"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityService", "full_name": "android.accessibilityservice.AccessibilityService"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityService.GestureResultCallback", "full_name": "android.accessibilityservice.AccessibilityService.GestureResultCallback"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityService.MagnificationController", "full_name": "android.accessibilityservice.AccessibilityService.MagnificationController"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityService.MagnificationController.OnMagnificationChangedListener", "full_name": "android.accessibilityservice.AccessibilityService.MagnificationController.OnMagnificationChangedListener"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityService.SoftKeyboardController", "full_name": "android.accessibilityservice.AccessibilityService.SoftKeyboardController"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityService.SoftKeyboardController.OnShowModeChangedListener", "full_name": "android.accessibilityservice.AccessibilityService.SoftKeyboardController.OnShowModeChangedListener"}, {"package_name": "android.accessibilityservice", "class_name": "AccessibilityServiceInfo", "full_name": "android.accessibilityservice.AccessibilityServiceInfo"}, {"package_name": "android.view.accessibility", "class_name": "AccessibilityWindowInfo", "full_name": "android.view.accessibility.AccessibilityWindowInfo"}, {"package_name": "java.lang.reflect", "class_name": "AccessibleObject", "full_name": "java.lang.reflect.AccessibleObject"}, {"package_name": "java.nio.file", "class_name": "AccessMode", "full_name": "java.nio.file.AccessMode"}, {"package_name": "android.telephony", "class_name": "AccessNetworkConstants", "full_name": "android.telephony.AccessNetworkConstants"}, {"package_name": "android.telephony", "class_name": "AccessNetworkConstants.AccessNetworkType", "full_name": "android.telephony.AccessNetworkConstants.AccessNetworkType"}, {"package_name": "android.telephony", "class_name": "AccessNetworkConstants.EutranBand", "full_name": "android.telephony.AccessNetworkConstants.EutranBand"}, {"package_name": "android.telephony", "class_name": "AccessNetworkConstants.GeranBand", "full_name": "android.telephony.AccessNetworkConstants.GeranBand"}, {"package_name": "android.telephony", "class_name": "AccessNetworkConstants.UtranBand", "full_name": "android.telephony.AccessNetworkConstants.UtranBand"}, {"package_name": "android.accounts", "class_name": "Account", "full_name": "android.accounts.Account"}, {"package_name": "android.accounts", "class_name": "AccountAuthenticatorActivity", "full_name": "android.accounts.AccountAuthenticatorActivity"}, {"package_name": "android.accounts", "class_name": "AccountAuthenticatorResponse", "full_name": "android.accounts.AccountAuthenticatorResponse"}, {"package_name": "android.accounts", "class_name": "AccountManager", "full_name": "android.accounts.AccountManager"}, {"package_name": "android.accounts", "class_name": "AccountsException", "full_name": "android.accounts.AccountsException"}, {"package_name": "java.security.acl", "class_name": "Acl", "full_name": "java.security.acl.Acl"}, {"package_name": "java.nio.file.attribute", "class_name": "AclEntry", "full_name": "java.nio.file.attribute.AclEntry"}, {"package_name": "java.security.acl", "class_name": "AclEntry", "full_name": "java.security.acl.AclEntry"}, {"package_name": "java.nio.file.attribute", "class_name": "AclEntry.Builder", "full_name": "java.nio.file.attribute.AclEntry.Builder"}, {"package_name": "java.nio.file.attribute", "class_name": "AclEntryFlag", "full_name": "java.nio.file.attribute.AclEntryFlag"}, {"package_name": "java.nio.file.attribute", "class_name": "AclEntryPermission", "full_name": "java.nio.file.attribute.AclEntryPermission"}, {"package_name": "java.nio.file.attribute", "class_name": "AclEntryType", "full_name": "java.nio.file.attribute.AclEntryType"}, {"package_name": "java.nio.file.attribute", "class_name": "AclFileAttributeView", "full_name": "java.nio.file.attribute.AclFileAttributeView"}, {"package_name": "java.security.acl", "class_name": "AclNotFoundException", "full_name": "java.security.acl.AclNotFoundException"}, {"package_name": "android.media.audiofx", "class_name": "AcousticEchoCanceler", "full_name": "android.media.audiofx.AcousticEchoCanceler"}, {"package_name": "android.app", "class_name": "ActionBar", "full_name": "android.app.ActionBar"}, {"package_name": "android.app", "class_name": "ActionBar.LayoutParams", "full_name": "android.app.ActionBar.LayoutParams"}, {"package_name": "android.app", "class_name": "ActionBar.OnMenuVisibilityListener", "full_name": "android.app.ActionBar.OnMenuVisibilityListener"}, {"package_name": "android.app", "class_name": "ActionBar.OnNavigationListener", "full_name": "android.app.ActionBar.OnNavigationListener"}, {"package_name": "android.app", "class_name": "ActionBar.Tab", "full_name": "android.app.ActionBar.Tab"}, {"package_name": "android.app", "class_name": "ActionBar.TabListener", "full_name": "android.app.ActionBar.TabListener"}, {"package_name": "android.widget", "class_name": "ActionMenuView", "full_name": "android.widget.ActionMenuView"}, {"package_name": "android.widget", "class_name": "ActionMenuView.LayoutParams", "full_name": "android.widget.ActionMenuView.LayoutParams"}, {"package_name": "android.widget", "class_name": "ActionMenuView.OnMenuItemClickListener", "full_name": "android.widget.ActionMenuView.OnMenuItemClickListener"}, {"package_name": "android.view", "class_name": "ActionMode", "full_name": "android.view.ActionMode"}, {"package_name": "android.view", "class_name": "ActionMode.Callback", "full_name": "android.view.ActionMode.Callback"}, {"package_name": "android.view", "class_name": "ActionProvider", "full_name": "android.view.ActionProvider"}, {"package_name": "android.view", "class_name": "ActionProvider.VisibilityListener", "full_name": "android.view.ActionProvider.VisibilityListener"}, {"package_name": "android.app", "class_name": "Activity", "full_name": "android.app.Activity"}, {"package_name": "android.app", "class_name": "ActivityGroup", "full_name": "android.app.ActivityGroup"}, {"package_name": "android.content.pm", "class_name": "ActivityInfo", "full_name": "android.content.pm.ActivityInfo"}, {"package_name": "android.content.pm", "class_name": "ActivityInfo.WindowLayout", "full_name": "android.content.pm.ActivityInfo.WindowLayout"}, {"package_name": "android.app", "class_name": "ActivityManager", "full_name": "android.app.ActivityManager"}, {"package_name": "android.app", "class_name": "ActivityManager.AppTask", "full_name": "android.app.ActivityManager.AppTask"}, {"package_name": "android.app", "class_name": "ActivityManager.MemoryInfo", "full_name": "android.app.ActivityManager.MemoryInfo"}, {"package_name": "android.app", "class_name": "ActivityManager.ProcessErrorStateInfo", "full_name": "android.app.ActivityManager.ProcessErrorStateInfo"}, {"package_name": "android.app", "class_name": "ActivityManager.RecentTaskInfo", "full_name": "android.app.ActivityManager.RecentTaskInfo"}, {"package_name": "android.app", "class_name": "ActivityManager.RunningAppProcessInfo", "full_name": "android.app.ActivityManager.RunningAppProcessInfo"}, {"package_name": "android.app", "class_name": "ActivityManager.RunningServiceInfo", "full_name": "android.app.ActivityManager.RunningServiceInfo"}, {"package_name": "android.app", "class_name": "ActivityManager.RunningTaskInfo", "full_name": "android.app.ActivityManager.RunningTaskInfo"}, {"package_name": "android.app", "class_name": "ActivityManager.TaskDescription", "full_name": "android.app.ActivityManager.TaskDescription"}, {"package_name": "android.content", "class_name": "ActivityNotFoundException", "full_name": "android.content.ActivityNotFoundException"}, {"package_name": "android.app", "class_name": "ActivityOptions", "full_name": "android.app.ActivityOptions"}, {"package_name": "android.test", "class_name": "ActivityTestCase", "full_name": "android.test.ActivityTestCase"}, {"package_name": "android.widget", "class_name": "Adapter", "full_name": "android.widget.Adapter"}, {"package_name": "android.widget", "class_name": "AdapterView.AdapterContextMenuInfo", "full_name": "android.widget.AdapterView.AdapterContextMenuInfo"}, {"package_name": "android.widget", "class_name": "AdapterView.OnItemClickListener", "full_name": "android.widget.AdapterView.OnItemClickListener"}, {"package_name": "android.widget", "class_name": "AdapterView.OnItemLongClickListener", "full_name": "android.widget.AdapterView.OnItemLongClickListener"}, {"package_name": "android.widget", "class_name": "AdapterView.OnItemSelectedListener", "full_name": "android.widget.AdapterView.OnItemSelectedListener"}, {"package_name": "android.widget", "class_name": "AdapterViewAnimator", "full_name": "android.widget.AdapterViewAnimator"}, {"package_name": "android.widget", "class_name": "AdapterViewFlipper", "full_name": "android.widget.AdapterViewFlipper"}, {"package_name": "android.graphics.drawable", "class_name": "AdaptiveIconDrawable", "full_name": "android.graphics.drawable.AdaptiveIconDrawable"}, {"package_name": "android.location", "class_name": "Address", "full_name": "android.location.Address"}, {"package_name": "android.widget", "class_name": "Advanceable", "full_name": "android.widget.Advanceable"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertiseCallback", "full_name": "android.bluetooth.le.AdvertiseCallback"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertiseData", "full_name": "android.bluetooth.le.AdvertiseData"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertiseData.Builder", "full_name": "android.bluetooth.le.AdvertiseData.Builder"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertiseSettings", "full_name": "android.bluetooth.le.AdvertiseSettings"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertiseSettings.Builder", "full_name": "android.bluetooth.le.AdvertiseSettings.Builder"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertisingSet", "full_name": "android.bluetooth.le.AdvertisingSet"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertisingSetCallback", "full_name": "android.bluetooth.le.AdvertisingSetCallback"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertisingSetParameters", "full_name": "android.bluetooth.le.AdvertisingSetParameters"}, {"package_name": "android.bluetooth.le", "class_name": "AdvertisingSetParameters.Builder", "full_name": "android.bluetooth.le.AdvertisingSetParameters.Builder"}, {"package_name": "javax.crypto", "class_name": "AEADBadTagException", "full_name": "javax.crypto.AEADBadTagException"}, {"package_name": "android.provider", "class_name": "AlarmClock", "full_name": "android.provider.AlarmClock"}, {"package_name": "android.app", "class_name": "AlarmManager", "full_name": "android.app.AlarmManager"}, {"package_name": "android.app", "class_name": "AlarmManager.AlarmClockInfo", "full_name": "android.app.AlarmManager.AlarmClockInfo"}, {"package_name": "android.app", "class_name": "AlarmManager.OnAlarmListener", "full_name": "android.app.AlarmManager.OnAlarmListener"}, {"package_name": "android.app", "class_name": "AlertDialog", "full_name": "android.app.AlertDialog"}, {"package_name": "android.app", "class_name": "AlertDialog.Builder", "full_name": "android.app.AlertDialog.Builder"}, {"package_name": "java.security", "class_name": "AlgorithmConstraints", "full_name": "java.security.AlgorithmConstraints"}, {"package_name": "java.security", "class_name": "AlgorithmParameterGenerator", "full_name": "java.security.AlgorithmParameterGenerator"}, {"package_name": "java.security", "class_name": "AlgorithmParameterGeneratorSpi", "full_name": "java.security.AlgorithmParameterGeneratorSpi"}, {"package_name": "java.security", "class_name": "AlgorithmParameters", "full_name": "java.security.AlgorithmParameters"}, {"package_name": "java.security.spec", "class_name": "AlgorithmParameterSpec", "full_name": "java.security.spec.AlgorithmParameterSpec"}, {"package_name": "java.security", "class_name": "AlgorithmParametersSpi", "full_name": "java.security.AlgorithmParametersSpi"}, {"package_name": "android.app", "class_name": "AliasActivity", "full_name": "android.app.AliasActivity"}, {"package_name": "android.text.style", "class_name": "AlignmentSpan", "full_name": "android.text.style.AlignmentSpan"}, {"package_name": "android.text.style", "class_name": "AlignmentSpan.Standard", "full_name": "android.text.style.AlignmentSpan.Standard"}, {"package_name": "android.renderscript", "class_name": "Allocation", "full_name": "android.renderscript.Allocation"}, {"package_name": "android.renderscript", "class_name": "Allocation.MipmapControl", "full_name": "android.renderscript.Allocation.MipmapControl"}, {"package_name": "android.renderscript", "class_name": "Allocation.OnBufferAvailableListener", "full_name": "android.renderscript.Allocation.OnBufferAvailableListener"}, {"package_name": "android.renderscript", "class_name": "AllocationAdapter", "full_name": "android.renderscript.AllocationAdapter"}, {"package_name": "org.apache.http.conn.ssl", "class_name": "AllowAllHostnameVerifier", "full_name": "org.apache.http.conn.ssl.AllowAllHostnameVerifier"}, {"package_name": "java.security", "class_name": "AllPermission", "full_name": "java.security.AllPermission"}, {"package_name": "android.view.animation", "class_name": "AlphaAnimation", "full_name": "android.view.animation.AlphaAnimation"}, {"package_name": "android.icu.text", "class_name": "AlphabeticIndex.Bucket.LabelType", "full_name": "android.icu.text.AlphabeticIndex.Bucket.LabelType"}, {"package_name": "android.widget", "class_name": "AlphabetIndexer", "full_name": "android.widget.AlphabetIndexer"}, {"package_name": "java.nio.channels", "class_name": "AlreadyBoundException", "full_name": "java.nio.channels.AlreadyBoundException"}, {"package_name": "java.nio.channels", "class_name": "AlreadyConnectedException", "full_name": "java.nio.channels.AlreadyConnectedException"}, {"package_name": "android.text", "class_name": "AlteredCharSequence", "full_name": "android.text.AlteredCharSequence"}, {"package_name": "android.service.voice", "class_name": "AlwaysOnHotwordDetector", "full_name": "android.service.voice.AlwaysOnHotwordDetector"}, {"package_name": "android.service.voice", "class_name": "AlwaysOnHotwordDetector.Callback", "full_name": "android.service.voice.AlwaysOnHotwordDetector.Callback"}, {"package_name": "android.service.voice", "class_name": "AlwaysOnHotwordDetector.EventPayload", "full_name": "android.service.voice.AlwaysOnHotwordDetector.EventPayload"}, {"package_name": "android.widget", "class_name": "AnalogClock", "full_name": "android.widget.AnalogClock"}, {"package_name": "android.text", "class_name": "AndroidCharacter", "full_name": "android.text.AndroidCharacter"}, {"package_name": "android.util", "class_name": "AndroidException", "full_name": "android.util.AndroidException"}, {"package_name": "android.util", "class_name": "AndroidRuntimeException", "full_name": "android.util.AndroidRuntimeException"}, {"package_name": "android.test", "class_name": "AndroidTestCase", "full_name": "android.test.AndroidTestCase"}, {"package_name": "android.test", "class_name": "AndroidTestRunner", "full_name": "android.test.AndroidTestRunner"}, {"package_name": "android.graphics.drawable", "class_name": "Animatable", "full_name": "android.graphics.drawable.Animatable"}, {"package_name": "android.graphics.drawable", "class_name": "AnimatedImageDrawable", "full_name": "android.graphics.drawable.AnimatedImageDrawable"}, {"package_name": "android.graphics.drawable", "class_name": "AnimatedStateListDrawable", "full_name": "android.graphics.drawable.AnimatedStateListDrawable"}, {"package_name": "android.graphics.drawable", "class_name": "AnimatedVectorDrawable", "full_name": "android.graphics.drawable.AnimatedVectorDrawable"}, {"package_name": "android.view.animation", "class_name": "Animation", "full_name": "android.view.animation.Animation"}, {"package_name": "android.view.animation", "class_name": "Animation.AnimationListener", "full_name": "android.view.animation.Animation.AnimationListener"}, {"package_name": "android.view.animation", "class_name": "Animation.Description", "full_name": "android.view.animation.Animation.Description"}, {"package_name": "android.graphics.drawable", "class_name": "AnimationDrawable", "full_name": "android.graphics.drawable.AnimationDrawable"}, {"package_name": "android.view.animation", "class_name": "AnimationSet", "full_name": "android.view.animation.AnimationSet"}, {"package_name": "android.view.animation", "class_name": "AnimationUtils", "full_name": "android.view.animation.AnimationUtils"}, {"package_name": "android.animation", "class_name": "Animator", "full_name": "android.animation.Animator"}, {"package_name": "android.animation", "class_name": "Animator.AnimatorListener", "full_name": "android.animation.Animator.AnimatorListener"}, {"package_name": "android.animation", "class_name": "Animator.AnimatorPauseListener", "full_name": "android.animation.Animator.AnimatorPauseListener"}, {"package_name": "android.animation", "class_name": "AnimatorInflater", "full_name": "android.animation.AnimatorInflater"}, {"package_name": "android.animation", "class_name": "AnimatorListenerAdapter", "full_name": "android.animation.AnimatorListenerAdapter"}, {"package_name": "android.animation", "class_name": "AnimatorSet", "full_name": "android.animation.AnimatorSet"}, {"package_name": "android.animation", "class_name": "AnimatorSet.Builder", "full_name": "android.animation.AnimatorSet.Builder"}, {"package_name": "java.lang.reflect", "class_name": "AnnotatedElement", "full_name": "java.lang.reflect.AnnotatedElement"}, {"package_name": "android.text", "class_name": "Annotation", "full_name": "android.text.Annotation"}, {"package_name": "java.lang.annotation", "class_name": "Annotation", "full_name": "java.lang.annotation.Annotation"}, {"package_name": "java.text", "class_name": "Annotation", "full_name": "java.text.Annotation"}, {"package_name": "java.lang.annotation", "class_name": "AnnotationFormatError", "full_name": "java.lang.annotation.AnnotationFormatError"}, {"package_name": "java.lang.annotation", "class_name": "AnnotationTypeMismatchException", "full_name": "java.lang.annotation.AnnotationTypeMismatchException"}, {"package_name": "android.view.animation", "class_name": "AnticipateInterpolator", "full_name": "android.view.animation.AnticipateInterpolator"}, {"package_name": "android.view.animation", "class_name": "AnticipateOvershootInterpolator", "full_name": "android.view.animation.AnticipateOvershootInterpolator"}, {"package_name": "android.telephony.data", "class_name": "ApnSetting", "full_name": "android.telephony.data.ApnSetting"}, {"package_name": "android.telephony.data", "class_name": "ApnSetting.Builder", "full_name": "android.telephony.data.ApnSetting.Builder"}, {"package_name": "android.app", "class_name": "AppComponentFactory", "full_name": "android.app.AppComponentFactory"}, {"package_name": "java.lang", "class_name": "Appendable", "full_name": "java.lang.Appendable"}, {"package_name": "android.app", "class_name": "Application", "full_name": "android.app.Application"}, {"package_name": "android.app", "class_name": "Application.ActivityLifecycleCallbacks", "full_name": "android.app.Application.ActivityLifecycleCallbacks"}, {"package_name": "android.app", "class_name": "Application.OnProvideAssistDataListener", "full_name": "android.app.Application.OnProvideAssistDataListener"}, {"package_name": "android.app", "class_name": "ApplicationErrorReport", "full_name": "android.app.ApplicationErrorReport"}, {"package_name": "android.app", "class_name": "ApplicationErrorReport.AnrInfo", "full_name": "android.app.ApplicationErrorReport.AnrInfo"}, {"package_name": "android.app", "class_name": "ApplicationErrorReport.BatteryInfo", "full_name": "android.app.ApplicationErrorReport.BatteryInfo"}, {"package_name": "android.app", "class_name": "ApplicationErrorReport.CrashInfo", "full_name": "android.app.ApplicationErrorReport.CrashInfo"}, {"package_name": "android.app", "class_name": "ApplicationErrorReport.RunningServiceInfo", "full_name": "android.app.ApplicationErrorReport.RunningServiceInfo"}, {"package_name": "android.content.pm", "class_name": "ApplicationInfo", "full_name": "android.content.pm.ApplicationInfo"}, {"package_name": "android.content.pm", "class_name": "ApplicationInfo.DisplayNameComparator", "full_name": "android.content.pm.ApplicationInfo.DisplayNameComparator"}, {"package_name": "android.app", "class_name": "AppOpsManager", "full_name": "android.app.AppOpsManager"}, {"package_name": "android.app", "class_name": "AppOpsManager.OnOpChangedListener", "full_name": "android.app.AppOpsManager.OnOpChangedListener"}, {"package_name": "android.appwidget", "class_name": "AppWidgetHost", "full_name": "android.appwidget.AppWidgetHost"}, {"package_name": "android.appwidget", "class_name": "AppWidgetHostView", "full_name": "android.appwidget.AppWidgetHostView"}, {"package_name": "android.appwidget", "class_name": "AppWidgetManager", "full_name": "android.appwidget.AppWidgetManager"}, {"package_name": "android.appwidget", "class_name": "AppWidgetProvider", "full_name": "android.appwidget.AppWidgetProvider"}, {"package_name": "android.appwidget", "class_name": "AppWidgetProviderInfo", "full_name": "android.appwidget.AppWidgetProviderInfo"}, {"package_name": "android.transition", "class_name": "ArcMotion", "full_name": "android.transition.ArcMotion"}, {"package_name": "android.graphics.drawable.shapes", "class_name": "ArcShape", "full_name": "android.graphics.drawable.shapes.ArcShape"}, {"package_name": "android.animation", "class_name": "ArgbEvaluator", "full_name": "android.animation.ArgbEvaluator"}, {"package_name": "java.lang", "class_name": "ArithmeticException", "full_name": "java.lang.ArithmeticException"}, {"package_name": "java.lang.reflect", "class_name": "Array", "full_name": "java.lang.reflect.Array"}, {"package_name": "java.sql", "class_name": "Array", "full_name": "java.sql.Array"}, {"package_name": "java.lang", "class_name": "ArrayIndexOutOfBoundsException", "full_name": "java.lang.ArrayIndexOutOfBoundsException"}, {"package_name": "java.util", "class_name": "Arrays", "full_name": "java.util.Arrays"}, {"package_name": "java.lang", "class_name": "ArrayStoreException", "full_name": "java.lang.ArrayStoreException"}, {"package_name": "android.text.method", "class_name": "ArrowKeyMovementMethod", "full_name": "android.text.method.ArrowKeyMovementMethod"}, {"package_name": "junit.framework", "class_name": "Assert", "full_name": "junit.framework.Assert"}, {"package_name": "java.lang", "class_name": "AssertionError", "full_name": "java.lang.AssertionError"}, {"package_name": "android.test", "class_name": "AssertionFailedError", "full_name": "android.test.AssertionFailedError"}, {"package_name": "junit.framework", "class_name": "AssertionFailedError", "full_name": "junit.framework.AssertionFailedError"}, {"package_name": "android.content.res", "class_name": "AssetFileDescriptor", "full_name": "android.content.res.AssetFileDescriptor"}, {"package_name": "android.content.res", "class_name": "AssetFileDescriptor.AutoCloseInputStream", "full_name": "android.content.res.AssetFileDescriptor.AutoCloseInputStream"}, {"package_name": "android.content.res", "class_name": "AssetFileDescriptor.AutoCloseOutputStream", "full_name": "android.content.res.AssetFileDescriptor.AutoCloseOutputStream"}, {"package_name": "android.content.res", "class_name": "AssetManager", "full_name": "android.content.res.AssetManager"}, {"package_name": "android.content.res", "class_name": "AssetManager.AssetInputStream", "full_name": "android.content.res.AssetManager.AssetInputStream"}, {"package_name": "android.app.assist", "class_name": "AssistContent", "full_name": "android.app.assist.AssistContent"}, {"package_name": "android.app.assist", "class_name": "AssistStructure", "full_name": "android.app.assist.AssistStructure"}, {"package_name": "android.app.assist", "class_name": "AssistStructure.ViewNode", "full_name": "android.app.assist.AssistStructure.ViewNode"}, {"package_name": "android.app.assist", "class_name": "AssistStructure.WindowNode", "full_name": "android.app.assist.AssistStructure.WindowNode"}, {"package_name": "android.companion", "class_name": "AssociationRequest", "full_name": "android.companion.AssociationRequest"}, {"package_name": "android.companion", "class_name": "AssociationRequest.Builder", "full_name": "android.companion.AssociationRequest.Builder"}, {"package_name": "java.nio.channels", "class_name": "AsynchronousByteChannel", "full_name": "java.nio.channels.AsynchronousByteChannel"}, {"package_name": "java.nio.channels", "class_name": "AsynchronousChannel", "full_name": "java.nio.channels.AsynchronousChannel"}, {"package_name": "java.nio.channels", "class_name": "AsynchronousChannelGroup", "full_name": "java.nio.channels.AsynchronousChannelGroup"}, {"package_name": "java.nio.channels.spi", "class_name": "AsynchronousChannelProvider", "full_name": "java.nio.channels.spi.AsynchronousChannelProvider"}, {"package_name": "java.nio.channels", "class_name": "AsynchronousCloseException", "full_name": "java.nio.channels.AsynchronousCloseException"}, {"package_name": "java.nio.channels", "class_name": "AsynchronousFileChannel", "full_name": "java.nio.channels.AsynchronousFileChannel"}, {"package_name": "java.nio.channels", "class_name": "AsynchronousServerSocketChannel", "full_name": "java.nio.channels.AsynchronousServerSocketChannel"}, {"package_name": "java.nio.channels", "class_name": "AsynchronousSocketChannel", "full_name": "java.nio.channels.AsynchronousSocketChannel"}, {"package_name": "android.media", "class_name": "AsyncPlayer", "full_name": "android.media.AsyncPlayer"}, {"package_name": "android.content", "class_name": "AsyncQueryHandler", "full_name": "android.content.AsyncQueryHandler"}, {"package_name": "android.content", "class_name": "AsyncQueryHandler.WorkerArgs", "full_name": "android.content.AsyncQueryHandler.WorkerArgs"}, {"package_name": "android.content", "class_name": "AsyncQueryHandler.WorkerHandler", "full_name": "android.content.AsyncQueryHandler.WorkerHandler"}, {"package_name": "android.os", "class_name": "AsyncTask.Status", "full_name": "android.os.AsyncTask.Status"}, {"package_name": "java.util.concurrent.atomic", "class_name": "AtomicBoolean", "full_name": "java.util.concurrent.atomic.AtomicBoolean"}, {"package_name": "android.util", "class_name": "AtomicFile", "full_name": "android.util.AtomicFile"}, {"package_name": "java.util.concurrent.atomic", "class_name": "AtomicInteger", "full_name": "java.util.concurrent.atomic.AtomicInteger"}, {"package_name": "java.util.concurrent.atomic", "class_name": "AtomicIntegerArray", "full_name": "java.util.concurrent.atomic.AtomicIntegerArray"}, {"package_name": "java.util.concurrent.atomic", "class_name": "AtomicLong", "full_name": "java.util.concurrent.atomic.AtomicLong"}, {"package_name": "java.util.concurrent.atomic", "class_name": "AtomicLongArray", "full_name": "java.util.concurrent.atomic.AtomicLongArray"}, {"package_name": "java.nio.file", "class_name": "AtomicMoveNotSupportedException", "full_name": "java.nio.file.AtomicMoveNotSupportedException"}, {"package_name": "android.net.wifi.aware", "class_name": "AttachCallback", "full_name": "android.net.wifi.aware.AttachCallback"}, {"package_name": "android.security", "class_name": "AttestedKeyPair", "full_name": "android.security.AttestedKeyPair"}, {"package_name": "java.text", "class_name": "AttributedCharacterIterator", "full_name": "java.text.AttributedCharacterIterator"}, {"package_name": "java.text", "class_name": "AttributedCharacterIterator.Attribute", "full_name": "java.text.AttributedCharacterIterator.Attribute"}, {"package_name": "java.text", "class_name": "AttributedString", "full_name": "java.text.AttributedString"}, {"package_name": "org.xml.sax", "class_name": "AttributeList", "full_name": "org.xml.sax.AttributeList"}, {"package_name": "org.xml.sax.helpers", "class_name": "AttributeListImpl", "full_name": "org.xml.sax.helpers.AttributeListImpl"}, {"package_name": "java.util.jar", "class_name": "Attributes", "full_name": "java.util.jar.Attributes"}, {"package_name": "org.xml.sax", "class_name": "Attributes", "full_name": "org.xml.sax.Attributes"}, {"package_name": "java.util.jar", "class_name": "Attributes.Name", "full_name": "java.util.jar.Attributes.Name"}, {"package_name": "android.util", "class_name": "AttributeSet", "full_name": "android.util.AttributeSet"}, {"package_name": "org.xml.sax.helpers", "class_name": "AttributesImpl", "full_name": "org.xml.sax.helpers.AttributesImpl"}, {"package_name": "java.nio.file.attribute", "class_name": "AttributeView", "full_name": "java.nio.file.attribute.AttributeView"}, {"package_name": "android.media", "class_name": "AudioAttributes", "full_name": "android.media.AudioAttributes"}, {"package_name": "android.media", "class_name": "AudioAttributes.Builder", "full_name": "android.media.AudioAttributes.Builder"}, {"package_name": "android.net.rtp", "class_name": "AudioCodec", "full_name": "android.net.rtp.AudioCodec"}, {"package_name": "android.media", "class_name": "AudioDeviceCallback", "full_name": "android.media.AudioDeviceCallback"}, {"package_name": "android.media", "class_name": "AudioDeviceInfo", "full_name": "android.media.AudioDeviceInfo"}, {"package_name": "android.media.audiofx", "class_name": "AudioEffect", "full_name": "android.media.audiofx.AudioEffect"}, {"package_name": "android.media.audiofx", "class_name": "AudioEffect.Descriptor", "full_name": "android.media.audiofx.AudioEffect.Descriptor"}, {"package_name": "android.media.audiofx", "class_name": "AudioEffect.OnControlStatusChangeListener", "full_name": "android.media.audiofx.AudioEffect.OnControlStatusChangeListener"}, {"package_name": "android.media.audiofx", "class_name": "AudioEffect.OnEnableStatusChangeListener", "full_name": "android.media.audiofx.AudioEffect.OnEnableStatusChangeListener"}, {"package_name": "android.media", "class_name": "AudioFocusRequest", "full_name": "android.media.AudioFocusRequest"}, {"package_name": "android.media", "class_name": "AudioFocusRequest.Builder", "full_name": "android.media.AudioFocusRequest.Builder"}, {"package_name": "android.media", "class_name": "AudioFormat", "full_name": "android.media.AudioFormat"}, {"package_name": "android.media", "class_name": "AudioFormat.Builder", "full_name": "android.media.AudioFormat.Builder"}, {"package_name": "android.net.rtp", "class_name": "AudioGroup", "full_name": "android.net.rtp.AudioGroup"}, {"package_name": "android.media", "class_name": "AudioManager", "full_name": "android.media.AudioManager"}, {"package_name": "android.media", "class_name": "AudioManager.AudioPlaybackCallback", "full_name": "android.media.AudioManager.AudioPlaybackCallback"}, {"package_name": "android.media", "class_name": "AudioManager.AudioRecordingCallback", "full_name": "android.media.AudioManager.AudioRecordingCallback"}, {"package_name": "android.media", "class_name": "AudioManager.OnAudioFocusChangeListener", "full_name": "android.media.AudioManager.OnAudioFocusChangeListener"}, {"package_name": "android.media", "class_name": "AudioPlaybackConfiguration", "full_name": "android.media.AudioPlaybackConfiguration"}, {"package_name": "android.media", "class_name": "AudioPresentation", "full_name": "android.media.AudioPresentation"}, {"package_name": "android.media", "class_name": "AudioRecord", "full_name": "android.media.AudioRecord"}, {"package_name": "android.media", "class_name": "AudioRecord.Builder", "full_name": "android.media.AudioRecord.Builder"}, {"package_name": "android.media", "class_name": "AudioRecord.MetricsConstants", "full_name": "android.media.AudioRecord.MetricsConstants"}, {"package_name": "android.media", "class_name": "AudioRecord.OnRecordPositionUpdateListener", "full_name": "android.media.AudioRecord.OnRecordPositionUpdateListener"}, {"package_name": "android.media", "class_name": "AudioRecord.OnRoutingChangedListener", "full_name": "android.media.AudioRecord.OnRoutingChangedListener"}, {"package_name": "android.media", "class_name": "AudioRecordingConfiguration", "full_name": "android.media.AudioRecordingConfiguration"}, {"package_name": "android.media", "class_name": "AudioRouting", "full_name": "android.media.AudioRouting"}, {"package_name": "android.media", "class_name": "AudioRouting.OnRoutingChangedListener", "full_name": "android.media.AudioRouting.OnRoutingChangedListener"}, {"package_name": "android.net.rtp", "class_name": "AudioStream", "full_name": "android.net.rtp.AudioStream"}, {"package_name": "android.media", "class_name": "AudioTimestamp", "full_name": "android.media.AudioTimestamp"}, {"package_name": "android.media", "class_name": "AudioTrack", "full_name": "android.media.AudioTrack"}, {"package_name": "android.media", "class_name": "AudioTrack.Builder", "full_name": "android.media.AudioTrack.Builder"}, {"package_name": "android.media", "class_name": "AudioTrack.MetricsConstants", "full_name": "android.media.AudioTrack.MetricsConstants"}, {"package_name": "android.media", "class_name": "AudioTrack.OnPlaybackPositionUpdateListener", "full_name": "android.media.AudioTrack.OnPlaybackPositionUpdateListener"}, {"package_name": "android.media", "class_name": "AudioTrack.OnRoutingChangedListener", "full_name": "android.media.AudioTrack.OnRoutingChangedListener"}, {"package_name": "android.app", "class_name": "AuthenticationRequiredException", "full_name": "android.app.AuthenticationRequiredException"}, {"package_name": "java.net", "class_name": "Authenticator", "full_name": "java.net.Authenticator"}, {"package_name": "java.net", "class_name": "Authenticator.RequestorType", "full_name": "java.net.Authenticator.RequestorType"}, {"package_name": "android.accounts", "class_name": "AuthenticatorDescription", "full_name": "android.accounts.AuthenticatorDescription"}, {"package_name": "android.accounts", "class_name": "AuthenticatorException", "full_name": "android.accounts.AuthenticatorException"}, {"package_name": "javax.security.auth", "class_name": "AuthPermission", "full_name": "javax.security.auth.AuthPermission"}, {"package_name": "java.security", "class_name": "AuthProvider", "full_name": "java.security.AuthProvider"}, {"package_name": "java.lang", "class_name": "AutoCloseable", "full_name": "java.lang.AutoCloseable"}, {"package_name": "android.widget", "class_name": "AutoCompleteTextView", "full_name": "android.widget.AutoCompleteTextView"}, {"package_name": "android.widget", "class_name": "AutoCompleteTextView.OnDismissListener", "full_name": "android.widget.AutoCompleteTextView.OnDismissListener"}, {"package_name": "android.widget", "class_name": "AutoCompleteTextView.Validator", "full_name": "android.widget.AutoCompleteTextView.Validator"}, {"package_name": "android.view.autofill", "class_name": "AutofillId", "full_name": "android.view.autofill.AutofillId"}, {"package_name": "android.view.autofill", "class_name": "AutofillManager", "full_name": "android.view.autofill.AutofillManager"}, {"package_name": "android.view.autofill", "class_name": "AutofillManager.AutofillCallback", "full_name": "android.view.autofill.AutofillManager.AutofillCallback"}, {"package_name": "android.service.autofill", "class_name": "AutofillService", "full_name": "android.service.autofill.AutofillService"}, {"package_name": "android.view.autofill", "class_name": "AutofillValue", "full_name": "android.view.autofill.AutofillValue"}, {"package_name": "android.media.audiofx", "class_name": "AutomaticGainControl", "full_name": "android.media.audiofx.AutomaticGainControl"}, {"package_name": "android.app", "class_name": "AutomaticZenRule", "full_name": "android.app.AutomaticZenRule"}, {"package_name": "android.text", "class_name": "AutoText", "full_name": "android.text.AutoText"}, {"package_name": "android.transition", "class_name": "AutoTransition", "full_name": "android.transition.AutoTransition"}, {"package_name": "android.text.style", "class_name": "BackgroundColorSpan", "full_name": "android.text.style.BackgroundColorSpan"}, {"package_name": "java.util.prefs", "class_name": "BackingStoreException", "full_name": "java.util.prefs.BackingStoreException"}, {"package_name": "android.app.backup", "class_name": "BackupAgent", "full_name": "android.app.backup.BackupAgent"}, {"package_name": "android.app.backup", "class_name": "BackupAgentHelper", "full_name": "android.app.backup.BackupAgentHelper"}, {"package_name": "android.app.backup", "class_name": "BackupDataInput", "full_name": "android.app.backup.BackupDataInput"}, {"package_name": "android.app.backup", "class_name": "BackupDataInputStream", "full_name": "android.app.backup.BackupDataInputStream"}, {"package_name": "android.app.backup", "class_name": "BackupDataOutput", "full_name": "android.app.backup.BackupDataOutput"}, {"package_name": "android.app.backup", "class_name": "BackupHelper", "full_name": "android.app.backup.BackupHelper"}, {"package_name": "android.app.backup", "class_name": "BackupManager", "full_name": "android.app.backup.BackupManager"}, {"package_name": "javax.crypto", "class_name": "BadPaddingException", "full_name": "javax.crypto.BadPaddingException"}, {"package_name": "android.os", "class_name": "BadParcelableException", "full_name": "android.os.BadParcelableException"}, {"package_name": "android.widget", "class_name": "BaseAdapter", "full_name": "android.widget.BaseAdapter"}, {"package_name": "android.os", "class_name": "BaseBundle", "full_name": "android.os.BaseBundle"}, {"package_name": "android.provider", "class_name": "BaseColumns", "full_name": "android.provider.BaseColumns"}, {"package_name": "dalvik.system", "class_name": "BaseDexClassLoader", "full_name": "dalvik.system.BaseDexClassLoader"}, {"package_name": "android.widget", "class_name": "BaseExpandableListAdapter", "full_name": "android.widget.BaseExpandableListAdapter"}, {"package_name": "android.view.inputmethod", "class_name": "BaseInputConnection", "full_name": "android.view.inputmethod.BaseInputConnection"}, {"package_name": "android.view.animation", "class_name": "BaseInterpolator", "full_name": "android.view.animation.BaseInterpolator"}, {"package_name": "android.text.method", "class_name": "BaseKeyListener", "full_name": "android.text.method.BaseKeyListener"}, {"package_name": "android.text.method", "class_name": "BaseMovementMethod", "full_name": "android.text.method.BaseMovementMethod"}, {"package_name": "android.renderscript", "class_name": "BaseObj", "full_name": "android.renderscript.BaseObj"}, {"package_name": "junit.runner", "class_name": "BaseTestRunner", "full_name": "junit.runner.BaseTestRunner"}, {"package_name": "java.nio.file.attribute", "class_name": "BasicFileAttributes", "full_name": "java.nio.file.attribute.BasicFileAttributes"}, {"package_name": "java.nio.file.attribute", "class_name": "BasicFileAttributeView", "full_name": "java.nio.file.attribute.BasicFileAttributeView"}, {"package_name": "java.security", "class_name": "BasicPermission", "full_name": "java.security.BasicPermission"}, {"package_name": "android.media.audiofx", "class_name": "BassBoost", "full_name": "android.media.audiofx.BassBoost"}, {"package_name": "android.media.audiofx", "class_name": "BassBoost.OnParameterChangeListener", "full_name": "android.media.audiofx.BassBoost.OnParameterChangeListener"}, {"package_name": "android.media.audiofx", "class_name": "BassBoost.Settings", "full_name": "android.media.audiofx.BassBoost.Settings"}, {"package_name": "java.sql", "class_name": "BatchUpdateException", "full_name": "java.sql.BatchUpdateException"}, {"package_name": "android.service.autofill", "class_name": "BatchUpdates", "full_name": "android.service.autofill.BatchUpdates"}, {"package_name": "android.service.autofill", "class_name": "BatchUpdates.Builder", "full_name": "android.service.autofill.BatchUpdates.Builder"}, {"package_name": "android.os", "class_name": "BatteryManager", "full_name": "android.os.BatteryManager"}, {"package_name": "java.text", "class_name": "Bidi", "full_name": "java.text.Bidi"}, {"package_name": "android.text", "class_name": "BidiFormatter", "full_name": "android.text.BidiFormatter"}, {"package_name": "android.text", "class_name": "BidiFormatter.Builder", "full_name": "android.text.BidiFormatter.Builder"}, {"package_name": "android.icu.math", "class_name": "BigDecimal", "full_name": "android.icu.math.BigDecimal"}, {"package_name": "java.math", "class_name": "BigDecimal", "full_name": "java.math.BigDecimal"}, {"package_name": "java.math", "class_name": "BigInteger", "full_name": "java.math.BigInteger"}, {"package_name": "android.os", "class_name": "Binder", "full_name": "android.os.Binder"}, {"package_name": "java.net", "class_name": "BindException", "full_name": "java.net.BindException"}, {"package_name": "android.hardware.biometrics", "class_name": "BiometricPrompt", "full_name": "android.hardware.biometrics.BiometricPrompt"}, {"package_name": "android.hardware.biometrics", "class_name": "BiometricPrompt.AuthenticationCallback", "full_name": "android.hardware.biometrics.BiometricPrompt.AuthenticationCallback"}, {"package_name": "android.hardware.biometrics", "class_name": "BiometricPrompt.AuthenticationResult", "full_name": "android.hardware.biometrics.BiometricPrompt.AuthenticationResult"}, {"package_name": "android.hardware.biometrics", "class_name": "BiometricPrompt.Builder", "full_name": "android.hardware.biometrics.BiometricPrompt.Builder"}, {"package_name": "android.hardware.biometrics", "class_name": "BiometricPrompt.CryptoObject", "full_name": "android.hardware.biometrics.BiometricPrompt.CryptoObject"}, {"package_name": "android.graphics", "class_name": "Bitmap", "full_name": "android.graphics.Bitmap"}, {"package_name": "android.graphics", "class_name": "Bitmap.CompressFormat", "full_name": "android.graphics.Bitmap.CompressFormat"}, {"package_name": "android.graphics", "class_name": "Bitmap.Config", "full_name": "android.graphics.Bitmap.Config"}, {"package_name": "android.graphics.drawable", "class_name": "BitmapDrawable", "full_name": "android.graphics.drawable.BitmapDrawable"}, {"package_name": "android.graphics", "class_name": "BitmapFactory", "full_name": "android.graphics.BitmapFactory"}, {"package_name": "android.graphics", "class_name": "BitmapFactory.Options", "full_name": "android.graphics.BitmapFactory.Options"}, {"package_name": "android.graphics", "class_name": "BitmapRegionDecoder", "full_name": "android.graphics.BitmapRegionDecoder"}, {"package_name": "android.graphics", "class_name": "BitmapShader", "full_name": "android.graphics.BitmapShader"}, {"package_name": "java.util", "class_name": "BitSet", "full_name": "java.util.BitSet"}, {"package_name": "java.sql", "class_name": "Blob", "full_name": "java.sql.Blob"}, {"package_name": "android.provider", "class_name": "BlockedNumberContract", "full_name": "android.provider.BlockedNumberContract"}, {"package_name": "android.provider", "class_name": "BlockedNumberContract.BlockedNumbers", "full_name": "android.provider.BlockedNumberContract.BlockedNumbers"}, {"package_name": "android.bluetooth", "class_name": "BluetoothAdapter", "full_name": "android.bluetooth.BluetoothAdapter"}, {"package_name": "android.bluetooth", "class_name": "BluetoothAdapter.LeScanCallback", "full_name": "android.bluetooth.BluetoothAdapter.LeScanCallback"}, {"package_name": "android.bluetooth", "class_name": "BluetoothAssignedNumbers", "full_name": "android.bluetooth.BluetoothAssignedNumbers"}, {"package_name": "android.bluetooth", "class_name": "BluetoothClass", "full_name": "android.bluetooth.BluetoothClass"}, {"package_name": "android.bluetooth", "class_name": "BluetoothClass.Device", "full_name": "android.bluetooth.BluetoothClass.Device"}, {"package_name": "android.bluetooth", "class_name": "BluetoothClass.Device.Major", "full_name": "android.bluetooth.BluetoothClass.Device.Major"}, {"package_name": "android.bluetooth", "class_name": "BluetoothClass.Service", "full_name": "android.bluetooth.BluetoothClass.Service"}, {"package_name": "android.bluetooth", "class_name": "BluetoothDevice", "full_name": "android.bluetooth.BluetoothDevice"}, {"package_name": "android.companion", "class_name": "BluetoothDeviceFilter", "full_name": "android.companion.BluetoothDeviceFilter"}, {"package_name": "android.companion", "class_name": "BluetoothDeviceFilter.Builder", "full_name": "android.companion.BluetoothDeviceFilter.Builder"}, {"package_name": "android.bluetooth", "class_name": "BluetoothGatt", "full_name": "android.bluetooth.BluetoothGatt"}, {"package_name": "android.bluetooth", "class_name": "BluetoothGattCallback", "full_name": "android.bluetooth.BluetoothGattCallback"}, {"package_name": "android.bluetooth", "class_name": "BluetoothGattCharacteristic", "full_name": "android.bluetooth.BluetoothGattCharacteristic"}, {"package_name": "android.bluetooth", "class_name": "BluetoothGattDescriptor", "full_name": "android.bluetooth.BluetoothGattDescriptor"}, {"package_name": "android.bluetooth", "class_name": "BluetoothGattServer", "full_name": "android.bluetooth.BluetoothGattServer"}, {"package_name": "android.bluetooth", "class_name": "BluetoothGattServerCallback", "full_name": "android.bluetooth.BluetoothGattServerCallback"}, {"package_name": "android.bluetooth", "class_name": "BluetoothGattService", "full_name": "android.bluetooth.BluetoothGattService"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHeadset", "full_name": "android.bluetooth.BluetoothHeadset"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHealth", "full_name": "android.bluetooth.BluetoothHealth"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHealthAppConfiguration", "full_name": "android.bluetooth.BluetoothHealthAppConfiguration"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHealthCallback", "full_name": "android.bluetooth.BluetoothHealthCallback"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHidDevice", "full_name": "android.bluetooth.BluetoothHidDevice"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHidDevice.Callback", "full_name": "android.bluetooth.BluetoothHidDevice.Callback"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHidDeviceAppQosSettings", "full_name": "android.bluetooth.BluetoothHidDeviceAppQosSettings"}, {"package_name": "android.bluetooth", "class_name": "BluetoothHidDeviceAppSdpSettings", "full_name": "android.bluetooth.BluetoothHidDeviceAppSdpSettings"}, {"package_name": "android.bluetooth.le", "class_name": "BluetoothLeAdvertiser", "full_name": "android.bluetooth.le.BluetoothLeAdvertiser"}, {"package_name": "android.companion", "class_name": "BluetoothLeDeviceFilter", "full_name": "android.companion.BluetoothLeDeviceFilter"}, {"package_name": "android.companion", "class_name": "BluetoothLeDeviceFilter.Builder", "full_name": "android.companion.BluetoothLeDeviceFilter.Builder"}, {"package_name": "android.bluetooth.le", "class_name": "BluetoothLeScanner", "full_name": "android.bluetooth.le.BluetoothLeScanner"}, {"package_name": "android.bluetooth", "class_name": "BluetoothManager", "full_name": "android.bluetooth.BluetoothManager"}, {"package_name": "android.bluetooth", "class_name": "BluetoothProfile", "full_name": "android.bluetooth.BluetoothProfile"}, {"package_name": "android.bluetooth", "class_name": "BluetoothProfile.ServiceListener", "full_name": "android.bluetooth.BluetoothProfile.ServiceListener"}, {"package_name": "android.bluetooth", "class_name": "BluetoothServerSocket", "full_name": "android.bluetooth.BluetoothServerSocket"}, {"package_name": "android.bluetooth", "class_name": "BluetoothSocket", "full_name": "android.bluetooth.BluetoothSocket"}, {"package_name": "android.graphics", "class_name": "BlurMaskFilter", "full_name": "android.graphics.BlurMaskFilter"}, {"package_name": "android.graphics", "class_name": "BlurMaskFilter.Blur", "full_name": "android.graphics.BlurMaskFilter.Blur"}, {"package_name": "java.lang", "class_name": "Boolean", "full_name": "java.lang.Boolean"}, {"package_name": "java.util.function", "class_name": "BooleanSupplier", "full_name": "java.util.function.BooleanSupplier"}, {"package_name": "java.lang", "class_name": "BootstrapMethodError", "full_name": "java.lang.BootstrapMethodError"}, {"package_name": "android.text", "class_name": "BoringLayout", "full_name": "android.text.BoringLayout"}, {"package_name": "android.text", "class_name": "BoringLayout.Metrics", "full_name": "android.text.BoringLayout.Metrics"}, {"package_name": "android.view.animation", "class_name": "BounceInterpolator", "full_name": "android.view.animation.BounceInterpolator"}, {"package_name": "android.icu.text", "class_name": "BreakIterator", "full_name": "android.icu.text.BreakIterator"}, {"package_name": "java.text", "class_name": "BreakIterator", "full_name": "java.text.BreakIterator"}, {"package_name": "android.content", "class_name": "BroadcastReceiver", "full_name": "android.content.BroadcastReceiver"}, {"package_name": "android.content", "class_name": "BroadcastReceiver.PendingResult", "full_name": "android.content.BroadcastReceiver.PendingResult"}, {"package_name": "java.util.concurrent", "class_name": "BrokenBarrierException", "full_name": "java.util.concurrent.BrokenBarrierException"}, {"package_name": "android.provider", "class_name": "Browser", "full_name": "android.provider.Browser"}, {"package_name": "org.apache.http.conn.ssl", "class_name": "BrowserCompatHostnameVerifier", "full_name": "org.apache.http.conn.ssl.BrowserCompatHostnameVerifier"}, {"package_name": "android.icu.util", "class_name": "BuddhistCalendar", "full_name": "android.icu.util.BuddhistCalendar"}, {"package_name": "java.nio", "class_name": "Buffer", "full_name": "java.nio.Buffer"}, {"package_name": "java.io", "class_name": "BufferedInputStream", "full_name": "java.io.BufferedInputStream"}, {"package_name": "java.io", "class_name": "BufferedOutputStream", "full_name": "java.io.BufferedOutputStream"}, {"package_name": "java.io", "class_name": "BufferedReader", "full_name": "java.io.BufferedReader"}, {"package_name": "java.io", "class_name": "BufferedWriter", "full_name": "java.io.BufferedWriter"}, {"package_name": "java.nio", "class_name": "BufferOverflowException", "full_name": "java.nio.BufferOverflowException"}, {"package_name": "java.nio", "class_name": "BufferUnderflowException", "full_name": "java.nio.BufferUnderflowException"}, {"package_name": "android.os", "class_name": "Build", "full_name": "android.os.Build"}, {"package_name": "android.os", "class_name": "Build.VERSION", "full_name": "android.os.Build.VERSION"}, {"package_name": "android.os", "class_name": "Build.VERSION_CODES", "full_name": "android.os.Build.VERSION_CODES"}, {"package_name": "android.text.style", "class_name": "BulletSpan", "full_name": "android.text.style.BulletSpan"}, {"package_name": "android.os", "class_name": "Bundle", "full_name": "android.os.Bundle"}, {"package_name": "android.widget", "class_name": "Button", "full_name": "android.widget.Button"}, {"package_name": "java.lang", "class_name": "Byte", "full_name": "java.lang.Byte"}, {"package_name": "java.io", "class_name": "ByteArrayInputStream", "full_name": "java.io.ByteArrayInputStream"}, {"package_name": "java.io", "class_name": "ByteArrayOutputStream", "full_name": "java.io.ByteArrayOutputStream"}, {"package_name": "java.nio", "class_name": "ByteBuffer", "full_name": "java.nio.ByteBuffer"}, {"package_name": "java.nio.channels", "class_name": "ByteChannel", "full_name": "java.nio.channels.ByteChannel"}, {"package_name": "java.nio", "class_name": "ByteOrder", "full_name": "java.nio.ByteOrder"}, {"package_name": "java.net", "class_name": "CacheRequest", "full_name": "java.net.CacheRequest"}, {"package_name": "java.net", "class_name": "CacheResponse", "full_name": "java.net.CacheResponse"}, {"package_name": "android.icu.util", "class_name": "Calendar", "full_name": "android.icu.util.Calendar"}, {"package_name": "java.util", "class_name": "Calendar", "full_name": "java.util.Calendar"}, {"package_name": "java.util", "class_name": "Calendar.Builder", "full_name": "java.util.Calendar.Builder"}, {"package_name": "android.icu.util", "class_name": "Calendar.WeekData", "full_name": "android.icu.util.Calendar.WeekData"}, {"package_name": "android.provider", "class_name": "CalendarContract", "full_name": "android.provider.CalendarContract"}, {"package_name": "android.provider", "class_name": "CalendarContract.Attendees", "full_name": "android.provider.CalendarContract.Attendees"}, {"package_name": "android.provider", "class_name": "CalendarContract.AttendeesColumns", "full_name": "android.provider.CalendarContract.AttendeesColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.CalendarAlerts", "full_name": "android.provider.CalendarContract.CalendarAlerts"}, {"package_name": "android.provider", "class_name": "CalendarContract.CalendarAlertsColumns", "full_name": "android.provider.CalendarContract.CalendarAlertsColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.CalendarCache", "full_name": "android.provider.CalendarContract.CalendarCache"}, {"package_name": "android.provider", "class_name": "CalendarContract.CalendarCacheColumns", "full_name": "android.provider.CalendarContract.CalendarCacheColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.CalendarColumns", "full_name": "android.provider.CalendarContract.CalendarColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.CalendarEntity", "full_name": "android.provider.CalendarContract.CalendarEntity"}, {"package_name": "android.provider", "class_name": "CalendarContract.Calendars", "full_name": "android.provider.CalendarContract.Calendars"}, {"package_name": "android.provider", "class_name": "CalendarContract.CalendarSyncColumns", "full_name": "android.provider.CalendarContract.CalendarSyncColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.Colors", "full_name": "android.provider.CalendarContract.Colors"}, {"package_name": "android.provider", "class_name": "CalendarContract.ColorsColumns", "full_name": "android.provider.CalendarContract.ColorsColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.EventDays", "full_name": "android.provider.CalendarContract.EventDays"}, {"package_name": "android.provider", "class_name": "CalendarContract.EventDaysColumns", "full_name": "android.provider.CalendarContract.EventDaysColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.Events", "full_name": "android.provider.CalendarContract.Events"}, {"package_name": "android.provider", "class_name": "CalendarContract.EventsColumns", "full_name": "android.provider.CalendarContract.EventsColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.EventsEntity", "full_name": "android.provider.CalendarContract.EventsEntity"}, {"package_name": "android.provider", "class_name": "CalendarContract.ExtendedProperties", "full_name": "android.provider.CalendarContract.ExtendedProperties"}, {"package_name": "android.provider", "class_name": "CalendarContract.ExtendedPropertiesColumns", "full_name": "android.provider.CalendarContract.ExtendedPropertiesColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.Instances", "full_name": "android.provider.CalendarContract.Instances"}, {"package_name": "android.provider", "class_name": "CalendarContract.Reminders", "full_name": "android.provider.CalendarContract.Reminders"}, {"package_name": "android.provider", "class_name": "CalendarContract.RemindersColumns", "full_name": "android.provider.CalendarContract.RemindersColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.SyncColumns", "full_name": "android.provider.CalendarContract.SyncColumns"}, {"package_name": "android.provider", "class_name": "CalendarContract.SyncState", "full_name": "android.provider.CalendarContract.SyncState"}, {"package_name": "android.widget", "class_name": "CalendarView", "full_name": "android.widget.CalendarView"}, {"package_name": "android.widget", "class_name": "CalendarView.OnDateChangeListener", "full_name": "android.widget.CalendarView.OnDateChangeListener"}, {"package_name": "android.telecom", "class_name": "Call", "full_name": "android.telecom.Call"}, {"package_name": "android.telecom", "class_name": "Call.Callback", "full_name": "android.telecom.Call.Callback"}, {"package_name": "android.telecom", "class_name": "Call.Details", "full_name": "android.telecom.Call.Details"}, {"package_name": "android.telecom", "class_name": "Call.RttCall", "full_name": "android.telecom.Call.RttCall"}, {"package_name": "java.sql", "class_name": "CallableStatement", "full_name": "java.sql.CallableStatement"}, {"package_name": "android.telecom", "class_name": "CallAudioState", "full_name": "android.telecom.CallAudioState"}, {"package_name": "javax.security.auth.callback", "class_name": "Callback", "full_name": "javax.security.auth.callback.Callback"}, {"package_name": "javax.security.auth.callback", "class_name": "CallbackHandler", "full_name": "javax.security.auth.callback.CallbackHandler"}, {"package_name": "android.provider", "class_name": "CallLog", "full_name": "android.provider.CallLog"}, {"package_name": "android.provider", "class_name": "CallLog.Calls", "full_name": "android.provider.CallLog.Calls"}, {"package_name": "android.telecom", "class_name": "CallScreeningService", "full_name": "android.telecom.CallScreeningService"}, {"package_name": "android.telecom", "class_name": "CallScreeningService.CallResponse", "full_name": "android.telecom.CallScreeningService.CallResponse"}, {"package_name": "android.telecom", "class_name": "CallScreeningService.CallResponse.Builder", "full_name": "android.telecom.CallScreeningService.CallResponse.Builder"}, {"package_name": "java.lang.invoke", "class_name": "CallSite", "full_name": "java.lang.invoke.CallSite"}, {"package_name": "android.media", "class_name": "CamcorderProfile", "full_name": "android.media.CamcorderProfile"}, {"package_name": "android.graphics", "class_name": "Camera", "full_name": "android.graphics.Camera"}, {"package_name": "android.hardware", "class_name": "Camera", "full_name": "android.hardware.Camera"}, {"package_name": "android.hardware", "class_name": "Camera.Area", "full_name": "android.hardware.Camera.Area"}, {"package_name": "android.hardware", "class_name": "Camera.AutoFocusCallback", "full_name": "android.hardware.Camera.AutoFocusCallback"}, {"package_name": "android.hardware", "class_name": "Camera.AutoFocusMoveCallback", "full_name": "android.hardware.Camera.AutoFocusMoveCallback"}, {"package_name": "android.hardware", "class_name": "Camera.CameraInfo", "full_name": "android.hardware.Camera.CameraInfo"}, {"package_name": "android.hardware", "class_name": "Camera.ErrorCallback", "full_name": "android.hardware.Camera.ErrorCallback"}, {"package_name": "android.hardware", "class_name": "Camera.Face", "full_name": "android.hardware.Camera.Face"}, {"package_name": "android.hardware", "class_name": "Camera.FaceDetectionListener", "full_name": "android.hardware.Camera.FaceDetectionListener"}, {"package_name": "android.hardware", "class_name": "Camera.OnZoomChangeListener", "full_name": "android.hardware.Camera.OnZoomChangeListener"}, {"package_name": "android.hardware", "class_name": "Camera.Parameters", "full_name": "android.hardware.Camera.Parameters"}, {"package_name": "android.hardware", "class_name": "Camera.PictureCallback", "full_name": "android.hardware.Camera.PictureCallback"}, {"package_name": "android.hardware", "class_name": "Camera.PreviewCallback", "full_name": "android.hardware.Camera.PreviewCallback"}, {"package_name": "android.hardware", "class_name": "Camera.ShutterCallback", "full_name": "android.hardware.Camera.ShutterCallback"}, {"package_name": "android.hardware", "class_name": "Camera.Size", "full_name": "android.hardware.Camera.Size"}, {"package_name": "android.service.media", "class_name": "CameraPrewarmService", "full_name": "android.service.media.CameraPrewarmService"}, {"package_name": "android.media", "class_name": "CameraProfile", "full_name": "android.media.CameraProfile"}, {"package_name": "java.util.concurrent", "class_name": "CancellationException", "full_name": "java.util.concurrent.CancellationException"}, {"package_name": "android.os", "class_name": "CancellationSignal", "full_name": "android.os.CancellationSignal"}, {"package_name": "android.os", "class_name": "CancellationSignal.OnCancelListener", "full_name": "android.os.CancellationSignal.OnCancelListener"}, {"package_name": "java.nio.channels", "class_name": "CancelledKeyException", "full_name": "java.nio.channels.CancelledKeyException"}, {"package_name": "android.graphics", "class_name": "Canvas", "full_name": "android.graphics.Canvas"}, {"package_name": "android.graphics", "class_name": "Canvas.EdgeType", "full_name": "android.graphics.Canvas.EdgeType"}, {"package_name": "android.graphics", "class_name": "Canvas.VertexMode", "full_name": "android.graphics.Canvas.VertexMode"}, {"package_name": "android.view.accessibility", "class_name": "CaptioningManager", "full_name": "android.view.accessibility.CaptioningManager"}, {"package_name": "android.view.accessibility", "class_name": "CaptioningManager.CaptioningChangeListener", "full_name": "android.view.accessibility.CaptioningManager.CaptioningChangeListener"}, {"package_name": "android.view.accessibility", "class_name": "CaptioningManager.CaptionStyle", "full_name": "android.view.accessibility.CaptioningManager.CaptionStyle"}, {"package_name": "android.net", "class_name": "CaptivePortal", "full_name": "android.net.CaptivePortal"}, {"package_name": "android.nfc.cardemulation", "class_name": "CardEmulation", "full_name": "android.nfc.cardemulation.CardEmulation"}, {"package_name": "android.telephony", "class_name": "CarrierConfigManager", "full_name": "android.telephony.CarrierConfigManager"}, {"package_name": "android.service.carrier", "class_name": "CarrierIdentifier", "full_name": "android.service.carrier.CarrierIdentifier"}, {"package_name": "android.service.carrier", "class_name": "CarrierMessagingService", "full_name": "android.service.carrier.CarrierMessagingService"}, {"package_name": "android.service.carrier", "class_name": "CarrierMessagingService.SendMmsResult", "full_name": "android.service.carrier.CarrierMessagingService.SendMmsResult"}, {"package_name": "android.service.carrier", "class_name": "CarrierMessagingService.SendMultipartSmsResult", "full_name": "android.service.carrier.CarrierMessagingService.SendMultipartSmsResult"}, {"package_name": "android.service.carrier", "class_name": "CarrierMessagingService.SendSmsResult", "full_name": "android.service.carrier.CarrierMessagingService.SendSmsResult"}, {"package_name": "android.service.carrier", "class_name": "CarrierService", "full_name": "android.service.carrier.CarrierService"}, {"package_name": "android.telephony.cdma", "class_name": "CdmaCellLocation", "full_name": "android.telephony.cdma.CdmaCellLocation"}, {"package_name": "android.telephony", "class_name": "CellIdentity", "full_name": "android.telephony.CellIdentity"}, {"package_name": "android.telephony", "class_name": "CellIdentityCdma", "full_name": "android.telephony.CellIdentityCdma"}, {"package_name": "android.telephony", "class_name": "CellIdentityGsm", "full_name": "android.telephony.CellIdentityGsm"}, {"package_name": "android.telephony", "class_name": "CellIdentityLte", "full_name": "android.telephony.CellIdentityLte"}, {"package_name": "android.telephony", "class_name": "CellIdentityTdscdma", "full_name": "android.telephony.CellIdentityTdscdma"}, {"package_name": "android.telephony", "class_name": "CellIdentityWcdma", "full_name": "android.telephony.CellIdentityWcdma"}, {"package_name": "android.telephony", "class_name": "CellInfo", "full_name": "android.telephony.CellInfo"}, {"package_name": "android.telephony", "class_name": "CellInfoCdma", "full_name": "android.telephony.CellInfoCdma"}, {"package_name": "android.telephony", "class_name": "CellInfoGsm", "full_name": "android.telephony.CellInfoGsm"}, {"package_name": "android.telephony", "class_name": "CellInfoLte", "full_name": "android.telephony.CellInfoLte"}, {"package_name": "android.telephony", "class_name": "CellInfoWcdma", "full_name": "android.telephony.CellInfoWcdma"}, {"package_name": "android.telephony", "class_name": "CellLocation", "full_name": "android.telephony.CellLocation"}, {"package_name": "android.telephony", "class_name": "CellSignalStrength", "full_name": "android.telephony.CellSignalStrength"}, {"package_name": "android.telephony", "class_name": "CellSignalStrengthCdma", "full_name": "android.telephony.CellSignalStrengthCdma"}, {"package_name": "android.telephony", "class_name": "CellSignalStrengthGsm", "full_name": "android.telephony.CellSignalStrengthGsm"}, {"package_name": "android.telephony", "class_name": "CellSignalStrengthLte", "full_name": "android.telephony.CellSignalStrengthLte"}, {"package_name": "android.telephony", "class_name": "CellSignalStrengthWcdma", "full_name": "android.telephony.CellSignalStrengthWcdma"}, {"package_name": "java.security", "class_name": "Certificate", "full_name": "java.security.Certificate"}, {"package_name": "java.security.cert", "class_name": "Certificate", "full_name": "java.security.cert.Certificate"}, {"package_name": "javax.security.cert", "class_name": "Certificate", "full_name": "javax.security.cert.Certificate"}, {"package_name": "java.security.cert", "class_name": "Certificate.CertificateRep", "full_name": "java.security.cert.Certificate.CertificateRep"}, {"package_name": "java.security.cert", "class_name": "CertificateEncodingException", "full_name": "java.security.cert.CertificateEncodingException"}, {"package_name": "javax.security.cert", "class_name": "CertificateEncodingException", "full_name": "javax.security.cert.CertificateEncodingException"}, {"package_name": "java.security.cert", "class_name": "CertificateException", "full_name": "java.security.cert.CertificateException"}, {"package_name": "javax.security.cert", "class_name": "CertificateException", "full_name": "javax.security.cert.CertificateException"}, {"package_name": "java.security.cert", "class_name": "CertificateExpiredException", "full_name": "java.security.cert.CertificateExpiredException"}, {"package_name": "javax.security.cert", "class_name": "CertificateExpiredException", "full_name": "javax.security.cert.CertificateExpiredException"}, {"package_name": "java.security.cert", "class_name": "CertificateFactory", "full_name": "java.security.cert.CertificateFactory"}, {"package_name": "java.security.cert", "class_name": "CertificateFactorySpi", "full_name": "java.security.cert.CertificateFactorySpi"}, {"package_name": "java.security.cert", "class_name": "CertificateNotYetValidException", "full_name": "java.security.cert.CertificateNotYetValidException"}, {"package_name": "javax.security.cert", "class_name": "CertificateNotYetValidException", "full_name": "javax.security.cert.CertificateNotYetValidException"}, {"package_name": "java.security.cert", "class_name": "CertificateParsingException", "full_name": "java.security.cert.CertificateParsingException"}, {"package_name": "javax.security.cert", "class_name": "CertificateParsingException", "full_name": "javax.security.cert.CertificateParsingException"}, {"package_name": "java.security.cert", "class_name": "CertificateRevokedException", "full_name": "java.security.cert.CertificateRevokedException"}, {"package_name": "java.security.cert", "class_name": "CertPath", "full_name": "java.security.cert.CertPath"}, {"package_name": "java.security.cert", "class_name": "CertPath.CertPathRep", "full_name": "java.security.cert.CertPath.CertPathRep"}, {"package_name": "java.security.cert", "class_name": "CertPathBuilder", "full_name": "java.security.cert.CertPathBuilder"}, {"package_name": "java.security.cert", "class_name": "CertPathBuilderException", "full_name": "java.security.cert.CertPathBuilderException"}, {"package_name": "java.security.cert", "class_name": "CertPathBuilderResult", "full_name": "java.security.cert.CertPathBuilderResult"}, {"package_name": "java.security.cert", "class_name": "CertPathBuilderSpi", "full_name": "java.security.cert.CertPathBuilderSpi"}, {"package_name": "java.security.cert", "class_name": "CertPathChecker", "full_name": "java.security.cert.CertPathChecker"}, {"package_name": "java.security.cert", "class_name": "CertPathParameters", "full_name": "java.security.cert.CertPathParameters"}, {"package_name": "javax.net.ssl", "class_name": "CertPathTrustManagerParameters", "full_name": "javax.net.ssl.CertPathTrustManagerParameters"}, {"package_name": "java.security.cert", "class_name": "CertPathValidator", "full_name": "java.security.cert.CertPathValidator"}, {"package_name": "java.security.cert", "class_name": "CertPathValidatorException", "full_name": "java.security.cert.CertPathValidatorException"}, {"package_name": "java.security.cert", "class_name": "CertPathValidatorException.BasicReason", "full_name": "java.security.cert.CertPathValidatorException.BasicReason"}, {"package_name": "java.security.cert", "class_name": "CertPathValidatorException.Reason", "full_name": "java.security.cert.CertPathValidatorException.Reason"}, {"package_name": "java.security.cert", "class_name": "CertPathValidatorResult", "full_name": "java.security.cert.CertPathValidatorResult"}, {"package_name": "java.security.cert", "class_name": "CertPathValidatorSpi", "full_name": "java.security.cert.CertPathValidatorSpi"}, {"package_name": "java.security.cert", "class_name": "CertSelector", "full_name": "java.security.cert.CertSelector"}, {"package_name": "java.security.cert", "class_name": "CertStore", "full_name": "java.security.cert.CertStore"}, {"package_name": "java.security.cert", "class_name": "CertStoreException", "full_name": "java.security.cert.CertStoreException"}, {"package_name": "java.security.cert", "class_name": "CertStoreParameters", "full_name": "java.security.cert.CertStoreParameters"}, {"package_name": "java.security.cert", "class_name": "CertStoreSpi", "full_name": "java.security.cert.CertStoreSpi"}, {"package_name": "android.transition", "class_name": "ChangeBounds", "full_name": "android.transition.ChangeBounds"}, {"package_name": "android.transition", "class_name": "ChangeClipBounds", "full_name": "android.transition.ChangeClipBounds"}, {"package_name": "android.content.pm", "class_name": "ChangedPackages", "full_name": "android.content.pm.ChangedPackages"}, {"package_name": "android.transition", "class_name": "ChangeImageTransform", "full_name": "android.transition.ChangeImageTransform"}, {"package_name": "android.transition", "class_name": "ChangeScroll", "full_name": "android.transition.ChangeScroll"}, {"package_name": "android.transition", "class_name": "ChangeTransform", "full_name": "android.transition.ChangeTransform"}, {"package_name": "android.se.omapi", "class_name": "Channel", "full_name": "android.se.omapi.Channel"}, {"package_name": "java.nio.channels", "class_name": "Channel", "full_name": "java.nio.channels.Channel"}, {"package_name": "java.nio.channels", "class_name": "Channels", "full_name": "java.nio.channels.Channels"}, {"package_name": "java.lang", "class_name": "Character", "full_name": "java.lang.Character"}, {"package_name": "java.lang", "class_name": "Character.Subset", "full_name": "java.lang.Character.Subset"}, {"package_name": "java.lang", "class_name": "Character.UnicodeBlock", "full_name": "java.lang.Character.UnicodeBlock"}, {"package_name": "java.lang", "class_name": "Character.UnicodeScript", "full_name": "java.lang.Character.UnicodeScript"}, {"package_name": "java.nio.charset", "class_name": "CharacterCodingException", "full_name": "java.nio.charset.CharacterCodingException"}, {"package_name": "android.net.wifi.aware", "class_name": "Characteristics", "full_name": "android.net.wifi.aware.Characteristics"}, {"package_name": "java.text", "class_name": "CharacterIterator", "full_name": "java.text.CharacterIterator"}, {"package_name": "android.text.method", "class_name": "CharacterPickerDialog", "full_name": "android.text.method.CharacterPickerDialog"}, {"package_name": "android.text.style", "class_name": "CharacterStyle", "full_name": "android.text.style.CharacterStyle"}, {"package_name": "android.database", "class_name": "CharArrayBuffer", "full_name": "android.database.CharArrayBuffer"}, {"package_name": "java.io", "class_name": "CharArrayReader", "full_name": "java.io.CharArrayReader"}, {"package_name": "java.io", "class_name": "CharArrayWriter", "full_name": "java.io.CharArrayWriter"}, {"package_name": "java.nio", "class_name": "CharBuffer", "full_name": "java.nio.CharBuffer"}, {"package_name": "java.io", "class_name": "CharConversionException", "full_name": "java.io.CharConversionException"}, {"package_name": "java.lang", "class_name": "CharSequence", "full_name": "java.lang.CharSequence"}, {"package_name": "android.service.autofill", "class_name": "CharSequenceTransformation", "full_name": "android.service.autofill.CharSequenceTransformation"}, {"package_name": "android.service.autofill", "class_name": "CharSequenceTransformation.Builder", "full_name": "android.service.autofill.CharSequenceTransformation.Builder"}, {"package_name": "java.nio.charset", "class_name": "Charset", "full_name": "java.nio.charset.Charset"}, {"package_name": "java.nio.charset", "class_name": "CharsetDecoder", "full_name": "java.nio.charset.CharsetDecoder"}, {"package_name": "java.nio.charset", "class_name": "CharsetEncoder", "full_name": "java.nio.charset.CharsetEncoder"}, {"package_name": "java.nio.charset.spi", "class_name": "CharsetProvider", "full_name": "java.nio.charset.spi.CharsetProvider"}, {"package_name": "android.widget", "class_name": "Checkable", "full_name": "android.widget.Checkable"}, {"package_name": "android.widget", "class_name": "CheckBox", "full_name": "android.widget.CheckBox"}, {"package_name": "androidx.preference", "class_name": "CheckBoxPreference", "full_name": "androidx.preference.CheckBoxPreference"}, {"package_name": "java.util.zip", "class_name": "CheckedInputStream", "full_name": "java.util.zip.CheckedInputStream"}, {"package_name": "java.util.zip", "class_name": "CheckedOutputStream", "full_name": "java.util.zip.CheckedOutputStream"}, {"package_name": "android.widget", "class_name": "CheckedTextView", "full_name": "android.widget.CheckedTextView"}, {"package_name": "java.util.zip", "class_name": "Checksum", "full_name": "java.util.zip.Checksum"}, {"package_name": "android.icu.util", "class_name": "ChineseCalendar", "full_name": "android.icu.util.ChineseCalendar"}, {"package_name": "java.text", "class_name": "ChoiceFormat", "full_name": "java.text.ChoiceFormat"}, {"package_name": "android.service.chooser", "class_name": "ChooserTarget", "full_name": "android.service.chooser.ChooserTarget"}, {"package_name": "android.service.chooser", "class_name": "ChooserTargetService", "full_name": "android.service.chooser.ChooserTargetService"}, {"package_name": "android.view", "class_name": "Choreographer", "full_name": "android.view.Choreographer"}, {"package_name": "android.view", "class_name": "Choreographer.FrameCallback", "full_name": "android.view.Choreographer.FrameCallback"}, {"package_name": "java.time.temporal", "class_name": "ChronoField", "full_name": "java.time.temporal.ChronoField"}, {"package_name": "java.time.chrono", "class_name": "ChronoLocalDate", "full_name": "java.time.chrono.ChronoLocalDate"}, {"package_name": "java.time.chrono", "class_name": "Chronology", "full_name": "java.time.chrono.Chronology"}, {"package_name": "android.widget", "class_name": "Chronometer", "full_name": "android.widget.Chronometer"}, {"package_name": "android.widget", "class_name": "Chronometer.OnChronometerTickListener", "full_name": "android.widget.Chronometer.OnChronometerTickListener"}, {"package_name": "java.time.chrono", "class_name": "ChronoPeriod", "full_name": "java.time.chrono.ChronoPeriod"}, {"package_name": "java.time.temporal", "class_name": "ChronoUnit", "full_name": "java.time.temporal.ChronoUnit"}, {"package_name": "javax.crypto", "class_name": "Cipher", "full_name": "javax.crypto.Cipher"}, {"package_name": "javax.crypto", "class_name": "CipherInputStream", "full_name": "javax.crypto.CipherInputStream"}, {"package_name": "javax.crypto", "class_name": "CipherOutputStream", "full_name": "javax.crypto.CipherOutputStream"}, {"package_name": "javax.crypto", "class_name": "CipherSpi", "full_name": "javax.crypto.CipherSpi"}, {"package_name": "android.transition", "class_name": "CircularPropagation", "full_name": "android.transition.CircularPropagation"}, {"package_name": "java.lang", "class_name": "ClassCastException", "full_name": "java.lang.ClassCastException"}, {"package_name": "java.lang", "class_name": "ClassCircularityError", "full_name": "java.lang.ClassCircularityError"}, {"package_name": "java.lang", "class_name": "ClassFormatError", "full_name": "java.lang.ClassFormatError"}, {"package_name": "java.lang", "class_name": "ClassLoader", "full_name": "java.lang.ClassLoader"}, {"package_name": "java.lang", "class_name": "ClassNotFoundException", "full_name": "java.lang.ClassNotFoundException"}, {"package_name": "android.os.strictmode", "class_name": "CleartextNetworkViolation", "full_name": "android.os.strictmode.CleartextNetworkViolation"}, {"package_name": "android.text.style", "class_name": "ClickableSpan", "full_name": "android.text.style.ClickableSpan"}, {"package_name": "android.webkit", "class_name": "ClientCertRequest", "full_name": "android.webkit.ClientCertRequest"}, {"package_name": "java.sql", "class_name": "ClientInfoStatus", "full_name": "java.sql.ClientInfoStatus"}, {"package_name": "android.content", "class_name": "ClipboardManager", "full_name": "android.content.ClipboardManager"}, {"package_name": "android.text", "class_name": "ClipboardManager", "full_name": "android.text.ClipboardManager"}, {"package_name": "android.content", "class_name": "ClipboardManager.OnPrimaryClipChangedListener", "full_name": "android.content.ClipboardManager.OnPrimaryClipChangedListener"}, {"package_name": "android.content", "class_name": "ClipData", "full_name": "android.content.ClipData"}, {"package_name": "android.content", "class_name": "ClipData.Item", "full_name": "android.content.ClipData.Item"}, {"package_name": "android.content", "class_name": "ClipDescription", "full_name": "android.content.ClipDescription"}, {"package_name": "android.graphics.drawable", "class_name": "ClipDrawable", "full_name": "android.graphics.drawable.ClipDrawable"}, {"package_name": "java.sql", "class_name": "Clob", "full_name": "java.sql.Clob"}, {"package_name": "java.time", "class_name": "Clock", "full_name": "java.time.Clock"}, {"package_name": "java.lang", "class_name": "Cloneable", "full_name": "java.lang.Cloneable"}, {"package_name": "java.lang", "class_name": "CloneNotSupportedException", "full_name": "java.lang.CloneNotSupportedException"}, {"package_name": "java.io", "class_name": "Closeable", "full_name": "java.io.Closeable"}, {"package_name": "java.nio.channels", "class_name": "ClosedByInterruptException", "full_name": "java.nio.channels.ClosedByInterruptException"}, {"package_name": "java.nio.channels", "class_name": "ClosedChannelException", "full_name": "java.nio.channels.ClosedChannelException"}, {"package_name": "java.nio.file", "class_name": "ClosedDirectoryStreamException", "full_name": "java.nio.file.ClosedDirectoryStreamException"}, {"package_name": "java.nio.file", "class_name": "ClosedFileSystemException", "full_name": "java.nio.file.ClosedFileSystemException"}, {"package_name": "java.nio.channels", "class_name": "ClosedSelectorException", "full_name": "java.nio.channels.ClosedSelectorException"}, {"package_name": "java.nio.file", "class_name": "ClosedWatchServiceException", "full_name": "java.nio.file.ClosedWatchServiceException"}, {"package_name": "java.nio.charset", "class_name": "CoderMalfunctionError", "full_name": "java.nio.charset.CoderMalfunctionError"}, {"package_name": "java.nio.charset", "class_name": "CoderResult", "full_name": "java.nio.charset.CoderResult"}, {"package_name": "java.security", "class_name": "CodeSigner", "full_name": "java.security.CodeSigner"}, {"package_name": "java.security", "class_name": "CodeSource", "full_name": "java.security.CodeSource"}, {"package_name": "java.nio.charset", "class_name": "CodingErrorAction", "full_name": "java.nio.charset.CodingErrorAction"}, {"package_name": "android.view", "class_name": "CollapsibleActionView", "full_name": "android.view.CollapsibleActionView"}, {"package_name": "android.icu.text", "class_name": "CollationElementIterator", "full_name": "android.icu.text.CollationElementIterator"}, {"package_name": "java.text", "class_name": "CollationElementIterator", "full_name": "java.text.CollationElementIterator"}, {"package_name": "android.icu.text", "class_name": "CollationKey", "full_name": "android.icu.text.CollationKey"}, {"package_name": "java.text", "class_name": "CollationKey", "full_name": "java.text.CollationKey"}, {"package_name": "android.icu.text", "class_name": "CollationKey.BoundMode", "full_name": "android.icu.text.CollationKey.BoundMode"}, {"package_name": "android.icu.text", "class_name": "Collator", "full_name": "android.icu.text.Collator"}, {"package_name": "java.text", "class_name": "Collator", "full_name": "java.text.Collator"}, {"package_name": "android.icu.text", "class_name": "Collator.ReorderCodes", "full_name": "android.icu.text.Collator.ReorderCodes"}, {"package_name": "java.security.cert", "class_name": "CollectionCertStoreParameters", "full_name": "java.security.cert.CollectionCertStoreParameters"}, {"package_name": "java.util", "class_name": "Collections", "full_name": "java.util.Collections"}, {"package_name": "java.util.stream", "class_name": "Collector.Characteristics", "full_name": "java.util.stream.Collector.Characteristics"}, {"package_name": "java.util.stream", "class_name": "Collectors", "full_name": "java.util.stream.Collectors"}, {"package_name": "android.graphics", "class_name": "Color", "full_name": "android.graphics.Color"}, {"package_name": "android.graphics.drawable", "class_name": "ColorDrawable", "full_name": "android.graphics.drawable.ColorDrawable"}, {"package_name": "android.graphics", "class_name": "ColorFilter", "full_name": "android.graphics.ColorFilter"}, {"package_name": "android.graphics", "class_name": "ColorMatrix", "full_name": "android.graphics.ColorMatrix"}, {"package_name": "android.graphics", "class_name": "ColorMatrixColorFilter", "full_name": "android.graphics.ColorMatrixColorFilter"}, {"package_name": "android.graphics", "class_name": "ColorSpace", "full_name": "android.graphics.ColorSpace"}, {"package_name": "android.graphics", "class_name": "ColorSpace.Adaptation", "full_name": "android.graphics.ColorSpace.Adaptation"}, {"package_name": "android.graphics", "class_name": "ColorSpace.Connector", "full_name": "android.graphics.ColorSpace.Connector"}, {"package_name": "android.graphics", "class_name": "ColorSpace.Model", "full_name": "android.graphics.ColorSpace.Model"}, {"package_name": "android.graphics", "class_name": "ColorSpace.Named", "full_name": "android.graphics.ColorSpace.Named"}, {"package_name": "android.graphics", "class_name": "ColorSpace.RenderIntent", "full_name": "android.graphics.ColorSpace.RenderIntent"}, {"package_name": "android.graphics", "class_name": "ColorSpace.Rgb", "full_name": "android.graphics.ColorSpace.Rgb"}, {"package_name": "android.graphics", "class_name": "ColorSpace.Rgb.TransferParameters", "full_name": "android.graphics.ColorSpace.Rgb.TransferParameters"}, {"package_name": "android.content.res", "class_name": "ColorStateList", "full_name": "android.content.res.ColorStateList"}, {"package_name": "javax.sql", "class_name": "CommonDataSource", "full_name": "javax.sql.CommonDataSource"}, {"package_name": "android.icu.text", "class_name": "CompactDecimalFormat", "full_name": "android.icu.text.CompactDecimalFormat"}, {"package_name": "android.icu.text", "class_name": "CompactDecimalFormat.CompactStyle", "full_name": "android.icu.text.CompactDecimalFormat.CompactStyle"}, {"package_name": "android.companion", "class_name": "CompanionDeviceManager", "full_name": "android.companion.CompanionDeviceManager"}, {"package_name": "android.companion", "class_name": "CompanionDeviceManager.Callback", "full_name": "android.companion.CompanionDeviceManager.Callback"}, {"package_name": "android.test", "class_name": "ComparisonFailure", "full_name": "android.test.ComparisonFailure"}, {"package_name": "junit.framework", "class_name": "ComparisonFailure", "full_name": "junit.framework.ComparisonFailure"}, {"package_name": "java.lang", "class_name": "Compiler", "full_name": "java.lang.Compiler"}, {"package_name": "java.util.concurrent", "class_name": "CompletableFuture.AsynchronousCompletionTask", "full_name": "java.util.concurrent.CompletableFuture.AsynchronousCompletionTask"}, {"package_name": "java.util.concurrent", "class_name": "CompletionException", "full_name": "java.util.concurrent.CompletionException"}, {"package_name": "android.view.inputmethod", "class_name": "CompletionInfo", "full_name": "android.view.inputmethod.CompletionInfo"}, {"package_name": "android.content", "class_name": "ComponentCallbacks", "full_name": "android.content.ComponentCallbacks"}, {"package_name": "android.content.pm", "class_name": "ComponentInfo", "full_name": "android.content.pm.ComponentInfo"}, {"package_name": "android.content", "class_name": "ComponentName", "full_name": "android.content.ComponentName"}, {"package_name": "android.graphics", "class_name": "ComposePathEffect", "full_name": "android.graphics.ComposePathEffect"}, {"package_name": "android.graphics", "class_name": "ComposeShader", "full_name": "android.graphics.ComposeShader"}, {"package_name": "android.widget", "class_name": "CompoundButton", "full_name": "android.widget.CompoundButton"}, {"package_name": "android.widget", "class_name": "CompoundButton.OnCheckedChangeListener", "full_name": "android.widget.CompoundButton.OnCheckedChangeListener"}, {"package_name": "java.util", "class_name": "ConcurrentModificationException", "full_name": "java.util.ConcurrentModificationException"}, {"package_name": "android.service.notification", "class_name": "Condition", "full_name": "android.service.notification.Condition"}, {"package_name": "java.util.concurrent.locks", "class_name": "Condition", "full_name": "java.util.concurrent.locks.Condition"}, {"package_name": "android.service.notification", "class_name": "ConditionProviderService", "full_name": "android.service.notification.ConditionProviderService"}, {"package_name": "android.os", "class_name": "ConditionVariable", "full_name": "android.os.ConditionVariable"}, {"package_name": "android.telecom", "class_name": "Conference", "full_name": "android.telecom.Conference"}, {"package_name": "android.telecom", "class_name": "Conferenceable", "full_name": "android.telecom.Conferenceable"}, {"package_name": "android.util", "class_name": "Config", "full_name": "android.util.Config"}, {"package_name": "android.content.res", "class_name": "Configuration", "full_name": "android.content.res.Configuration"}, {"package_name": "android.content.pm", "class_name": "ConfigurationInfo", "full_name": "android.content.pm.ConfigurationInfo"}, {"package_name": "android.app.usage", "class_name": "ConfigurationStats", "full_name": "android.app.usage.ConfigurationStats"}, {"package_name": "android.security", "class_name": "ConfirmationAlreadyPresentingException", "full_name": "android.security.ConfirmationAlreadyPresentingException"}, {"package_name": "android.security", "class_name": "ConfirmationCallback", "full_name": "android.security.ConfirmationCallback"}, {"package_name": "android.security", "class_name": "ConfirmationNotAvailableException", "full_name": "android.security.ConfirmationNotAvailableException"}, {"package_name": "android.security", "class_name": "ConfirmationPrompt", "full_name": "android.security.ConfirmationPrompt"}, {"package_name": "android.security", "class_name": "ConfirmationPrompt.Builder", "full_name": "android.security.ConfirmationPrompt.Builder"}, {"package_name": "android.app.admin", "class_name": "ConnectEvent", "full_name": "android.app.admin.ConnectEvent"}, {"package_name": "java.net", "class_name": "ConnectException", "full_name": "java.net.ConnectException"}, {"package_name": "android.telecom", "class_name": "Connection", "full_name": "android.telecom.Connection"}, {"package_name": "java.sql", "class_name": "Connection", "full_name": "java.sql.Connection"}, {"package_name": "android.telecom", "class_name": "Connection.RttModifyStatus", "full_name": "android.telecom.Connection.RttModifyStatus"}, {"package_name": "android.telecom", "class_name": "Connection.RttTextStream", "full_name": "android.telecom.Connection.RttTextStream"}, {"package_name": "android.telecom", "class_name": "Connection.VideoProvider", "full_name": "android.telecom.Connection.VideoProvider"}, {"package_name": "javax.sql", "class_name": "ConnectionEvent", "full_name": "javax.sql.ConnectionEvent"}, {"package_name": "javax.sql", "class_name": "ConnectionEventListener", "full_name": "javax.sql.ConnectionEventListener"}, {"package_name": "java.nio.channels", "class_name": "ConnectionPendingException", "full_name": "java.nio.channels.ConnectionPendingException"}, {"package_name": "javax.sql", "class_name": "ConnectionPoolDataSource", "full_name": "javax.sql.ConnectionPoolDataSource"}, {"package_name": "android.telecom", "class_name": "ConnectionRequest", "full_name": "android.telecom.ConnectionRequest"}, {"package_name": "android.telecom", "class_name": "ConnectionService", "full_name": "android.telecom.ConnectionService"}, {"package_name": "android.net", "class_name": "ConnectivityManager", "full_name": "android.net.ConnectivityManager"}, {"package_name": "android.net", "class_name": "ConnectivityManager.NetworkCallback", "full_name": "android.net.ConnectivityManager.NetworkCallback"}, {"package_name": "android.net", "class_name": "ConnectivityManager.OnNetworkActiveListener", "full_name": "android.net.ConnectivityManager.OnNetworkActiveListener"}, {"package_name": "org.apache.http.conn", "class_name": "ConnectTimeoutException", "full_name": "org.apache.http.conn.ConnectTimeoutException"}, {"package_name": "java.io", "class_name": "Console", "full_name": "java.io.Console"}, {"package_name": "java.util.logging", "class_name": "ConsoleHandler", "full_name": "java.util.logging.ConsoleHandler"}, {"package_name": "android.webkit", "class_name": "ConsoleMessage", "full_name": "android.webkit.ConsoleMessage"}, {"package_name": "android.webkit", "class_name": "ConsoleMessage.MessageLevel", "full_name": "android.webkit.ConsoleMessage.MessageLevel"}, {"package_name": "java.lang.invoke", "class_name": "ConstantCallSite", "full_name": "java.lang.invoke.ConstantCallSite"}, {"package_name": "android.hardware", "class_name": "ConsumerIrManager", "full_name": "android.hardware.ConsumerIrManager"}, {"package_name": "android.hardware", "class_name": "ConsumerIrManager.CarrierFrequencyRange", "full_name": "android.hardware.ConsumerIrManager.CarrierFrequencyRange"}, {"package_name": "android.provider", "class_name": "Contacts", "full_name": "android.provider.Contacts"}, {"package_name": "android.provider", "class_name": "Contacts.ContactMethods", "full_name": "android.provider.Contacts.ContactMethods"}, {"package_name": "android.provider", "class_name": "Contacts.ContactMethodsColumns", "full_name": "android.provider.Contacts.ContactMethodsColumns"}, {"package_name": "android.provider", "class_name": "Contacts.Extensions", "full_name": "android.provider.Contacts.Extensions"}, {"package_name": "android.provider", "class_name": "Contacts.ExtensionsColumns", "full_name": "android.provider.Contacts.ExtensionsColumns"}, {"package_name": "android.provider", "class_name": "Contacts.GroupMembership", "full_name": "android.provider.Contacts.GroupMembership"}, {"package_name": "android.provider", "class_name": "Contacts.Groups", "full_name": "android.provider.Contacts.Groups"}, {"package_name": "android.provider", "class_name": "Contacts.GroupsColumns", "full_name": "android.provider.Contacts.GroupsColumns"}, {"package_name": "android.provider", "class_name": "Contacts.Intents", "full_name": "android.provider.Contacts.Intents"}, {"package_name": "android.provider", "class_name": "Contacts.Intents.Insert", "full_name": "android.provider.Contacts.Intents.Insert"}, {"package_name": "android.provider", "class_name": "Contacts.Intents.UI", "full_name": "android.provider.Contacts.Intents.UI"}, {"package_name": "android.provider", "class_name": "Contacts.OrganizationColumns", "full_name": "android.provider.Contacts.OrganizationColumns"}, {"package_name": "android.provider", "class_name": "Contacts.Organizations", "full_name": "android.provider.Contacts.Organizations"}, {"package_name": "android.provider", "class_name": "Contacts.People", "full_name": "android.provider.Contacts.People"}, {"package_name": "android.provider", "class_name": "Contacts.People.ContactMethods", "full_name": "android.provider.Contacts.People.ContactMethods"}, {"package_name": "android.provider", "class_name": "Contacts.People.Extensions", "full_name": "android.provider.Contacts.People.Extensions"}, {"package_name": "android.provider", "class_name": "Contacts.People.Phones", "full_name": "android.provider.Contacts.People.Phones"}, {"package_name": "android.provider", "class_name": "Contacts.PeopleColumns", "full_name": "android.provider.Contacts.PeopleColumns"}, {"package_name": "android.provider", "class_name": "Contacts.Phones", "full_name": "android.provider.Contacts.Phones"}, {"package_name": "android.provider", "class_name": "Contacts.PhonesColumns", "full_name": "android.provider.Contacts.PhonesColumns"}, {"package_name": "android.provider", "class_name": "Contacts.Photos", "full_name": "android.provider.Contacts.Photos"}, {"package_name": "android.provider", "class_name": "Contacts.PhotosColumns", "full_name": "android.provider.Contacts.PhotosColumns"}, {"package_name": "android.provider", "class_name": "Contacts.PresenceColumns", "full_name": "android.provider.Contacts.PresenceColumns"}, {"package_name": "android.provider", "class_name": "Contacts.Settings", "full_name": "android.provider.Contacts.Settings"}, {"package_name": "android.provider", "class_name": "Contacts.SettingsColumns", "full_name": "android.provider.Contacts.SettingsColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract", "full_name": "android.provider.ContactsContract"}, {"package_name": "android.provider", "class_name": "ContactsContract.AggregationExceptions", "full_name": "android.provider.ContactsContract.AggregationExceptions"}, {"package_name": "android.provider", "class_name": "ContactsContract.BaseSyncColumns", "full_name": "android.provider.ContactsContract.BaseSyncColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds", "full_name": "android.provider.ContactsContract.CommonDataKinds"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.BaseTypes", "full_name": "android.provider.ContactsContract.CommonDataKinds.BaseTypes"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Callable", "full_name": "android.provider.ContactsContract.CommonDataKinds.Callable"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.CommonColumns", "full_name": "android.provider.ContactsContract.CommonDataKinds.CommonColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Contactables", "full_name": "android.provider.ContactsContract.CommonDataKinds.Contactables"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Email", "full_name": "android.provider.ContactsContract.CommonDataKinds.Email"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Event", "full_name": "android.provider.ContactsContract.CommonDataKinds.Event"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.GroupMembership", "full_name": "android.provider.ContactsContract.CommonDataKinds.GroupMembership"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Identity", "full_name": "android.provider.ContactsContract.CommonDataKinds.Identity"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Im", "full_name": "android.provider.ContactsContract.CommonDataKinds.Im"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Nickname", "full_name": "android.provider.ContactsContract.CommonDataKinds.Nickname"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Note", "full_name": "android.provider.ContactsContract.CommonDataKinds.Note"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Organization", "full_name": "android.provider.ContactsContract.CommonDataKinds.Organization"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Phone", "full_name": "android.provider.ContactsContract.CommonDataKinds.Phone"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Photo", "full_name": "android.provider.ContactsContract.CommonDataKinds.Photo"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Relation", "full_name": "android.provider.ContactsContract.CommonDataKinds.Relation"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.SipAddress", "full_name": "android.provider.ContactsContract.CommonDataKinds.SipAddress"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.StructuredName", "full_name": "android.provider.ContactsContract.CommonDataKinds.StructuredName"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.StructuredPostal", "full_name": "android.provider.ContactsContract.CommonDataKinds.StructuredPostal"}, {"package_name": "android.provider", "class_name": "ContactsContract.CommonDataKinds.Website", "full_name": "android.provider.ContactsContract.CommonDataKinds.Website"}, {"package_name": "android.provider", "class_name": "ContactsContract.ContactNameColumns", "full_name": "android.provider.ContactsContract.ContactNameColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.ContactOptionsColumns", "full_name": "android.provider.ContactsContract.ContactOptionsColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.Contacts", "full_name": "android.provider.ContactsContract.Contacts"}, {"package_name": "android.provider", "class_name": "ContactsContract.Contacts.AggregationSuggestions", "full_name": "android.provider.ContactsContract.Contacts.AggregationSuggestions"}, {"package_name": "android.provider", "class_name": "ContactsContract.Contacts.AggregationSuggestions.Builder", "full_name": "android.provider.ContactsContract.Contacts.AggregationSuggestions.Builder"}, {"package_name": "android.provider", "class_name": "ContactsContract.Contacts.Data", "full_name": "android.provider.ContactsContract.Contacts.Data"}, {"package_name": "android.provider", "class_name": "ContactsContract.Contacts.Entity", "full_name": "android.provider.ContactsContract.Contacts.Entity"}, {"package_name": "android.provider", "class_name": "ContactsContract.Contacts.Photo", "full_name": "android.provider.ContactsContract.Contacts.Photo"}, {"package_name": "android.provider", "class_name": "ContactsContract.ContactsColumns", "full_name": "android.provider.ContactsContract.ContactsColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.ContactStatusColumns", "full_name": "android.provider.ContactsContract.ContactStatusColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.Data", "full_name": "android.provider.ContactsContract.Data"}, {"package_name": "android.provider", "class_name": "ContactsContract.DataColumns", "full_name": "android.provider.ContactsContract.DataColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.DataColumnsWithJoins", "full_name": "android.provider.ContactsContract.DataColumnsWithJoins"}, {"package_name": "android.provider", "class_name": "ContactsContract.DataUsageFeedback", "full_name": "android.provider.ContactsContract.DataUsageFeedback"}, {"package_name": "android.provider", "class_name": "ContactsContract.DataUsageStatColumns", "full_name": "android.provider.ContactsContract.DataUsageStatColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.DeletedContacts", "full_name": "android.provider.ContactsContract.DeletedContacts"}, {"package_name": "android.provider", "class_name": "ContactsContract.DeletedContactsColumns", "full_name": "android.provider.ContactsContract.DeletedContactsColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.Directory", "full_name": "android.provider.ContactsContract.Directory"}, {"package_name": "android.provider", "class_name": "ContactsContract.DisplayNameSources", "full_name": "android.provider.ContactsContract.DisplayNameSources"}, {"package_name": "android.provider", "class_name": "ContactsContract.DisplayPhoto", "full_name": "android.provider.ContactsContract.DisplayPhoto"}, {"package_name": "android.provider", "class_name": "ContactsContract.FullNameStyle", "full_name": "android.provider.ContactsContract.FullNameStyle"}, {"package_name": "android.provider", "class_name": "ContactsContract.Groups", "full_name": "android.provider.ContactsContract.Groups"}, {"package_name": "android.provider", "class_name": "ContactsContract.GroupsColumns", "full_name": "android.provider.ContactsContract.GroupsColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.Intents", "full_name": "android.provider.ContactsContract.Intents"}, {"package_name": "android.provider", "class_name": "ContactsContract.Intents.Insert", "full_name": "android.provider.ContactsContract.Intents.Insert"}, {"package_name": "android.provider", "class_name": "ContactsContract.PhoneLookup", "full_name": "android.provider.ContactsContract.PhoneLookup"}, {"package_name": "android.provider", "class_name": "ContactsContract.PhoneLookupColumns", "full_name": "android.provider.ContactsContract.PhoneLookupColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.PhoneticNameStyle", "full_name": "android.provider.ContactsContract.PhoneticNameStyle"}, {"package_name": "android.provider", "class_name": "ContactsContract.PinnedPositions", "full_name": "android.provider.ContactsContract.PinnedPositions"}, {"package_name": "android.provider", "class_name": "ContactsContract.Presence", "full_name": "android.provider.ContactsContract.Presence"}, {"package_name": "android.provider", "class_name": "ContactsContract.PresenceColumns", "full_name": "android.provider.ContactsContract.PresenceColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.Profile", "full_name": "android.provider.ContactsContract.Profile"}, {"package_name": "android.provider", "class_name": "ContactsContract.ProfileSyncState", "full_name": "android.provider.ContactsContract.ProfileSyncState"}, {"package_name": "android.provider", "class_name": "ContactsContract.ProviderStatus", "full_name": "android.provider.ContactsContract.ProviderStatus"}, {"package_name": "android.provider", "class_name": "ContactsContract.QuickContact", "full_name": "android.provider.ContactsContract.QuickContact"}, {"package_name": "android.provider", "class_name": "ContactsContract.RawContacts", "full_name": "android.provider.ContactsContract.RawContacts"}, {"package_name": "android.provider", "class_name": "ContactsContract.RawContacts.Data", "full_name": "android.provider.ContactsContract.RawContacts.Data"}, {"package_name": "android.provider", "class_name": "ContactsContract.RawContacts.DisplayPhoto", "full_name": "android.provider.ContactsContract.RawContacts.DisplayPhoto"}, {"package_name": "android.provider", "class_name": "ContactsContract.RawContacts.Entity", "full_name": "android.provider.ContactsContract.RawContacts.Entity"}, {"package_name": "android.provider", "class_name": "ContactsContract.RawContactsColumns", "full_name": "android.provider.ContactsContract.RawContactsColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.RawContactsEntity", "full_name": "android.provider.ContactsContract.RawContactsEntity"}, {"package_name": "android.provider", "class_name": "ContactsContract.SearchSnippets", "full_name": "android.provider.ContactsContract.SearchSnippets"}, {"package_name": "android.provider", "class_name": "ContactsContract.Settings", "full_name": "android.provider.ContactsContract.Settings"}, {"package_name": "android.provider", "class_name": "ContactsContract.SettingsColumns", "full_name": "android.provider.ContactsContract.SettingsColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.StatusColumns", "full_name": "android.provider.ContactsContract.StatusColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.StatusUpdates", "full_name": "android.provider.ContactsContract.StatusUpdates"}, {"package_name": "android.provider", "class_name": "ContactsContract.SyncColumns", "full_name": "android.provider.ContactsContract.SyncColumns"}, {"package_name": "android.provider", "class_name": "ContactsContract.SyncState", "full_name": "android.provider.ContactsContract.SyncState"}, {"package_name": "java.net", "class_name": "ContentHandler", "full_name": "java.net.ContentHandler"}, {"package_name": "org.xml.sax", "class_name": "ContentHandler", "full_name": "org.xml.sax.ContentHandler"}, {"package_name": "java.net", "class_name": "ContentHandlerFactory", "full_name": "java.net.ContentHandlerFactory"}, {"package_name": "android.database", "class_name": "ContentObservable", "full_name": "android.database.ContentObservable"}, {"package_name": "android.database", "class_name": "ContentObserver", "full_name": "android.database.ContentObserver"}, {"package_name": "android.content", "class_name": "ContentProvider", "full_name": "android.content.ContentProvider"}, {"package_name": "android.content", "class_name": "ContentProviderClient", "full_name": "android.content.ContentProviderClient"}, {"package_name": "android.content", "class_name": "ContentProviderOperation", "full_name": "android.content.ContentProviderOperation"}, {"package_name": "android.content", "class_name": "ContentProviderOperation.Builder", "full_name": "android.content.ContentProviderOperation.Builder"}, {"package_name": "android.content", "class_name": "ContentProviderResult", "full_name": "android.content.ContentProviderResult"}, {"package_name": "android.content", "class_name": "ContentQueryMap", "full_name": "android.content.ContentQueryMap"}, {"package_name": "android.content", "class_name": "ContentResolver", "full_name": "android.content.ContentResolver"}, {"package_name": "android.content", "class_name": "ContentUris", "full_name": "android.content.ContentUris"}, {"package_name": "android.os.strictmode", "class_name": "ContentUriWithoutPermissionViolation", "full_name": "android.os.strictmode.ContentUriWithoutPermissionViolation"}, {"package_name": "android.content", "class_name": "ContentValues", "full_name": "android.content.ContentValues"}, {"package_name": "android.content", "class_name": "Context", "full_name": "android.content.Context"}, {"package_name": "android.view", "class_name": "ContextMenu", "full_name": "android.view.ContextMenu"}, {"package_name": "android.view", "class_name": "ContextMenu.ContextMenuInfo", "full_name": "android.view.ContextMenu.ContextMenuInfo"}, {"package_name": "android.view", "class_name": "ContextThemeWrapper", "full_name": "android.view.ContextThemeWrapper"}, {"package_name": "android.content", "class_name": "ContextWrapper", "full_name": "android.content.ContextWrapper"}, {"package_name": "java.net", "class_name": "CookieHandler", "full_name": "java.net.CookieHandler"}, {"package_name": "android.webkit", "class_name": "CookieManager", "full_name": "android.webkit.CookieManager"}, {"package_name": "java.net", "class_name": "CookieManager", "full_name": "java.net.CookieManager"}, {"package_name": "java.net", "class_name": "CookiePolicy", "full_name": "java.net.CookiePolicy"}, {"package_name": "java.net", "class_name": "CookieStore", "full_name": "java.net.CookieStore"}, {"package_name": "android.webkit", "class_name": "CookieSyncManager", "full_name": "android.webkit.CookieSyncManager"}, {"package_name": "android.icu.util", "class_name": "CopticCalendar", "full_name": "android.icu.util.CopticCalendar"}, {"package_name": "java.nio.file", "class_name": "CopyOption", "full_name": "java.nio.file.CopyOption"}, {"package_name": "org.apache.http.params", "class_name": "CoreConnectionPNames", "full_name": "org.apache.http.params.CoreConnectionPNames"}, {"package_name": "android.graphics", "class_name": "CornerPathEffect", "full_name": "android.graphics.CornerPathEffect"}, {"package_name": "android.view.inputmethod", "class_name": "CorrectionInfo", "full_name": "android.view.inputmethod.CorrectionInfo"}, {"package_name": "java.util.concurrent", "class_name": "CountDownLatch", "full_name": "java.util.concurrent.CountDownLatch"}, {"package_name": "android.os", "class_name": "CountDownTimer", "full_name": "android.os.CountDownTimer"}, {"package_name": "android.os", "class_name": "CpuUsageInfo", "full_name": "android.os.CpuUsageInfo"}, {"package_name": "android.net", "class_name": "Credentials", "full_name": "android.net.Credentials"}, {"package_name": "android.location", "class_name": "Criteria", "full_name": "android.location.Criteria"}, {"package_name": "java.security.cert", "class_name": "CRL", "full_name": "java.security.cert.CRL"}, {"package_name": "java.security.cert", "class_name": "CRLException", "full_name": "java.security.cert.CRLException"}, {"package_name": "java.security.cert", "class_name": "CRLReason", "full_name": "java.security.cert.CRLReason"}, {"package_name": "java.security.cert", "class_name": "CRLSelector", "full_name": "java.security.cert.CRLSelector"}, {"package_name": "android.database", "class_name": "CrossProcessCursor", "full_name": "android.database.CrossProcessCursor"}, {"package_name": "android.database", "class_name": "CrossProcessCursorWrapper", "full_name": "android.database.CrossProcessCursorWrapper"}, {"package_name": "android.content.pm", "class_name": "CrossProfileApps", "full_name": "android.content.pm.CrossProfileApps"}, {"package_name": "java.security", "class_name": "CryptoPrimitive", "full_name": "java.security.CryptoPrimitive"}, {"package_name": "android.icu.util", "class_name": "Currency", "full_name": "android.icu.util.Currency"}, {"package_name": "java.util", "class_name": "Currency", "full_name": "java.util.Currency"}, {"package_name": "android.icu.util", "class_name": "Currency.CurrencyUsage", "full_name": "android.icu.util.Currency.CurrencyUsage"}, {"package_name": "android.icu.util", "class_name": "CurrencyAmount", "full_name": "android.icu.util.CurrencyAmount"}, {"package_name": "android.icu.text", "class_name": "CurrencyPluralInfo", "full_name": "android.icu.text.CurrencyPluralInfo"}, {"package_name": "android.database", "class_name": "Cursor", "full_name": "android.database.Cursor"}, {"package_name": "android.widget", "class_name": "CursorAdapter", "full_name": "android.widget.CursorAdapter"}, {"package_name": "android.view.inputmethod", "class_name": "CursorAnchorInfo", "full_name": "android.view.inputmethod.CursorAnchorInfo"}, {"package_name": "android.view.inputmethod", "class_name": "CursorAnchorInfo.Builder", "full_name": "android.view.inputmethod.CursorAnchorInfo.Builder"}, {"package_name": "android.database", "class_name": "CursorIndexOutOfBoundsException", "full_name": "android.database.CursorIndexOutOfBoundsException"}, {"package_name": "android.database", "class_name": "CursorJoiner", "full_name": "android.database.CursorJoiner"}, {"package_name": "android.database", "class_name": "CursorJoiner.Result", "full_name": "android.database.CursorJoiner.Result"}, {"package_name": "android.content", "class_name": "CursorLoader", "full_name": "android.content.CursorLoader"}, {"package_name": "android.widget", "class_name": "CursorTreeAdapter", "full_name": "android.widget.CursorTreeAdapter"}, {"package_name": "android.database", "class_name": "CursorWindow", "full_name": "android.database.CursorWindow"}, {"package_name": "android.database", "class_name": "CursorWrapper", "full_name": "android.database.CursorWrapper"}, {"package_name": "android.service.autofill", "class_name": "CustomDescription", "full_name": "android.service.autofill.CustomDescription"}, {"package_name": "android.service.autofill", "class_name": "CustomDescription.Builder", "full_name": "android.service.autofill.CustomDescription.Builder"}, {"package_name": "android.printservice", "class_name": "CustomPrinterIconCallback", "full_name": "android.printservice.CustomPrinterIconCallback"}, {"package_name": "android.os.strictmode", "class_name": "CustomViolation", "full_name": "android.os.strictmode.CustomViolation"}, {"package_name": "android.view.animation", "class_name": "CycleInterpolator", "full_name": "android.view.animation.CycleInterpolator"}, {"package_name": "java.util.concurrent", "class_name": "CyclicBarrier", "full_name": "java.util.concurrent.CyclicBarrier"}, {"package_name": "android.graphics", "class_name": "DashPathEffect", "full_name": "android.graphics.DashPathEffect"}, {"package_name": "android.database", "class_name": "DatabaseErrorHandler", "full_name": "android.database.DatabaseErrorHandler"}, {"package_name": "java.sql", "class_name": "DatabaseMetaData", "full_name": "java.sql.DatabaseMetaData"}, {"package_name": "android.database", "class_name": "DatabaseUtils", "full_name": "android.database.DatabaseUtils"}, {"package_name": "android.database", "class_name": "DatabaseUtils.InsertHelper", "full_name": "android.database.DatabaseUtils.InsertHelper"}, {"package_name": "java.util.zip", "class_name": "DataFormatException", "full_name": "java.util.zip.DataFormatException"}, {"package_name": "java.nio.channels", "class_name": "DatagramChannel", "full_name": "java.nio.channels.DatagramChannel"}, {"package_name": "java.net", "class_name": "DatagramPacket", "full_name": "java.net.DatagramPacket"}, {"package_name": "java.net", "class_name": "DatagramSocket", "full_name": "java.net.DatagramSocket"}, {"package_name": "java.net", "class_name": "DatagramSocketImpl", "full_name": "java.net.DatagramSocketImpl"}, {"package_name": "java.net", "class_name": "DatagramSocketImplFactory", "full_name": "java.net.DatagramSocketImplFactory"}, {"package_name": "java.io", "class_name": "DataInput", "full_name": "java.io.DataInput"}, {"package_name": "java.io", "class_name": "DataInputStream", "full_name": "java.io.DataInputStream"}, {"package_name": "java.io", "class_name": "DataOutput", "full_name": "java.io.DataOutput"}, {"package_name": "java.io", "class_name": "DataOutputStream", "full_name": "java.io.DataOutputStream"}, {"package_name": "android.service.autofill", "class_name": "Dataset", "full_name": "android.service.autofill.Dataset"}, {"package_name": "android.service.autofill", "class_name": "Dataset.Builder", "full_name": "android.service.autofill.Dataset.Builder"}, {"package_name": "android.database", "class_name": "DataSetObservable", "full_name": "android.database.DataSetObservable"}, {"package_name": "android.database", "class_name": "DataSetObserver", "full_name": "android.database.DataSetObserver"}, {"package_name": "javax.sql", "class_name": "DataSource", "full_name": "javax.sql.DataSource"}, {"package_name": "java.sql", "class_name": "DataTruncation", "full_name": "java.sql.DataTruncation"}, {"package_name": "javax.xml.datatype", "class_name": "DatatypeConfigurationException", "full_name": "javax.xml.datatype.DatatypeConfigurationException"}, {"package_name": "javax.xml.datatype", "class_name": "DatatypeConstants", "full_name": "javax.xml.datatype.DatatypeConstants"}, {"package_name": "javax.xml.datatype", "class_name": "DatatypeConstants.Field", "full_name": "javax.xml.datatype.DatatypeConstants.Field"}, {"package_name": "javax.xml.datatype", "class_name": "DatatypeFactory", "full_name": "javax.xml.datatype.DatatypeFactory"}, {"package_name": "java.sql", "class_name": "Date", "full_name": "java.sql.Date"}, {"package_name": "java.util", "class_name": "Date", "full_name": "java.util.Date"}, {"package_name": "android.icu.text", "class_name": "DateFormat", "full_name": "android.icu.text.DateFormat"}, {"package_name": "android.text.format", "class_name": "DateFormat", "full_name": "android.text.format.DateFormat"}, {"package_name": "java.text", "class_name": "DateFormat", "full_name": "java.text.DateFormat"}, {"package_name": "android.icu.text", "class_name": "DateFormat.BooleanAttribute", "full_name": "android.icu.text.DateFormat.BooleanAttribute"}, {"package_name": "android.icu.text", "class_name": "DateFormat.Field", "full_name": "android.icu.text.DateFormat.Field"}, {"package_name": "java.text", "class_name": "DateFormat.Field", "full_name": "java.text.DateFormat.Field"}, {"package_name": "android.icu.text", "class_name": "DateFormatSymbols", "full_name": "android.icu.text.DateFormatSymbols"}, {"package_name": "java.text", "class_name": "DateFormatSymbols", "full_name": "java.text.DateFormatSymbols"}, {"package_name": "android.icu.util", "class_name": "DateInterval", "full_name": "android.icu.util.DateInterval"}, {"package_name": "android.icu.text", "class_name": "DateIntervalFormat", "full_name": "android.icu.text.DateIntervalFormat"}, {"package_name": "android.icu.text", "class_name": "DateIntervalInfo", "full_name": "android.icu.text.DateIntervalInfo"}, {"package_name": "android.icu.text", "class_name": "DateIntervalInfo.PatternInfo", "full_name": "android.icu.text.DateIntervalInfo.PatternInfo"}, {"package_name": "android.text.method", "class_name": "DateKeyListener", "full_name": "android.text.method.DateKeyListener"}, {"package_name": "android.widget", "class_name": "DatePicker", "full_name": "android.widget.DatePicker"}, {"package_name": "android.widget", "class_name": "DatePicker.OnDateChangedListener", "full_name": "android.widget.DatePicker.OnDateChangedListener"}, {"package_name": "android.app", "class_name": "DatePickerDialog", "full_name": "android.app.DatePickerDialog"}, {"package_name": "android.app", "class_name": "DatePickerDialog.OnDateSetListener", "full_name": "android.app.DatePickerDialog.OnDateSetListener"}, {"package_name": "android.webkit", "class_name": "DateSorter", "full_name": "android.webkit.DateSorter"}, {"package_name": "java.time", "class_name": "DateTimeException", "full_name": "java.time.DateTimeException"}, {"package_name": "java.time.format", "class_name": "DateTimeFormatter", "full_name": "java.time.format.DateTimeFormatter"}, {"package_name": "java.time.format", "class_name": "DateTimeFormatterBuilder", "full_name": "java.time.format.DateTimeFormatterBuilder"}, {"package_name": "android.text.method", "class_name": "DateTimeKeyListener", "full_name": "android.text.method.DateTimeKeyListener"}, {"package_name": "java.time.format", "class_name": "DateTimeParseException", "full_name": "java.time.format.DateTimeParseException"}, {"package_name": "android.icu.text", "class_name": "DateTimePatternGenerator", "full_name": "android.icu.text.DateTimePatternGenerator"}, {"package_name": "android.icu.text", "class_name": "DateTimePatternGenerator.PatternInfo", "full_name": "android.icu.text.DateTimePatternGenerator.PatternInfo"}, {"package_name": "android.service.autofill", "class_name": "DateTransformation", "full_name": "android.service.autofill.DateTransformation"}, {"package_name": "android.text.format", "class_name": "DateUtils", "full_name": "android.text.format.DateUtils"}, {"package_name": "android.service.autofill", "class_name": "DateValueSanitizer", "full_name": "android.service.autofill.DateValueSanitizer"}, {"package_name": "java.time", "class_name": "DayOfWeek", "full_name": "java.time.DayOfWeek"}, {"package_name": "android.os", "class_name": "DeadObjectException", "full_name": "android.os.DeadObjectException"}, {"package_name": "android.os", "class_name": "DeadSystemException", "full_name": "android.os.DeadSystemException"}, {"package_name": "android.os", "class_name": "Debug", "full_name": "android.os.Debug"}, {"package_name": "android.os", "class_name": "Debug.InstructionCount", "full_name": "android.os.Debug.InstructionCount"}, {"package_name": "android.os", "class_name": "Debug.MemoryInfo", "full_name": "android.os.Debug.MemoryInfo"}, {"package_name": "android.util", "class_name": "DebugUtils", "full_name": "android.util.DebugUtils"}, {"package_name": "android.view.animation", "class_name": "DecelerateInterpolator", "full_name": "android.view.animation.DecelerateInterpolator"}, {"package_name": "android.icu.text", "class_name": "DecimalFormat", "full_name": "android.icu.text.DecimalFormat"}, {"package_name": "java.text", "class_name": "DecimalFormat", "full_name": "java.text.DecimalFormat"}, {"package_name": "android.icu.text", "class_name": "DecimalFormatSymbols", "full_name": "android.icu.text.DecimalFormatSymbols"}, {"package_name": "java.text", "class_name": "DecimalFormatSymbols", "full_name": "java.text.DecimalFormatSymbols"}, {"package_name": "java.time.format", "class_name": "DecimalStyle", "full_name": "java.time.format.DecimalStyle"}, {"package_name": "org.xml.sax.ext", "class_name": "DeclHandler", "full_name": "org.xml.sax.ext.DeclHandler"}, {"package_name": "android.database", "class_name": "DefaultDatabaseErrorHandler", "full_name": "android.database.DefaultDatabaseErrorHandler"}, {"package_name": "org.xml.sax.helpers", "class_name": "DefaultHandler", "full_name": "org.xml.sax.helpers.DefaultHandler"}, {"package_name": "java.util.zip", "class_name": "Deflater", "full_name": "java.util.zip.Deflater"}, {"package_name": "java.util.zip", "class_name": "DeflaterInputStream", "full_name": "java.util.zip.DeflaterInputStream"}, {"package_name": "java.util.zip", "class_name": "DeflaterOutputStream", "full_name": "java.util.zip.DeflaterOutputStream"}, {"package_name": "java.util.concurrent", "class_name": "Delayed", "full_name": "java.util.concurrent.Delayed"}, {"package_name": "dalvik.system", "class_name": "DelegateLastClassLoader", "full_name": "dalvik.system.DelegateLastClassLoader"}, {"package_name": "android.media", "class_name": "DeniedByServerException", "full_name": "android.media.DeniedByServerException"}, {"package_name": "java.lang", "class_name": "Deprecated", "full_name": "java.lang.Deprecated"}, {"package_name": "javax.crypto.spec", "class_name": "DESedeKeySpec", "full_name": "javax.crypto.spec.DESedeKeySpec"}, {"package_name": "javax.crypto.spec", "class_name": "DESKeySpec", "full_name": "javax.crypto.spec.DESKeySpec"}, {"package_name": "javax.security.auth", "class_name": "Destroyable", "full_name": "javax.security.auth.Destroyable"}, {"package_name": "javax.security.auth", "class_name": "DestroyFailedException", "full_name": "javax.security.auth.DestroyFailedException"}, {"package_name": "android.app.admin", "class_name": "DeviceAdminInfo", "full_name": "android.app.admin.DeviceAdminInfo"}, {"package_name": "android.app.admin", "class_name": "DeviceAdminReceiver", "full_name": "android.app.admin.DeviceAdminReceiver"}, {"package_name": "android.app.admin", "class_name": "DeviceAdminService", "full_name": "android.app.admin.DeviceAdminService"}, {"package_name": "android.app.admin", "class_name": "DevicePolicyManager", "full_name": "android.app.admin.DevicePolicyManager"}, {"package_name": "android.app.admin", "class_name": "DevicePolicyManager.OnClearApplicationUserDataListener", "full_name": "android.app.admin.DevicePolicyManager.OnClearApplicationUserDataListener"}, {"package_name": "dalvik.system", "class_name": "DexClassLoader", "full_name": "dalvik.system.DexClassLoader"}, {"package_name": "dalvik.system", "class_name": "DexFile", "full_name": "dalvik.system.DexFile"}, {"package_name": "android.net", "class_name": "DhcpInfo", "full_name": "android.net.DhcpInfo"}, {"package_name": "javax.crypto.spec", "class_name": "DHGenParameterSpec", "full_name": "javax.crypto.spec.DHGenParameterSpec"}, {"package_name": "javax.crypto.interfaces", "class_name": "DHKey", "full_name": "javax.crypto.interfaces.DHKey"}, {"package_name": "javax.crypto.spec", "class_name": "DHParameterSpec", "full_name": "javax.crypto.spec.DHParameterSpec"}, {"package_name": "javax.crypto.interfaces", "class_name": "DHPrivateKey", "full_name": "javax.crypto.interfaces.DHPrivateKey"}, {"package_name": "javax.crypto.spec", "class_name": "DHPrivateKeySpec", "full_name": "javax.crypto.spec.DHPrivateKeySpec"}, {"package_name": "javax.crypto.interfaces", "class_name": "DHPublicKey", "full_name": "javax.crypto.interfaces.DHPublicKey"}, {"package_name": "javax.crypto.spec", "class_name": "DHPublicKeySpec", "full_name": "javax.crypto.spec.DHPublicKeySpec"}, {"package_name": "android.widget", "class_name": "DialerFilter", "full_name": "android.widget.DialerFilter"}, {"package_name": "android.text.method", "class_name": "DialerKeyListener", "full_name": "android.text.method.DialerKeyListener"}, {"package_name": "android.app", "class_name": "Dialog", "full_name": "android.app.Dialog"}, {"package_name": "android.app", "class_name": "DialogFragment", "full_name": "android.app.DialogFragment"}, {"package_name": "android.content", "class_name": "DialogInterface", "full_name": "android.content.DialogInterface"}, {"package_name": "android.content", "class_name": "DialogInterface.OnCancelListener", "full_name": "android.content.DialogInterface.OnCancelListener"}, {"package_name": "android.content", "class_name": "DialogInterface.OnClickListener", "full_name": "android.content.DialogInterface.OnClickListener"}, {"package_name": "android.content", "class_name": "DialogInterface.OnDismissListener", "full_name": "android.content.DialogInterface.OnDismissListener"}, {"package_name": "android.content", "class_name": "DialogInterface.OnKeyListener", "full_name": "android.content.DialogInterface.OnKeyListener"}, {"package_name": "android.content", "class_name": "DialogInterface.OnMultiChoiceClickListener", "full_name": "android.content.DialogInterface.OnMultiChoiceClickListener"}, {"package_name": "android.content", "class_name": "DialogInterface.OnShowListener", "full_name": "android.content.DialogInterface.OnShowListener"}, {"package_name": "android.preference", "class_name": "DialogPreference", "full_name": "android.preference.DialogPreference"}, {"package_name": "java.security", "class_name": "DigestException", "full_name": "java.security.DigestException"}, {"package_name": "java.security", "class_name": "DigestInputStream", "full_name": "java.security.DigestInputStream"}, {"package_name": "java.security", "class_name": "DigestOutputStream", "full_name": "java.security.DigestOutputStream"}, {"package_name": "android.widget", "class_name": "DigitalClock", "full_name": "android.widget.DigitalClock"}, {"package_name": "android.text.method", "class_name": "DigitsKeyListener", "full_name": "android.text.method.DigitsKeyListener"}, {"package_name": "java.nio.file", "class_name": "DirectoryIteratorException", "full_name": "java.nio.file.DirectoryIteratorException"}, {"package_name": "java.nio.file", "class_name": "DirectoryNotEmptyException", "full_name": "java.nio.file.DirectoryNotEmptyException"}, {"package_name": "android.telecom", "class_name": "DisconnectCause", "full_name": "android.telecom.DisconnectCause"}, {"package_name": "android.net.wifi.aware", "class_name": "DiscoverySession", "full_name": "android.net.wifi.aware.DiscoverySession"}, {"package_name": "android.net.wifi.aware", "class_name": "DiscoverySessionCallback", "full_name": "android.net.wifi.aware.DiscoverySessionCallback"}, {"package_name": "android.graphics", "class_name": "DiscretePathEffect", "full_name": "android.graphics.DiscretePathEffect"}, {"package_name": "android.os.strictmode", "class_name": "DiskReadViolation", "full_name": "android.os.strictmode.DiskReadViolation"}, {"package_name": "android.os.strictmode", "class_name": "DiskWriteViolation", "full_name": "android.os.strictmode.DiskWriteViolation"}, {"package_name": "android.view", "class_name": "Display", "full_name": "android.view.Display"}, {"package_name": "android.view", "class_name": "Display.HdrCapabilities", "full_name": "android.view.Display.HdrCapabilities"}, {"package_name": "android.view", "class_name": "Display.Mode", "full_name": "android.view.Display.Mode"}, {"package_name": "android.icu.text", "class_name": "DisplayContext", "full_name": "android.icu.text.DisplayContext"}, {"package_name": "android.icu.text", "class_name": "DisplayContext.Type", "full_name": "android.icu.text.DisplayContext.Type"}, {"package_name": "android.view", "class_name": "DisplayCutout", "full_name": "android.view.DisplayCutout"}, {"package_name": "android.hardware.display", "class_name": "DisplayManager", "full_name": "android.hardware.display.DisplayManager"}, {"package_name": "android.hardware.display", "class_name": "DisplayManager.DisplayListener", "full_name": "android.hardware.display.DisplayManager.DisplayListener"}, {"package_name": "android.util", "class_name": "DisplayMetrics", "full_name": "android.util.DisplayMetrics"}, {"package_name": "android.app.admin", "class_name": "DnsEvent", "full_name": "android.app.admin.DnsEvent"}, {"package_name": "javax.xml.parsers", "class_name": "DocumentBuilder", "full_name": "javax.xml.parsers.DocumentBuilder"}, {"package_name": "javax.xml.parsers", "class_name": "DocumentBuilderFactory", "full_name": "javax.xml.parsers.DocumentBuilderFactory"}, {"package_name": "java.lang.annotation", "class_name": "Documented", "full_name": "java.lang.annotation.Documented"}, {"package_name": "org.xml.sax", "class_name": "DocumentHandler", "full_name": "org.xml.sax.DocumentHandler"}, {"package_name": "android.provider", "class_name": "DocumentsContract", "full_name": "android.provider.DocumentsContract"}, {"package_name": "android.provider", "class_name": "DocumentsContract.Document", "full_name": "android.provider.DocumentsContract.Document"}, {"package_name": "android.provider", "class_name": "DocumentsContract.Path", "full_name": "android.provider.DocumentsContract.Path"}, {"package_name": "android.provider", "class_name": "DocumentsContract.Root", "full_name": "android.provider.DocumentsContract.Root"}, {"package_name": "android.provider", "class_name": "DocumentsProvider", "full_name": "android.provider.DocumentsProvider"}, {"package_name": "java.security", "class_name": "DomainCombiner", "full_name": "java.security.DomainCombiner"}, {"package_name": "java.security", "class_name": "DomainLoadStoreParameter", "full_name": "java.security.DomainLoadStoreParameter"}, {"package_name": "javax.xml.transform.dom", "class_name": "DOMLocator", "full_name": "javax.xml.transform.dom.DOMLocator"}, {"package_name": "javax.xml.transform.dom", "class_name": "DOMResult", "full_name": "javax.xml.transform.dom.DOMResult"}, {"package_name": "javax.xml.transform.dom", "class_name": "DOMSource", "full_name": "javax.xml.transform.dom.DOMSource"}, {"package_name": "java.nio.file.attribute", "class_name": "DosFileAttributes", "full_name": "java.nio.file.attribute.DosFileAttributes"}, {"package_name": "java.nio.file.attribute", "class_name": "DosFileAttributeView", "full_name": "java.nio.file.attribute.DosFileAttributeView"}, {"package_name": "java.lang", "class_name": "Double", "full_name": "java.lang.Double"}, {"package_name": "java.util.concurrent.atomic", "class_name": "DoubleAccumulator", "full_name": "java.util.concurrent.atomic.DoubleAccumulator"}, {"package_name": "java.util.concurrent.atomic", "class_name": "DoubleAdder", "full_name": "java.util.concurrent.atomic.DoubleAdder"}, {"package_name": "java.util.function", "class_name": "DoubleBinaryOperator", "full_name": "java.util.function.DoubleBinaryOperator"}, {"package_name": "java.nio", "class_name": "DoubleBuffer", "full_name": "java.nio.DoubleBuffer"}, {"package_name": "java.util.function", "class_name": "DoubleConsumer", "full_name": "java.util.function.DoubleConsumer"}, {"package_name": "java.util.function", "class_name": "DoublePredicate", "full_name": "java.util.function.DoublePredicate"}, {"package_name": "java.util.stream", "class_name": "DoubleStream", "full_name": "java.util.stream.DoubleStream"}, {"package_name": "java.util.stream", "class_name": "DoubleStream.Builder", "full_name": "java.util.stream.DoubleStream.Builder"}, {"package_name": "java.util", "class_name": "DoubleSummaryStatistics", "full_name": "java.util.DoubleSummaryStatistics"}, {"package_name": "java.util.function", "class_name": "DoubleSupplier", "full_name": "java.util.function.DoubleSupplier"}, {"package_name": "java.util.function", "class_name": "DoubleToIntFunction", "full_name": "java.util.function.DoubleToIntFunction"}, {"package_name": "java.util.function", "class_name": "DoubleToLongFunction", "full_name": "java.util.function.DoubleToLongFunction"}, {"package_name": "java.util.function", "class_name": "DoubleUnaryOperator", "full_name": "java.util.function.DoubleUnaryOperator"}, {"package_name": "android.telephony.euicc", "class_name": "DownloadableSubscription", "full_name": "android.telephony.euicc.DownloadableSubscription"}, {"package_name": "android.webkit", "class_name": "DownloadListener", "full_name": "android.webkit.DownloadListener"}, {"package_name": "android.app", "class_name": "DownloadManager", "full_name": "android.app.DownloadManager"}, {"package_name": "android.app", "class_name": "DownloadManager.Query", "full_name": "android.app.DownloadManager.Query"}, {"package_name": "android.app", "class_name": "DownloadManager.Request", "full_name": "android.app.DownloadManager.Request"}, {"package_name": "android.telephony.mbms", "class_name": "DownloadProgressListener", "full_name": "android.telephony.mbms.DownloadProgressListener"}, {"package_name": "android.telephony.mbms", "class_name": "DownloadRequest", "full_name": "android.telephony.mbms.DownloadRequest"}, {"package_name": "android.telephony.mbms", "class_name": "DownloadRequest.Builder", "full_name": "android.telephony.mbms.DownloadRequest.Builder"}, {"package_name": "android.telephony.mbms", "class_name": "DownloadStatusListener", "full_name": "android.telephony.mbms.DownloadStatusListener"}, {"package_name": "android.view", "class_name": "DragAndDropPermissions", "full_name": "android.view.DragAndDropPermissions"}, {"package_name": "android.view", "class_name": "DragEvent", "full_name": "android.view.DragEvent"}, {"package_name": "android.graphics.drawable", "class_name": "Drawable", "full_name": "android.graphics.drawable.Drawable"}, {"package_name": "android.graphics.drawable", "class_name": "Drawable.Callback", "full_name": "android.graphics.drawable.Drawable.Callback"}, {"package_name": "android.graphics.drawable", "class_name": "Drawable.ConstantState", "full_name": "android.graphics.drawable.Drawable.ConstantState"}, {"package_name": "android.graphics.drawable", "class_name": "DrawableContainer", "full_name": "android.graphics.drawable.DrawableContainer"}, {"package_name": "android.graphics.drawable", "class_name": "DrawableContainer.DrawableContainerState", "full_name": "android.graphics.drawable.DrawableContainer.DrawableContainerState"}, {"package_name": "android.text.style", "class_name": "DrawableMarginSpan", "full_name": "android.text.style.DrawableMarginSpan"}, {"package_name": "android.graphics.drawable", "class_name": "DrawableWrapper", "full_name": "android.graphics.drawable.DrawableWrapper"}, {"package_name": "android.graphics", "class_name": "DrawFilter", "full_name": "android.graphics.DrawFilter"}, {"package_name": "android.service.dreams", "class_name": "DreamService", "full_name": "android.service.dreams.DreamService"}, {"package_name": "java.sql", "class_name": "Driver", "full_name": "java.sql.Driver"}, {"package_name": "java.sql", "class_name": "DriverManager", "full_name": "java.sql.DriverManager"}, {"package_name": "java.sql", "class_name": "DriverPropertyInfo", "full_name": "java.sql.DriverPropertyInfo"}, {"package_name": "android.drm", "class_name": "DrmConvertedStatus", "full_name": "android.drm.DrmConvertedStatus"}, {"package_name": "android.drm", "class_name": "DrmErrorEvent", "full_name": "android.drm.DrmErrorEvent"}, {"package_name": "android.drm", "class_name": "DrmEvent", "full_name": "android.drm.DrmEvent"}, {"package_name": "android.drm", "class_name": "DrmInfo", "full_name": "android.drm.DrmInfo"}, {"package_name": "android.drm", "class_name": "DrmInfoEvent", "full_name": "android.drm.DrmInfoEvent"}, {"package_name": "android.drm", "class_name": "DrmInfoRequest", "full_name": "android.drm.DrmInfoRequest"}, {"package_name": "android.drm", "class_name": "DrmInfoStatus", "full_name": "android.drm.DrmInfoStatus"}, {"package_name": "android.media", "class_name": "DrmInitData", "full_name": "android.media.DrmInitData"}, {"package_name": "android.media", "class_name": "DrmInitData.SchemeInitData", "full_name": "android.media.DrmInitData.SchemeInitData"}, {"package_name": "android.drm", "class_name": "DrmManagerClient", "full_name": "android.drm.DrmManagerClient"}, {"package_name": "android.drm", "class_name": "DrmManagerClient.OnErrorListener", "full_name": "android.drm.DrmManagerClient.OnErrorListener"}, {"package_name": "android.drm", "class_name": "DrmManagerClient.OnEventListener", "full_name": "android.drm.DrmManagerClient.OnEventListener"}, {"package_name": "android.drm", "class_name": "DrmManagerClient.OnInfoListener", "full_name": "android.drm.DrmManagerClient.OnInfoListener"}, {"package_name": "android.drm", "class_name": "DrmRights", "full_name": "android.drm.DrmRights"}, {"package_name": "android.drm", "class_name": "DrmStore", "full_name": "android.drm.DrmStore"}, {"package_name": "android.drm", "class_name": "DrmStore.Action", "full_name": "android.drm.DrmStore.Action"}, {"package_name": "android.drm", "class_name": "DrmStore.ConstraintsColumns", "full_name": "android.drm.DrmStore.ConstraintsColumns"}, {"package_name": "android.drm", "class_name": "DrmStore.DrmObjectType", "full_name": "android.drm.DrmStore.DrmObjectType"}, {"package_name": "android.drm", "class_name": "DrmStore.Playback", "full_name": "android.drm.DrmStore.Playback"}, {"package_name": "android.drm", "class_name": "DrmStore.RightsStatus", "full_name": "android.drm.DrmStore.RightsStatus"}, {"package_name": "android.drm", "class_name": "DrmSupportInfo", "full_name": "android.drm.DrmSupportInfo"}, {"package_name": "android.drm", "class_name": "DrmUtils", "full_name": "android.drm.DrmUtils"}, {"package_name": "android.drm", "class_name": "DrmUtils.ExtendedMetadataParser", "full_name": "android.drm.DrmUtils.ExtendedMetadataParser"}, {"package_name": "android.os", "class_name": "DropBoxManager", "full_name": "android.os.DropBoxManager"}, {"package_name": "android.os", "class_name": "DropBoxManager.Entry", "full_name": "android.os.DropBoxManager.Entry"}, {"package_name": "java.security.interfaces", "class_name": "DSAKey", "full_name": "java.security.interfaces.DSAKey"}, {"package_name": "java.security.interfaces", "class_name": "DSAKeyPairGenerator", "full_name": "java.security.interfaces.DSAKeyPairGenerator"}, {"package_name": "java.security.spec", "class_name": "DSAParameterSpec", "full_name": "java.security.spec.DSAParameterSpec"}, {"package_name": "java.security.interfaces", "class_name": "DSAParams", "full_name": "java.security.interfaces.DSAParams"}, {"package_name": "java.security.interfaces", "class_name": "DSAPrivateKey", "full_name": "java.security.interfaces.DSAPrivateKey"}, {"package_name": "java.security.spec", "class_name": "DSAPrivateKeySpec", "full_name": "java.security.spec.DSAPrivateKeySpec"}, {"package_name": "java.security.interfaces", "class_name": "DSAPublicKey", "full_name": "java.security.interfaces.DSAPublicKey"}, {"package_name": "java.security.spec", "class_name": "DSAPublicKeySpec", "full_name": "java.security.spec.DSAPublicKeySpec"}, {"package_name": "org.xml.sax", "class_name": "DTDHandler", "full_name": "org.xml.sax.DTDHandler"}, {"package_name": "java.util", "class_name": "DuplicateFormatFlagsException", "full_name": "java.util.DuplicateFormatFlagsException"}, {"package_name": "java.time", "class_name": "Duration", "full_name": "java.time.Duration"}, {"package_name": "javax.xml.datatype", "class_name": "Duration", "full_name": "javax.xml.datatype.Duration"}, {"package_name": "android.text.style", "class_name": "DynamicDrawableSpan", "full_name": "android.text.style.DynamicDrawableSpan"}, {"package_name": "android.text", "class_name": "DynamicLayout", "full_name": "android.text.DynamicLayout"}, {"package_name": "android.text", "class_name": "DynamicLayout.Builder", "full_name": "android.text.DynamicLayout.Builder"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing", "full_name": "android.media.audiofx.DynamicsProcessing"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.BandBase", "full_name": "android.media.audiofx.DynamicsProcessing.BandBase"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.BandStage", "full_name": "android.media.audiofx.DynamicsProcessing.BandStage"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.Channel", "full_name": "android.media.audiofx.DynamicsProcessing.Channel"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.Config", "full_name": "android.media.audiofx.DynamicsProcessing.Config"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.Config.Builder", "full_name": "android.media.audiofx.DynamicsProcessing.Config.Builder"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.Eq", "full_name": "android.media.audiofx.DynamicsProcessing.Eq"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.EqBand", "full_name": "android.media.audiofx.DynamicsProcessing.EqBand"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.Limiter", "full_name": "android.media.audiofx.DynamicsProcessing.Limiter"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.Mbc", "full_name": "android.media.audiofx.DynamicsProcessing.Mbc"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.MbcBand", "full_name": "android.media.audiofx.DynamicsProcessing.MbcBand"}, {"package_name": "android.media.audiofx", "class_name": "DynamicsProcessing.Stage", "full_name": "android.media.audiofx.DynamicsProcessing.Stage"}, {"package_name": "android.text.style", "class_name": "EasyEditSpan", "full_name": "android.text.style.EasyEditSpan"}, {"package_name": "java.security.spec", "class_name": "ECField", "full_name": "java.security.spec.ECField"}, {"package_name": "java.security.spec", "class_name": "ECFieldFp", "full_name": "java.security.spec.ECFieldFp"}, {"package_name": "java.security.spec", "class_name": "ECGenParameterSpec", "full_name": "java.security.spec.ECGenParameterSpec"}, {"package_name": "java.security.interfaces", "class_name": "ECKey", "full_name": "java.security.interfaces.ECKey"}, {"package_name": "java.security.spec", "class_name": "ECParameterSpec", "full_name": "java.security.spec.ECParameterSpec"}, {"package_name": "java.security.spec", "class_name": "ECPoint", "full_name": "java.security.spec.ECPoint"}, {"package_name": "java.security.interfaces", "class_name": "ECPrivateKey", "full_name": "java.security.interfaces.ECPrivateKey"}, {"package_name": "java.security.spec", "class_name": "ECPrivateKeySpec", "full_name": "java.security.spec.ECPrivateKeySpec"}, {"package_name": "java.security.interfaces", "class_name": "ECPublicKey", "full_name": "java.security.interfaces.ECPublicKey"}, {"package_name": "java.security.spec", "class_name": "ECPublicKeySpec", "full_name": "java.security.spec.ECPublicKeySpec"}, {"package_name": "android.widget", "class_name": "EdgeEffect", "full_name": "android.widget.EdgeEffect"}, {"package_name": "android.text", "class_name": "Editable", "full_name": "android.text.Editable"}, {"package_name": "android.text", "class_name": "Editable.Factory", "full_name": "android.text.Editable.Factory"}, {"package_name": "android.view.inputmethod", "class_name": "EditorInfo", "full_name": "android.view.inputmethod.EditorInfo"}, {"package_name": "android.widget", "class_name": "EditText", "full_name": "android.widget.EditText"}, {"package_name": "android.preference", "class_name": "EditTextPreference", "full_name": "android.preference.EditTextPreference"}, {"package_name": "android.media.effect", "class_name": "Effect", "full_name": "android.media.effect.Effect"}, {"package_name": "android.media.effect", "class_name": "EffectContext", "full_name": "android.media.effect.EffectContext"}, {"package_name": "android.media.effect", "class_name": "EffectFactory", "full_name": "android.media.effect.EffectFactory"}, {"package_name": "android.media.effect", "class_name": "EffectUpdateListener", "full_name": "android.media.effect.EffectUpdateListener"}, {"package_name": "javax.microedition.khronos.egl", "class_name": "EGL", "full_name": "javax.microedition.khronos.egl.EGL"}, {"package_name": "android.opengl", "class_name": "EGLConfig", "full_name": "android.opengl.EGLConfig"}, {"package_name": "javax.microedition.khronos.egl", "class_name": "EGLConfig", "full_name": "javax.microedition.khronos.egl.EGLConfig"}, {"package_name": "android.opengl", "class_name": "EGLContext", "full_name": "android.opengl.EGLContext"}, {"package_name": "javax.microedition.khronos.egl", "class_name": "EGLContext", "full_name": "javax.microedition.khronos.egl.EGLContext"}, {"package_name": "android.opengl", "class_name": "EGLDisplay", "full_name": "android.opengl.EGLDisplay"}, {"package_name": "javax.microedition.khronos.egl", "class_name": "EGLDisplay", "full_name": "javax.microedition.khronos.egl.EGLDisplay"}, {"package_name": "android.opengl", "class_name": "EGLExt", "full_name": "android.opengl.EGLExt"}, {"package_name": "android.opengl", "class_name": "EGLObjectHandle", "full_name": "android.opengl.EGLObjectHandle"}, {"package_name": "android.opengl", "class_name": "EGLSurface", "full_name": "android.opengl.EGLSurface"}, {"package_name": "javax.microedition.khronos.egl", "class_name": "EGLSurface", "full_name": "javax.microedition.khronos.egl.EGLSurface"}, {"package_name": "android.renderscript", "class_name": "Element", "full_name": "android.renderscript.Element"}, {"package_name": "android.sax", "class_name": "Element", "full_name": "android.sax.Element"}, {"package_name": "android.renderscript", "class_name": "Element.Builder", "full_name": "android.renderscript.Element.Builder"}, {"package_name": "android.renderscript", "class_name": "Element.DataKind", "full_name": "android.renderscript.Element.DataKind"}, {"package_name": "android.renderscript", "class_name": "Element.DataType", "full_name": "android.renderscript.Element.DataType"}, {"package_name": "android.sax", "class_name": "ElementListener", "full_name": "android.sax.ElementListener"}, {"package_name": "java.lang.annotation", "class_name": "ElementType", "full_name": "java.lang.annotation.ElementType"}, {"package_name": "java.security.spec", "class_name": "EllipticCurve", "full_name": "java.security.spec.EllipticCurve"}, {"package_name": "android.graphics", "class_name": "EmbossMaskFilter", "full_name": "android.graphics.EmbossMaskFilter"}, {"package_name": "java.util", "class_name": "EmptyStackException", "full_name": "java.util.EmptyStackException"}, {"package_name": "java.security.spec", "class_name": "EncodedKeySpec", "full_name": "java.security.spec.EncodedKeySpec"}, {"package_name": "javax.crypto", "class_name": "EncryptedPrivateKeyInfo", "full_name": "javax.crypto.EncryptedPrivateKeyInfo"}, {"package_name": "android.sax", "class_name": "EndElementListener", "full_name": "android.sax.EndElementListener"}, {"package_name": "android.sax", "class_name": "EndTextElementListener", "full_name": "android.sax.EndTextElementListener"}, {"package_name": "android.content", "class_name": "Entity", "full_name": "android.content.Entity"}, {"package_name": "android.content", "class_name": "Entity.NamedContentValues", "full_name": "android.content.Entity.NamedContentValues"}, {"package_name": "android.content", "class_name": "EntityIterator", "full_name": "android.content.EntityIterator"}, {"package_name": "org.xml.sax", "class_name": "EntityResolver", "full_name": "org.xml.sax.EntityResolver"}, {"package_name": "java.lang", "class_name": "EnumConstantNotPresentException", "full_name": "java.lang.EnumConstantNotPresentException"}, {"package_name": "android.os", "class_name": "Environment", "full_name": "android.os.Environment"}, {"package_name": "android.media.audiofx", "class_name": "EnvironmentalReverb", "full_name": "android.media.audiofx.EnvironmentalReverb"}, {"package_name": "android.media.audiofx", "class_name": "EnvironmentalReverb.OnParameterChangeListener", "full_name": "android.media.audiofx.EnvironmentalReverb.OnParameterChangeListener"}, {"package_name": "android.media.audiofx", "class_name": "EnvironmentalReverb.Settings", "full_name": "android.media.audiofx.EnvironmentalReverb.Settings"}, {"package_name": "java.io", "class_name": "EOFException", "full_name": "java.io.EOFException"}, {"package_name": "android.media.audiofx", "class_name": "Equalizer", "full_name": "android.media.audiofx.Equalizer"}, {"package_name": "android.media.audiofx", "class_name": "Equalizer.OnParameterChangeListener", "full_name": "android.media.audiofx.Equalizer.OnParameterChangeListener"}, {"package_name": "android.media.audiofx", "class_name": "Equalizer.Settings", "full_name": "android.media.audiofx.Equalizer.Settings"}, {"package_name": "java.time.chrono", "class_name": "Era", "full_name": "java.time.chrono.Era"}, {"package_name": "android.system", "class_name": "ErrnoException", "full_name": "android.system.ErrnoException"}, {"package_name": "java.lang", "class_name": "Error", "full_name": "java.lang.Error"}, {"package_name": "org.xml.sax", "class_name": "ErrorHandler", "full_name": "org.xml.sax.ErrorHandler"}, {"package_name": "javax.xml.transform", "class_name": "ErrorListener", "full_name": "javax.xml.transform.ErrorListener"}, {"package_name": "java.util.logging", "class_name": "ErrorManager", "full_name": "java.util.logging.ErrorManager"}, {"package_name": "android.icu.util", "class_name": "EthiopicCalendar", "full_name": "android.icu.util.EthiopicCalendar"}, {"package_name": "android.telephony.euicc", "class_name": "EuiccInfo", "full_name": "android.telephony.euicc.EuiccInfo"}, {"package_name": "android.telephony.euicc", "class_name": "EuiccManager", "full_name": "android.telephony.euicc.EuiccManager"}, {"package_name": "java.util", "class_name": "EventListener", "full_name": "java.util.EventListener"}, {"package_name": "android.util", "class_name": "EventLog", "full_name": "android.util.EventLog"}, {"package_name": "android.util", "class_name": "EventLog.Event", "full_name": "android.util.EventLog.Event"}, {"package_name": "android.util", "class_name": "EventLogTags", "full_name": "android.util.EventLogTags"}, {"package_name": "android.util", "class_name": "EventLogTags.Description", "full_name": "android.util.EventLogTags.Description"}, {"package_name": "java.util", "class_name": "EventObject", "full_name": "java.util.EventObject"}, {"package_name": "android.app.usage", "class_name": "EventStats", "full_name": "android.app.usage.EventStats"}, {"package_name": "java.lang", "class_name": "Exception", "full_name": "java.lang.Exception"}, {"package_name": "java.lang", "class_name": "ExceptionInInitializerError", "full_name": "java.lang.ExceptionInInitializerError"}, {"package_name": "java.lang.reflect", "class_name": "Executable", "full_name": "java.lang.reflect.Executable"}, {"package_name": "java.util.concurrent", "class_name": "ExecutionException", "full_name": "java.util.concurrent.ExecutionException"}, {"package_name": "java.util.concurrent", "class_name": "Executor", "full_name": "java.util.concurrent.Executor"}, {"package_name": "java.util.concurrent", "class_name": "Executors", "full_name": "java.util.concurrent.Executors"}, {"package_name": "java.util.concurrent", "class_name": "ExecutorService", "full_name": "java.util.concurrent.ExecutorService"}, {"package_name": "javax.crypto", "class_name": "ExemptionMechanism", "full_name": "javax.crypto.ExemptionMechanism"}, {"package_name": "javax.crypto", "class_name": "ExemptionMechanismException", "full_name": "javax.crypto.ExemptionMechanismException"}, {"package_name": "javax.crypto", "class_name": "ExemptionMechanismSpi", "full_name": "javax.crypto.ExemptionMechanismSpi"}, {"package_name": "android.media", "class_name": "ExifInterface", "full_name": "android.media.ExifInterface"}, {"package_name": "android.app", "class_name": "ExpandableListActivity", "full_name": "android.app.ExpandableListActivity"}, {"package_name": "android.widget", "class_name": "ExpandableListAdapter", "full_name": "android.widget.ExpandableListAdapter"}, {"package_name": "android.widget", "class_name": "ExpandableListView", "full_name": "android.widget.ExpandableListView"}, {"package_name": "android.widget", "class_name": "ExpandableListView.ExpandableListContextMenuInfo", "full_name": "android.widget.ExpandableListView.ExpandableListContextMenuInfo"}, {"package_name": "android.widget", "class_name": "ExpandableListView.OnChildClickListener", "full_name": "android.widget.ExpandableListView.OnChildClickListener"}, {"package_name": "android.widget", "class_name": "ExpandableListView.OnGroupClickListener", "full_name": "android.widget.ExpandableListView.OnGroupClickListener"}, {"package_name": "android.widget", "class_name": "ExpandableListView.OnGroupCollapseListener", "full_name": "android.widget.ExpandableListView.OnGroupCollapseListener"}, {"package_name": "android.widget", "class_name": "ExpandableListView.OnGroupExpandListener", "full_name": "android.widget.ExpandableListView.OnGroupExpandListener"}, {"package_name": "android.transition", "class_name": "Explode", "full_name": "android.transition.Explode"}, {"package_name": "javax.net.ssl", "class_name": "ExtendedSSLSession", "full_name": "javax.net.ssl.ExtendedSSLSession"}, {"package_name": "java.security.cert", "class_name": "Extension", "full_name": "java.security.cert.Extension"}, {"package_name": "java.io", "class_name": "Externalizable", "full_name": "java.io.Externalizable"}, {"package_name": "android.app.usage", "class_name": "ExternalStorageStats", "full_name": "android.app.usage.ExternalStorageStats"}, {"package_name": "android.inputmethodservice", "class_name": "ExtractEditText", "full_name": "android.inputmethodservice.ExtractEditText"}, {"package_name": "android.view.inputmethod", "class_name": "ExtractedText", "full_name": "android.view.inputmethod.ExtractedText"}, {"package_name": "android.view.inputmethod", "class_name": "ExtractedTextRequest", "full_name": "android.view.inputmethod.ExtractedTextRequest"}, {"package_name": "android.media", "class_name": "FaceDetector", "full_name": "android.media.FaceDetector"}, {"package_name": "android.media", "class_name": "FaceDetector.Face", "full_name": "android.media.FaceDetector.Face"}, {"package_name": "javax.xml.parsers", "class_name": "FactoryConfigurationError", "full_name": "javax.xml.parsers.FactoryConfigurationError"}, {"package_name": "android.transition", "class_name": "Fade", "full_name": "android.transition.Fade"}, {"package_name": "android.content.pm", "class_name": "FeatureGroupInfo", "full_name": "android.content.pm.FeatureGroupInfo"}, {"package_name": "android.content.pm", "class_name": "FeatureInfo", "full_name": "android.content.pm.FeatureInfo"}, {"package_name": "java.lang.reflect", "class_name": "Field", "full_name": "java.lang.reflect.Field"}, {"package_name": "android.service.autofill", "class_name": "FieldClassification", "full_name": "android.service.autofill.FieldClassification"}, {"package_name": "android.service.autofill", "class_name": "FieldClassification.Match", "full_name": "android.service.autofill.FieldClassification.Match"}, {"package_name": "android.renderscript", "class_name": "FieldPacker", "full_name": "android.renderscript.FieldPacker"}, {"package_name": "java.text", "class_name": "FieldPosition", "full_name": "java.text.FieldPosition"}, {"package_name": "java.io", "class_name": "File", "full_name": "java.io.File"}, {"package_name": "java.nio.file", "class_name": "FileAlreadyExistsException", "full_name": "java.nio.file.FileAlreadyExistsException"}, {"package_name": "java.nio.file.attribute", "class_name": "FileAttributeView", "full_name": "java.nio.file.attribute.FileAttributeView"}, {"package_name": "android.app.backup", "class_name": "FileBackupHelper", "full_name": "android.app.backup.FileBackupHelper"}, {"package_name": "java.nio.channels", "class_name": "FileChannel", "full_name": "java.nio.channels.FileChannel"}, {"package_name": "java.nio.channels", "class_name": "FileChannel.MapMode", "full_name": "java.nio.channels.FileChannel.MapMode"}, {"package_name": "java.io", "class_name": "FileDescriptor", "full_name": "java.io.FileDescriptor"}, {"package_name": "java.io", "class_name": "FileFilter", "full_name": "java.io.FileFilter"}, {"package_name": "java.util.logging", "class_name": "FileHandler", "full_name": "java.util.logging.FileHandler"}, {"package_name": "android.telephony.mbms", "class_name": "FileInfo", "full_name": "android.telephony.mbms.FileInfo"}, {"package_name": "java.io", "class_name": "FileInputStream", "full_name": "java.io.FileInputStream"}, {"package_name": "java.nio.channels", "class_name": "FileLock", "full_name": "java.nio.channels.FileLock"}, {"package_name": "java.nio.channels", "class_name": "FileLockInterruptionException", "full_name": "java.nio.channels.FileLockInterruptionException"}, {"package_name": "java.io", "class_name": "FilenameFilter", "full_name": "java.io.FilenameFilter"}, {"package_name": "java.net", "class_name": "FileNameMap", "full_name": "java.net.FileNameMap"}, {"package_name": "java.io", "class_name": "FileNotFoundException", "full_name": "java.io.FileNotFoundException"}, {"package_name": "android.os", "class_name": "FileObserver", "full_name": "android.os.FileObserver"}, {"package_name": "java.io", "class_name": "FileOutputStream", "full_name": "java.io.FileOutputStream"}, {"package_name": "java.nio.file.attribute", "class_name": "FileOwnerAttributeView", "full_name": "java.nio.file.attribute.FileOwnerAttributeView"}, {"package_name": "java.io", "class_name": "FilePermission", "full_name": "java.io.FilePermission"}, {"package_name": "java.io", "class_name": "FileReader", "full_name": "java.io.FileReader"}, {"package_name": "java.nio.file", "class_name": "Files", "full_name": "java.nio.file.Files"}, {"package_name": "android.telephony.mbms", "class_name": "FileServiceInfo", "full_name": "android.telephony.mbms.FileServiceInfo"}, {"package_name": "java.nio.file", "class_name": "FileStore", "full_name": "java.nio.file.FileStore"}, {"package_name": "java.nio.file.attribute", "class_name": "FileStoreAttributeView", "full_name": "java.nio.file.attribute.FileStoreAttributeView"}, {"package_name": "java.nio.file", "class_name": "FileSystem", "full_name": "java.nio.file.FileSystem"}, {"package_name": "java.nio.file", "class_name": "FileSystemAlreadyExistsException", "full_name": "java.nio.file.FileSystemAlreadyExistsException"}, {"package_name": "java.nio.file", "class_name": "FileSystemException", "full_name": "java.nio.file.FileSystemException"}, {"package_name": "java.nio.file", "class_name": "FileSystemLoopException", "full_name": "java.nio.file.FileSystemLoopException"}, {"package_name": "java.nio.file", "class_name": "FileSystemNotFoundException", "full_name": "java.nio.file.FileSystemNotFoundException"}, {"package_name": "java.nio.file.spi", "class_name": "FileSystemProvider", "full_name": "java.nio.file.spi.FileSystemProvider"}, {"package_name": "java.nio.file", "class_name": "FileSystems", "full_name": "java.nio.file.FileSystems"}, {"package_name": "java.nio.file.attribute", "class_name": "FileTime", "full_name": "java.nio.file.attribute.FileTime"}, {"package_name": "java.nio.file.spi", "class_name": "FileTypeDetector", "full_name": "java.nio.file.spi.FileTypeDetector"}, {"package_name": "android.os", "class_name": "FileUriExposedException", "full_name": "android.os.FileUriExposedException"}, {"package_name": "android.os.strictmode", "class_name": "FileUriExposedViolation", "full_name": "android.os.strictmode.FileUriExposedViolation"}, {"package_name": "java.nio.file", "class_name": "FileVisitOption", "full_name": "java.nio.file.FileVisitOption"}, {"package_name": "java.nio.file", "class_name": "FileVisitResult", "full_name": "java.nio.file.FileVisitResult"}, {"package_name": "java.io", "class_name": "FileWriter", "full_name": "java.io.FileWriter"}, {"package_name": "android.service.autofill", "class_name": "FillCallback", "full_name": "android.service.autofill.FillCallback"}, {"package_name": "android.service.autofill", "class_name": "FillContext", "full_name": "android.service.autofill.FillContext"}, {"package_name": "android.service.autofill", "class_name": "FillEventHistory", "full_name": "android.service.autofill.FillEventHistory"}, {"package_name": "android.service.autofill", "class_name": "FillEventHistory.Event", "full_name": "android.service.autofill.FillEventHistory.Event"}, {"package_name": "android.service.autofill", "class_name": "FillRequest", "full_name": "android.service.autofill.FillRequest"}, {"package_name": "android.service.autofill", "class_name": "FillResponse", "full_name": "android.service.autofill.FillResponse"}, {"package_name": "android.service.autofill", "class_name": "FillResponse.Builder", "full_name": "android.service.autofill.FillResponse.Builder"}, {"package_name": "android.widget", "class_name": "Filter", "full_name": "android.widget.Filter"}, {"package_name": "java.util.logging", "class_name": "Filter", "full_name": "java.util.logging.Filter"}, {"package_name": "android.widget", "class_name": "Filter.FilterListener", "full_name": "android.widget.Filter.FilterListener"}, {"package_name": "android.widget", "class_name": "Filter.FilterResults", "full_name": "android.widget.Filter.FilterResults"}, {"package_name": "android.widget", "class_name": "Filterable", "full_name": "android.widget.Filterable"}, {"package_name": "java.io", "class_name": "FilterInputStream", "full_name": "java.io.FilterInputStream"}, {"package_name": "java.io", "class_name": "FilterOutputStream", "full_name": "java.io.FilterOutputStream"}, {"package_name": "android.widget", "class_name": "FilterQueryProvider", "full_name": "android.widget.FilterQueryProvider"}, {"package_name": "java.io", "class_name": "FilterReader", "full_name": "java.io.FilterReader"}, {"package_name": "java.io", "class_name": "FilterWriter", "full_name": "java.io.FilterWriter"}, {"package_name": "android.accessibilityservice", "class_name": "FingerprintGestureController", "full_name": "android.accessibilityservice.FingerprintGestureController"}, {"package_name": "android.accessibilityservice", "class_name": "FingerprintGestureController.FingerprintGestureCallback", "full_name": "android.accessibilityservice.FingerprintGestureController.FingerprintGestureCallback"}, {"package_name": "android.hardware.fingerprint", "class_name": "FingerprintManager", "full_name": "android.hardware.fingerprint.FingerprintManager"}, {"package_name": "android.hardware.fingerprint", "class_name": "FingerprintManager.AuthenticationCallback", "full_name": "android.hardware.fingerprint.FingerprintManager.AuthenticationCallback"}, {"package_name": "android.hardware.fingerprint", "class_name": "FingerprintManager.AuthenticationResult", "full_name": "android.hardware.fingerprint.FingerprintManager.AuthenticationResult"}, {"package_name": "android.hardware.fingerprint", "class_name": "FingerprintManager.CryptoObject", "full_name": "android.hardware.fingerprint.FingerprintManager.CryptoObject"}, {"package_name": "android.test", "class_name": "FlakyTest", "full_name": "android.test.FlakyTest"}, {"package_name": "java.lang", "class_name": "Float", "full_name": "java.lang.Float"}, {"package_name": "android.animation", "class_name": "FloatArrayEvaluator", "full_name": "android.animation.FloatArrayEvaluator"}, {"package_name": "java.nio", "class_name": "FloatBuffer", "full_name": "java.nio.FloatBuffer"}, {"package_name": "android.animation", "class_name": "FloatEvaluator", "full_name": "android.animation.FloatEvaluator"}, {"package_name": "android.util", "class_name": "FloatMath", "full_name": "android.util.FloatMath"}, {"package_name": "java.io", "class_name": "Flushable", "full_name": "java.io.Flushable"}, {"package_name": "android.view", "class_name": "FocusFinder", "full_name": "android.view.FocusFinder"}, {"package_name": "android.provider", "class_name": "FontRequest", "full_name": "android.provider.FontRequest"}, {"package_name": "android.provider", "class_name": "FontsContract", "full_name": "android.provider.FontsContract"}, {"package_name": "android.provider", "class_name": "FontsContract.Columns", "full_name": "android.provider.FontsContract.Columns"}, {"package_name": "android.provider", "class_name": "FontsContract.FontFamilyResult", "full_name": "android.provider.FontsContract.FontFamilyResult"}, {"package_name": "android.provider", "class_name": "FontsContract.FontInfo", "full_name": "android.provider.FontsContract.FontInfo"}, {"package_name": "android.provider", "class_name": "FontsContract.FontRequestCallback", "full_name": "android.provider.FontsContract.FontRequestCallback"}, {"package_name": "android.graphics.fonts", "class_name": "FontVariationAxis", "full_name": "android.graphics.fonts.FontVariationAxis"}, {"package_name": "android.text.style", "class_name": "ForegroundColorSpan", "full_name": "android.text.style.ForegroundColorSpan"}, {"package_name": "java.util.concurrent", "class_name": "ForkJoinPool", "full_name": "java.util.concurrent.ForkJoinPool"}, {"package_name": "java.util.concurrent", "class_name": "ForkJoinPool.ForkJoinWorkerThreadFactory", "full_name": "java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory"}, {"package_name": "java.util.concurrent", "class_name": "ForkJoinPool.ManagedBlocker", "full_name": "java.util.concurrent.ForkJoinPool.ManagedBlocker"}, {"package_name": "java.util.concurrent", "class_name": "ForkJoinWorkerThread", "full_name": "java.util.concurrent.ForkJoinWorkerThread"}, {"package_name": "java.text", "class_name": "Format", "full_name": "java.text.Format"}, {"package_name": "java.text", "class_name": "Format.Field", "full_name": "java.text.Format.Field"}, {"package_name": "android.nfc", "class_name": "FormatException", "full_name": "android.nfc.FormatException"}, {"package_name": "java.util", "class_name": "FormatFlagsConversionMismatchException", "full_name": "java.util.FormatFlagsConversionMismatchException"}, {"package_name": "java.time.format", "class_name": "FormatStyle", "full_name": "java.time.format.FormatStyle"}, {"package_name": "java.util", "class_name": "Formattable", "full_name": "java.util.Formattable"}, {"package_name": "java.util", "class_name": "FormattableFlags", "full_name": "java.util.FormattableFlags"}, {"package_name": "android.text.format", "class_name": "Formatter", "full_name": "android.text.format.Formatter"}, {"package_name": "java.util", "class_name": "Formatter", "full_name": "java.util.Formatter"}, {"package_name": "java.util.logging", "class_name": "Formatter", "full_name": "java.util.logging.Formatter"}, {"package_name": "java.util", "class_name": "Formatter.BigDecimalLayoutForm", "full_name": "java.util.Formatter.BigDecimalLayoutForm"}, {"package_name": "java.util", "class_name": "FormatterClosedException", "full_name": "java.util.FormatterClosedException"}, {"package_name": "android.app", "class_name": "Fragment", "full_name": "android.app.Fragment"}, {"package_name": "android.app", "class_name": "Fragment.InstantiationException", "full_name": "android.app.Fragment.InstantiationException"}, {"package_name": "android.app", "class_name": "Fragment.SavedState", "full_name": "android.app.Fragment.SavedState"}, {"package_name": "android.app", "class_name": "FragmentBreadCrumbs", "full_name": "android.app.FragmentBreadCrumbs"}, {"package_name": "android.app", "class_name": "FragmentBreadCrumbs.OnBreadCrumbClickListener", "full_name": "android.app.FragmentBreadCrumbs.OnBreadCrumbClickListener"}, {"package_name": "android.app", "class_name": "FragmentContainer", "full_name": "android.app.FragmentContainer"}, {"package_name": "android.app", "class_name": "FragmentController", "full_name": "android.app.FragmentController"}, {"package_name": "android.app", "class_name": "FragmentManager", "full_name": "android.app.FragmentManager"}, {"package_name": "android.app", "class_name": "FragmentManager.BackStackEntry", "full_name": "android.app.FragmentManager.BackStackEntry"}, {"package_name": "android.app", "class_name": "FragmentManager.FragmentLifecycleCallbacks", "full_name": "android.app.FragmentManager.FragmentLifecycleCallbacks"}, {"package_name": "android.app", "class_name": "FragmentManager.OnBackStackChangedListener", "full_name": "android.app.FragmentManager.OnBackStackChangedListener"}, {"package_name": "android.app", "class_name": "FragmentManagerNonConfig", "full_name": "android.app.FragmentManagerNonConfig"}, {"package_name": "android.app", "class_name": "FragmentTransaction", "full_name": "android.app.FragmentTransaction"}, {"package_name": "android.widget", "class_name": "FrameLayout", "full_name": "android.widget.FrameLayout"}, {"package_name": "android.widget", "class_name": "FrameLayout.LayoutParams", "full_name": "android.widget.FrameLayout.LayoutParams"}, {"package_name": "android.view", "class_name": "FrameMetrics", "full_name": "android.view.FrameMetrics"}, {"package_name": "android.view", "class_name": "FrameStats", "full_name": "android.view.FrameStats"}, {"package_name": "android.app.admin", "class_name": "FreezePeriod", "full_name": "android.app.admin.FreezePeriod"}, {"package_name": "android.app.backup", "class_name": "FullBackupDataOutput", "full_name": "android.app.backup.FullBackupDataOutput"}, {"package_name": "java.lang", "class_name": "FunctionalInterface", "full_name": "java.lang.FunctionalInterface"}, {"package_name": "android.widget", "class_name": "Gallery", "full_name": "android.widget.Gallery"}, {"package_name": "android.widget", "class_name": "Gallery.LayoutParams", "full_name": "android.widget.Gallery.LayoutParams"}, {"package_name": "android.telecom", "class_name": "GatewayInfo", "full_name": "android.telecom.GatewayInfo"}, {"package_name": "java.nio.channels", "class_name": "GatheringByteChannel", "full_name": "java.nio.channels.GatheringByteChannel"}, {"package_name": "javax.crypto.spec", "class_name": "GCMParameterSpec", "full_name": "javax.crypto.spec.GCMParameterSpec"}, {"package_name": "java.security", "class_name": "GeneralSecurityException", "full_name": "java.security.GeneralSecurityException"}, {"package_name": "java.lang.reflect", "class_name": "GenericArrayType", "full_name": "java.lang.reflect.GenericArrayType"}, {"package_name": "java.lang.reflect", "class_name": "GenericDeclaration", "full_name": "java.lang.reflect.GenericDeclaration"}, {"package_name": "java.lang.reflect", "class_name": "GenericSignatureFormatError", "full_name": "java.lang.reflect.GenericSignatureFormatError"}, {"package_name": "android.location", "class_name": "Geocoder", "full_name": "android.location.Geocoder"}, {"package_name": "android.webkit", "class_name": "GeolocationPermissions", "full_name": "android.webkit.GeolocationPermissions"}, {"package_name": "android.webkit", "class_name": "GeolocationPermissions.Callback", "full_name": "android.webkit.GeolocationPermissions.Callback"}, {"package_name": "android.hardware", "class_name": "GeomagneticField", "full_name": "android.hardware.GeomagneticField"}, {"package_name": "android.gesture", "class_name": "Gesture", "full_name": "android.gesture.Gesture"}, {"package_name": "android.accessibilityservice", "class_name": "GestureDescription", "full_name": "android.accessibilityservice.GestureDescription"}, {"package_name": "android.accessibilityservice", "class_name": "GestureDescription.Builder", "full_name": "android.accessibilityservice.GestureDescription.Builder"}, {"package_name": "android.accessibilityservice", "class_name": "GestureDescription.StrokeDescription", "full_name": "android.accessibilityservice.GestureDescription.StrokeDescription"}, {"package_name": "android.view", "class_name": "GestureDetector", "full_name": "android.view.GestureDetector"}, {"package_name": "android.view", "class_name": "GestureDetector.OnContextClickListener", "full_name": "android.view.GestureDetector.OnContextClickListener"}, {"package_name": "android.view", "class_name": "GestureDetector.OnDoubleTapListener", "full_name": "android.view.GestureDetector.OnDoubleTapListener"}, {"package_name": "android.view", "class_name": "GestureDetector.OnGestureListener", "full_name": "android.view.GestureDetector.OnGestureListener"}, {"package_name": "android.view", "class_name": "GestureDetector.SimpleOnGestureListener", "full_name": "android.view.GestureDetector.SimpleOnGestureListener"}, {"package_name": "android.gesture", "class_name": "GestureLibraries", "full_name": "android.gesture.GestureLibraries"}, {"package_name": "android.gesture", "class_name": "GestureLibrary", "full_name": "android.gesture.GestureLibrary"}, {"package_name": "android.gesture", "class_name": "GestureOverlayView", "full_name": "android.gesture.GestureOverlayView"}, {"package_name": "android.gesture", "class_name": "GestureOverlayView.OnGestureListener", "full_name": "android.gesture.GestureOverlayView.OnGestureListener"}, {"package_name": "android.gesture", "class_name": "GestureOverlayView.OnGesturePerformedListener", "full_name": "android.gesture.GestureOverlayView.OnGesturePerformedListener"}, {"package_name": "android.gesture", "class_name": "GestureOverlayView.OnGesturingListener", "full_name": "android.gesture.GestureOverlayView.OnGesturingListener"}, {"package_name": "android.gesture", "class_name": "GesturePoint", "full_name": "android.gesture.GesturePoint"}, {"package_name": "android.gesture", "class_name": "GestureStore", "full_name": "android.gesture.GestureStore"}, {"package_name": "android.gesture", "class_name": "GestureStroke", "full_name": "android.gesture.GestureStroke"}, {"package_name": "android.gesture", "class_name": "GestureUtils", "full_name": "android.gesture.GestureUtils"}, {"package_name": "android.text", "class_name": "GetChars", "full_name": "android.text.GetChars"}, {"package_name": "javax.microedition.khronos.opengles", "class_name": "GL", "full_name": "javax.microedition.khronos.opengles.GL"}, {"package_name": "android.opengl", "class_name": "GLDebugHelper", "full_name": "android.opengl.GLDebugHelper"}, {"package_name": "android.opengl", "class_name": "GLException", "full_name": "android.opengl.GLException"}, {"package_name": "android.opengl", "class_name": "GLSurfaceView", "full_name": "android.opengl.GLSurfaceView"}, {"package_name": "android.opengl", "class_name": "GLSurfaceView.EGLConfigChooser", "full_name": "android.opengl.GLSurfaceView.EGLConfigChooser"}, {"package_name": "android.opengl", "class_name": "GLSurfaceView.EGLContextFactory", "full_name": "android.opengl.GLSurfaceView.EGLContextFactory"}, {"package_name": "android.opengl", "class_name": "GLSurfaceView.EGLWindowSurfaceFactory", "full_name": "android.opengl.GLSurfaceView.EGLWindowSurfaceFactory"}, {"package_name": "android.opengl", "class_name": "GLSurfaceView.GLWrapper", "full_name": "android.opengl.GLSurfaceView.GLWrapper"}, {"package_name": "android.opengl", "class_name": "GLSurfaceView.Renderer", "full_name": "android.opengl.GLSurfaceView.Renderer"}, {"package_name": "android.opengl", "class_name": "GLU", "full_name": "android.opengl.GLU"}, {"package_name": "android.opengl", "class_name": "GLUtils", "full_name": "android.opengl.GLUtils"}, {"package_name": "android.location", "class_name": "GnssClock", "full_name": "android.location.GnssClock"}, {"package_name": "android.location", "class_name": "GnssMeasurement", "full_name": "android.location.GnssMeasurement"}, {"package_name": "android.location", "class_name": "GnssMeasurementsEvent", "full_name": "android.location.GnssMeasurementsEvent"}, {"package_name": "android.location", "class_name": "GnssMeasurementsEvent.Callback", "full_name": "android.location.GnssMeasurementsEvent.Callback"}, {"package_name": "android.location", "class_name": "GnssNavigationMessage", "full_name": "android.location.GnssNavigationMessage"}, {"package_name": "android.location", "class_name": "GnssNavigationMessage.Callback", "full_name": "android.location.GnssNavigationMessage.Callback"}, {"package_name": "android.location", "class_name": "GnssStatus", "full_name": "android.location.GnssStatus"}, {"package_name": "android.location", "class_name": "GnssStatus.Callback", "full_name": "android.location.GnssStatus.Callback"}, {"package_name": "android.location", "class_name": "GpsSatellite", "full_name": "android.location.GpsSatellite"}, {"package_name": "android.location", "class_name": "GpsStatus", "full_name": "android.location.GpsStatus"}, {"package_name": "android.location", "class_name": "GpsStatus.Listener", "full_name": "android.location.GpsStatus.Listener"}, {"package_name": "android.location", "class_name": "GpsStatus.NmeaListener", "full_name": "android.location.GpsStatus.NmeaListener"}, {"package_name": "android.graphics.drawable", "class_name": "GradientDrawable", "full_name": "android.graphics.drawable.GradientDrawable"}, {"package_name": "android.graphics.drawable", "class_name": "GradientDrawable.Orientation", "full_name": "android.graphics.drawable.GradientDrawable.Orientation"}, {"package_name": "android.view", "class_name": "Gravity", "full_name": "android.view.Gravity"}, {"package_name": "android.icu.util", "class_name": "GregorianCalendar", "full_name": "android.icu.util.GregorianCalendar"}, {"package_name": "java.util", "class_name": "GregorianCalendar", "full_name": "java.util.GregorianCalendar"}, {"package_name": "android.widget", "class_name": "GridLayout", "full_name": "android.widget.GridLayout"}, {"package_name": "android.widget", "class_name": "GridLayout.Alignment", "full_name": "android.widget.GridLayout.Alignment"}, {"package_name": "android.widget", "class_name": "GridLayout.LayoutParams", "full_name": "android.widget.GridLayout.LayoutParams"}, {"package_name": "android.widget", "class_name": "GridLayout.Spec", "full_name": "android.widget.GridLayout.Spec"}, {"package_name": "android.view.animation", "class_name": "GridLayoutAnimationController", "full_name": "android.view.animation.GridLayoutAnimationController"}, {"package_name": "android.view.animation", "class_name": "GridLayoutAnimationController.AnimationParameters", "full_name": "android.view.animation.GridLayoutAnimationController.AnimationParameters"}, {"package_name": "android.widget", "class_name": "GridView", "full_name": "android.widget.GridView"}, {"package_name": "java.security.acl", "class_name": "Group", "full_name": "java.security.acl.Group"}, {"package_name": "java.nio.file.attribute", "class_name": "GroupPrincipal", "full_name": "java.nio.file.attribute.GroupPrincipal"}, {"package_name": "android.telephony.gsm", "class_name": "GsmCellLocation", "full_name": "android.telephony.gsm.GsmCellLocation"}, {"package_name": "java.security", "class_name": "Guard", "full_name": "java.security.Guard"}, {"package_name": "java.security", "class_name": "GuardedObject", "full_name": "java.security.GuardedObject"}, {"package_name": "java.util.zip", "class_name": "GZIPInputStream", "full_name": "java.util.zip.GZIPInputStream"}, {"package_name": "java.util.zip", "class_name": "GZIPOutputStream", "full_name": "java.util.zip.GZIPOutputStream"}, {"package_name": "android.util", "class_name": "Half", "full_name": "android.util.Half"}, {"package_name": "android.os", "class_name": "Handler", "full_name": "android.os.Handler"}, {"package_name": "java.util.logging", "class_name": "Handler", "full_name": "java.util.logging.Handler"}, {"package_name": "android.os", "class_name": "Handler.Callback", "full_name": "android.os.Handler.Callback"}, {"package_name": "org.xml.sax", "class_name": "HandlerBase", "full_name": "org.xml.sax.HandlerBase"}, {"package_name": "android.os", "class_name": "HandlerThread", "full_name": "android.os.HandlerThread"}, {"package_name": "javax.net.ssl", "class_name": "HandshakeCompletedEvent", "full_name": "javax.net.ssl.HandshakeCompletedEvent"}, {"package_name": "javax.net.ssl", "class_name": "HandshakeCompletedListener", "full_name": "javax.net.ssl.HandshakeCompletedListener"}, {"package_name": "android.view", "class_name": "HapticFeedbackConstants", "full_name": "android.view.HapticFeedbackConstants"}, {"package_name": "android.hardware", "class_name": "HardwareBuffer", "full_name": "android.hardware.HardwareBuffer"}, {"package_name": "android.os", "class_name": "HardwarePropertiesManager", "full_name": "android.os.HardwarePropertiesManager"}, {"package_name": "android.widget", "class_name": "HeaderViewListAdapter", "full_name": "android.widget.HeaderViewListAdapter"}, {"package_name": "android.os.health", "class_name": "HealthStats", "full_name": "android.os.health.HealthStats"}, {"package_name": "android.icu.util", "class_name": "HebrewCalendar", "full_name": "android.icu.util.HebrewCalendar"}, {"package_name": "android.widget", "class_name": "HeterogeneousExpandableList", "full_name": "android.widget.HeterogeneousExpandableList"}, {"package_name": "android.text.method", "class_name": "HideReturnsTransformationMethod", "full_name": "android.text.method.HideReturnsTransformationMethod"}, {"package_name": "java.time.chrono", "class_name": "HijrahChronology", "full_name": "java.time.chrono.HijrahChronology"}, {"package_name": "java.time.chrono", "class_name": "HijrahDate", "full_name": "java.time.chrono.HijrahDate"}, {"package_name": "java.time.chrono", "class_name": "HijrahEra", "full_name": "java.time.chrono.HijrahEra"}, {"package_name": "android.widget", "class_name": "HorizontalScrollView", "full_name": "android.widget.HorizontalScrollView"}, {"package_name": "android.nfc.cardemulation", "class_name": "HostApduService", "full_name": "android.nfc.cardemulation.HostApduService"}, {"package_name": "org.apache.http.conn.scheme", "class_name": "HostNameResolver", "full_name": "org.apache.http.conn.scheme.HostNameResolver"}, {"package_name": "javax.net.ssl", "class_name": "HostnameVerifier", "full_name": "javax.net.ssl.HostnameVerifier"}, {"package_name": "android.nfc.cardemulation", "class_name": "HostNfcFService", "full_name": "android.nfc.cardemulation.HostNfcFService"}, {"package_name": "android.text", "class_name": "Html", "full_name": "android.text.Html"}, {"package_name": "android.text", "class_name": "Html.ImageGetter", "full_name": "android.text.Html.ImageGetter"}, {"package_name": "android.text", "class_name": "Html.TagHandler", "full_name": "android.text.Html.TagHandler"}, {"package_name": "android.webkit", "class_name": "HttpAuthHandler", "full_name": "android.webkit.HttpAuthHandler"}, {"package_name": "org.apache.http.params", "class_name": "HttpConnectionParams", "full_name": "org.apache.http.params.HttpConnectionParams"}, {"package_name": "java.net", "class_name": "HttpCookie", "full_name": "java.net.HttpCookie"}, {"package_name": "org.apache.http.params", "class_name": "HttpParams", "full_name": "org.apache.http.params.HttpParams"}, {"package_name": "android.net.http", "class_name": "HttpResponseCache", "full_name": "android.net.http.HttpResponseCache"}, {"package_name": "java.net", "class_name": "HttpRetryException", "full_name": "java.net.HttpRetryException"}, {"package_name": "javax.net.ssl", "class_name": "HttpsURLConnection", "full_name": "javax.net.ssl.HttpsURLConnection"}, {"package_name": "java.net", "class_name": "HttpURLConnection", "full_name": "java.net.HttpURLConnection"}, {"package_name": "android.os", "class_name": "IBinder", "full_name": "android.os.IBinder"}, {"package_name": "android.os", "class_name": "IBinder.DeathRecipient", "full_name": "android.os.IBinder.DeathRecipient"}, {"package_name": "android.telephony", "class_name": "IccOpenLogicalChannelResponse", "full_name": "android.telephony.IccOpenLogicalChannelResponse"}, {"package_name": "android.graphics.drawable", "class_name": "Icon", "full_name": "android.graphics.drawable.Icon"}, {"package_name": "android.graphics.drawable", "class_name": "Icon.OnDrawableLoadedListener", "full_name": "android.graphics.drawable.Icon.OnDrawableLoadedListener"}, {"package_name": "android.text.style", "class_name": "IconMarginSpan", "full_name": "android.text.style.IconMarginSpan"}, {"package_name": "android.icu.util", "class_name": "ICUUncheckedIOException", "full_name": "android.icu.util.ICUUncheckedIOException"}, {"package_name": "java.security", "class_name": "Identity", "full_name": "java.security.Identity"}, {"package_name": "android.net.wifi.aware", "class_name": "IdentityChangedListener", "full_name": "android.net.wifi.aware.IdentityChangedListener"}, {"package_name": "java.security", "class_name": "IdentityScope", "full_name": "java.security.IdentityScope"}, {"package_name": "java.net", "class_name": "IDN", "full_name": "java.net.IDN"}, {"package_name": "android.icu.text", "class_name": "IDNA", "full_name": "android.icu.text.IDNA"}, {"package_name": "android.icu.text", "class_name": "IDNA.Error", "full_name": "android.icu.text.IDNA.Error"}, {"package_name": "android.icu.text", "class_name": "IDNA.Info", "full_name": "android.icu.text.IDNA.Info"}, {"package_name": "android.os", "class_name": "IInterface", "full_name": "android.os.IInterface"}, {"package_name": "java.lang", "class_name": "IllegalAccessError", "full_name": "java.lang.IllegalAccessError"}, {"package_name": "java.lang", "class_name": "IllegalAccessException", "full_name": "java.lang.IllegalAccessException"}, {"package_name": "java.lang", "class_name": "IllegalArgumentException", "full_name": "java.lang.IllegalArgumentException"}, {"package_name": "java.nio.channels", "class_name": "IllegalBlockingModeException", "full_name": "java.nio.channels.IllegalBlockingModeException"}, {"package_name": "javax.crypto", "class_name": "IllegalBlockSizeException", "full_name": "javax.crypto.IllegalBlockSizeException"}, {"package_name": "java.nio.channels", "class_name": "IllegalChannelGroupException", "full_name": "java.nio.channels.IllegalChannelGroupException"}, {"package_name": "java.nio.charset", "class_name": "IllegalCharsetNameException", "full_name": "java.nio.charset.IllegalCharsetNameException"}, {"package_name": "java.util", "class_name": "IllegalFormatCodePointException", "full_name": "java.util.IllegalFormatCodePointException"}, {"package_name": "java.util", "class_name": "IllegalFormatConversionException", "full_name": "java.util.IllegalFormatConversionException"}, {"package_name": "java.util", "class_name": "IllegalFormatException", "full_name": "java.util.IllegalFormatException"}, {"package_name": "java.util", "class_name": "IllegalFormatFlagsException", "full_name": "java.util.IllegalFormatFlagsException"}, {"package_name": "java.util", "class_name": "IllegalFormatPrecisionException", "full_name": "java.util.IllegalFormatPrecisionException"}, {"package_name": "java.util", "class_name": "IllegalFormatWidthException", "full_name": "java.util.IllegalFormatWidthException"}, {"package_name": "java.lang", "class_name": "IllegalMonitorStateException", "full_name": "java.lang.IllegalMonitorStateException"}, {"package_name": "java.nio.channels", "class_name": "IllegalSelectorException", "full_name": "java.nio.channels.IllegalSelectorException"}, {"package_name": "java.lang", "class_name": "IllegalStateException", "full_name": "java.lang.IllegalStateException"}, {"package_name": "java.lang", "class_name": "IllegalThreadStateException", "full_name": "java.lang.IllegalThreadStateException"}, {"package_name": "android.icu.util", "class_name": "IllformedLocaleException", "full_name": "android.icu.util.IllformedLocaleException"}, {"package_name": "java.util", "class_name": "IllformedLocaleException", "full_name": "java.util.IllformedLocaleException"}, {"package_name": "android.media", "class_name": "Image", "full_name": "android.media.Image"}, {"package_name": "android.media", "class_name": "Image.Plane", "full_name": "android.media.Image.Plane"}, {"package_name": "android.widget", "class_name": "ImageButton", "full_name": "android.widget.ImageButton"}, {"package_name": "android.graphics", "class_name": "ImageDecoder", "full_name": "android.graphics.ImageDecoder"}, {"package_name": "android.graphics", "class_name": "ImageDecoder.DecodeException", "full_name": "android.graphics.ImageDecoder.DecodeException"}, {"package_name": "android.graphics", "class_name": "ImageDecoder.ImageInfo", "full_name": "android.graphics.ImageDecoder.ImageInfo"}, {"package_name": "android.graphics", "class_name": "ImageDecoder.OnHeaderDecodedListener", "full_name": "android.graphics.ImageDecoder.OnHeaderDecodedListener"}, {"package_name": "android.graphics", "class_name": "ImageDecoder.OnPartialImageListener", "full_name": "android.graphics.ImageDecoder.OnPartialImageListener"}, {"package_name": "android.graphics", "class_name": "ImageDecoder.Source", "full_name": "android.graphics.ImageDecoder.Source"}, {"package_name": "android.graphics", "class_name": "ImageFormat", "full_name": "android.graphics.ImageFormat"}, {"package_name": "android.media", "class_name": "ImageReader", "full_name": "android.media.ImageReader"}, {"package_name": "android.media", "class_name": "ImageReader.OnImageAvailableListener", "full_name": "android.media.ImageReader.OnImageAvailableListener"}, {"package_name": "android.text.style", "class_name": "ImageSpan", "full_name": "android.text.style.ImageSpan"}, {"package_name": "android.widget", "class_name": "ImageSwitcher", "full_name": "android.widget.ImageSwitcher"}, {"package_name": "android.service.autofill", "class_name": "ImageTransformation", "full_name": "android.service.autofill.ImageTransformation"}, {"package_name": "android.service.autofill", "class_name": "ImageTransformation.Builder", "full_name": "android.service.autofill.ImageTransformation.Builder"}, {"package_name": "android.widget", "class_name": "ImageView", "full_name": "android.widget.ImageView"}, {"package_name": "android.widget", "class_name": "ImageView.ScaleType", "full_name": "android.widget.ImageView.ScaleType"}, {"package_name": "android.media", "class_name": "ImageWriter", "full_name": "android.media.ImageWriter"}, {"package_name": "android.media", "class_name": "ImageWriter.OnImageReleasedListener", "full_name": "android.media.ImageWriter.OnImageReleasedListener"}, {"package_name": "android.telecom", "class_name": "InCallService", "full_name": "android.telecom.InCallService"}, {"package_name": "android.telecom", "class_name": "InCallService.VideoCall", "full_name": "android.telecom.InCallService.VideoCall"}, {"package_name": "android.telecom", "class_name": "InCallService.VideoCall.Callback", "full_name": "android.telecom.InCallService.VideoCall.Callback"}, {"package_name": "java.lang", "class_name": "IncompatibleClassChangeError", "full_name": "java.lang.IncompatibleClassChangeError"}, {"package_name": "java.lang.annotation", "class_name": "IncompleteAnnotationException", "full_name": "java.lang.annotation.IncompleteAnnotationException"}, {"package_name": "java.beans", "class_name": "IndexedPropertyChangeEvent", "full_name": "java.beans.IndexedPropertyChangeEvent"}, {"package_name": "java.lang", "class_name": "IndexOutOfBoundsException", "full_name": "java.lang.IndexOutOfBoundsException"}, {"package_name": "android.icu.util", "class_name": "IndianCalendar", "full_name": "android.icu.util.IndianCalendar"}, {"package_name": "java.net", "class_name": "InetAddress", "full_name": "java.net.InetAddress"}, {"package_name": "java.net", "class_name": "InetSocketAddress", "full_name": "java.net.InetSocketAddress"}, {"package_name": "android.view", "class_name": "InflateException", "full_name": "android.view.InflateException"}, {"package_name": "java.util.zip", "class_name": "Inflater", "full_name": "java.util.zip.Inflater"}, {"package_name": "java.util.zip", "class_name": "InflaterInputStream", "full_name": "java.util.zip.InflaterInputStream"}, {"package_name": "java.util.zip", "class_name": "InflaterOutputStream", "full_name": "java.util.zip.InflaterOutputStream"}, {"package_name": "java.lang.annotation", "class_name": "Inherited", "full_name": "java.lang.annotation.Inherited"}, {"package_name": "dalvik.system", "class_name": "InMemoryDexClassLoader", "full_name": "dalvik.system.InMemoryDexClassLoader"}, {"package_name": "android.view.inputmethod", "class_name": "InputBinding", "full_name": "android.view.inputmethod.InputBinding"}, {"package_name": "android.view.inputmethod", "class_name": "InputConnection", "full_name": "android.view.inputmethod.InputConnection"}, {"package_name": "android.view.inputmethod", "class_name": "InputConnectionWrapper", "full_name": "android.view.inputmethod.InputConnectionWrapper"}, {"package_name": "android.view.inputmethod", "class_name": "InputContentInfo", "full_name": "android.view.inputmethod.InputContentInfo"}, {"package_name": "android.view", "class_name": "InputDevice", "full_name": "android.view.InputDevice"}, {"package_name": "android.view", "class_name": "InputDevice.MotionRange", "full_name": "android.view.InputDevice.MotionRange"}, {"package_name": "android.view", "class_name": "InputEvent", "full_name": "android.view.InputEvent"}, {"package_name": "android.text", "class_name": "InputFilter", "full_name": "android.text.InputFilter"}, {"package_name": "android.text", "class_name": "InputFilter.AllCaps", "full_name": "android.text.InputFilter.AllCaps"}, {"package_name": "android.text", "class_name": "InputFilter.LengthFilter", "full_name": "android.text.InputFilter.LengthFilter"}, {"package_name": "android.hardware.input", "class_name": "InputManager", "full_name": "android.hardware.input.InputManager"}, {"package_name": "android.hardware.input", "class_name": "InputManager.InputDeviceListener", "full_name": "android.hardware.input.InputManager.InputDeviceListener"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethod", "full_name": "android.view.inputmethod.InputMethod"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethod.SessionCallback", "full_name": "android.view.inputmethod.InputMethod.SessionCallback"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethodInfo", "full_name": "android.view.inputmethod.InputMethodInfo"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethodManager", "full_name": "android.view.inputmethod.InputMethodManager"}, {"package_name": "android.inputmethodservice", "class_name": "InputMethodService", "full_name": "android.inputmethodservice.InputMethodService"}, {"package_name": "android.inputmethodservice", "class_name": "InputMethodService.InputMethodImpl", "full_name": "android.inputmethodservice.InputMethodService.InputMethodImpl"}, {"package_name": "android.inputmethodservice", "class_name": "InputMethodService.InputMethodSessionImpl", "full_name": "android.inputmethodservice.InputMethodService.InputMethodSessionImpl"}, {"package_name": "android.inputmethodservice", "class_name": "InputMethodService.Insets", "full_name": "android.inputmethodservice.InputMethodService.Insets"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethodSession", "full_name": "android.view.inputmethod.InputMethodSession"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethodSession.EventCallback", "full_name": "android.view.inputmethod.InputMethodSession.EventCallback"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethodSubtype", "full_name": "android.view.inputmethod.InputMethodSubtype"}, {"package_name": "android.view.inputmethod", "class_name": "InputMethodSubtype.InputMethodSubtypeBuilder", "full_name": "android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder"}, {"package_name": "java.util", "class_name": "InputMismatchException", "full_name": "java.util.InputMismatchException"}, {"package_name": "android.view", "class_name": "InputQueue", "full_name": "android.view.InputQueue"}, {"package_name": "android.view", "class_name": "InputQueue.Callback", "full_name": "android.view.InputQueue.Callback"}, {"package_name": "org.xml.sax", "class_name": "InputSource", "full_name": "org.xml.sax.InputSource"}, {"package_name": "java.io", "class_name": "InputStream", "full_name": "java.io.InputStream"}, {"package_name": "java.io", "class_name": "InputStreamReader", "full_name": "java.io.InputStreamReader"}, {"package_name": "android.text", "class_name": "InputType", "full_name": "android.text.InputType"}, {"package_name": "android.graphics.drawable", "class_name": "InsetDrawable", "full_name": "android.graphics.drawable.InsetDrawable"}, {"package_name": "android.os.strictmode", "class_name": "InstanceCountViolation", "full_name": "android.os.strictmode.InstanceCountViolation"}, {"package_name": "java.time", "class_name": "Instant", "full_name": "java.time.Instant"}, {"package_name": "java.lang", "class_name": "InstantiationError", "full_name": "java.lang.InstantiationError"}, {"package_name": "java.lang", "class_name": "InstantiationException", "full_name": "java.lang.InstantiationException"}, {"package_name": "android.app", "class_name": "Instrumentation", "full_name": "android.app.Instrumentation"}, {"package_name": "android.app", "class_name": "Instrumentation.ActivityMonitor", "full_name": "android.app.Instrumentation.ActivityMonitor"}, {"package_name": "android.app", "class_name": "Instrumentation.ActivityResult", "full_name": "android.app.Instrumentation.ActivityResult"}, {"package_name": "android.content.pm", "class_name": "InstrumentationInfo", "full_name": "android.content.pm.InstrumentationInfo"}, {"package_name": "android.test", "class_name": "InstrumentationTestCase", "full_name": "android.test.InstrumentationTestCase"}, {"package_name": "android.test", "class_name": "InstrumentationTestRunner", "full_name": "android.test.InstrumentationTestRunner"}, {"package_name": "android.test", "class_name": "InstrumentationTestSuite", "full_name": "android.test.InstrumentationTestSuite"}, {"package_name": "android.animation", "class_name": "IntArrayEvaluator", "full_name": "android.animation.IntArrayEvaluator"}, {"package_name": "java.util.function", "class_name": "IntBinaryOperator", "full_name": "java.util.function.IntBinaryOperator"}, {"package_name": "java.nio", "class_name": "IntBuffer", "full_name": "java.nio.IntBuffer"}, {"package_name": "java.util.function", "class_name": "IntConsumer", "full_name": "java.util.function.IntConsumer"}, {"package_name": "java.lang", "class_name": "Integer", "full_name": "java.lang.Integer"}, {"package_name": "android.content", "class_name": "Intent", "full_name": "android.content.Intent"}, {"package_name": "android.content", "class_name": "Intent.FilterComparison", "full_name": "android.content.Intent.FilterComparison"}, {"package_name": "android.content", "class_name": "Intent.ShortcutIconResource", "full_name": "android.content.Intent.ShortcutIconResource"}, {"package_name": "android.content", "class_name": "IntentFilter", "full_name": "android.content.IntentFilter"}, {"package_name": "android.content", "class_name": "IntentFilter.AuthorityEntry", "full_name": "android.content.IntentFilter.AuthorityEntry"}, {"package_name": "android.content", "class_name": "IntentFilter.MalformedMimeTypeException", "full_name": "android.content.IntentFilter.MalformedMimeTypeException"}, {"package_name": "android.os.strictmode", "class_name": "IntentReceiverLeakedViolation", "full_name": "android.os.strictmode.IntentReceiverLeakedViolation"}, {"package_name": "android.content", "class_name": "IntentSender", "full_name": "android.content.IntentSender"}, {"package_name": "android.content", "class_name": "IntentSender.OnFinished", "full_name": "android.content.IntentSender.OnFinished"}, {"package_name": "android.content", "class_name": "IntentSender.SendIntentException", "full_name": "android.content.IntentSender.SendIntentException"}, {"package_name": "android.app", "class_name": "IntentService", "full_name": "android.app.IntentService"}, {"package_name": "java.net", "class_name": "InterfaceAddress", "full_name": "java.net.InterfaceAddress"}, {"package_name": "java.lang", "class_name": "InternalError", "full_name": "java.lang.InternalError"}, {"package_name": "android.graphics", "class_name": "Interpolator", "full_name": "android.graphics.Interpolator"}, {"package_name": "android.view.animation", "class_name": "Interpolator", "full_name": "android.view.animation.Interpolator"}, {"package_name": "android.graphics", "class_name": "Interpolator.Result", "full_name": "android.graphics.Interpolator.Result"}, {"package_name": "java.nio.channels", "class_name": "InterruptedByTimeoutException", "full_name": "java.nio.channels.InterruptedByTimeoutException"}, {"package_name": "java.lang", "class_name": "InterruptedException", "full_name": "java.lang.InterruptedException"}, {"package_name": "java.io", "class_name": "InterruptedIOException", "full_name": "java.io.InterruptedIOException"}, {"package_name": "java.nio.channels", "class_name": "InterruptibleChannel", "full_name": "java.nio.channels.InterruptibleChannel"}, {"package_name": "android.animation", "class_name": "IntEvaluator", "full_name": "android.animation.IntEvaluator"}, {"package_name": "java.util.function", "class_name": "IntPredicate", "full_name": "java.util.function.IntPredicate"}, {"package_name": "java.util.stream", "class_name": "IntStream", "full_name": "java.util.stream.IntStream"}, {"package_name": "java.util.stream", "class_name": "IntStream.Builder", "full_name": "java.util.stream.IntStream.Builder"}, {"package_name": "java.util", "class_name": "IntSummaryStatistics", "full_name": "java.util.IntSummaryStatistics"}, {"package_name": "java.util.function", "class_name": "IntSupplier", "full_name": "java.util.function.IntSupplier"}, {"package_name": "java.util.function", "class_name": "IntToDoubleFunction", "full_name": "java.util.function.IntToDoubleFunction"}, {"package_name": "java.util.function", "class_name": "IntToLongFunction", "full_name": "java.util.function.IntToLongFunction"}, {"package_name": "java.util.function", "class_name": "IntUnaryOperator", "full_name": "java.util.function.IntUnaryOperator"}, {"package_name": "java.security", "class_name": "InvalidAlgorithmParameterException", "full_name": "java.security.InvalidAlgorithmParameterException"}, {"package_name": "java.io", "class_name": "InvalidClassException", "full_name": "java.io.InvalidClassException"}, {"package_name": "java.security", "class_name": "InvalidKeyException", "full_name": "java.security.InvalidKeyException"}, {"package_name": "java.security.spec", "class_name": "InvalidKeySpecException", "full_name": "java.security.spec.InvalidKeySpecException"}, {"package_name": "java.nio", "class_name": "InvalidMarkException", "full_name": "java.nio.InvalidMarkException"}, {"package_name": "java.io", "class_name": "InvalidObjectException", "full_name": "java.io.InvalidObjectException"}, {"package_name": "java.security", "class_name": "InvalidParameterException", "full_name": "java.security.InvalidParameterException"}, {"package_name": "java.security.spec", "class_name": "InvalidParameterSpecException", "full_name": "java.security.spec.InvalidParameterSpecException"}, {"package_name": "java.nio.file", "class_name": "InvalidPathException", "full_name": "java.nio.file.InvalidPathException"}, {"package_name": "java.util.prefs", "class_name": "InvalidPreferencesFormatException", "full_name": "java.util.prefs.InvalidPreferencesFormatException"}, {"package_name": "java.util", "class_name": "InvalidPropertiesFormatException", "full_name": "java.util.InvalidPropertiesFormatException"}, {"package_name": "java.lang.reflect", "class_name": "InvocationHandler", "full_name": "java.lang.reflect.InvocationHandler"}, {"package_name": "java.lang.reflect", "class_name": "InvocationTargetException", "full_name": "java.lang.reflect.InvocationTargetException"}, {"package_name": "java.io", "class_name": "IOError", "full_name": "java.io.IOError"}, {"package_name": "java.io", "class_name": "IOException", "full_name": "java.io.IOException"}, {"package_name": "android.net", "class_name": "IpPrefix", "full_name": "android.net.IpPrefix"}, {"package_name": "android.net", "class_name": "IpSecAlgorithm", "full_name": "android.net.IpSecAlgorithm"}, {"package_name": "android.net", "class_name": "IpSecManager", "full_name": "android.net.IpSecManager"}, {"package_name": "android.net", "class_name": "IpSecManager.ResourceUnavailableException", "full_name": "android.net.IpSecManager.ResourceUnavailableException"}, {"package_name": "android.net", "class_name": "IpSecManager.SecurityParameterIndex", "full_name": "android.net.IpSecManager.SecurityParameterIndex"}, {"package_name": "android.net", "class_name": "IpSecManager.SpiUnavailableException", "full_name": "android.net.IpSecManager.SpiUnavailableException"}, {"package_name": "android.net", "class_name": "IpSecManager.UdpEncapsulationSocket", "full_name": "android.net.IpSecManager.UdpEncapsulationSocket"}, {"package_name": "android.net", "class_name": "IpSecTransform", "full_name": "android.net.IpSecTransform"}, {"package_name": "android.net", "class_name": "IpSecTransform.Builder", "full_name": "android.net.IpSecTransform.Builder"}, {"package_name": "android.icu.util", "class_name": "IslamicCalendar", "full_name": "android.icu.util.IslamicCalendar"}, {"package_name": "android.icu.util", "class_name": "IslamicCalendar.CalculationType", "full_name": "android.icu.util.IslamicCalendar.CalculationType"}, {"package_name": "java.time.chrono", "class_name": "IsoChronology", "full_name": "java.time.chrono.IsoChronology"}, {"package_name": "android.nfc.tech", "class_name": "IsoDep", "full_name": "android.nfc.tech.IsoDep"}, {"package_name": "java.time.chrono", "class_name": "IsoEra", "full_name": "java.time.chrono.IsoEra"}, {"package_name": "java.time.temporal", "class_name": "IsoFields", "full_name": "java.time.temporal.IsoFields"}, {"package_name": "android.test", "class_name": "IsolatedContext", "full_name": "android.test.IsolatedContext"}, {"package_name": "javax.crypto.spec", "class_name": "IvParameterSpec", "full_name": "javax.crypto.spec.IvParameterSpec"}, {"package_name": "android.icu.util", "class_name": "JapaneseCalendar", "full_name": "android.icu.util.JapaneseCalendar"}, {"package_name": "java.time.chrono", "class_name": "JapaneseChronology", "full_name": "java.time.chrono.JapaneseChronology"}, {"package_name": "java.time.chrono", "class_name": "JapaneseDate", "full_name": "java.time.chrono.JapaneseDate"}, {"package_name": "java.time.chrono", "class_name": "JapaneseEra", "full_name": "java.time.chrono.JapaneseEra"}, {"package_name": "java.util.jar", "class_name": "JarEntry", "full_name": "java.util.jar.JarEntry"}, {"package_name": "java.util.jar", "class_name": "JarException", "full_name": "java.util.jar.JarException"}, {"package_name": "java.util.jar", "class_name": "JarFile", "full_name": "java.util.jar.JarFile"}, {"package_name": "java.util.jar", "class_name": "JarInputStream", "full_name": "java.util.jar.JarInputStream"}, {"package_name": "java.util.jar", "class_name": "JarOutputStream", "full_name": "java.util.jar.JarOutputStream"}, {"package_name": "java.net", "class_name": "JarURLConnection", "full_name": "java.net.JarURLConnection"}, {"package_name": "android.webkit", "class_name": "JavascriptInterface", "full_name": "android.webkit.JavascriptInterface"}, {"package_name": "android.media", "class_name": "JetPlayer", "full_name": "android.media.JetPlayer"}, {"package_name": "android.media", "class_name": "JetPlayer.OnJetEventListener", "full_name": "android.media.JetPlayer.OnJetEventListener"}, {"package_name": "android.app.job", "class_name": "JobInfo", "full_name": "android.app.job.JobInfo"}, {"package_name": "android.app.job", "class_name": "JobInfo.Builder", "full_name": "android.app.job.JobInfo.Builder"}, {"package_name": "android.app.job", "class_name": "JobInfo.TriggerContentUri", "full_name": "android.app.job.JobInfo.TriggerContentUri"}, {"package_name": "android.app.job", "class_name": "JobParameters", "full_name": "android.app.job.JobParameters"}, {"package_name": "android.app.job", "class_name": "JobScheduler", "full_name": "android.app.job.JobScheduler"}, {"package_name": "android.app.job", "class_name": "JobService", "full_name": "android.app.job.JobService"}, {"package_name": "android.app.job", "class_name": "JobServiceEngine", "full_name": "android.app.job.JobServiceEngine"}, {"package_name": "android.app.job", "class_name": "JobWorkItem", "full_name": "android.app.job.JobWorkItem"}, {"package_name": "org.json", "class_name": "JSONArray", "full_name": "org.json.JSONArray"}, {"package_name": "org.json", "class_name": "JSONException", "full_name": "org.json.JSONException"}, {"package_name": "org.json", "class_name": "JSONObject", "full_name": "org.json.JSONObject"}, {"package_name": "android.util", "class_name": "JsonReader", "full_name": "android.util.JsonReader"}, {"package_name": "org.json", "class_name": "JSONStringer", "full_name": "org.json.JSONStringer"}, {"package_name": "android.util", "class_name": "JsonToken", "full_name": "android.util.JsonToken"}, {"package_name": "org.json", "class_name": "JSONTokener", "full_name": "org.json.JSONTokener"}, {"package_name": "android.util", "class_name": "JsonWriter", "full_name": "android.util.JsonWriter"}, {"package_name": "android.webkit", "class_name": "JsPromptResult", "full_name": "android.webkit.JsPromptResult"}, {"package_name": "android.webkit", "class_name": "JsResult", "full_name": "android.webkit.JsResult"}, {"package_name": "java.time.temporal", "class_name": "JulianFields", "full_name": "java.time.temporal.JulianFields"}, {"package_name": "java.security", "class_name": "Key", "full_name": "java.security.Key"}, {"package_name": "javax.crypto", "class_name": "KeyAgreement", "full_name": "javax.crypto.KeyAgreement"}, {"package_name": "javax.crypto", "class_name": "KeyAgreementSpi", "full_name": "javax.crypto.KeyAgreementSpi"}, {"package_name": "android.inputmethodservice", "class_name": "Keyboard", "full_name": "android.inputmethodservice.Keyboard"}, {"package_name": "android.inputmethodservice", "class_name": "Keyboard.Key", "full_name": "android.inputmethodservice.Keyboard.Key"}, {"package_name": "android.inputmethodservice", "class_name": "Keyboard.Row", "full_name": "android.inputmethodservice.Keyboard.Row"}, {"package_name": "android.view", "class_name": "KeyboardShortcutGroup", "full_name": "android.view.KeyboardShortcutGroup"}, {"package_name": "android.view", "class_name": "KeyboardShortcutInfo", "full_name": "android.view.KeyboardShortcutInfo"}, {"package_name": "android.inputmethodservice", "class_name": "KeyboardView", "full_name": "android.inputmethodservice.KeyboardView"}, {"package_name": "android.inputmethodservice", "class_name": "KeyboardView.OnKeyboardActionListener", "full_name": "android.inputmethodservice.KeyboardView.OnKeyboardActionListener"}, {"package_name": "android.security", "class_name": "KeyChain", "full_name": "android.security.KeyChain"}, {"package_name": "android.security", "class_name": "KeyChainAliasCallback", "full_name": "android.security.KeyChainAliasCallback"}, {"package_name": "android.security", "class_name": "KeyChainException", "full_name": "android.security.KeyChainException"}, {"package_name": "android.view", "class_name": "KeyCharacterMap", "full_name": "android.view.KeyCharacterMap"}, {"package_name": "android.view", "class_name": "KeyCharacterMap.KeyData", "full_name": "android.view.KeyCharacterMap.KeyData"}, {"package_name": "android.view", "class_name": "KeyCharacterMap.UnavailableException", "full_name": "android.view.KeyCharacterMap.UnavailableException"}, {"package_name": "android.view", "class_name": "KeyEvent", "full_name": "android.view.KeyEvent"}, {"package_name": "android.view", "class_name": "KeyEvent.Callback", "full_name": "android.view.KeyEvent.Callback"}, {"package_name": "android.view", "class_name": "KeyEvent.DispatcherState", "full_name": "android.view.KeyEvent.DispatcherState"}, {"package_name": "java.security", "class_name": "KeyException", "full_name": "java.security.KeyException"}, {"package_name": "android.security.keystore", "class_name": "KeyExpiredException", "full_name": "android.security.keystore.KeyExpiredException"}, {"package_name": "java.security", "class_name": "KeyFactory", "full_name": "java.security.KeyFactory"}, {"package_name": "java.security", "class_name": "KeyFactorySpi", "full_name": "java.security.KeyFactorySpi"}, {"package_name": "android.animation", "class_name": "Keyframe", "full_name": "android.animation.Keyframe"}, {"package_name": "javax.crypto", "class_name": "KeyGenerator", "full_name": "javax.crypto.KeyGenerator"}, {"package_name": "javax.crypto", "class_name": "KeyGeneratorSpi", "full_name": "javax.crypto.KeyGeneratorSpi"}, {"package_name": "android.security.keystore", "class_name": "KeyGenParameterSpec", "full_name": "android.security.keystore.KeyGenParameterSpec"}, {"package_name": "android.security.keystore", "class_name": "KeyGenParameterSpec.Builder", "full_name": "android.security.keystore.KeyGenParameterSpec.Builder"}, {"package_name": "android.app", "class_name": "KeyguardManager", "full_name": "android.app.KeyguardManager"}, {"package_name": "android.app", "class_name": "KeyguardManager.KeyguardDismissCallback", "full_name": "android.app.KeyguardManager.KeyguardDismissCallback"}, {"package_name": "android.app", "class_name": "KeyguardManager.KeyguardLock", "full_name": "android.app.KeyguardManager.KeyguardLock"}, {"package_name": "android.app", "class_name": "KeyguardManager.OnKeyguardExitResult", "full_name": "android.app.KeyguardManager.OnKeyguardExitResult"}, {"package_name": "android.security.keystore", "class_name": "KeyInfo", "full_name": "android.security.keystore.KeyInfo"}, {"package_name": "android.text.method", "class_name": "KeyListener", "full_name": "android.text.method.KeyListener"}, {"package_name": "java.security", "class_name": "KeyManagementException", "full_name": "java.security.KeyManagementException"}, {"package_name": "javax.net.ssl", "class_name": "KeyManager", "full_name": "javax.net.ssl.KeyManager"}, {"package_name": "javax.net.ssl", "class_name": "KeyManagerFactory", "full_name": "javax.net.ssl.KeyManagerFactory"}, {"package_name": "javax.net.ssl", "class_name": "KeyManagerFactorySpi", "full_name": "javax.net.ssl.KeyManagerFactorySpi"}, {"package_name": "android.security.keystore", "class_name": "KeyNotYetValidException", "full_name": "android.security.keystore.KeyNotYetValidException"}, {"package_name": "java.security", "class_name": "KeyPair", "full_name": "java.security.KeyPair"}, {"package_name": "java.security", "class_name": "KeyPairGenerator", "full_name": "java.security.KeyPairGenerator"}, {"package_name": "android.security", "class_name": "KeyPairGeneratorSpec", "full_name": "android.security.KeyPairGeneratorSpec"}, {"package_name": "android.security", "class_name": "KeyPairGeneratorSpec.Builder", "full_name": "android.security.KeyPairGeneratorSpec.Builder"}, {"package_name": "java.security", "class_name": "KeyPairGeneratorSpi", "full_name": "java.security.KeyPairGeneratorSpi"}, {"package_name": "android.security.keystore", "class_name": "KeyPermanentlyInvalidatedException", "full_name": "android.security.keystore.KeyPermanentlyInvalidatedException"}, {"package_name": "android.security.keystore", "class_name": "KeyProperties", "full_name": "android.security.keystore.KeyProperties"}, {"package_name": "android.security.keystore", "class_name": "KeyProtection", "full_name": "android.security.keystore.KeyProtection"}, {"package_name": "android.security.keystore", "class_name": "KeyProtection.Builder", "full_name": "android.security.keystore.KeyProtection.Builder"}, {"package_name": "java.security", "class_name": "KeyRep", "full_name": "java.security.KeyRep"}, {"package_name": "java.security", "class_name": "KeyRep.Type", "full_name": "java.security.KeyRep.Type"}, {"package_name": "java.security.spec", "class_name": "KeySpec", "full_name": "java.security.spec.KeySpec"}, {"package_name": "java.security", "class_name": "KeyStore", "full_name": "java.security.KeyStore"}, {"package_name": "java.security", "class_name": "KeyStore.Builder", "full_name": "java.security.KeyStore.Builder"}, {"package_name": "java.security", "class_name": "KeyStore.CallbackHandlerProtection", "full_name": "java.security.KeyStore.CallbackHandlerProtection"}, {"package_name": "java.security", "class_name": "KeyStore.Entry", "full_name": "java.security.KeyStore.Entry"}, {"package_name": "java.security", "class_name": "KeyStore.Entry.Attribute", "full_name": "java.security.KeyStore.Entry.Attribute"}, {"package_name": "java.security", "class_name": "KeyStore.LoadStoreParameter", "full_name": "java.security.KeyStore.LoadStoreParameter"}, {"package_name": "java.security", "class_name": "KeyStore.PasswordProtection", "full_name": "java.security.KeyStore.PasswordProtection"}, {"package_name": "java.security", "class_name": "KeyStore.PrivateKeyEntry", "full_name": "java.security.KeyStore.PrivateKeyEntry"}, {"package_name": "java.security", "class_name": "KeyStore.ProtectionParameter", "full_name": "java.security.KeyStore.ProtectionParameter"}, {"package_name": "java.security", "class_name": "KeyStore.SecretKeyEntry", "full_name": "java.security.KeyStore.SecretKeyEntry"}, {"package_name": "java.security", "class_name": "KeyStore.TrustedCertificateEntry", "full_name": "java.security.KeyStore.TrustedCertificateEntry"}, {"package_name": "javax.net.ssl", "class_name": "KeyStoreBuilderParameters", "full_name": "javax.net.ssl.KeyStoreBuilderParameters"}, {"package_name": "java.security", "class_name": "KeyStoreException", "full_name": "java.security.KeyStoreException"}, {"package_name": "android.security", "class_name": "KeyStoreParameter", "full_name": "android.security.KeyStoreParameter"}, {"package_name": "android.security", "class_name": "KeyStoreParameter.Builder", "full_name": "android.security.KeyStoreParameter.Builder"}, {"package_name": "java.security", "class_name": "KeyStoreSpi", "full_name": "java.security.KeyStoreSpi"}, {"package_name": "android.content.pm", "class_name": "LabeledIntent", "full_name": "android.content.pm.LabeledIntent"}, {"package_name": "java.lang.invoke", "class_name": "LambdaConversionException", "full_name": "java.lang.invoke.LambdaConversionException"}, {"package_name": "android.test.suitebuilder.annotation", "class_name": "LargeTest", "full_name": "android.test.suitebuilder.annotation.LargeTest"}, {"package_name": "java.security.acl", "class_name": "LastOwnerException", "full_name": "java.security.acl.LastOwnerException"}, {"package_name": "android.app", "class_name": "LauncherActivity", "full_name": "android.app.LauncherActivity"}, {"package_name": "android.app", "class_name": "LauncherActivity.IconResizer", "full_name": "android.app.LauncherActivity.IconResizer"}, {"package_name": "android.app", "class_name": "LauncherActivity.ListItem", "full_name": "android.app.LauncherActivity.ListItem"}, {"package_name": "android.content.pm", "class_name": "LauncherActivityInfo", "full_name": "android.content.pm.LauncherActivityInfo"}, {"package_name": "android.content.pm", "class_name": "LauncherApps", "full_name": "android.content.pm.LauncherApps"}, {"package_name": "android.content.pm", "class_name": "LauncherApps.Callback", "full_name": "android.content.pm.LauncherApps.Callback"}, {"package_name": "android.content.pm", "class_name": "LauncherApps.PinItemRequest", "full_name": "android.content.pm.LauncherApps.PinItemRequest"}, {"package_name": "android.content.pm", "class_name": "LauncherApps.ShortcutQuery", "full_name": "android.content.pm.LauncherApps.ShortcutQuery"}, {"package_name": "android.graphics.drawable", "class_name": "LayerDrawable", "full_name": "android.graphics.drawable.LayerDrawable"}, {"package_name": "org.apache.http.conn.scheme", "class_name": "LayeredSocketFactory", "full_name": "org.apache.http.conn.scheme.LayeredSocketFactory"}, {"package_name": "android.text", "class_name": "Layout", "full_name": "android.text.Layout"}, {"package_name": "android.text", "class_name": "Layout.Alignment", "full_name": "android.text.Layout.Alignment"}, {"package_name": "android.text", "class_name": "Layout.Directions", "full_name": "android.text.Layout.Directions"}, {"package_name": "android.view.animation", "class_name": "LayoutAnimationController", "full_name": "android.view.animation.LayoutAnimationController"}, {"package_name": "android.view.animation", "class_name": "LayoutAnimationController.AnimationParameters", "full_name": "android.view.animation.LayoutAnimationController.AnimationParameters"}, {"package_name": "android.util", "class_name": "LayoutDirection", "full_name": "android.util.LayoutDirection"}, {"package_name": "android.view", "class_name": "LayoutInflater", "full_name": "android.view.LayoutInflater"}, {"package_name": "android.view", "class_name": "LayoutInflater.Factory", "full_name": "android.view.LayoutInflater.Factory"}, {"package_name": "android.view", "class_name": "LayoutInflater.Filter", "full_name": "android.view.LayoutInflater.Filter"}, {"package_name": "android.animation", "class_name": "LayoutTransition", "full_name": "android.animation.LayoutTransition"}, {"package_name": "android.animation", "class_name": "LayoutTransition.TransitionListener", "full_name": "android.animation.LayoutTransition.TransitionListener"}, {"package_name": "java.security.cert", "class_name": "LDAPCertStoreParameters", "full_name": "java.security.cert.LDAPCertStoreParameters"}, {"package_name": "android.text.style", "class_name": "LeadingMarginSpan", "full_name": "android.text.style.LeadingMarginSpan"}, {"package_name": "android.text.style", "class_name": "LeadingMarginSpan.Standard", "full_name": "android.text.style.LeadingMarginSpan.Standard"}, {"package_name": "android.os.strictmode", "class_name": "LeakedClosableViolation", "full_name": "android.os.strictmode.LeakedClosableViolation"}, {"package_name": "java.util.logging", "class_name": "Level", "full_name": "java.util.logging.Level"}, {"package_name": "android.graphics.drawable", "class_name": "LevelListDrawable", "full_name": "android.graphics.drawable.LevelListDrawable"}, {"package_name": "org.xml.sax.ext", "class_name": "LexicalHandler", "full_name": "org.xml.sax.ext.LexicalHandler"}, {"package_name": "android.graphics", "class_name": "LightingColorFilter", "full_name": "android.graphics.LightingColorFilter"}, {"package_name": "android.graphics", "class_name": "LinearGradient", "full_name": "android.graphics.LinearGradient"}, {"package_name": "android.view.animation", "class_name": "LinearInterpolator", "full_name": "android.view.animation.LinearInterpolator"}, {"package_name": "android.widget", "class_name": "LinearLayout", "full_name": "android.widget.LinearLayout"}, {"package_name": "android.widget", "class_name": "LinearLayout.LayoutParams", "full_name": "android.widget.LinearLayout.LayoutParams"}, {"package_name": "android.text.style", "class_name": "LineBackgroundSpan", "full_name": "android.text.style.LineBackgroundSpan"}, {"package_name": "android.text.style", "class_name": "LineHeightSpan", "full_name": "android.text.style.LineHeightSpan"}, {"package_name": "android.text.style", "class_name": "LineHeightSpan.WithDensity", "full_name": "android.text.style.LineHeightSpan.WithDensity"}, {"package_name": "java.io", "class_name": "LineNumberInputStream", "full_name": "java.io.LineNumberInputStream"}, {"package_name": "java.io", "class_name": "LineNumberReader", "full_name": "java.io.LineNumberReader"}, {"package_name": "android.net", "class_name": "LinkAddress", "full_name": "android.net.LinkAddress"}, {"package_name": "java.lang", "class_name": "LinkageError", "full_name": "java.lang.LinkageError"}, {"package_name": "android.text.util", "class_name": "Linkify", "full_name": "android.text.util.Linkify"}, {"package_name": "android.text.util", "class_name": "Linkify.MatchFilter", "full_name": "android.text.util.Linkify.MatchFilter"}, {"package_name": "android.text.util", "class_name": "Linkify.TransformFilter", "full_name": "android.text.util.Linkify.TransformFilter"}, {"package_name": "android.text.method", "class_name": "LinkMovementMethod", "full_name": "android.text.method.LinkMovementMethod"}, {"package_name": "java.nio.file", "class_name": "LinkOption", "full_name": "java.nio.file.LinkOption"}, {"package_name": "java.nio.file", "class_name": "LinkPermission", "full_name": "java.nio.file.LinkPermission"}, {"package_name": "android.net", "class_name": "LinkProperties", "full_name": "android.net.LinkProperties"}, {"package_name": "android.app", "class_name": "ListActivity", "full_name": "android.app.ListActivity"}, {"package_name": "android.widget", "class_name": "ListAdapter", "full_name": "android.widget.ListAdapter"}, {"package_name": "android.icu.text", "class_name": "ListFormatter", "full_name": "android.icu.text.ListFormatter"}, {"package_name": "android.app", "class_name": "ListFragment", "full_name": "android.app.ListFragment"}, {"package_name": "android.widget", "class_name": "ListPopupWindow", "full_name": "android.widget.ListPopupWindow"}, {"package_name": "android.preference", "class_name": "ListPreference", "full_name": "android.preference.ListPreference"}, {"package_name": "java.util", "class_name": "ListResourceBundle", "full_name": "java.util.ListResourceBundle"}, {"package_name": "android.widget", "class_name": "ListView", "full_name": "android.widget.ListView"}, {"package_name": "android.widget", "class_name": "ListView.FixedViewInfo", "full_name": "android.widget.ListView.FixedViewInfo"}, {"package_name": "android.provider", "class_name": "LiveFolders", "full_name": "android.provider.LiveFolders"}, {"package_name": "android.content", "class_name": "Loader.ForceLoadContentObserver", "full_name": "android.content.Loader.ForceLoadContentObserver"}, {"package_name": "android.app", "class_name": "LoaderManager", "full_name": "android.app.LoaderManager"}, {"package_name": "android.test", "class_name": "LoaderTestCase", "full_name": "android.test.LoaderTestCase"}, {"package_name": "android.app", "class_name": "LocalActivityManager", "full_name": "android.app.LocalActivityManager"}, {"package_name": "java.time", "class_name": "LocalDate", "full_name": "java.time.LocalDate"}, {"package_name": "java.time", "class_name": "LocalDateTime", "full_name": "java.time.LocalDateTime"}, {"package_name": "java.util", "class_name": "Locale", "full_name": "java.util.Locale"}, {"package_name": "java.util", "class_name": "Locale.Builder", "full_name": "java.util.Locale.Builder"}, {"package_name": "java.util", "class_name": "Locale.Category", "full_name": "java.util.Locale.Category"}, {"package_name": "java.util", "class_name": "Locale.FilteringMode", "full_name": "java.util.Locale.FilteringMode"}, {"package_name": "java.util", "class_name": "Locale.LanguageRange", "full_name": "java.util.Locale.LanguageRange"}, {"package_name": "android.icu.util", "class_name": "LocaleData", "full_name": "android.icu.util.LocaleData"}, {"package_name": "android.icu.util", "class_name": "LocaleData.MeasurementSystem", "full_name": "android.icu.util.LocaleData.MeasurementSystem"}, {"package_name": "android.icu.util", "class_name": "LocaleData.PaperSize", "full_name": "android.icu.util.LocaleData.PaperSize"}, {"package_name": "android.icu.text", "class_name": "LocaleDisplayNames", "full_name": "android.icu.text.LocaleDisplayNames"}, {"package_name": "android.icu.text", "class_name": "LocaleDisplayNames.DialectHandling", "full_name": "android.icu.text.LocaleDisplayNames.DialectHandling"}, {"package_name": "android.icu.text", "class_name": "LocaleDisplayNames.UiListItem", "full_name": "android.icu.text.LocaleDisplayNames.UiListItem"}, {"package_name": "android.os", "class_name": "LocaleList", "full_name": "android.os.LocaleList"}, {"package_name": "android.text.style", "class_name": "LocaleSpan", "full_name": "android.text.style.LocaleSpan"}, {"package_name": "android.net", "class_name": "LocalServerSocket", "full_name": "android.net.LocalServerSocket"}, {"package_name": "android.net", "class_name": "LocalSocket", "full_name": "android.net.LocalSocket"}, {"package_name": "android.net", "class_name": "LocalSocketAddress", "full_name": "android.net.LocalSocketAddress"}, {"package_name": "android.net", "class_name": "LocalSocketAddress.Namespace", "full_name": "android.net.LocalSocketAddress.Namespace"}, {"package_name": "java.time", "class_name": "LocalTime", "full_name": "java.time.LocalTime"}, {"package_name": "android.location", "class_name": "Location", "full_name": "android.location.Location"}, {"package_name": "android.location", "class_name": "LocationListener", "full_name": "android.location.LocationListener"}, {"package_name": "android.location", "class_name": "LocationManager", "full_name": "android.location.LocationManager"}, {"package_name": "android.location", "class_name": "LocationProvider", "full_name": "android.location.LocationProvider"}, {"package_name": "org.xml.sax", "class_name": "Locator", "full_name": "org.xml.sax.Locator"}, {"package_name": "org.xml.sax.helpers", "class_name": "LocatorImpl", "full_name": "org.xml.sax.helpers.LocatorImpl"}, {"package_name": "java.util.concurrent.locks", "class_name": "Lock", "full_name": "java.util.concurrent.locks.Lock"}, {"package_name": "java.util.concurrent.locks", "class_name": "LockSupport", "full_name": "java.util.concurrent.locks.LockSupport"}, {"package_name": "android.util", "class_name": "Log", "full_name": "android.util.Log"}, {"package_name": "java.util.logging", "class_name": "Logger", "full_name": "java.util.logging.Logger"}, {"package_name": "java.util.logging", "class_name": "LoggingMXBean", "full_name": "java.util.logging.LoggingMXBean"}, {"package_name": "java.util.logging", "class_name": "LoggingPermission", "full_name": "java.util.logging.LoggingPermission"}, {"package_name": "javax.security.auth.login", "class_name": "LoginException", "full_name": "javax.security.auth.login.LoginException"}, {"package_name": "android.text", "class_name": "LoginFilter", "full_name": "android.text.LoginFilter"}, {"package_name": "android.text", "class_name": "LoginFilter.PasswordFilterGMail", "full_name": "android.text.LoginFilter.PasswordFilterGMail"}, {"package_name": "android.text", "class_name": "LoginFilter.UsernameFilterGeneric", "full_name": "android.text.LoginFilter.UsernameFilterGeneric"}, {"package_name": "android.text", "class_name": "LoginFilter.UsernameFilterGMail", "full_name": "android.text.LoginFilter.UsernameFilterGMail"}, {"package_name": "java.util.logging", "class_name": "LogManager", "full_name": "java.util.logging.LogManager"}, {"package_name": "android.util", "class_name": "LogPrinter", "full_name": "android.util.LogPrinter"}, {"package_name": "java.util.logging", "class_name": "LogRecord", "full_name": "java.util.logging.LogRecord"}, {"package_name": "java.lang", "class_name": "Long", "full_name": "java.lang.Long"}, {"package_name": "java.util.concurrent.atomic", "class_name": "LongAccumulator", "full_name": "java.util.concurrent.atomic.LongAccumulator"}, {"package_name": "java.util.concurrent.atomic", "class_name": "LongAdder", "full_name": "java.util.concurrent.atomic.LongAdder"}, {"package_name": "java.util.function", "class_name": "LongBinaryOperator", "full_name": "java.util.function.LongBinaryOperator"}, {"package_name": "java.nio", "class_name": "LongBuffer", "full_name": "java.nio.LongBuffer"}, {"package_name": "java.util.function", "class_name": "LongConsumer", "full_name": "java.util.function.LongConsumer"}, {"package_name": "java.util.function", "class_name": "LongPredicate", "full_name": "java.util.function.LongPredicate"}, {"package_name": "java.util.stream", "class_name": "LongStream", "full_name": "java.util.stream.LongStream"}, {"package_name": "java.util.stream", "class_name": "LongStream.Builder", "full_name": "java.util.stream.LongStream.Builder"}, {"package_name": "java.util", "class_name": "LongSummaryStatistics", "full_name": "java.util.LongSummaryStatistics"}, {"package_name": "java.util.function", "class_name": "LongSupplier", "full_name": "java.util.function.LongSupplier"}, {"package_name": "java.util.function", "class_name": "LongToDoubleFunction", "full_name": "java.util.function.LongToDoubleFunction"}, {"package_name": "java.util.function", "class_name": "LongToIntFunction", "full_name": "java.util.function.LongToIntFunction"}, {"package_name": "java.util.function", "class_name": "LongUnaryOperator", "full_name": "java.util.function.LongUnaryOperator"}, {"package_name": "android.os", "class_name": "Looper", "full_name": "android.os.Looper"}, {"package_name": "android.media.audiofx", "class_name": "LoudnessEnhancer", "full_name": "android.media.audiofx.LoudnessEnhancer"}, {"package_name": "android.service.autofill", "class_name": "LuhnChecksumValidator", "full_name": "android.service.autofill.LuhnChecksumValidator"}, {"package_name": "javax.crypto", "class_name": "Mac", "full_name": "javax.crypto.Mac"}, {"package_name": "android.net", "class_name": "MacAddress", "full_name": "android.net.MacAddress"}, {"package_name": "javax.crypto", "class_name": "MacSpi", "full_name": "javax.crypto.MacSpi"}, {"package_name": "android.widget", "class_name": "Magnifier", "full_name": "android.widget.Magnifier"}, {"package_name": "android.net", "class_name": "MailTo", "full_name": "android.net.MailTo"}, {"package_name": "java.nio.charset", "class_name": "MalformedInputException", "full_name": "java.nio.charset.MalformedInputException"}, {"package_name": "android.util", "class_name": "MalformedJsonException", "full_name": "android.util.MalformedJsonException"}, {"package_name": "java.lang.reflect", "class_name": "MalformedParameterizedTypeException", "full_name": "java.lang.reflect.MalformedParameterizedTypeException"}, {"package_name": "java.lang.reflect", "class_name": "MalformedParametersException", "full_name": "java.lang.reflect.MalformedParametersException"}, {"package_name": "java.net", "class_name": "MalformedURLException", "full_name": "java.net.MalformedURLException"}, {"package_name": "javax.net.ssl", "class_name": "ManagerFactoryParameters", "full_name": "javax.net.ssl.ManagerFactoryParameters"}, {"package_name": "android", "class_name": "Manifest", "full_name": "android.Manifest"}, {"package_name": "java.util.jar", "class_name": "Manifest", "full_name": "java.util.jar.Manifest"}, {"package_name": "android", "class_name": "Manifest.permission", "full_name": "android.Manifest.permission"}, {"package_name": "android", "class_name": "Manifest.permission_group", "full_name": "android.Manifest.permission_group"}, {"package_name": "java.nio", "class_name": "MappedByteBuffer", "full_name": "java.nio.MappedByteBuffer"}, {"package_name": "android.graphics", "class_name": "MaskFilter", "full_name": "android.graphics.MaskFilter"}, {"package_name": "android.text.style", "class_name": "MaskFilterSpan", "full_name": "android.text.style.MaskFilterSpan"}, {"package_name": "java.util.regex", "class_name": "Matcher", "full_name": "java.util.regex.Matcher"}, {"package_name": "java.util.regex", "class_name": "MatchResult", "full_name": "java.util.regex.MatchResult"}, {"package_name": "java.lang", "class_name": "Math", "full_name": "java.lang.Math"}, {"package_name": "android.icu.math", "class_name": "MathContext", "full_name": "android.icu.math.MathContext"}, {"package_name": "java.math", "class_name": "MathContext", "full_name": "java.math.MathContext"}, {"package_name": "android.graphics", "class_name": "Matrix", "full_name": "android.graphics.Matrix"}, {"package_name": "android.opengl", "class_name": "Matrix", "full_name": "android.opengl.Matrix"}, {"package_name": "android.graphics", "class_name": "Matrix.ScaleToFit", "full_name": "android.graphics.Matrix.ScaleToFit"}, {"package_name": "android.database", "class_name": "MatrixCursor", "full_name": "android.database.MatrixCursor"}, {"package_name": "android.database", "class_name": "MatrixCursor.RowBuilder", "full_name": "android.database.MatrixCursor.RowBuilder"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsDownloadReceiver", "full_name": "android.telephony.mbms.MbmsDownloadReceiver"}, {"package_name": "android.telephony", "class_name": "MbmsDownloadSession", "full_name": "android.telephony.MbmsDownloadSession"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsDownloadSessionCallback", "full_name": "android.telephony.mbms.MbmsDownloadSessionCallback"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsErrors", "full_name": "android.telephony.mbms.MbmsErrors"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsErrors.DownloadErrors", "full_name": "android.telephony.mbms.MbmsErrors.DownloadErrors"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsErrors.GeneralErrors", "full_name": "android.telephony.mbms.MbmsErrors.GeneralErrors"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsErrors.InitializationErrors", "full_name": "android.telephony.mbms.MbmsErrors.InitializationErrors"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsErrors.StreamingErrors", "full_name": "android.telephony.mbms.MbmsErrors.StreamingErrors"}, {"package_name": "android.telephony", "class_name": "MbmsStreamingSession", "full_name": "android.telephony.MbmsStreamingSession"}, {"package_name": "android.telephony.mbms", "class_name": "MbmsStreamingSessionCallback", "full_name": "android.telephony.mbms.MbmsStreamingSessionCallback"}, {"package_name": "android.icu.util", "class_name": "Measure", "full_name": "android.icu.util.Measure"}, {"package_name": "android.icu.text", "class_name": "MeasureFormat", "full_name": "android.icu.text.MeasureFormat"}, {"package_name": "android.icu.text", "class_name": "MeasureFormat.FormatWidth", "full_name": "android.icu.text.MeasureFormat.FormatWidth"}, {"package_name": "android.icu.util", "class_name": "MeasureUnit", "full_name": "android.icu.util.MeasureUnit"}, {"package_name": "android.media", "class_name": "MediaActionSound", "full_name": "android.media.MediaActionSound"}, {"package_name": "android.media.browse", "class_name": "MediaBrowser", "full_name": "android.media.browse.MediaBrowser"}, {"package_name": "android.media.browse", "class_name": "MediaBrowser.ConnectionCallback", "full_name": "android.media.browse.MediaBrowser.ConnectionCallback"}, {"package_name": "android.media.browse", "class_name": "MediaBrowser.ItemCallback", "full_name": "android.media.browse.MediaBrowser.ItemCallback"}, {"package_name": "android.media.browse", "class_name": "MediaBrowser.MediaItem", "full_name": "android.media.browse.MediaBrowser.MediaItem"}, {"package_name": "android.media.browse", "class_name": "MediaBrowser.SubscriptionCallback", "full_name": "android.media.browse.MediaBrowser.SubscriptionCallback"}, {"package_name": "android.service.media", "class_name": "MediaBrowserService", "full_name": "android.service.media.MediaBrowserService"}, {"package_name": "android.service.media", "class_name": "MediaBrowserService.BrowserRoot", "full_name": "android.service.media.MediaBrowserService.BrowserRoot"}, {"package_name": "android.media", "class_name": "MediaCas", "full_name": "android.media.MediaCas"}, {"package_name": "android.media", "class_name": "MediaCas.EventListener", "full_name": "android.media.MediaCas.EventListener"}, {"package_name": "android.media", "class_name": "MediaCas.PluginDescriptor", "full_name": "android.media.MediaCas.PluginDescriptor"}, {"package_name": "android.media", "class_name": "MediaCas.Session", "full_name": "android.media.MediaCas.Session"}, {"package_name": "android.media", "class_name": "MediaCasException", "full_name": "android.media.MediaCasException"}, {"package_name": "android.media", "class_name": "MediaCasException.DeniedByServerException", "full_name": "android.media.MediaCasException.DeniedByServerException"}, {"package_name": "android.media", "class_name": "MediaCasException.NotProvisionedException", "full_name": "android.media.MediaCasException.NotProvisionedException"}, {"package_name": "android.media", "class_name": "MediaCasException.ResourceBusyException", "full_name": "android.media.MediaCasException.ResourceBusyException"}, {"package_name": "android.media", "class_name": "MediaCasException.UnsupportedCasException", "full_name": "android.media.MediaCasException.UnsupportedCasException"}, {"package_name": "android.media", "class_name": "MediaCasStateException", "full_name": "android.media.MediaCasStateException"}, {"package_name": "android.media", "class_name": "MediaCodec", "full_name": "android.media.MediaCodec"}, {"package_name": "android.media", "class_name": "MediaCodec.BufferInfo", "full_name": "android.media.MediaCodec.BufferInfo"}, {"package_name": "android.media", "class_name": "MediaCodec.Callback", "full_name": "android.media.MediaCodec.Callback"}, {"package_name": "android.media", "class_name": "MediaCodec.CodecException", "full_name": "android.media.MediaCodec.CodecException"}, {"package_name": "android.media", "class_name": "MediaCodec.CryptoException", "full_name": "android.media.MediaCodec.CryptoException"}, {"package_name": "android.media", "class_name": "MediaCodec.CryptoInfo", "full_name": "android.media.MediaCodec.CryptoInfo"}, {"package_name": "android.media", "class_name": "MediaCodec.CryptoInfo.Pattern", "full_name": "android.media.MediaCodec.CryptoInfo.Pattern"}, {"package_name": "android.media", "class_name": "MediaCodec.MetricsConstants", "full_name": "android.media.MediaCodec.MetricsConstants"}, {"package_name": "android.media", "class_name": "MediaCodec.OnFrameRenderedListener", "full_name": "android.media.MediaCodec.OnFrameRenderedListener"}, {"package_name": "android.media", "class_name": "MediaCodecInfo", "full_name": "android.media.MediaCodecInfo"}, {"package_name": "android.media", "class_name": "MediaCodecInfo.AudioCapabilities", "full_name": "android.media.MediaCodecInfo.AudioCapabilities"}, {"package_name": "android.media", "class_name": "MediaCodecInfo.CodecCapabilities", "full_name": "android.media.MediaCodecInfo.CodecCapabilities"}, {"package_name": "android.media", "class_name": "MediaCodecInfo.CodecProfileLevel", "full_name": "android.media.MediaCodecInfo.CodecProfileLevel"}, {"package_name": "android.media", "class_name": "MediaCodecInfo.EncoderCapabilities", "full_name": "android.media.MediaCodecInfo.EncoderCapabilities"}, {"package_name": "android.media", "class_name": "MediaCodecInfo.VideoCapabilities", "full_name": "android.media.MediaCodecInfo.VideoCapabilities"}, {"package_name": "android.media", "class_name": "MediaCodecList", "full_name": "android.media.MediaCodecList"}, {"package_name": "android.media.session", "class_name": "MediaController", "full_name": "android.media.session.MediaController"}, {"package_name": "android.widget", "class_name": "MediaController", "full_name": "android.widget.MediaController"}, {"package_name": "android.media.session", "class_name": "MediaController.Callback", "full_name": "android.media.session.MediaController.Callback"}, {"package_name": "android.widget", "class_name": "MediaController.MediaPlayerControl", "full_name": "android.widget.MediaController.MediaPlayerControl"}, {"package_name": "android.media.session", "class_name": "MediaController.PlaybackInfo", "full_name": "android.media.session.MediaController.PlaybackInfo"}, {"package_name": "android.media.session", "class_name": "MediaController.TransportControls", "full_name": "android.media.session.MediaController.TransportControls"}, {"package_name": "android.media", "class_name": "MediaCrypto", "full_name": "android.media.MediaCrypto"}, {"package_name": "android.media", "class_name": "MediaCryptoException", "full_name": "android.media.MediaCryptoException"}, {"package_name": "android.media", "class_name": "MediaDataSource", "full_name": "android.media.MediaDataSource"}, {"package_name": "android.media", "class_name": "MediaDescrambler", "full_name": "android.media.MediaDescrambler"}, {"package_name": "android.media", "class_name": "MediaDescription", "full_name": "android.media.MediaDescription"}, {"package_name": "android.media", "class_name": "MediaDescription.Builder", "full_name": "android.media.MediaDescription.Builder"}, {"package_name": "android.media", "class_name": "MediaDrm", "full_name": "android.media.MediaDrm"}, {"package_name": "android.media", "class_name": "MediaDrm.CryptoSession", "full_name": "android.media.MediaDrm.CryptoSession"}, {"package_name": "android.media", "class_name": "MediaDrm.HdcpLevel", "full_name": "android.media.MediaDrm.HdcpLevel"}, {"package_name": "android.media", "class_name": "MediaDrm.KeyRequest", "full_name": "android.media.MediaDrm.KeyRequest"}, {"package_name": "android.media", "class_name": "MediaDrm.KeyStatus", "full_name": "android.media.MediaDrm.KeyStatus"}, {"package_name": "android.media", "class_name": "MediaDrm.MediaDrmStateException", "full_name": "android.media.MediaDrm.MediaDrmStateException"}, {"package_name": "android.media", "class_name": "MediaDrm.MetricsConstants", "full_name": "android.media.MediaDrm.MetricsConstants"}, {"package_name": "android.media", "class_name": "MediaDrm.OnEventListener", "full_name": "android.media.MediaDrm.OnEventListener"}, {"package_name": "android.media", "class_name": "MediaDrm.OnExpirationUpdateListener", "full_name": "android.media.MediaDrm.OnExpirationUpdateListener"}, {"package_name": "android.media", "class_name": "MediaDrm.OnKeyStatusChangeListener", "full_name": "android.media.MediaDrm.OnKeyStatusChangeListener"}, {"package_name": "android.media", "class_name": "MediaDrm.ProvisionRequest", "full_name": "android.media.MediaDrm.ProvisionRequest"}, {"package_name": "android.media", "class_name": "MediaDrm.SecurityLevel", "full_name": "android.media.MediaDrm.SecurityLevel"}, {"package_name": "android.media", "class_name": "MediaDrmException", "full_name": "android.media.MediaDrmException"}, {"package_name": "android.media", "class_name": "MediaDrmResetException", "full_name": "android.media.MediaDrmResetException"}, {"package_name": "android.media", "class_name": "MediaExtractor", "full_name": "android.media.MediaExtractor"}, {"package_name": "android.media", "class_name": "MediaExtractor.CasInfo", "full_name": "android.media.MediaExtractor.CasInfo"}, {"package_name": "android.media", "class_name": "MediaExtractor.MetricsConstants", "full_name": "android.media.MediaExtractor.MetricsConstants"}, {"package_name": "android.media", "class_name": "MediaFormat", "full_name": "android.media.MediaFormat"}, {"package_name": "android.media", "class_name": "MediaMetadata", "full_name": "android.media.MediaMetadata"}, {"package_name": "android.media", "class_name": "MediaMetadata.Builder", "full_name": "android.media.MediaMetadata.Builder"}, {"package_name": "android.media", "class_name": "MediaMetadataEditor", "full_name": "android.media.MediaMetadataEditor"}, {"package_name": "android.media", "class_name": "MediaMetadataRetriever", "full_name": "android.media.MediaMetadataRetriever"}, {"package_name": "android.media", "class_name": "MediaMetadataRetriever.BitmapParams", "full_name": "android.media.MediaMetadataRetriever.BitmapParams"}, {"package_name": "android.media", "class_name": "MediaMuxer", "full_name": "android.media.MediaMuxer"}, {"package_name": "android.media", "class_name": "MediaMuxer.OutputFormat", "full_name": "android.media.MediaMuxer.OutputFormat"}, {"package_name": "android.media", "class_name": "MediaPlayer", "full_name": "android.media.MediaPlayer"}, {"package_name": "android.media", "class_name": "MediaPlayer.DrmInfo", "full_name": "android.media.MediaPlayer.DrmInfo"}, {"package_name": "android.media", "class_name": "MediaPlayer.MetricsConstants", "full_name": "android.media.MediaPlayer.MetricsConstants"}, {"package_name": "android.media", "class_name": "MediaPlayer.NoDrmSchemeException", "full_name": "android.media.MediaPlayer.NoDrmSchemeException"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnBufferingUpdateListener", "full_name": "android.media.MediaPlayer.OnBufferingUpdateListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnCompletionListener", "full_name": "android.media.MediaPlayer.OnCompletionListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnDrmConfigHelper", "full_name": "android.media.MediaPlayer.OnDrmConfigHelper"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnDrmInfoListener", "full_name": "android.media.MediaPlayer.OnDrmInfoListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnDrmPreparedListener", "full_name": "android.media.MediaPlayer.OnDrmPreparedListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnErrorListener", "full_name": "android.media.MediaPlayer.OnErrorListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnInfoListener", "full_name": "android.media.MediaPlayer.OnInfoListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnMediaTimeDiscontinuityListener", "full_name": "android.media.MediaPlayer.OnMediaTimeDiscontinuityListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnPreparedListener", "full_name": "android.media.MediaPlayer.OnPreparedListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnSeekCompleteListener", "full_name": "android.media.MediaPlayer.OnSeekCompleteListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnSubtitleDataListener", "full_name": "android.media.MediaPlayer.OnSubtitleDataListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnTimedMetaDataAvailableListener", "full_name": "android.media.MediaPlayer.OnTimedMetaDataAvailableListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnTimedTextListener", "full_name": "android.media.MediaPlayer.OnTimedTextListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.OnVideoSizeChangedListener", "full_name": "android.media.MediaPlayer.OnVideoSizeChangedListener"}, {"package_name": "android.media", "class_name": "MediaPlayer.ProvisioningNetworkErrorException", "full_name": "android.media.MediaPlayer.ProvisioningNetworkErrorException"}, {"package_name": "android.media", "class_name": "MediaPlayer.ProvisioningServerErrorException", "full_name": "android.media.MediaPlayer.ProvisioningServerErrorException"}, {"package_name": "android.media", "class_name": "MediaPlayer.TrackInfo", "full_name": "android.media.MediaPlayer.TrackInfo"}, {"package_name": "android.media.projection", "class_name": "MediaProjection", "full_name": "android.media.projection.MediaProjection"}, {"package_name": "android.media.projection", "class_name": "MediaProjection.Callback", "full_name": "android.media.projection.MediaProjection.Callback"}, {"package_name": "android.media.projection", "class_name": "MediaProjectionManager", "full_name": "android.media.projection.MediaProjectionManager"}, {"package_name": "android.media", "class_name": "MediaRecorder", "full_name": "android.media.MediaRecorder"}, {"package_name": "android.media", "class_name": "MediaRecorder.AudioEncoder", "full_name": "android.media.MediaRecorder.AudioEncoder"}, {"package_name": "android.media", "class_name": "MediaRecorder.AudioSource", "full_name": "android.media.MediaRecorder.AudioSource"}, {"package_name": "android.media", "class_name": "MediaRecorder.MetricsConstants", "full_name": "android.media.MediaRecorder.MetricsConstants"}, {"package_name": "android.media", "class_name": "MediaRecorder.OnErrorListener", "full_name": "android.media.MediaRecorder.OnErrorListener"}, {"package_name": "android.media", "class_name": "MediaRecorder.OnInfoListener", "full_name": "android.media.MediaRecorder.OnInfoListener"}, {"package_name": "android.media", "class_name": "MediaRecorder.OutputFormat", "full_name": "android.media.MediaRecorder.OutputFormat"}, {"package_name": "android.media", "class_name": "MediaRecorder.VideoEncoder", "full_name": "android.media.MediaRecorder.VideoEncoder"}, {"package_name": "android.media", "class_name": "MediaRecorder.VideoSource", "full_name": "android.media.MediaRecorder.VideoSource"}, {"package_name": "android.app", "class_name": "MediaRouteActionProvider", "full_name": "android.app.MediaRouteActionProvider"}, {"package_name": "android.app", "class_name": "MediaRouteButton", "full_name": "android.app.MediaRouteButton"}, {"package_name": "android.media", "class_name": "MediaRouter", "full_name": "android.media.MediaRouter"}, {"package_name": "android.media", "class_name": "MediaRouter.Callback", "full_name": "android.media.MediaRouter.Callback"}, {"package_name": "android.media", "class_name": "MediaRouter.RouteCategory", "full_name": "android.media.MediaRouter.RouteCategory"}, {"package_name": "android.media", "class_name": "MediaRouter.RouteGroup", "full_name": "android.media.MediaRouter.RouteGroup"}, {"package_name": "android.media", "class_name": "MediaRouter.RouteInfo", "full_name": "android.media.MediaRouter.RouteInfo"}, {"package_name": "android.media", "class_name": "MediaRouter.SimpleCallback", "full_name": "android.media.MediaRouter.SimpleCallback"}, {"package_name": "android.media", "class_name": "MediaRouter.UserRouteInfo", "full_name": "android.media.MediaRouter.UserRouteInfo"}, {"package_name": "android.media", "class_name": "MediaRouter.VolumeCallback", "full_name": "android.media.MediaRouter.VolumeCallback"}, {"package_name": "android.media", "class_name": "MediaScannerConnection", "full_name": "android.media.MediaScannerConnection"}, {"package_name": "android.media", "class_name": "MediaScannerConnection.MediaScannerConnectionClient", "full_name": "android.media.MediaScannerConnection.MediaScannerConnectionClient"}, {"package_name": "android.media", "class_name": "MediaScannerConnection.OnScanCompletedListener", "full_name": "android.media.MediaScannerConnection.OnScanCompletedListener"}, {"package_name": "android.media.session", "class_name": "MediaSession", "full_name": "android.media.session.MediaSession"}, {"package_name": "android.media.session", "class_name": "MediaSession.Callback", "full_name": "android.media.session.MediaSession.Callback"}, {"package_name": "android.media.session", "class_name": "MediaSession.QueueItem", "full_name": "android.media.session.MediaSession.QueueItem"}, {"package_name": "android.media.session", "class_name": "MediaSession.Token", "full_name": "android.media.session.MediaSession.Token"}, {"package_name": "android.media.session", "class_name": "MediaSessionManager", "full_name": "android.media.session.MediaSessionManager"}, {"package_name": "android.media.session", "class_name": "MediaSessionManager.OnActiveSessionsChangedListener", "full_name": "android.media.session.MediaSessionManager.OnActiveSessionsChangedListener"}, {"package_name": "android.media.session", "class_name": "MediaSessionManager.RemoteUserInfo", "full_name": "android.media.session.MediaSessionManager.RemoteUserInfo"}, {"package_name": "android.provider", "class_name": "MediaStore", "full_name": "android.provider.MediaStore"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio", "full_name": "android.provider.MediaStore.Audio"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.AlbumColumns", "full_name": "android.provider.MediaStore.Audio.AlbumColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Albums", "full_name": "android.provider.MediaStore.Audio.Albums"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.ArtistColumns", "full_name": "android.provider.MediaStore.Audio.ArtistColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Artists", "full_name": "android.provider.MediaStore.Audio.Artists"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Artists.Albums", "full_name": "android.provider.MediaStore.Audio.Artists.Albums"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.AudioColumns", "full_name": "android.provider.MediaStore.Audio.AudioColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Genres", "full_name": "android.provider.MediaStore.Audio.Genres"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Genres.Members", "full_name": "android.provider.MediaStore.Audio.Genres.Members"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.GenresColumns", "full_name": "android.provider.MediaStore.Audio.GenresColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Media", "full_name": "android.provider.MediaStore.Audio.Media"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Playlists", "full_name": "android.provider.MediaStore.Audio.Playlists"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Playlists.Members", "full_name": "android.provider.MediaStore.Audio.Playlists.Members"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.PlaylistsColumns", "full_name": "android.provider.MediaStore.Audio.PlaylistsColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Audio.Radio", "full_name": "android.provider.MediaStore.Audio.Radio"}, {"package_name": "android.provider", "class_name": "MediaStore.Files", "full_name": "android.provider.MediaStore.Files"}, {"package_name": "android.provider", "class_name": "MediaStore.Files.FileColumns", "full_name": "android.provider.MediaStore.Files.FileColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Images", "full_name": "android.provider.MediaStore.Images"}, {"package_name": "android.provider", "class_name": "MediaStore.Images.ImageColumns", "full_name": "android.provider.MediaStore.Images.ImageColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Images.Media", "full_name": "android.provider.MediaStore.Images.Media"}, {"package_name": "android.provider", "class_name": "MediaStore.Images.Thumbnails", "full_name": "android.provider.MediaStore.Images.Thumbnails"}, {"package_name": "android.provider", "class_name": "MediaStore.MediaColumns", "full_name": "android.provider.MediaStore.MediaColumns"}, {"package_name": "android.provider", "class_name": "MediaStore.Video", "full_name": "android.provider.MediaStore.Video"}, {"package_name": "android.provider", "class_name": "MediaStore.Video.Media", "full_name": "android.provider.MediaStore.Video.Media"}, {"package_name": "android.provider", "class_name": "MediaStore.Video.Thumbnails", "full_name": "android.provider.MediaStore.Video.Thumbnails"}, {"package_name": "android.provider", "class_name": "MediaStore.Video.VideoColumns", "full_name": "android.provider.MediaStore.Video.VideoColumns"}, {"package_name": "android.media", "class_name": "MediaSync", "full_name": "android.media.MediaSync"}, {"package_name": "android.media", "class_name": "MediaSync.Callback", "full_name": "android.media.MediaSync.Callback"}, {"package_name": "android.media", "class_name": "MediaSync.OnErrorListener", "full_name": "android.media.MediaSync.OnErrorListener"}, {"package_name": "android.media", "class_name": "MediaSyncEvent", "full_name": "android.media.MediaSyncEvent"}, {"package_name": "android.media", "class_name": "MediaTimestamp", "full_name": "android.media.MediaTimestamp"}, {"package_name": "android.test.suitebuilder.annotation", "class_name": "MediumTest", "full_name": "android.test.suitebuilder.annotation.MediumTest"}, {"package_name": "java.lang.reflect", "class_name": "Member", "full_name": "java.lang.reflect.Member"}, {"package_name": "java.nio.channels", "class_name": "MembershipKey", "full_name": "java.nio.channels.MembershipKey"}, {"package_name": "android.os", "class_name": "MemoryFile", "full_name": "android.os.MemoryFile"}, {"package_name": "java.util.logging", "class_name": "MemoryHandler", "full_name": "java.util.logging.MemoryHandler"}, {"package_name": "android.view", "class_name": "Menu", "full_name": "android.view.Menu"}, {"package_name": "android.view", "class_name": "MenuInflater", "full_name": "android.view.MenuInflater"}, {"package_name": "android.view", "class_name": "MenuItem", "full_name": "android.view.MenuItem"}, {"package_name": "android.view", "class_name": "MenuItem.OnActionExpandListener", "full_name": "android.view.MenuItem.OnActionExpandListener"}, {"package_name": "android.view", "class_name": "MenuItem.OnMenuItemClickListener", "full_name": "android.view.MenuItem.OnMenuItemClickListener"}, {"package_name": "android.database", "class_name": "MergeCursor", "full_name": "android.database.MergeCursor"}, {"package_name": "android.os", "class_name": "Message", "full_name": "android.os.Message"}, {"package_name": "java.security", "class_name": "MessageDigest", "full_name": "java.security.MessageDigest"}, {"package_name": "java.security", "class_name": "MessageDigestSpi", "full_name": "java.security.MessageDigestSpi"}, {"package_name": "android.icu.text", "class_name": "MessageFormat", "full_name": "android.icu.text.MessageFormat"}, {"package_name": "java.text", "class_name": "MessageFormat", "full_name": "java.text.MessageFormat"}, {"package_name": "android.icu.text", "class_name": "MessageFormat.Field", "full_name": "android.icu.text.MessageFormat.Field"}, {"package_name": "java.text", "class_name": "MessageFormat.Field", "full_name": "java.text.MessageFormat.Field"}, {"package_name": "android.icu.text", "class_name": "MessagePattern", "full_name": "android.icu.text.MessagePattern"}, {"package_name": "android.icu.text", "class_name": "MessagePattern.ApostropheMode", "full_name": "android.icu.text.MessagePattern.ApostropheMode"}, {"package_name": "android.icu.text", "class_name": "MessagePattern.ArgType", "full_name": "android.icu.text.MessagePattern.ArgType"}, {"package_name": "android.icu.text", "class_name": "MessagePattern.Part", "full_name": "android.icu.text.MessagePattern.Part"}, {"package_name": "android.icu.text", "class_name": "MessagePattern.Part.Type", "full_name": "android.icu.text.MessagePattern.Part.Type"}, {"package_name": "android.service.carrier", "class_name": "MessagePdu", "full_name": "android.service.carrier.MessagePdu"}, {"package_name": "android.os", "class_name": "MessageQueue", "full_name": "android.os.MessageQueue"}, {"package_name": "android.os", "class_name": "MessageQueue.IdleHandler", "full_name": "android.os.MessageQueue.IdleHandler"}, {"package_name": "android.os", "class_name": "MessageQueue.OnFileDescriptorEventListener", "full_name": "android.os.MessageQueue.OnFileDescriptorEventListener"}, {"package_name": "android.os", "class_name": "Messenger", "full_name": "android.os.Messenger"}, {"package_name": "android.text.method", "class_name": "MetaKeyKeyListener", "full_name": "android.text.method.MetaKeyKeyListener"}, {"package_name": "java.lang.reflect", "class_name": "Method", "full_name": "java.lang.reflect.Method"}, {"package_name": "java.lang.invoke", "class_name": "MethodHandle", "full_name": "java.lang.invoke.MethodHandle"}, {"package_name": "java.lang.invoke", "class_name": "MethodHandleInfo", "full_name": "java.lang.invoke.MethodHandleInfo"}, {"package_name": "java.lang.invoke", "class_name": "MethodHandles", "full_name": "java.lang.invoke.MethodHandles"}, {"package_name": "java.lang.invoke", "class_name": "MethodHandles.Lookup", "full_name": "java.lang.invoke.MethodHandles.Lookup"}, {"package_name": "java.lang.invoke", "class_name": "MethodType", "full_name": "java.lang.invoke.MethodType"}, {"package_name": "android.text.style", "class_name": "MetricAffectingSpan", "full_name": "android.text.style.MetricAffectingSpan"}, {"package_name": "android.media", "class_name": "MicrophoneInfo", "full_name": "android.media.MicrophoneInfo"}, {"package_name": "android.media.midi", "class_name": "MidiDevice", "full_name": "android.media.midi.MidiDevice"}, {"package_name": "android.media.midi", "class_name": "MidiDevice.MidiConnection", "full_name": "android.media.midi.MidiDevice.MidiConnection"}, {"package_name": "android.media.midi", "class_name": "MidiDeviceInfo", "full_name": "android.media.midi.MidiDeviceInfo"}, {"package_name": "android.media.midi", "class_name": "MidiDeviceInfo.PortInfo", "full_name": "android.media.midi.MidiDeviceInfo.PortInfo"}, {"package_name": "android.media.midi", "class_name": "MidiDeviceService", "full_name": "android.media.midi.MidiDeviceService"}, {"package_name": "android.media.midi", "class_name": "MidiDeviceStatus", "full_name": "android.media.midi.MidiDeviceStatus"}, {"package_name": "android.media.midi", "class_name": "MidiInputPort", "full_name": "android.media.midi.MidiInputPort"}, {"package_name": "android.media.midi", "class_name": "MidiManager", "full_name": "android.media.midi.MidiManager"}, {"package_name": "android.media.midi", "class_name": "MidiManager.DeviceCallback", "full_name": "android.media.midi.MidiManager.DeviceCallback"}, {"package_name": "android.media.midi", "class_name": "MidiManager.OnDeviceOpenedListener", "full_name": "android.media.midi.MidiManager.OnDeviceOpenedListener"}, {"package_name": "android.media.midi", "class_name": "MidiOutputPort", "full_name": "android.media.midi.MidiOutputPort"}, {"package_name": "android.media.midi", "class_name": "MidiReceiver", "full_name": "android.media.midi.MidiReceiver"}, {"package_name": "android.media.midi", "class_name": "MidiSender", "full_name": "android.media.midi.MidiSender"}, {"package_name": "android.nfc.tech", "class_name": "MifareClassic", "full_name": "android.nfc.tech.MifareClassic"}, {"package_name": "android.nfc.tech", "class_name": "MifareUltralight", "full_name": "android.nfc.tech.MifareUltralight"}, {"package_name": "android.webkit", "class_name": "MimeTypeMap", "full_name": "android.webkit.MimeTypeMap"}, {"package_name": "java.time.chrono", "class_name": "MinguoChronology", "full_name": "java.time.chrono.MinguoChronology"}, {"package_name": "java.time.chrono", "class_name": "MinguoDate", "full_name": "java.time.chrono.MinguoDate"}, {"package_name": "java.time.chrono", "class_name": "MinguoEra", "full_name": "java.time.chrono.MinguoEra"}, {"package_name": "java.util", "class_name": "MissingFormatArgumentException", "full_name": "java.util.MissingFormatArgumentException"}, {"package_name": "java.util", "class_name": "MissingFormatWidthException", "full_name": "java.util.MissingFormatWidthException"}, {"package_name": "java.util", "class_name": "MissingResourceException", "full_name": "java.util.MissingResourceException"}, {"package_name": "android.test.mock", "class_name": "MockAccountManager", "full_name": "android.test.mock.MockAccountManager"}, {"package_name": "android.test.mock", "class_name": "MockApplication", "full_name": "android.test.mock.MockApplication"}, {"package_name": "android.test.mock", "class_name": "MockContentProvider", "full_name": "android.test.mock.MockContentProvider"}, {"package_name": "android.test.mock", "class_name": "MockContentResolver", "full_name": "android.test.mock.MockContentResolver"}, {"package_name": "android.test.mock", "class_name": "MockContext", "full_name": "android.test.mock.MockContext"}, {"package_name": "android.test.mock", "class_name": "MockCursor", "full_name": "android.test.mock.MockCursor"}, {"package_name": "android.test.mock", "class_name": "MockDialogInterface", "full_name": "android.test.mock.MockDialogInterface"}, {"package_name": "android.test.mock", "class_name": "MockPackageManager", "full_name": "android.test.mock.MockPackageManager"}, {"package_name": "android.test.mock", "class_name": "MockResources", "full_name": "android.test.mock.MockResources"}, {"package_name": "android.test.mock", "class_name": "MockService", "full_name": "android.test.mock.MockService"}, {"package_name": "java.lang.reflect", "class_name": "Modifier", "full_name": "java.lang.reflect.Modifier"}, {"package_name": "java.time", "class_name": "Month", "full_name": "java.time.Month"}, {"package_name": "java.time", "class_name": "MonthDay", "full_name": "java.time.MonthDay"}, {"package_name": "android.util", "class_name": "MonthDisplayHelper", "full_name": "android.util.MonthDisplayHelper"}, {"package_name": "android.test", "class_name": "MoreAsserts", "full_name": "android.test.MoreAsserts"}, {"package_name": "android.view", "class_name": "MotionEvent", "full_name": "android.view.MotionEvent"}, {"package_name": "android.view", "class_name": "MotionEvent.PointerCoords", "full_name": "android.view.MotionEvent.PointerCoords"}, {"package_name": "android.view", "class_name": "MotionEvent.PointerProperties", "full_name": "android.view.MotionEvent.PointerProperties"}, {"package_name": "android.text.method", "class_name": "MovementMethod", "full_name": "android.text.method.MovementMethod"}, {"package_name": "android.graphics", "class_name": "Movie", "full_name": "android.graphics.Movie"}, {"package_name": "android.mtp", "class_name": "MtpConstants", "full_name": "android.mtp.MtpConstants"}, {"package_name": "android.mtp", "class_name": "MtpDevice", "full_name": "android.mtp.MtpDevice"}, {"package_name": "android.mtp", "class_name": "MtpDeviceInfo", "full_name": "android.mtp.MtpDeviceInfo"}, {"package_name": "android.mtp", "class_name": "MtpEvent", "full_name": "android.mtp.MtpEvent"}, {"package_name": "android.mtp", "class_name": "MtpObjectInfo", "full_name": "android.mtp.MtpObjectInfo"}, {"package_name": "android.mtp", "class_name": "MtpObjectInfo.Builder", "full_name": "android.mtp.MtpObjectInfo.Builder"}, {"package_name": "android.mtp", "class_name": "MtpStorageInfo", "full_name": "android.mtp.MtpStorageInfo"}, {"package_name": "android.widget", "class_name": "MultiAutoCompleteTextView", "full_name": "android.widget.MultiAutoCompleteTextView"}, {"package_name": "android.widget", "class_name": "MultiAutoCompleteTextView.CommaTokenizer", "full_name": "android.widget.MultiAutoCompleteTextView.CommaTokenizer"}, {"package_name": "android.widget", "class_name": "MultiAutoCompleteTextView.Tokenizer", "full_name": "android.widget.MultiAutoCompleteTextView.Tokenizer"}, {"package_name": "java.nio.channels", "class_name": "MulticastChannel", "full_name": "java.nio.channels.MulticastChannel"}, {"package_name": "java.net", "class_name": "MulticastSocket", "full_name": "java.net.MulticastSocket"}, {"package_name": "android.preference", "class_name": "MultiSelectListPreference", "full_name": "android.preference.MultiSelectListPreference"}, {"package_name": "android.text.method", "class_name": "MultiTapKeyListener", "full_name": "android.text.method.MultiTapKeyListener"}, {"package_name": "android.util", "class_name": "MutableBoolean", "full_name": "android.util.MutableBoolean"}, {"package_name": "android.util", "class_name": "MutableByte", "full_name": "android.util.MutableByte"}, {"package_name": "java.lang.invoke", "class_name": "MutableCallSite", "full_name": "java.lang.invoke.MutableCallSite"}, {"package_name": "android.util", "class_name": "MutableChar", "full_name": "android.util.MutableChar"}, {"package_name": "android.content", "class_name": "MutableContextWrapper", "full_name": "android.content.MutableContextWrapper"}, {"package_name": "android.util", "class_name": "MutableDouble", "full_name": "android.util.MutableDouble"}, {"package_name": "android.util", "class_name": "MutableFloat", "full_name": "android.util.MutableFloat"}, {"package_name": "android.util", "class_name": "MutableInt", "full_name": "android.util.MutableInt"}, {"package_name": "android.util", "class_name": "MutableLong", "full_name": "android.util.MutableLong"}, {"package_name": "android.util", "class_name": "MutableShort", "full_name": "android.util.MutableShort"}, {"package_name": "javax.xml.namespace", "class_name": "NamespaceContext", "full_name": "javax.xml.namespace.NamespaceContext"}, {"package_name": "org.xml.sax.helpers", "class_name": "NamespaceSupport", "full_name": "org.xml.sax.helpers.NamespaceSupport"}, {"package_name": "java.lang.annotation", "class_name": "Native", "full_name": "java.lang.annotation.Native"}, {"package_name": "android.app", "class_name": "NativeActivity", "full_name": "android.app.NativeActivity"}, {"package_name": "java.sql", "class_name": "NClob", "full_name": "java.sql.NClob"}, {"package_name": "android.nfc.tech", "class_name": "Ndef", "full_name": "android.nfc.tech.Ndef"}, {"package_name": "android.nfc.tech", "class_name": "NdefFormatable", "full_name": "android.nfc.tech.NdefFormatable"}, {"package_name": "android.nfc", "class_name": "NdefMessage", "full_name": "android.nfc.NdefMessage"}, {"package_name": "android.nfc", "class_name": "NdefRecord", "full_name": "android.nfc.NdefRecord"}, {"package_name": "java.lang", "class_name": "NegativeArraySizeException", "full_name": "java.lang.NegativeArraySizeException"}, {"package_name": "android.telephony", "class_name": "NeighboringCellInfo", "full_name": "android.telephony.NeighboringCellInfo"}, {"package_name": "java.net", "class_name": "NetPermission", "full_name": "java.net.NetPermission"}, {"package_name": "android.net", "class_name": "Network", "full_name": "android.net.Network"}, {"package_name": "android.net", "class_name": "NetworkCapabilities", "full_name": "android.net.NetworkCapabilities"}, {"package_name": "java.nio.channels", "class_name": "NetworkChannel", "full_name": "java.nio.channels.NetworkChannel"}, {"package_name": "android.accounts", "class_name": "NetworkErrorException", "full_name": "android.accounts.NetworkErrorException"}, {"package_name": "android.app.admin", "class_name": "NetworkEvent", "full_name": "android.app.admin.NetworkEvent"}, {"package_name": "android.net", "class_name": "NetworkInfo", "full_name": "android.net.NetworkInfo"}, {"package_name": "android.net", "class_name": "NetworkInfo.DetailedState", "full_name": "android.net.NetworkInfo.DetailedState"}, {"package_name": "android.net", "class_name": "NetworkInfo.State", "full_name": "android.net.NetworkInfo.State"}, {"package_name": "java.net", "class_name": "NetworkInterface", "full_name": "java.net.NetworkInterface"}, {"package_name": "android.os", "class_name": "NetworkOnMainThreadException", "full_name": "android.os.NetworkOnMainThreadException"}, {"package_name": "android.net", "class_name": "NetworkRequest", "full_name": "android.net.NetworkRequest"}, {"package_name": "android.net", "class_name": "NetworkRequest.Builder", "full_name": "android.net.NetworkRequest.Builder"}, {"package_name": "android.telephony", "class_name": "NetworkScan", "full_name": "android.telephony.NetworkScan"}, {"package_name": "android.telephony", "class_name": "NetworkScanRequest", "full_name": "android.telephony.NetworkScanRequest"}, {"package_name": "android.security", "class_name": "NetworkSecurityPolicy", "full_name": "android.security.NetworkSecurityPolicy"}, {"package_name": "android.net", "class_name": "NetworkSpecifier", "full_name": "android.net.NetworkSpecifier"}, {"package_name": "android.app.usage", "class_name": "NetworkStats", "full_name": "android.app.usage.NetworkStats"}, {"package_name": "android.app.usage", "class_name": "NetworkStats.Bucket", "full_name": "android.app.usage.NetworkStats.Bucket"}, {"package_name": "android.app.usage", "class_name": "NetworkStatsManager", "full_name": "android.app.usage.NetworkStatsManager"}, {"package_name": "android.app.usage", "class_name": "NetworkStatsManager.UsageCallback", "full_name": "android.app.usage.NetworkStatsManager.UsageCallback"}, {"package_name": "android.os.strictmode", "class_name": "NetworkViolation", "full_name": "android.os.strictmode.NetworkViolation"}, {"package_name": "android.nfc.tech", "class_name": "NfcA", "full_name": "android.nfc.tech.NfcA"}, {"package_name": "android.nfc", "class_name": "NfcAdapter", "full_name": "android.nfc.NfcAdapter"}, {"package_name": "android.nfc", "class_name": "NfcAdapter.CreateBeamUrisCallback", "full_name": "android.nfc.NfcAdapter.CreateBeamUrisCallback"}, {"package_name": "android.nfc", "class_name": "NfcAdapter.CreateNdefMessageCallback", "full_name": "android.nfc.NfcAdapter.CreateNdefMessageCallback"}, {"package_name": "android.nfc", "class_name": "NfcAdapter.OnNdefPushCompleteCallback", "full_name": "android.nfc.NfcAdapter.OnNdefPushCompleteCallback"}, {"package_name": "android.nfc", "class_name": "NfcAdapter.OnTagRemovedListener", "full_name": "android.nfc.NfcAdapter.OnTagRemovedListener"}, {"package_name": "android.nfc", "class_name": "NfcAdapter.ReaderCallback", "full_name": "android.nfc.NfcAdapter.ReaderCallback"}, {"package_name": "android.nfc.tech", "class_name": "NfcB", "full_name": "android.nfc.tech.NfcB"}, {"package_name": "android.nfc.tech", "class_name": "NfcBarcode", "full_name": "android.nfc.tech.NfcBarcode"}, {"package_name": "android.nfc", "class_name": "NfcEvent", "full_name": "android.nfc.NfcEvent"}, {"package_name": "android.nfc.tech", "class_name": "NfcF", "full_name": "android.nfc.tech.NfcF"}, {"package_name": "android.nfc.cardemulation", "class_name": "NfcFCardEmulation", "full_name": "android.nfc.cardemulation.NfcFCardEmulation"}, {"package_name": "android.nfc", "class_name": "NfcManager", "full_name": "android.nfc.NfcManager"}, {"package_name": "android.nfc.tech", "class_name": "NfcV", "full_name": "android.nfc.tech.NfcV"}, {"package_name": "android.graphics", "class_name": "NinePatch", "full_name": "android.graphics.NinePatch"}, {"package_name": "android.graphics.drawable", "class_name": "NinePatchDrawable", "full_name": "android.graphics.drawable.NinePatchDrawable"}, {"package_name": "java.lang", "class_name": "NoClassDefFoundError", "full_name": "java.lang.NoClassDefFoundError"}, {"package_name": "java.nio.channels", "class_name": "NoConnectionPendingException", "full_name": "java.nio.channels.NoConnectionPendingException"}, {"package_name": "android.text", "class_name": "NoCopySpan", "full_name": "android.text.NoCopySpan"}, {"package_name": "android.text", "class_name": "NoCopySpan.Concrete", "full_name": "android.text.NoCopySpan.Concrete"}, {"package_name": "java.util.prefs", "class_name": "NodeChangeEvent", "full_name": "java.util.prefs.NodeChangeEvent"}, {"package_name": "java.util.prefs", "class_name": "NodeChangeListener", "full_name": "java.util.prefs.NodeChangeListener"}, {"package_name": "android.media.audiofx", "class_name": "NoiseSuppressor", "full_name": "android.media.audiofx.NoiseSuppressor"}, {"package_name": "java.nio.channels", "class_name": "NonReadableChannelException", "full_name": "java.nio.channels.NonReadableChannelException"}, {"package_name": "android.os.strictmode", "class_name": "NonSdkApiUsedViolation", "full_name": "android.os.strictmode.NonSdkApiUsedViolation"}, {"package_name": "java.nio.channels", "class_name": "NonWritableChannelException", "full_name": "java.nio.channels.NonWritableChannelException"}, {"package_name": "android.icu.text", "class_name": "Normalizer", "full_name": "android.icu.text.Normalizer"}, {"package_name": "java.text", "class_name": "Normalizer", "full_name": "java.text.Normalizer"}, {"package_name": "java.text", "class_name": "Normalizer.Form", "full_name": "java.text.Normalizer.Form"}, {"package_name": "android.icu.text", "class_name": "Normalizer.QuickCheckResult", "full_name": "android.icu.text.Normalizer.QuickCheckResult"}, {"package_name": "java.net", "class_name": "NoRouteToHostException", "full_name": "java.net.NoRouteToHostException"}, {"package_name": "java.security", "class_name": "NoSuchAlgorithmException", "full_name": "java.security.NoSuchAlgorithmException"}, {"package_name": "java.util", "class_name": "NoSuchElementException", "full_name": "java.util.NoSuchElementException"}, {"package_name": "java.lang", "class_name": "NoSuchFieldError", "full_name": "java.lang.NoSuchFieldError"}, {"package_name": "java.lang", "class_name": "NoSuchFieldException", "full_name": "java.lang.NoSuchFieldException"}, {"package_name": "java.nio.file", "class_name": "NoSuchFileException", "full_name": "java.nio.file.NoSuchFileException"}, {"package_name": "java.lang", "class_name": "NoSuchMethodError", "full_name": "java.lang.NoSuchMethodError"}, {"package_name": "java.lang", "class_name": "NoSuchMethodException", "full_name": "java.lang.NoSuchMethodException"}, {"package_name": "javax.crypto", "class_name": "NoSuchPaddingException", "full_name": "javax.crypto.NoSuchPaddingException"}, {"package_name": "android.util", "class_name": "NoSuchPropertyException", "full_name": "android.util.NoSuchPropertyException"}, {"package_name": "java.security", "class_name": "NoSuchProviderException", "full_name": "java.security.NoSuchProviderException"}, {"package_name": "java.io", "class_name": "NotActiveException", "full_name": "java.io.NotActiveException"}, {"package_name": "java.nio.file", "class_name": "NotDirectoryException", "full_name": "java.nio.file.NotDirectoryException"}, {"package_name": "android.app", "class_name": "Notification", "full_name": "android.app.Notification"}, {"package_name": "android.app", "class_name": "Notification.Action", "full_name": "android.app.Notification.Action"}, {"package_name": "android.app", "class_name": "Notification.Action.Builder", "full_name": "android.app.Notification.Action.Builder"}, {"package_name": "android.app", "class_name": "Notification.Action.Extender", "full_name": "android.app.Notification.Action.Extender"}, {"package_name": "android.app", "class_name": "Notification.Action.WearableExtender", "full_name": "android.app.Notification.Action.WearableExtender"}, {"package_name": "android.app", "class_name": "Notification.BigPictureStyle", "full_name": "android.app.Notification.BigPictureStyle"}, {"package_name": "android.app", "class_name": "Notification.BigTextStyle", "full_name": "android.app.Notification.BigTextStyle"}, {"package_name": "android.app", "class_name": "Notification.Builder", "full_name": "android.app.Notification.Builder"}, {"package_name": "android.app", "class_name": "Notification.CarExtender", "full_name": "android.app.Notification.CarExtender"}, {"package_name": "android.app", "class_name": "Notification.CarExtender.Builder", "full_name": "android.app.Notification.CarExtender.Builder"}, {"package_name": "android.app", "class_name": "Notification.CarExtender.UnreadConversation", "full_name": "android.app.Notification.CarExtender.UnreadConversation"}, {"package_name": "android.app", "class_name": "Notification.DecoratedCustomViewStyle", "full_name": "android.app.Notification.DecoratedCustomViewStyle"}, {"package_name": "android.app", "class_name": "Notification.DecoratedMediaCustomViewStyle", "full_name": "android.app.Notification.DecoratedMediaCustomViewStyle"}, {"package_name": "android.app", "class_name": "Notification.Extender", "full_name": "android.app.Notification.Extender"}, {"package_name": "android.app", "class_name": "Notification.InboxStyle", "full_name": "android.app.Notification.InboxStyle"}, {"package_name": "android.app", "class_name": "Notification.MediaStyle", "full_name": "android.app.Notification.MediaStyle"}, {"package_name": "android.app", "class_name": "Notification.MessagingStyle", "full_name": "android.app.Notification.MessagingStyle"}, {"package_name": "android.app", "class_name": "Notification.MessagingStyle.Message", "full_name": "android.app.Notification.MessagingStyle.Message"}, {"package_name": "android.app", "class_name": "Notification.Style", "full_name": "android.app.Notification.Style"}, {"package_name": "android.app", "class_name": "Notification.WearableExtender", "full_name": "android.app.Notification.WearableExtender"}, {"package_name": "android.app", "class_name": "NotificationChannel", "full_name": "android.app.NotificationChannel"}, {"package_name": "android.app", "class_name": "NotificationChannelGroup", "full_name": "android.app.NotificationChannelGroup"}, {"package_name": "android.service.notification", "class_name": "NotificationListenerService", "full_name": "android.service.notification.NotificationListenerService"}, {"package_name": "android.service.notification", "class_name": "NotificationListenerService.Ranking", "full_name": "android.service.notification.NotificationListenerService.Ranking"}, {"package_name": "android.service.notification", "class_name": "NotificationListenerService.RankingMap", "full_name": "android.service.notification.NotificationListenerService.RankingMap"}, {"package_name": "android.app", "class_name": "NotificationManager", "full_name": "android.app.NotificationManager"}, {"package_name": "android.app", "class_name": "NotificationManager.Policy", "full_name": "android.app.NotificationManager.Policy"}, {"package_name": "java.nio.file", "class_name": "NotLinkException", "full_name": "java.nio.file.NotLinkException"}, {"package_name": "java.security.acl", "class_name": "NotOwnerException", "full_name": "java.security.acl.NotOwnerException"}, {"package_name": "android.media", "class_name": "NotProvisionedException", "full_name": "android.media.NotProvisionedException"}, {"package_name": "java.io", "class_name": "NotSerializableException", "full_name": "java.io.NotSerializableException"}, {"package_name": "java.nio.channels", "class_name": "NotYetBoundException", "full_name": "java.nio.channels.NotYetBoundException"}, {"package_name": "java.nio.channels", "class_name": "NotYetConnectedException", "full_name": "java.nio.channels.NotYetConnectedException"}, {"package_name": "android.net.nsd", "class_name": "NsdManager", "full_name": "android.net.nsd.NsdManager"}, {"package_name": "android.net.nsd", "class_name": "NsdManager.DiscoveryListener", "full_name": "android.net.nsd.NsdManager.DiscoveryListener"}, {"package_name": "android.net.nsd", "class_name": "NsdManager.RegistrationListener", "full_name": "android.net.nsd.NsdManager.RegistrationListener"}, {"package_name": "android.net.nsd", "class_name": "NsdManager.ResolveListener", "full_name": "android.net.nsd.NsdManager.ResolveListener"}, {"package_name": "android.net.nsd", "class_name": "NsdServiceInfo", "full_name": "android.net.nsd.NsdServiceInfo"}, {"package_name": "javax.crypto", "class_name": "NullCipher", "full_name": "javax.crypto.NullCipher"}, {"package_name": "java.lang", "class_name": "NullPointerException", "full_name": "java.lang.NullPointerException"}, {"package_name": "java.lang", "class_name": "Number", "full_name": "java.lang.Number"}, {"package_name": "android.icu.text", "class_name": "NumberFormat", "full_name": "android.icu.text.NumberFormat"}, {"package_name": "java.text", "class_name": "NumberFormat", "full_name": "java.text.NumberFormat"}, {"package_name": "android.icu.text", "class_name": "NumberFormat.Field", "full_name": "android.icu.text.NumberFormat.Field"}, {"package_name": "java.text", "class_name": "NumberFormat.Field", "full_name": "java.text.NumberFormat.Field"}, {"package_name": "java.lang", "class_name": "NumberFormatException", "full_name": "java.lang.NumberFormatException"}, {"package_name": "android.icu.text", "class_name": "NumberingSystem", "full_name": "android.icu.text.NumberingSystem"}, {"package_name": "android.text.method", "class_name": "NumberKeyListener", "full_name": "android.text.method.NumberKeyListener"}, {"package_name": "android.widget", "class_name": "NumberPicker", "full_name": "android.widget.NumberPicker"}, {"package_name": "android.widget", "class_name": "NumberPicker.Formatter", "full_name": "android.widget.NumberPicker.Formatter"}, {"package_name": "android.widget", "class_name": "NumberPicker.OnScrollListener", "full_name": "android.widget.NumberPicker.OnScrollListener"}, {"package_name": "android.widget", "class_name": "NumberPicker.OnValueChangeListener", "full_name": "android.widget.NumberPicker.OnValueChangeListener"}, {"package_name": "java.awt.font", "class_name": "NumericShaper", "full_name": "java.awt.font.NumericShaper"}, {"package_name": "java.awt.font", "class_name": "NumericShaper.Range", "full_name": "java.awt.font.NumericShaper.Range"}, {"package_name": "javax.crypto.spec", "class_name": "OAEPParameterSpec", "full_name": "javax.crypto.spec.OAEPParameterSpec"}, {"package_name": "android.content.res", "class_name": "ObbInfo", "full_name": "android.content.res.ObbInfo"}, {"package_name": "android.content.res", "class_name": "ObbScanner", "full_name": "android.content.res.ObbScanner"}, {"package_name": "java.lang", "class_name": "Object", "full_name": "java.lang.Object"}, {"package_name": "android.animation", "class_name": "ObjectAnimator", "full_name": "android.animation.ObjectAnimator"}, {"package_name": "java.io", "class_name": "ObjectInput", "full_name": "java.io.ObjectInput"}, {"package_name": "java.io", "class_name": "ObjectInputStream", "full_name": "java.io.ObjectInputStream"}, {"package_name": "java.io", "class_name": "ObjectInputStream.GetField", "full_name": "java.io.ObjectInputStream.GetField"}, {"package_name": "java.io", "class_name": "ObjectInputValidation", "full_name": "java.io.ObjectInputValidation"}, {"package_name": "java.io", "class_name": "ObjectOutput", "full_name": "java.io.ObjectOutput"}, {"package_name": "java.io", "class_name": "ObjectOutputStream", "full_name": "java.io.ObjectOutputStream"}, {"package_name": "java.io", "class_name": "ObjectOutputStream.PutField", "full_name": "java.io.ObjectOutputStream.PutField"}, {"package_name": "java.util", "class_name": "Objects", "full_name": "java.util.Objects"}, {"package_name": "java.io", "class_name": "ObjectStreamClass", "full_name": "java.io.ObjectStreamClass"}, {"package_name": "java.io", "class_name": "ObjectStreamConstants", "full_name": "java.io.ObjectStreamConstants"}, {"package_name": "java.io", "class_name": "ObjectStreamException", "full_name": "java.io.ObjectStreamException"}, {"package_name": "java.io", "class_name": "ObjectStreamField", "full_name": "java.io.ObjectStreamField"}, {"package_name": "java.util", "class_name": "Observable", "full_name": "java.util.Observable"}, {"package_name": "java.util", "class_name": "Observer", "full_name": "java.util.Observer"}, {"package_name": "android.nfc.cardemulation", "class_name": "OffHostApduService", "full_name": "android.nfc.cardemulation.OffHostApduService"}, {"package_name": "java.time", "class_name": "OffsetDateTime", "full_name": "java.time.OffsetDateTime"}, {"package_name": "java.time", "class_name": "OffsetTime", "full_name": "java.time.OffsetTime"}, {"package_name": "android.accounts", "class_name": "OnAccountsUpdateListener", "full_name": "android.accounts.OnAccountsUpdateListener"}, {"package_name": "android.location", "class_name": "OnNmeaMessageListener", "full_name": "android.location.OnNmeaMessageListener"}, {"package_name": "android.os.storage", "class_name": "OnObbStateChangeListener", "full_name": "android.os.storage.OnObbStateChangeListener"}, {"package_name": "dalvik.bytecode", "class_name": "OpcodeInfo", "full_name": "dalvik.bytecode.OpcodeInfo"}, {"package_name": "dalvik.bytecode", "class_name": "Opcodes", "full_name": "dalvik.bytecode.Opcodes"}, {"package_name": "android.provider", "class_name": "OpenableColumns", "full_name": "android.provider.OpenableColumns"}, {"package_name": "java.nio.file", "class_name": "OpenOption", "full_name": "java.nio.file.OpenOption"}, {"package_name": "android.content", "class_name": "OperationApplicationException", "full_name": "android.content.OperationApplicationException"}, {"package_name": "android.accounts", "class_name": "OperationCanceledException", "full_name": "android.accounts.OperationCanceledException"}, {"package_name": "android.os", "class_name": "OperationCanceledException", "full_name": "android.os.OperationCanceledException"}, {"package_name": "java.io", "class_name": "OptionalDataException", "full_name": "java.io.OptionalDataException"}, {"package_name": "java.util", "class_name": "OptionalDouble", "full_name": "java.util.OptionalDouble"}, {"package_name": "java.util", "class_name": "OptionalInt", "full_name": "java.util.OptionalInt"}, {"package_name": "java.util", "class_name": "OptionalLong", "full_name": "java.util.OptionalLong"}, {"package_name": "android.view", "class_name": "OrientationEventListener", "full_name": "android.view.OrientationEventListener"}, {"package_name": "android.view", "class_name": "OrientationListener", "full_name": "android.view.OrientationListener"}, {"package_name": "android.gesture", "class_name": "OrientedBoundingBox", "full_name": "android.gesture.OrientedBoundingBox"}, {"package_name": "android.system", "class_name": "Os", "full_name": "android.system.Os"}, {"package_name": "android.system", "class_name": "OsConstants", "full_name": "android.system.OsConstants"}, {"package_name": "android.graphics", "class_name": "Outline", "full_name": "android.graphics.Outline"}, {"package_name": "java.lang", "class_name": "OutOfMemoryError", "full_name": "java.lang.OutOfMemoryError"}, {"package_name": "javax.xml.transform", "class_name": "OutputKeys", "full_name": "javax.xml.transform.OutputKeys"}, {"package_name": "java.io", "class_name": "OutputStream", "full_name": "java.io.OutputStream"}, {"package_name": "java.io", "class_name": "OutputStreamWriter", "full_name": "java.io.OutputStreamWriter"}, {"package_name": "android.graphics.drawable.shapes", "class_name": "OvalShape", "full_name": "android.graphics.drawable.shapes.OvalShape"}, {"package_name": "java.nio.channels", "class_name": "OverlappingFileLockException", "full_name": "java.nio.channels.OverlappingFileLockException"}, {"package_name": "java.lang", "class_name": "Override", "full_name": "java.lang.Override"}, {"package_name": "android.widget", "class_name": "OverScroller", "full_name": "android.widget.OverScroller"}, {"package_name": "android.view.animation", "class_name": "OvershootInterpolator", "full_name": "android.view.animation.OvershootInterpolator"}, {"package_name": "java.security.acl", "class_name": "Owner", "full_name": "java.security.acl.Owner"}, {"package_name": "java.lang", "class_name": "Package", "full_name": "java.lang.Package"}, {"package_name": "android.os.health", "class_name": "PackageHealthStats", "full_name": "android.os.health.PackageHealthStats"}, {"package_name": "android.content.pm", "class_name": "PackageInfo", "full_name": "android.content.pm.PackageInfo"}, {"package_name": "android.content.pm", "class_name": "PackageInstaller", "full_name": "android.content.pm.PackageInstaller"}, {"package_name": "android.content.pm", "class_name": "PackageInstaller.Session", "full_name": "android.content.pm.PackageInstaller.Session"}, {"package_name": "android.content.pm", "class_name": "PackageInstaller.SessionCallback", "full_name": "android.content.pm.PackageInstaller.SessionCallback"}, {"package_name": "android.content.pm", "class_name": "PackageInstaller.SessionInfo", "full_name": "android.content.pm.PackageInstaller.SessionInfo"}, {"package_name": "android.content.pm", "class_name": "PackageInstaller.SessionParams", "full_name": "android.content.pm.PackageInstaller.SessionParams"}, {"package_name": "android.content.pm", "class_name": "PackageItemInfo", "full_name": "android.content.pm.PackageItemInfo"}, {"package_name": "android.content.pm", "class_name": "PackageItemInfo.DisplayNameComparator", "full_name": "android.content.pm.PackageItemInfo.DisplayNameComparator"}, {"package_name": "android.content.pm", "class_name": "PackageManager", "full_name": "android.content.pm.PackageManager"}, {"package_name": "android.content.pm", "class_name": "PackageManager.NameNotFoundException", "full_name": "android.content.pm.PackageManager.NameNotFoundException"}, {"package_name": "android.content.pm", "class_name": "PackageStats", "full_name": "android.content.pm.PackageStats"}, {"package_name": "android.print", "class_name": "PageRange", "full_name": "android.print.PageRange"}, {"package_name": "android.graphics", "class_name": "Paint", "full_name": "android.graphics.Paint"}, {"package_name": "android.graphics", "class_name": "Paint.Align", "full_name": "android.graphics.Paint.Align"}, {"package_name": "android.graphics", "class_name": "Paint.Cap", "full_name": "android.graphics.Paint.Cap"}, {"package_name": "android.graphics", "class_name": "Paint.FontMetrics", "full_name": "android.graphics.Paint.FontMetrics"}, {"package_name": "android.graphics", "class_name": "Paint.FontMetricsInt", "full_name": "android.graphics.Paint.FontMetricsInt"}, {"package_name": "android.graphics", "class_name": "Paint.Join", "full_name": "android.graphics.Paint.Join"}, {"package_name": "android.graphics", "class_name": "Paint.Style", "full_name": "android.graphics.Paint.Style"}, {"package_name": "android.graphics.drawable", "class_name": "PaintDrawable", "full_name": "android.graphics.drawable.PaintDrawable"}, {"package_name": "android.graphics", "class_name": "PaintFlagsDrawFilter", "full_name": "android.graphics.PaintFlagsDrawFilter"}, {"package_name": "android.text.style", "class_name": "ParagraphStyle", "full_name": "android.text.style.ParagraphStyle"}, {"package_name": "java.lang.reflect", "class_name": "Parameter", "full_name": "java.lang.reflect.Parameter"}, {"package_name": "java.lang.reflect", "class_name": "ParameterizedType", "full_name": "java.lang.reflect.ParameterizedType"}, {"package_name": "java.sql", "class_name": "ParameterMetaData", "full_name": "java.sql.ParameterMetaData"}, {"package_name": "android.os", "class_name": "Parcel", "full_name": "android.os.Parcel"}, {"package_name": "android.os", "class_name": "Parcelable", "full_name": "android.os.Parcelable"}, {"package_name": "android.text", "class_name": "ParcelableSpan", "full_name": "android.text.ParcelableSpan"}, {"package_name": "android.os", "class_name": "ParcelFileDescriptor", "full_name": "android.os.ParcelFileDescriptor"}, {"package_name": "android.os", "class_name": "ParcelFileDescriptor.AutoCloseInputStream", "full_name": "android.os.ParcelFileDescriptor.AutoCloseInputStream"}, {"package_name": "android.os", "class_name": "ParcelFileDescriptor.AutoCloseOutputStream", "full_name": "android.os.ParcelFileDescriptor.AutoCloseOutputStream"}, {"package_name": "android.os", "class_name": "ParcelFileDescriptor.FileDescriptorDetachedException", "full_name": "android.os.ParcelFileDescriptor.FileDescriptorDetachedException"}, {"package_name": "android.os", "class_name": "ParcelFileDescriptor.OnCloseListener", "full_name": "android.os.ParcelFileDescriptor.OnCloseListener"}, {"package_name": "android.os", "class_name": "ParcelFormatException", "full_name": "android.os.ParcelFormatException"}, {"package_name": "android.os", "class_name": "ParcelUuid", "full_name": "android.os.ParcelUuid"}, {"package_name": "android.net", "class_name": "ParseException", "full_name": "android.net.ParseException"}, {"package_name": "java.text", "class_name": "ParseException", "full_name": "java.text.ParseException"}, {"package_name": "java.text", "class_name": "ParsePosition", "full_name": "java.text.ParsePosition"}, {"package_name": "org.xml.sax", "class_name": "Parser", "full_name": "org.xml.sax.Parser"}, {"package_name": "org.xml.sax.helpers", "class_name": "ParserAdapter", "full_name": "org.xml.sax.helpers.ParserAdapter"}, {"package_name": "javax.xml.parsers", "class_name": "ParserConfigurationException", "full_name": "javax.xml.parsers.ParserConfigurationException"}, {"package_name": "org.xml.sax.helpers", "class_name": "ParserFactory", "full_name": "org.xml.sax.helpers.ParserFactory"}, {"package_name": "java.net", "class_name": "PasswordAuthentication", "full_name": "java.net.PasswordAuthentication"}, {"package_name": "javax.security.auth.callback", "class_name": "PasswordCallback", "full_name": "javax.security.auth.callback.PasswordCallback"}, {"package_name": "android.text.method", "class_name": "PasswordTransformationMethod", "full_name": "android.text.method.PasswordTransformationMethod"}, {"package_name": "android.graphics", "class_name": "Path", "full_name": "android.graphics.Path"}, {"package_name": "java.nio.file", "class_name": "Path", "full_name": "java.nio.file.Path"}, {"package_name": "android.graphics", "class_name": "Path.Direction", "full_name": "android.graphics.Path.Direction"}, {"package_name": "android.graphics", "class_name": "Path.FillType", "full_name": "android.graphics.Path.FillType"}, {"package_name": "android.graphics", "class_name": "Path.Op", "full_name": "android.graphics.Path.Op"}, {"package_name": "dalvik.system", "class_name": "PathClassLoader", "full_name": "dalvik.system.PathClassLoader"}, {"package_name": "android.graphics", "class_name": "PathDashPathEffect", "full_name": "android.graphics.PathDashPathEffect"}, {"package_name": "android.graphics", "class_name": "PathDashPathEffect.Style", "full_name": "android.graphics.PathDashPathEffect.Style"}, {"package_name": "android.graphics", "class_name": "PathEffect", "full_name": "android.graphics.PathEffect"}, {"package_name": "android.view.animation", "class_name": "PathInterpolator", "full_name": "android.view.animation.PathInterpolator"}, {"package_name": "java.nio.file", "class_name": "PathMatcher", "full_name": "java.nio.file.PathMatcher"}, {"package_name": "android.graphics", "class_name": "PathMeasure", "full_name": "android.graphics.PathMeasure"}, {"package_name": "android.transition", "class_name": "PathMotion", "full_name": "android.transition.PathMotion"}, {"package_name": "android.content.pm", "class_name": "PathPermission", "full_name": "android.content.pm.PathPermission"}, {"package_name": "java.nio.file", "class_name": "Paths", "full_name": "java.nio.file.Paths"}, {"package_name": "android.graphics.drawable.shapes", "class_name": "PathShape", "full_name": "android.graphics.drawable.shapes.PathShape"}, {"package_name": "java.util.regex", "class_name": "Pattern", "full_name": "java.util.regex.Pattern"}, {"package_name": "android.os", "class_name": "PatternMatcher", "full_name": "android.os.PatternMatcher"}, {"package_name": "android.transition", "class_name": "PatternPathMotion", "full_name": "android.transition.PatternPathMotion"}, {"package_name": "android.util", "class_name": "Patterns", "full_name": "android.util.Patterns"}, {"package_name": "java.util.regex", "class_name": "PatternSyntaxException", "full_name": "java.util.regex.PatternSyntaxException"}, {"package_name": "javax.crypto.interfaces", "class_name": "PBEKey", "full_name": "javax.crypto.interfaces.PBEKey"}, {"package_name": "javax.crypto.spec", "class_name": "PBEKeySpec", "full_name": "javax.crypto.spec.PBEKeySpec"}, {"package_name": "javax.crypto.spec", "class_name": "PBEParameterSpec", "full_name": "javax.crypto.spec.PBEParameterSpec"}, {"package_name": "android.graphics.pdf", "class_name": "PdfDocument", "full_name": "android.graphics.pdf.PdfDocument"}, {"package_name": "android.graphics.pdf", "class_name": "PdfDocument.Page", "full_name": "android.graphics.pdf.PdfDocument.Page"}, {"package_name": "android.graphics.pdf", "class_name": "PdfDocument.PageInfo", "full_name": "android.graphics.pdf.PdfDocument.PageInfo"}, {"package_name": "android.graphics.pdf", "class_name": "PdfDocument.PageInfo.Builder", "full_name": "android.graphics.pdf.PdfDocument.PageInfo.Builder"}, {"package_name": "android.graphics.pdf", "class_name": "PdfRenderer", "full_name": "android.graphics.pdf.PdfRenderer"}, {"package_name": "android.graphics.pdf", "class_name": "PdfRenderer.Page", "full_name": "android.graphics.pdf.PdfRenderer.Page"}, {"package_name": "android.net.wifi.aware", "class_name": "PeerHandle", "full_name": "android.net.wifi.aware.PeerHandle"}, {"package_name": "android.app", "class_name": "PendingIntent", "full_name": "android.app.PendingIntent"}, {"package_name": "android.app", "class_name": "PendingIntent.CanceledException", "full_name": "android.app.PendingIntent.CanceledException"}, {"package_name": "android.app", "class_name": "PendingIntent.OnFinished", "full_name": "android.app.PendingIntent.OnFinished"}, {"package_name": "android.test", "class_name": "PerformanceTestCase", "full_name": "android.test.PerformanceTestCase"}, {"package_name": "android.test", "class_name": "PerformanceTestCase.Intermediates", "full_name": "android.test.PerformanceTestCase.Intermediates"}, {"package_name": "java.time", "class_name": "Period", "full_name": "java.time.Period"}, {"package_name": "android.bluetooth.le", "class_name": "PeriodicAdvertisingParameters", "full_name": "android.bluetooth.le.PeriodicAdvertisingParameters"}, {"package_name": "android.bluetooth.le", "class_name": "PeriodicAdvertisingParameters.Builder", "full_name": "android.bluetooth.le.PeriodicAdvertisingParameters.Builder"}, {"package_name": "android.content", "class_name": "PeriodicSync", "full_name": "android.content.PeriodicSync"}, {"package_name": "java.security", "class_name": "Permission", "full_name": "java.security.Permission"}, {"package_name": "java.security.acl", "class_name": "Permission", "full_name": "java.security.acl.Permission"}, {"package_name": "java.security", "class_name": "PermissionCollection", "full_name": "java.security.PermissionCollection"}, {"package_name": "android.content.pm", "class_name": "PermissionGroupInfo", "full_name": "android.content.pm.PermissionGroupInfo"}, {"package_name": "android.content.pm", "class_name": "PermissionInfo", "full_name": "android.content.pm.PermissionInfo"}, {"package_name": "android.webkit", "class_name": "PermissionRequest", "full_name": "android.webkit.PermissionRequest"}, {"package_name": "java.security", "class_name": "Permissions", "full_name": "java.security.Permissions"}, {"package_name": "android.os", "class_name": "PersistableBundle", "full_name": "android.os.PersistableBundle"}, {"package_name": "android.app", "class_name": "Person", "full_name": "android.app.Person"}, {"package_name": "android.app", "class_name": "Person.Builder", "full_name": "android.app.Person.Builder"}, {"package_name": "java.util.concurrent", "class_name": "Phaser", "full_name": "java.util.concurrent.Phaser"}, {"package_name": "android.telecom", "class_name": "PhoneAccount", "full_name": "android.telecom.PhoneAccount"}, {"package_name": "android.telecom", "class_name": "PhoneAccount.Builder", "full_name": "android.telecom.PhoneAccount.Builder"}, {"package_name": "android.telecom", "class_name": "PhoneAccountHandle", "full_name": "android.telecom.PhoneAccountHandle"}, {"package_name": "android.telephony", "class_name": "PhoneNumberFormattingTextWatcher", "full_name": "android.telephony.PhoneNumberFormattingTextWatcher"}, {"package_name": "android.telephony", "class_name": "PhoneNumberUtils", "full_name": "android.telephony.PhoneNumberUtils"}, {"package_name": "android.telephony", "class_name": "PhoneStateListener", "full_name": "android.telephony.PhoneStateListener"}, {"package_name": "android.graphics", "class_name": "Picture", "full_name": "android.graphics.Picture"}, {"package_name": "android.graphics.drawable", "class_name": "PictureDrawable", "full_name": "android.graphics.drawable.PictureDrawable"}, {"package_name": "android.app", "class_name": "PictureInPictureParams", "full_name": "android.app.PictureInPictureParams"}, {"package_name": "android.app", "class_name": "PictureInPictureParams.Builder", "full_name": "android.app.PictureInPictureParams.Builder"}, {"package_name": "android.os.health", "class_name": "PidHealthStats", "full_name": "android.os.health.PidHealthStats"}, {"package_name": "java.nio.channels", "class_name": "Pipe", "full_name": "java.nio.channels.Pipe"}, {"package_name": "java.nio.channels", "class_name": "Pipe.SinkChannel", "full_name": "java.nio.channels.Pipe.SinkChannel"}, {"package_name": "java.nio.channels", "class_name": "Pipe.SourceChannel", "full_name": "java.nio.channels.Pipe.SourceChannel"}, {"package_name": "java.io", "class_name": "PipedInputStream", "full_name": "java.io.PipedInputStream"}, {"package_name": "java.io", "class_name": "PipedOutputStream", "full_name": "java.io.PipedOutputStream"}, {"package_name": "java.io", "class_name": "PipedReader", "full_name": "java.io.PipedReader"}, {"package_name": "java.io", "class_name": "PipedWriter", "full_name": "java.io.PipedWriter"}, {"package_name": "android.view", "class_name": "PixelCopy", "full_name": "android.view.PixelCopy"}, {"package_name": "android.view", "class_name": "PixelCopy.OnPixelCopyFinishedListener", "full_name": "android.view.PixelCopy.OnPixelCopyFinishedListener"}, {"package_name": "android.graphics", "class_name": "PixelFormat", "full_name": "android.graphics.PixelFormat"}, {"package_name": "java.security.cert", "class_name": "PKIXBuilderParameters", "full_name": "java.security.cert.PKIXBuilderParameters"}, {"package_name": "java.security.cert", "class_name": "PKIXCertPathBuilderResult", "full_name": "java.security.cert.PKIXCertPathBuilderResult"}, {"package_name": "java.security.cert", "class_name": "PKIXCertPathChecker", "full_name": "java.security.cert.PKIXCertPathChecker"}, {"package_name": "java.security.cert", "class_name": "PKIXCertPathValidatorResult", "full_name": "java.security.cert.PKIXCertPathValidatorResult"}, {"package_name": "java.security.cert", "class_name": "PKIXParameters", "full_name": "java.security.cert.PKIXParameters"}, {"package_name": "java.security.cert", "class_name": "PKIXReason", "full_name": "java.security.cert.PKIXReason"}, {"package_name": "java.security.cert", "class_name": "PKIXRevocationChecker", "full_name": "java.security.cert.PKIXRevocationChecker"}, {"package_name": "java.security.cert", "class_name": "PKIXRevocationChecker.Option", "full_name": "java.security.cert.PKIXRevocationChecker.Option"}, {"package_name": "android.media", "class_name": "PlaybackParams", "full_name": "android.media.PlaybackParams"}, {"package_name": "android.media.session", "class_name": "PlaybackState", "full_name": "android.media.session.PlaybackState"}, {"package_name": "android.media.session", "class_name": "PlaybackState.Builder", "full_name": "android.media.session.PlaybackState.Builder"}, {"package_name": "android.media.session", "class_name": "PlaybackState.CustomAction", "full_name": "android.media.session.PlaybackState.CustomAction"}, {"package_name": "android.media.session", "class_name": "PlaybackState.CustomAction.Builder", "full_name": "android.media.session.PlaybackState.CustomAction.Builder"}, {"package_name": "android.webkit", "class_name": "PluginStub", "full_name": "android.webkit.PluginStub"}, {"package_name": "android.icu.text", "class_name": "PluralFormat", "full_name": "android.icu.text.PluralFormat"}, {"package_name": "android.icu.text", "class_name": "PluralRules", "full_name": "android.icu.text.PluralRules"}, {"package_name": "android.icu.text", "class_name": "PluralRules.PluralType", "full_name": "android.icu.text.PluralRules.PluralType"}, {"package_name": "android.graphics", "class_name": "Point", "full_name": "android.graphics.Point"}, {"package_name": "android.view", "class_name": "PointerIcon", "full_name": "android.view.PointerIcon"}, {"package_name": "android.graphics", "class_name": "PointF", "full_name": "android.graphics.PointF"}, {"package_name": "android.animation", "class_name": "PointFEvaluator", "full_name": "android.animation.PointFEvaluator"}, {"package_name": "java.security", "class_name": "Policy", "full_name": "java.security.Policy"}, {"package_name": "java.security", "class_name": "Policy.Parameters", "full_name": "java.security.Policy.Parameters"}, {"package_name": "java.security.cert", "class_name": "PolicyNode", "full_name": "java.security.cert.PolicyNode"}, {"package_name": "java.security.cert", "class_name": "PolicyQualifierInfo", "full_name": "java.security.cert.PolicyQualifierInfo"}, {"package_name": "java.security", "class_name": "PolicySpi", "full_name": "java.security.PolicySpi"}, {"package_name": "javax.sql", "class_name": "PooledConnection", "full_name": "javax.sql.PooledConnection"}, {"package_name": "android.widget", "class_name": "PopupMenu", "full_name": "android.widget.PopupMenu"}, {"package_name": "android.widget", "class_name": "PopupMenu.OnDismissListener", "full_name": "android.widget.PopupMenu.OnDismissListener"}, {"package_name": "android.widget", "class_name": "PopupMenu.OnMenuItemClickListener", "full_name": "android.widget.PopupMenu.OnMenuItemClickListener"}, {"package_name": "android.widget", "class_name": "PopupWindow", "full_name": "android.widget.PopupWindow"}, {"package_name": "android.widget", "class_name": "PopupWindow.OnDismissListener", "full_name": "android.widget.PopupWindow.OnDismissListener"}, {"package_name": "android.graphics", "class_name": "PorterDuff", "full_name": "android.graphics.PorterDuff"}, {"package_name": "android.graphics", "class_name": "PorterDuff.Mode", "full_name": "android.graphics.PorterDuff.Mode"}, {"package_name": "android.graphics", "class_name": "PorterDuffColorFilter", "full_name": "android.graphics.PorterDuffColorFilter"}, {"package_name": "android.graphics", "class_name": "PorterDuffXfermode", "full_name": "android.graphics.PorterDuffXfermode"}, {"package_name": "java.net", "class_name": "PortUnreachableException", "full_name": "java.net.PortUnreachableException"}, {"package_name": "java.nio.file.attribute", "class_name": "PosixFileAttributes", "full_name": "java.nio.file.attribute.PosixFileAttributes"}, {"package_name": "java.nio.file.attribute", "class_name": "PosixFileAttributeView", "full_name": "java.nio.file.attribute.PosixFileAttributeView"}, {"package_name": "java.nio.file.attribute", "class_name": "PosixFilePermission", "full_name": "java.nio.file.attribute.PosixFilePermission"}, {"package_name": "java.nio.file.attribute", "class_name": "PosixFilePermissions", "full_name": "java.nio.file.attribute.PosixFilePermissions"}, {"package_name": "android.graphics", "class_name": "PostProcessor", "full_name": "android.graphics.PostProcessor"}, {"package_name": "android.os", "class_name": "PowerManager", "full_name": "android.os.PowerManager"}, {"package_name": "android.os", "class_name": "PowerManager.WakeLock", "full_name": "android.os.PowerManager.WakeLock"}, {"package_name": "android.text", "class_name": "PrecomputedText", "full_name": "android.text.PrecomputedText"}, {"package_name": "android.text", "class_name": "PrecomputedText.Params", "full_name": "android.text.PrecomputedText.Params"}, {"package_name": "android.text", "class_name": "PrecomputedText.Params.Builder", "full_name": "android.text.PrecomputedText.Params.Builder"}, {"package_name": "android.gesture", "class_name": "Prediction", "full_name": "android.gesture.Prediction"}, {"package_name": "android.preference", "class_name": "Preference", "full_name": "android.preference.Preference"}, {"package_name": "android.preference", "class_name": "Preference.BaseSavedState", "full_name": "android.preference.Preference.BaseSavedState"}, {"package_name": "android.preference", "class_name": "Preference.OnPreferenceChangeListener", "full_name": "android.preference.Preference.OnPreferenceChangeListener"}, {"package_name": "android.preference", "class_name": "Preference.OnPreferenceClickListener", "full_name": "android.preference.Preference.OnPreferenceClickListener"}, {"package_name": "android.preference", "class_name": "PreferenceActivity", "full_name": "android.preference.PreferenceActivity"}, {"package_name": "android.preference", "class_name": "PreferenceActivity.Header", "full_name": "android.preference.PreferenceActivity.Header"}, {"package_name": "android.preference", "class_name": "PreferenceCategory", "full_name": "android.preference.PreferenceCategory"}, {"package_name": "java.util.prefs", "class_name": "PreferenceChangeEvent", "full_name": "java.util.prefs.PreferenceChangeEvent"}, {"package_name": "java.util.prefs", "class_name": "PreferenceChangeListener", "full_name": "java.util.prefs.PreferenceChangeListener"}, {"package_name": "android.preference", "class_name": "PreferenceDataStore", "full_name": "android.preference.PreferenceDataStore"}, {"package_name": "android.preference", "class_name": "PreferenceFragment", "full_name": "android.preference.PreferenceFragment"}, {"package_name": "android.preference", "class_name": "PreferenceFragment.OnPreferenceStartFragmentCallback", "full_name": "android.preference.PreferenceFragment.OnPreferenceStartFragmentCallback"}, {"package_name": "android.preference", "class_name": "PreferenceGroup", "full_name": "android.preference.PreferenceGroup"}, {"package_name": "android.preference", "class_name": "PreferenceManager", "full_name": "android.preference.PreferenceManager"}, {"package_name": "android.preference", "class_name": "PreferenceManager.OnActivityDestroyListener", "full_name": "android.preference.PreferenceManager.OnActivityDestroyListener"}, {"package_name": "android.preference", "class_name": "PreferenceManager.OnActivityResultListener", "full_name": "android.preference.PreferenceManager.OnActivityResultListener"}, {"package_name": "android.preference", "class_name": "PreferenceManager.OnActivityStopListener", "full_name": "android.preference.PreferenceManager.OnActivityStopListener"}, {"package_name": "java.util.prefs", "class_name": "Preferences", "full_name": "java.util.prefs.Preferences"}, {"package_name": "android.preference", "class_name": "PreferenceScreen", "full_name": "android.preference.PreferenceScreen"}, {"package_name": "java.util.prefs", "class_name": "PreferencesFactory", "full_name": "java.util.prefs.PreferencesFactory"}, {"package_name": "java.sql", "class_name": "PreparedStatement", "full_name": "java.sql.PreparedStatement"}, {"package_name": "android.app", "class_name": "Presentation", "full_name": "android.app.Presentation"}, {"package_name": "android.media.audiofx", "class_name": "PresetReverb", "full_name": "android.media.audiofx.PresetReverb"}, {"package_name": "android.media.audiofx", "class_name": "PresetReverb.OnParameterChangeListener", "full_name": "android.media.audiofx.PresetReverb.OnParameterChangeListener"}, {"package_name": "android.media.audiofx", "class_name": "PresetReverb.Settings", "full_name": "android.media.audiofx.PresetReverb.Settings"}, {"package_name": "java.util", "class_name": "PrimitiveIterator.OfDouble", "full_name": "java.util.PrimitiveIterator.OfDouble"}, {"package_name": "java.util", "class_name": "PrimitiveIterator.OfInt", "full_name": "java.util.PrimitiveIterator.OfInt"}, {"package_name": "java.util", "class_name": "PrimitiveIterator.OfLong", "full_name": "java.util.PrimitiveIterator.OfLong"}, {"package_name": "java.security", "class_name": "Principal", "full_name": "java.security.Principal"}, {"package_name": "android.print", "class_name": "PrintAttributes", "full_name": "android.print.PrintAttributes"}, {"package_name": "android.print", "class_name": "PrintAttributes.Builder", "full_name": "android.print.PrintAttributes.Builder"}, {"package_name": "android.print", "class_name": "PrintAttributes.Margins", "full_name": "android.print.PrintAttributes.Margins"}, {"package_name": "android.print", "class_name": "PrintAttributes.MediaSize", "full_name": "android.print.PrintAttributes.MediaSize"}, {"package_name": "android.print", "class_name": "PrintAttributes.Resolution", "full_name": "android.print.PrintAttributes.Resolution"}, {"package_name": "android.printservice", "class_name": "PrintDocument", "full_name": "android.printservice.PrintDocument"}, {"package_name": "android.print", "class_name": "PrintDocumentAdapter", "full_name": "android.print.PrintDocumentAdapter"}, {"package_name": "android.print", "class_name": "PrintDocumentAdapter.LayoutResultCallback", "full_name": "android.print.PrintDocumentAdapter.LayoutResultCallback"}, {"package_name": "android.print", "class_name": "PrintDocumentAdapter.WriteResultCallback", "full_name": "android.print.PrintDocumentAdapter.WriteResultCallback"}, {"package_name": "android.print", "class_name": "PrintDocumentInfo", "full_name": "android.print.PrintDocumentInfo"}, {"package_name": "android.print", "class_name": "PrintDocumentInfo.Builder", "full_name": "android.print.PrintDocumentInfo.Builder"}, {"package_name": "android.print.pdf", "class_name": "PrintedPdfDocument", "full_name": "android.print.pdf.PrintedPdfDocument"}, {"package_name": "android.util", "class_name": "Printer", "full_name": "android.util.Printer"}, {"package_name": "android.print", "class_name": "PrinterCapabilitiesInfo", "full_name": "android.print.PrinterCapabilitiesInfo"}, {"package_name": "android.print", "class_name": "PrinterCapabilitiesInfo.Builder", "full_name": "android.print.PrinterCapabilitiesInfo.Builder"}, {"package_name": "android.printservice", "class_name": "PrinterDiscoverySession", "full_name": "android.printservice.PrinterDiscoverySession"}, {"package_name": "android.print", "class_name": "PrinterId", "full_name": "android.print.PrinterId"}, {"package_name": "android.print", "class_name": "PrinterInfo", "full_name": "android.print.PrinterInfo"}, {"package_name": "android.print", "class_name": "PrinterInfo.Builder", "full_name": "android.print.PrinterInfo.Builder"}, {"package_name": "android.print", "class_name": "PrintJob", "full_name": "android.print.PrintJob"}, {"package_name": "android.printservice", "class_name": "PrintJob", "full_name": "android.printservice.PrintJob"}, {"package_name": "android.print", "class_name": "PrintJobId", "full_name": "android.print.PrintJobId"}, {"package_name": "android.print", "class_name": "PrintJobInfo", "full_name": "android.print.PrintJobInfo"}, {"package_name": "android.print", "class_name": "PrintJobInfo.Builder", "full_name": "android.print.PrintJobInfo.Builder"}, {"package_name": "android.print", "class_name": "PrintManager", "full_name": "android.print.PrintManager"}, {"package_name": "android.printservice", "class_name": "PrintService", "full_name": "android.printservice.PrintService"}, {"package_name": "java.io", "class_name": "PrintStream", "full_name": "java.io.PrintStream"}, {"package_name": "android.util", "class_name": "PrintStreamPrinter", "full_name": "android.util.PrintStreamPrinter"}, {"package_name": "java.io", "class_name": "PrintWriter", "full_name": "java.io.PrintWriter"}, {"package_name": "android.util", "class_name": "PrintWriterPrinter", "full_name": "android.util.PrintWriterPrinter"}, {"package_name": "javax.security.auth", "class_name": "PrivateCredentialPermission", "full_name": "javax.security.auth.PrivateCredentialPermission"}, {"package_name": "java.security", "class_name": "PrivateKey", "full_name": "java.security.PrivateKey"}, {"package_name": "java.security", "class_name": "PrivilegedActionException", "full_name": "java.security.PrivilegedActionException"}, {"package_name": "android.os", "class_name": "Process", "full_name": "android.os.Process"}, {"package_name": "java.lang", "class_name": "Process", "full_name": "java.lang.Process"}, {"package_name": "java.lang", "class_name": "ProcessBuilder", "full_name": "java.lang.ProcessBuilder"}, {"package_name": "java.lang", "class_name": "ProcessBuilder.Redirect", "full_name": "java.lang.ProcessBuilder.Redirect"}, {"package_name": "java.lang", "class_name": "ProcessBuilder.Redirect.Type", "full_name": "java.lang.ProcessBuilder.Redirect.Type"}, {"package_name": "android.drm", "class_name": "ProcessedData", "full_name": "android.drm.ProcessedData"}, {"package_name": "android.os.health", "class_name": "ProcessHealthStats", "full_name": "android.os.health.ProcessHealthStats"}, {"package_name": "android.widget", "class_name": "ProgressBar", "full_name": "android.widget.ProgressBar"}, {"package_name": "android.app", "class_name": "ProgressDialog", "full_name": "android.app.ProgressDialog"}, {"package_name": "java.util", "class_name": "Properties", "full_name": "java.util.Properties"}, {"package_name": "java.beans", "class_name": "PropertyChangeEvent", "full_name": "java.beans.PropertyChangeEvent"}, {"package_name": "java.beans", "class_name": "PropertyChangeListener", "full_name": "java.beans.PropertyChangeListener"}, {"package_name": "java.beans", "class_name": "PropertyChangeListenerProxy", "full_name": "java.beans.PropertyChangeListenerProxy"}, {"package_name": "java.beans", "class_name": "PropertyChangeSupport", "full_name": "java.beans.PropertyChangeSupport"}, {"package_name": "java.util", "class_name": "PropertyPermission", "full_name": "java.util.PropertyPermission"}, {"package_name": "java.util", "class_name": "PropertyResourceBundle", "full_name": "java.util.PropertyResourceBundle"}, {"package_name": "android.animation", "class_name": "PropertyValuesHolder", "full_name": "android.animation.PropertyValuesHolder"}, {"package_name": "junit.framework", "class_name": "Protectable", "full_name": "junit.framework.Protectable"}, {"package_name": "java.security", "class_name": "ProtectionDomain", "full_name": "java.security.ProtectionDomain"}, {"package_name": "java.net", "class_name": "ProtocolException", "full_name": "java.net.ProtocolException"}, {"package_name": "java.net", "class_name": "ProtocolFamily", "full_name": "java.net.ProtocolFamily"}, {"package_name": "java.security", "class_name": "Provider", "full_name": "java.security.Provider"}, {"package_name": "java.security", "class_name": "Provider.Service", "full_name": "java.security.Provider.Service"}, {"package_name": "java.security", "class_name": "ProviderException", "full_name": "java.security.ProviderException"}, {"package_name": "android.content.pm", "class_name": "ProviderInfo", "full_name": "android.content.pm.ProviderInfo"}, {"package_name": "java.nio.file", "class_name": "ProviderMismatchException", "full_name": "java.nio.file.ProviderMismatchException"}, {"package_name": "java.nio.file", "class_name": "ProviderNotFoundException", "full_name": "java.nio.file.ProviderNotFoundException"}, {"package_name": "android.net", "class_name": "Proxy", "full_name": "android.net.Proxy"}, {"package_name": "java.lang.reflect", "class_name": "Proxy", "full_name": "java.lang.reflect.Proxy"}, {"package_name": "java.net", "class_name": "Proxy", "full_name": "java.net.Proxy"}, {"package_name": "java.net", "class_name": "Proxy.Type", "full_name": "java.net.Proxy.Type"}, {"package_name": "android.os", "class_name": "ProxyFileDescriptorCallback", "full_name": "android.os.ProxyFileDescriptorCallback"}, {"package_name": "android.net", "class_name": "ProxyInfo", "full_name": "android.net.ProxyInfo"}, {"package_name": "java.net", "class_name": "ProxySelector", "full_name": "java.net.ProxySelector"}, {"package_name": "javax.crypto.spec", "class_name": "PSource", "full_name": "javax.crypto.spec.PSource"}, {"package_name": "javax.crypto.spec", "class_name": "PSource.PSpecified", "full_name": "javax.crypto.spec.PSource.PSpecified"}, {"package_name": "java.security.spec", "class_name": "PSSParameterSpec", "full_name": "java.security.spec.PSSParameterSpec"}, {"package_name": "java.security", "class_name": "PublicKey", "full_name": "java.security.PublicKey"}, {"package_name": "android.net.wifi.aware", "class_name": "PublishConfig", "full_name": "android.net.wifi.aware.PublishConfig"}, {"package_name": "android.net.wifi.aware", "class_name": "PublishConfig.Builder", "full_name": "android.net.wifi.aware.PublishConfig.Builder"}, {"package_name": "android.net.wifi.aware", "class_name": "PublishDiscoverySession", "full_name": "android.net.wifi.aware.PublishDiscoverySession"}, {"package_name": "java.io", "class_name": "PushbackInputStream", "full_name": "java.io.PushbackInputStream"}, {"package_name": "java.io", "class_name": "PushbackReader", "full_name": "java.io.PushbackReader"}, {"package_name": "javax.xml.namespace", "class_name": "QName", "full_name": "javax.xml.namespace.QName"}, {"package_name": "android.widget", "class_name": "QuickContactBadge", "full_name": "android.widget.QuickContactBadge"}, {"package_name": "android.content", "class_name": "QuickViewConstants", "full_name": "android.content.QuickViewConstants"}, {"package_name": "android.text.style", "class_name": "QuoteSpan", "full_name": "android.text.style.QuoteSpan"}, {"package_name": "android.text.method", "class_name": "QwertyKeyListener", "full_name": "android.text.method.QwertyKeyListener"}, {"package_name": "android", "class_name": "R", "full_name": "android.R"}, {"package_name": "android", "class_name": "R.anim", "full_name": "android.R.anim"}, {"package_name": "android", "class_name": "R.animator", "full_name": "android.R.animator"}, {"package_name": "android", "class_name": "R.array", "full_name": "android.R.array"}, {"package_name": "android", "class_name": "R.attr", "full_name": "android.R.attr"}, {"package_name": "android", "class_name": "R.bool", "full_name": "android.R.bool"}, {"package_name": "android", "class_name": "R.color", "full_name": "android.R.color"}, {"package_name": "android", "class_name": "R.dimen", "full_name": "android.R.dimen"}, {"package_name": "android", "class_name": "R.drawable", "full_name": "android.R.drawable"}, {"package_name": "android", "class_name": "R.fraction", "full_name": "android.R.fraction"}, {"package_name": "android", "class_name": "R.id", "full_name": "android.R.id"}, {"package_name": "android", "class_name": "R.integer", "full_name": "android.R.integer"}, {"package_name": "android", "class_name": "R.interpolator", "full_name": "android.R.interpolator"}, {"package_name": "android", "class_name": "R.layout", "full_name": "android.R.layout"}, {"package_name": "android", "class_name": "R.menu", "full_name": "android.R.menu"}, {"package_name": "android", "class_name": "R.mipmap", "full_name": "android.R.mipmap"}, {"package_name": "android", "class_name": "R.plurals", "full_name": "android.R.plurals"}, {"package_name": "android", "class_name": "R.raw", "full_name": "android.R.raw"}, {"package_name": "android", "class_name": "R.string", "full_name": "android.R.string"}, {"package_name": "android", "class_name": "R.style", "full_name": "android.R.style"}, {"package_name": "android", "class_name": "R.styleable", "full_name": "android.R.styleable"}, {"package_name": "android", "class_name": "R.transition", "full_name": "android.R.transition"}, {"package_name": "android", "class_name": "R.xml", "full_name": "android.R.xml"}, {"package_name": "android.graphics", "class_name": "RadialGradient", "full_name": "android.graphics.RadialGradient"}, {"package_name": "android.telephony", "class_name": "RadioAccessSpecifier", "full_name": "android.telephony.RadioAccessSpecifier"}, {"package_name": "android.widget", "class_name": "RadioButton", "full_name": "android.widget.RadioButton"}, {"package_name": "android.widget", "class_name": "RadioGroup", "full_name": "android.widget.RadioGroup"}, {"package_name": "android.widget", "class_name": "RadioGroup.LayoutParams", "full_name": "android.widget.RadioGroup.LayoutParams"}, {"package_name": "android.widget", "class_name": "RadioGroup.OnCheckedChangeListener", "full_name": "android.widget.RadioGroup.OnCheckedChangeListener"}, {"package_name": "java.util", "class_name": "Random", "full_name": "java.util.Random"}, {"package_name": "java.util", "class_name": "RandomAccess", "full_name": "java.util.RandomAccess"}, {"package_name": "java.io", "class_name": "RandomAccessFile", "full_name": "java.io.RandomAccessFile"}, {"package_name": "android.icu.util", "class_name": "RangeValueIterator", "full_name": "android.icu.util.RangeValueIterator"}, {"package_name": "android.icu.util", "class_name": "RangeValueIterator.Element", "full_name": "android.icu.util.RangeValueIterator.Element"}, {"package_name": "android.net.wifi.rtt", "class_name": "RangingRequest", "full_name": "android.net.wifi.rtt.RangingRequest"}, {"package_name": "android.net.wifi.rtt", "class_name": "RangingRequest.Builder", "full_name": "android.net.wifi.rtt.RangingRequest.Builder"}, {"package_name": "android.net.wifi.rtt", "class_name": "RangingResult", "full_name": "android.net.wifi.rtt.RangingResult"}, {"package_name": "android.net.wifi.rtt", "class_name": "RangingResultCallback", "full_name": "android.net.wifi.rtt.RangingResultCallback"}, {"package_name": "android.media", "class_name": "Rating", "full_name": "android.media.Rating"}, {"package_name": "android.widget", "class_name": "RatingBar", "full_name": "android.widget.RatingBar"}, {"package_name": "android.widget", "class_name": "RatingBar.OnRatingBarChangeListener", "full_name": "android.widget.RatingBar.OnRatingBarChangeListener"}, {"package_name": "android.util", "class_name": "Rational", "full_name": "android.util.Rational"}, {"package_name": "java.lang", "class_name": "Readable", "full_name": "java.lang.Readable"}, {"package_name": "java.nio.channels", "class_name": "ReadableByteChannel", "full_name": "java.nio.channels.ReadableByteChannel"}, {"package_name": "android.se.omapi", "class_name": "Reader", "full_name": "android.se.omapi.Reader"}, {"package_name": "java.io", "class_name": "Reader", "full_name": "java.io.Reader"}, {"package_name": "java.nio", "class_name": "ReadOnlyBufferException", "full_name": "java.nio.ReadOnlyBufferException"}, {"package_name": "java.nio.file", "class_name": "ReadOnlyFileSystemException", "full_name": "java.nio.file.ReadOnlyFileSystemException"}, {"package_name": "java.nio.channels", "class_name": "ReadPendingException", "full_name": "java.nio.channels.ReadPendingException"}, {"package_name": "java.util.concurrent.locks", "class_name": "ReadWriteLock", "full_name": "java.util.concurrent.locks.ReadWriteLock"}, {"package_name": "android.content", "class_name": "ReceiverCallNotAllowedException", "full_name": "android.content.ReceiverCallNotAllowedException"}, {"package_name": "android.speech", "class_name": "RecognitionListener", "full_name": "android.speech.RecognitionListener"}, {"package_name": "android.speech", "class_name": "RecognitionService", "full_name": "android.speech.RecognitionService"}, {"package_name": "android.speech", "class_name": "RecognitionService.Callback", "full_name": "android.speech.RecognitionService.Callback"}, {"package_name": "android.speech", "class_name": "RecognizerIntent", "full_name": "android.speech.RecognizerIntent"}, {"package_name": "android.speech", "class_name": "RecognizerResultsIntent", "full_name": "android.speech.RecognizerResultsIntent"}, {"package_name": "android.os", "class_name": "RecoverySystem", "full_name": "android.os.RecoverySystem"}, {"package_name": "android.os", "class_name": "RecoverySystem.ProgressListener", "full_name": "android.os.RecoverySystem.ProgressListener"}, {"package_name": "android.graphics", "class_name": "Rect", "full_name": "android.graphics.Rect"}, {"package_name": "android.animation", "class_name": "RectEvaluator", "full_name": "android.animation.RectEvaluator"}, {"package_name": "android.graphics", "class_name": "RectF", "full_name": "android.graphics.RectF"}, {"package_name": "android.graphics.drawable.shapes", "class_name": "RectShape", "full_name": "android.graphics.drawable.shapes.RectShape"}, {"package_name": "java.util.concurrent", "class_name": "RecursiveAction", "full_name": "java.util.concurrent.RecursiveAction"}, {"package_name": "java.util.concurrent.locks", "class_name": "ReentrantLock", "full_name": "java.util.concurrent.locks.ReentrantLock"}, {"package_name": "java.util.concurrent.locks", "class_name": "ReentrantReadWriteLock", "full_name": "java.util.concurrent.locks.ReentrantReadWriteLock"}, {"package_name": "java.util.concurrent.locks", "class_name": "ReentrantReadWriteLock.ReadLock", "full_name": "java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock"}, {"package_name": "java.util.concurrent.locks", "class_name": "ReentrantReadWriteLock.WriteLock", "full_name": "java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock"}, {"package_name": "java.sql", "class_name": "Ref", "full_name": "java.sql.Ref"}, {"package_name": "java.lang", "class_name": "ReflectiveOperationException", "full_name": "java.lang.ReflectiveOperationException"}, {"package_name": "java.lang.reflect", "class_name": "ReflectPermission", "full_name": "java.lang.reflect.ReflectPermission"}, {"package_name": "android.service.autofill", "class_name": "RegexValidator", "full_name": "android.service.autofill.RegexValidator"}, {"package_name": "android.graphics", "class_name": "Region", "full_name": "android.graphics.Region"}, {"package_name": "android.graphics", "class_name": "Region.Op", "full_name": "android.graphics.Region.Op"}, {"package_name": "android.graphics", "class_name": "RegionIterator", "full_name": "android.graphics.RegionIterator"}, {"package_name": "java.util.concurrent", "class_name": "RejectedExecutionException", "full_name": "java.util.concurrent.RejectedExecutionException"}, {"package_name": "java.util.concurrent", "class_name": "RejectedExecutionHandler", "full_name": "java.util.concurrent.RejectedExecutionHandler"}, {"package_name": "android.icu.text", "class_name": "RelativeDateTimeFormatter", "full_name": "android.icu.text.RelativeDateTimeFormatter"}, {"package_name": "android.icu.text", "class_name": "RelativeDateTimeFormatter.AbsoluteUnit", "full_name": "android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit"}, {"package_name": "android.icu.text", "class_name": "RelativeDateTimeFormatter.Direction", "full_name": "android.icu.text.RelativeDateTimeFormatter.Direction"}, {"package_name": "android.icu.text", "class_name": "RelativeDateTimeFormatter.RelativeDateTimeUnit", "full_name": "android.icu.text.RelativeDateTimeFormatter.RelativeDateTimeUnit"}, {"package_name": "android.icu.text", "class_name": "RelativeDateTimeFormatter.RelativeUnit", "full_name": "android.icu.text.RelativeDateTimeFormatter.RelativeUnit"}, {"package_name": "android.icu.text", "class_name": "RelativeDateTimeFormatter.Style", "full_name": "android.icu.text.RelativeDateTimeFormatter.Style"}, {"package_name": "android.widget", "class_name": "RelativeLayout", "full_name": "android.widget.RelativeLayout"}, {"package_name": "android.widget", "class_name": "RelativeLayout.LayoutParams", "full_name": "android.widget.RelativeLayout.LayoutParams"}, {"package_name": "android.text.style", "class_name": "RelativeSizeSpan", "full_name": "android.text.style.RelativeSizeSpan"}, {"package_name": "android.app", "class_name": "RemoteAction", "full_name": "android.app.RemoteAction"}, {"package_name": "android.telecom", "class_name": "RemoteConference", "full_name": "android.telecom.RemoteConference"}, {"package_name": "android.telecom", "class_name": "RemoteConference.Callback", "full_name": "android.telecom.RemoteConference.Callback"}, {"package_name": "android.telecom", "class_name": "RemoteConnection", "full_name": "android.telecom.RemoteConnection"}, {"package_name": "android.telecom", "class_name": "RemoteConnection.Callback", "full_name": "android.telecom.RemoteConnection.Callback"}, {"package_name": "android.telecom", "class_name": "RemoteConnection.VideoProvider", "full_name": "android.telecom.RemoteConnection.VideoProvider"}, {"package_name": "android.telecom", "class_name": "RemoteConnection.VideoProvider.Callback", "full_name": "android.telecom.RemoteConnection.VideoProvider.Callback"}, {"package_name": "android.media", "class_name": "RemoteControlClient", "full_name": "android.media.RemoteControlClient"}, {"package_name": "android.media", "class_name": "RemoteControlClient.MetadataEditor", "full_name": "android.media.RemoteControlClient.MetadataEditor"}, {"package_name": "android.media", "class_name": "RemoteControlClient.OnGetPlaybackPositionListener", "full_name": "android.media.RemoteControlClient.OnGetPlaybackPositionListener"}, {"package_name": "android.media", "class_name": "RemoteControlClient.OnMetadataUpdateListener", "full_name": "android.media.RemoteControlClient.OnMetadataUpdateListener"}, {"package_name": "android.media", "class_name": "RemoteControlClient.OnPlaybackPositionUpdateListener", "full_name": "android.media.RemoteControlClient.OnPlaybackPositionUpdateListener"}, {"package_name": "android.media", "class_name": "RemoteController", "full_name": "android.media.RemoteController"}, {"package_name": "android.media", "class_name": "RemoteController.MetadataEditor", "full_name": "android.media.RemoteController.MetadataEditor"}, {"package_name": "android.media", "class_name": "RemoteController.OnClientUpdateListener", "full_name": "android.media.RemoteController.OnClientUpdateListener"}, {"package_name": "android.os", "class_name": "RemoteException", "full_name": "android.os.RemoteException"}, {"package_name": "android.app", "class_name": "RemoteInput", "full_name": "android.app.RemoteInput"}, {"package_name": "android.app", "class_name": "RemoteInput.Builder", "full_name": "android.app.RemoteInput.Builder"}, {"package_name": "android.widget", "class_name": "RemoteViews", "full_name": "android.widget.RemoteViews"}, {"package_name": "android.widget", "class_name": "RemoteViews.ActionException", "full_name": "android.widget.RemoteViews.ActionException"}, {"package_name": "android.widget", "class_name": "RemoteViews.RemoteView", "full_name": "android.widget.RemoteViews.RemoteView"}, {"package_name": "android.widget", "class_name": "RemoteViewsService", "full_name": "android.widget.RemoteViewsService"}, {"package_name": "android.widget", "class_name": "RemoteViewsService.RemoteViewsFactory", "full_name": "android.widget.RemoteViewsService.RemoteViewsFactory"}, {"package_name": "android.test", "class_name": "RenamingDelegatingContext", "full_name": "android.test.RenamingDelegatingContext"}, {"package_name": "android.webkit", "class_name": "RenderProcessGoneDetail", "full_name": "android.webkit.RenderProcessGoneDetail"}, {"package_name": "android.renderscript", "class_name": "RenderScript", "full_name": "android.renderscript.RenderScript"}, {"package_name": "android.renderscript", "class_name": "RenderScript.ContextType", "full_name": "android.renderscript.RenderScript.ContextType"}, {"package_name": "android.renderscript", "class_name": "RenderScript.Priority", "full_name": "android.renderscript.RenderScript.Priority"}, {"package_name": "android.renderscript", "class_name": "RenderScript.RSErrorHandler", "full_name": "android.renderscript.RenderScript.RSErrorHandler"}, {"package_name": "android.renderscript", "class_name": "RenderScript.RSMessageHandler", "full_name": "android.renderscript.RenderScript.RSMessageHandler"}, {"package_name": "java.lang.annotation", "class_name": "Repeatable", "full_name": "java.lang.annotation.Repeatable"}, {"package_name": "android.icu.text", "class_name": "Replaceable", "full_name": "android.icu.text.Replaceable"}, {"package_name": "android.text.style", "class_name": "ReplacementSpan", "full_name": "android.text.style.ReplacementSpan"}, {"package_name": "android.text.method", "class_name": "ReplacementTransformationMethod", "full_name": "android.text.method.ReplacementTransformationMethod"}, {"package_name": "android.content.pm", "class_name": "ResolveInfo", "full_name": "android.content.pm.ResolveInfo"}, {"package_name": "android.content.pm", "class_name": "ResolveInfo.DisplayNameComparator", "full_name": "android.content.pm.ResolveInfo.DisplayNameComparator"}, {"package_name": "java.time.format", "class_name": "ResolverStyle", "full_name": "java.time.format.ResolverStyle"}, {"package_name": "java.util", "class_name": "ResourceBundle", "full_name": "java.util.ResourceBundle"}, {"package_name": "java.util", "class_name": "ResourceBundle.Control", "full_name": "java.util.ResourceBundle.Control"}, {"package_name": "android.media", "class_name": "ResourceBusyException", "full_name": "android.media.ResourceBusyException"}, {"package_name": "android.widget", "class_name": "ResourceCursorAdapter", "full_name": "android.widget.ResourceCursorAdapter"}, {"package_name": "android.widget", "class_name": "ResourceCursorTreeAdapter", "full_name": "android.widget.ResourceCursorTreeAdapter"}, {"package_name": "android.os.strictmode", "class_name": "ResourceMismatchViolation", "full_name": "android.os.strictmode.ResourceMismatchViolation"}, {"package_name": "android.content.res", "class_name": "Resources", "full_name": "android.content.res.Resources"}, {"package_name": "android.content.res", "class_name": "Resources.NotFoundException", "full_name": "android.content.res.Resources.NotFoundException"}, {"package_name": "android.content.res", "class_name": "Resources.Theme", "full_name": "android.content.res.Resources.Theme"}, {"package_name": "java.net", "class_name": "ResponseCache", "full_name": "java.net.ResponseCache"}, {"package_name": "android.app.backup", "class_name": "RestoreObserver", "full_name": "android.app.backup.RestoreObserver"}, {"package_name": "android.content", "class_name": "RestrictionEntry", "full_name": "android.content.RestrictionEntry"}, {"package_name": "android.content", "class_name": "RestrictionsManager", "full_name": "android.content.RestrictionsManager"}, {"package_name": "android.service.restrictions", "class_name": "RestrictionsReceiver", "full_name": "android.service.restrictions.RestrictionsReceiver"}, {"package_name": "javax.xml.transform", "class_name": "Result", "full_name": "javax.xml.transform.Result"}, {"package_name": "android.os", "class_name": "ResultReceiver", "full_name": "android.os.ResultReceiver"}, {"package_name": "java.sql", "class_name": "ResultSet", "full_name": "java.sql.ResultSet"}, {"package_name": "java.sql", "class_name": "ResultSetMetaData", "full_name": "java.sql.ResultSetMetaData"}, {"package_name": "java.lang.annotation", "class_name": "Retention", "full_name": "java.lang.annotation.Retention"}, {"package_name": "java.lang.annotation", "class_name": "RetentionPolicy", "full_name": "java.lang.annotation.RetentionPolicy"}, {"package_name": "android.media", "class_name": "Ringtone", "full_name": "android.media.Ringtone"}, {"package_name": "android.media", "class_name": "RingtoneManager", "full_name": "android.media.RingtoneManager"}, {"package_name": "android.preference", "class_name": "RingtonePreference", "full_name": "android.preference.RingtonePreference"}, {"package_name": "android.graphics.drawable", "class_name": "RippleDrawable", "full_name": "android.graphics.drawable.RippleDrawable"}, {"package_name": "android.sax", "class_name": "RootElement", "full_name": "android.sax.RootElement"}, {"package_name": "android.view.animation", "class_name": "RotateAnimation", "full_name": "android.view.animation.RotateAnimation"}, {"package_name": "android.graphics.drawable", "class_name": "RotateDrawable", "full_name": "android.graphics.drawable.RotateDrawable"}, {"package_name": "java.math", "class_name": "RoundingMode", "full_name": "java.math.RoundingMode"}, {"package_name": "android.graphics.drawable.shapes", "class_name": "RoundRectShape", "full_name": "android.graphics.drawable.shapes.RoundRectShape"}, {"package_name": "android.net", "class_name": "RouteInfo", "full_name": "android.net.RouteInfo"}, {"package_name": "java.sql", "class_name": "RowId", "full_name": "java.sql.RowId"}, {"package_name": "java.sql", "class_name": "RowIdLifetime", "full_name": "java.sql.RowIdLifetime"}, {"package_name": "javax.sql", "class_name": "RowSet", "full_name": "javax.sql.RowSet"}, {"package_name": "javax.sql", "class_name": "RowSetEvent", "full_name": "javax.sql.RowSetEvent"}, {"package_name": "javax.sql", "class_name": "RowSetInternal", "full_name": "javax.sql.RowSetInternal"}, {"package_name": "javax.sql", "class_name": "RowSetListener", "full_name": "javax.sql.RowSetListener"}, {"package_name": "javax.sql", "class_name": "RowSetMetaData", "full_name": "javax.sql.RowSetMetaData"}, {"package_name": "javax.sql", "class_name": "RowSetReader", "full_name": "javax.sql.RowSetReader"}, {"package_name": "javax.sql", "class_name": "RowSetWriter", "full_name": "javax.sql.RowSetWriter"}, {"package_name": "java.security.interfaces", "class_name": "RSAKey", "full_name": "java.security.interfaces.RSAKey"}, {"package_name": "java.security.spec", "class_name": "RSAKeyGenParameterSpec", "full_name": "java.security.spec.RSAKeyGenParameterSpec"}, {"package_name": "java.security.interfaces", "class_name": "RSAMultiPrimePrivateCrtKey", "full_name": "java.security.interfaces.RSAMultiPrimePrivateCrtKey"}, {"package_name": "java.security.spec", "class_name": "RSAMultiPrimePrivateCrtKeySpec", "full_name": "java.security.spec.RSAMultiPrimePrivateCrtKeySpec"}, {"package_name": "java.security.spec", "class_name": "RSAOtherPrimeInfo", "full_name": "java.security.spec.RSAOtherPrimeInfo"}, {"package_name": "java.security.interfaces", "class_name": "RSAPrivateCrtKey", "full_name": "java.security.interfaces.RSAPrivateCrtKey"}, {"package_name": "java.security.spec", "class_name": "RSAPrivateCrtKeySpec", "full_name": "java.security.spec.RSAPrivateCrtKeySpec"}, {"package_name": "java.security.interfaces", "class_name": "RSAPrivateKey", "full_name": "java.security.interfaces.RSAPrivateKey"}, {"package_name": "java.security.spec", "class_name": "RSAPrivateKeySpec", "full_name": "java.security.spec.RSAPrivateKeySpec"}, {"package_name": "java.security.interfaces", "class_name": "RSAPublicKey", "full_name": "java.security.interfaces.RSAPublicKey"}, {"package_name": "java.security.spec", "class_name": "RSAPublicKeySpec", "full_name": "java.security.spec.RSAPublicKeySpec"}, {"package_name": "android.renderscript", "class_name": "RSDriverException", "full_name": "android.renderscript.RSDriverException"}, {"package_name": "android.renderscript", "class_name": "RSIllegalArgumentException", "full_name": "android.renderscript.RSIllegalArgumentException"}, {"package_name": "android.renderscript", "class_name": "RSInvalidStateException", "full_name": "android.renderscript.RSInvalidStateException"}, {"package_name": "android.renderscript", "class_name": "RSRuntimeException", "full_name": "android.renderscript.RSRuntimeException"}, {"package_name": "android.net.rtp", "class_name": "RtpStream", "full_name": "android.net.rtp.RtpStream"}, {"package_name": "android.icu.text", "class_name": "RuleBasedCollator", "full_name": "android.icu.text.RuleBasedCollator"}, {"package_name": "java.text", "class_name": "RuleBasedCollator", "full_name": "java.text.RuleBasedCollator"}, {"package_name": "java.lang", "class_name": "Runnable", "full_name": "java.lang.Runnable"}, {"package_name": "java.lang", "class_name": "Runtime", "full_name": "java.lang.Runtime"}, {"package_name": "java.lang", "class_name": "RuntimeException", "full_name": "java.lang.RuntimeException"}, {"package_name": "java.lang", "class_name": "RuntimePermission", "full_name": "java.lang.RuntimePermission"}, {"package_name": "android.webkit", "class_name": "SafeBrowsingResponse", "full_name": "android.webkit.SafeBrowsingResponse"}, {"package_name": "java.lang", "class_name": "SafeVarargs", "full_name": "java.lang.SafeVarargs"}, {"package_name": "android.renderscript", "class_name": "Sampler", "full_name": "android.renderscript.Sampler"}, {"package_name": "android.renderscript", "class_name": "Sampler.Builder", "full_name": "android.renderscript.Sampler.Builder"}, {"package_name": "android.renderscript", "class_name": "Sampler.Value", "full_name": "android.renderscript.Sampler.Value"}, {"package_name": "android.service.autofill", "class_name": "Sanitizer", "full_name": "android.service.autofill.Sanitizer"}, {"package_name": "android.service.autofill", "class_name": "SaveCallback", "full_name": "android.service.autofill.SaveCallback"}, {"package_name": "android.service.autofill", "class_name": "SaveInfo", "full_name": "android.service.autofill.SaveInfo"}, {"package_name": "android.service.autofill", "class_name": "SaveInfo.Builder", "full_name": "android.service.autofill.SaveInfo.Builder"}, {"package_name": "java.sql", "class_name": "Savepoint", "full_name": "java.sql.Savepoint"}, {"package_name": "android.service.autofill", "class_name": "SaveRequest", "full_name": "android.service.autofill.SaveRequest"}, {"package_name": "org.xml.sax", "class_name": "SAXException", "full_name": "org.xml.sax.SAXException"}, {"package_name": "org.xml.sax", "class_name": "SAXNotRecognizedException", "full_name": "org.xml.sax.SAXNotRecognizedException"}, {"package_name": "org.xml.sax", "class_name": "SAXNotSupportedException", "full_name": "org.xml.sax.SAXNotSupportedException"}, {"package_name": "org.xml.sax", "class_name": "SAXParseException", "full_name": "org.xml.sax.SAXParseException"}, {"package_name": "javax.xml.parsers", "class_name": "SAXParser", "full_name": "javax.xml.parsers.SAXParser"}, {"package_name": "javax.xml.parsers", "class_name": "SAXParserFactory", "full_name": "javax.xml.parsers.SAXParserFactory"}, {"package_name": "javax.xml.transform.sax", "class_name": "SAXResult", "full_name": "javax.xml.transform.sax.SAXResult"}, {"package_name": "javax.xml.transform.sax", "class_name": "SAXSource", "full_name": "javax.xml.transform.sax.SAXSource"}, {"package_name": "javax.xml.transform.sax", "class_name": "SAXTransformerFactory", "full_name": "javax.xml.transform.sax.SAXTransformerFactory"}, {"package_name": "android.view.animation", "class_name": "ScaleAnimation", "full_name": "android.view.animation.ScaleAnimation"}, {"package_name": "android.graphics.drawable", "class_name": "ScaleDrawable", "full_name": "android.graphics.drawable.ScaleDrawable"}, {"package_name": "android.view", "class_name": "ScaleGestureDetector", "full_name": "android.view.ScaleGestureDetector"}, {"package_name": "android.view", "class_name": "ScaleGestureDetector.OnScaleGestureListener", "full_name": "android.view.ScaleGestureDetector.OnScaleGestureListener"}, {"package_name": "android.view", "class_name": "ScaleGestureDetector.SimpleOnScaleGestureListener", "full_name": "android.view.ScaleGestureDetector.SimpleOnScaleGestureListener"}, {"package_name": "android.text.style", "class_name": "ScaleXSpan", "full_name": "android.text.style.ScaleXSpan"}, {"package_name": "android.bluetooth.le", "class_name": "ScanCallback", "full_name": "android.bluetooth.le.ScanCallback"}, {"package_name": "android.bluetooth.le", "class_name": "ScanFilter", "full_name": "android.bluetooth.le.ScanFilter"}, {"package_name": "android.bluetooth.le", "class_name": "ScanFilter.Builder", "full_name": "android.bluetooth.le.ScanFilter.Builder"}, {"package_name": "java.util", "class_name": "Scanner", "full_name": "java.util.Scanner"}, {"package_name": "android.bluetooth.le", "class_name": "ScanRecord", "full_name": "android.bluetooth.le.ScanRecord"}, {"package_name": "android.bluetooth.le", "class_name": "ScanResult", "full_name": "android.bluetooth.le.ScanResult"}, {"package_name": "android.net.wifi", "class_name": "ScanResult", "full_name": "android.net.wifi.ScanResult"}, {"package_name": "android.bluetooth.le", "class_name": "ScanSettings", "full_name": "android.bluetooth.le.ScanSettings"}, {"package_name": "android.bluetooth.le", "class_name": "ScanSettings.Builder", "full_name": "android.bluetooth.le.ScanSettings.Builder"}, {"package_name": "java.nio.channels", "class_name": "ScatteringByteChannel", "full_name": "java.nio.channels.ScatteringByteChannel"}, {"package_name": "android.transition", "class_name": "Scene", "full_name": "android.transition.Scene"}, {"package_name": "java.util.concurrent", "class_name": "ScheduledExecutorService", "full_name": "java.util.concurrent.ScheduledExecutorService"}, {"package_name": "java.util.concurrent", "class_name": "ScheduledThreadPoolExecutor", "full_name": "java.util.concurrent.ScheduledThreadPoolExecutor"}, {"package_name": "javax.xml.validation", "class_name": "Schema", "full_name": "javax.xml.validation.Schema"}, {"package_name": "javax.xml.validation", "class_name": "SchemaFactory", "full_name": "javax.xml.validation.SchemaFactory"}, {"package_name": "javax.xml.validation", "class_name": "SchemaFactoryLoader", "full_name": "javax.xml.validation.SchemaFactoryLoader"}, {"package_name": "android.icu.text", "class_name": "ScientificNumberFormatter", "full_name": "android.icu.text.ScientificNumberFormatter"}, {"package_name": "android.renderscript", "class_name": "Script", "full_name": "android.renderscript.Script"}, {"package_name": "android.renderscript", "class_name": "Script.Builder", "full_name": "android.renderscript.Script.Builder"}, {"package_name": "android.renderscript", "class_name": "Script.FieldBase", "full_name": "android.renderscript.Script.FieldBase"}, {"package_name": "android.renderscript", "class_name": "Script.FieldID", "full_name": "android.renderscript.Script.FieldID"}, {"package_name": "android.renderscript", "class_name": "Script.InvokeID", "full_name": "android.renderscript.Script.InvokeID"}, {"package_name": "android.renderscript", "class_name": "Script.KernelID", "full_name": "android.renderscript.Script.KernelID"}, {"package_name": "android.renderscript", "class_name": "Script.LaunchOptions", "full_name": "android.renderscript.Script.LaunchOptions"}, {"package_name": "android.renderscript", "class_name": "ScriptC", "full_name": "android.renderscript.ScriptC"}, {"package_name": "android.renderscript", "class_name": "ScriptGroup", "full_name": "android.renderscript.ScriptGroup"}, {"package_name": "android.renderscript", "class_name": "ScriptGroup.Binding", "full_name": "android.renderscript.ScriptGroup.Binding"}, {"package_name": "android.renderscript", "class_name": "ScriptGroup.Builder", "full_name": "android.renderscript.ScriptGroup.Builder"}, {"package_name": "android.renderscript", "class_name": "ScriptGroup.Closure", "full_name": "android.renderscript.ScriptGroup.Closure"}, {"package_name": "android.renderscript", "class_name": "ScriptGroup.Future", "full_name": "android.renderscript.ScriptGroup.Future"}, {"package_name": "android.renderscript", "class_name": "ScriptGroup.Input", "full_name": "android.renderscript.ScriptGroup.Input"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsic", "full_name": "android.renderscript.ScriptIntrinsic"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicBLAS", "full_name": "android.renderscript.ScriptIntrinsicBLAS"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicBlend", "full_name": "android.renderscript.ScriptIntrinsicBlend"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicBlur", "full_name": "android.renderscript.ScriptIntrinsicBlur"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicColorMatrix", "full_name": "android.renderscript.ScriptIntrinsicColorMatrix"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicHistogram", "full_name": "android.renderscript.ScriptIntrinsicHistogram"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicLUT", "full_name": "android.renderscript.ScriptIntrinsicLUT"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicResize", "full_name": "android.renderscript.ScriptIntrinsicResize"}, {"package_name": "android.renderscript", "class_name": "ScriptIntrinsicYuvToRGB", "full_name": "android.renderscript.ScriptIntrinsicYuvToRGB"}, {"package_name": "android.widget", "class_name": "Scroller", "full_name": "android.widget.Scroller"}, {"package_name": "android.text.method", "class_name": "ScrollingMovementMethod", "full_name": "android.text.method.ScrollingMovementMethod"}, {"package_name": "android.widget", "class_name": "ScrollView", "full_name": "android.widget.ScrollView"}, {"package_name": "javax.crypto", "class_name": "SealedObject", "full_name": "javax.crypto.SealedObject"}, {"package_name": "android.app", "class_name": "SearchableInfo", "full_name": "android.app.SearchableInfo"}, {"package_name": "android.view", "class_name": "SearchEvent", "full_name": "android.view.SearchEvent"}, {"package_name": "android.icu.text", "class_name": "SearchIterator", "full_name": "android.icu.text.SearchIterator"}, {"package_name": "android.icu.text", "class_name": "SearchIterator.ElementComparisonType", "full_name": "android.icu.text.SearchIterator.ElementComparisonType"}, {"package_name": "android.app", "class_name": "SearchManager", "full_name": "android.app.SearchManager"}, {"package_name": "android.app", "class_name": "SearchManager.OnCancelListener", "full_name": "android.app.SearchManager.OnCancelListener"}, {"package_name": "android.app", "class_name": "SearchManager.OnDismissListener", "full_name": "android.app.SearchManager.OnDismissListener"}, {"package_name": "android.provider", "class_name": "SearchRecentSuggestions", "full_name": "android.provider.SearchRecentSuggestions"}, {"package_name": "android.content", "class_name": "SearchRecentSuggestionsProvider", "full_name": "android.content.SearchRecentSuggestionsProvider"}, {"package_name": "android.widget", "class_name": "SearchView", "full_name": "android.widget.SearchView"}, {"package_name": "android.widget", "class_name": "SearchView.OnCloseListener", "full_name": "android.widget.SearchView.OnCloseListener"}, {"package_name": "android.widget", "class_name": "SearchView.OnQueryTextListener", "full_name": "android.widget.SearchView.OnQueryTextListener"}, {"package_name": "android.widget", "class_name": "SearchView.OnSuggestionListener", "full_name": "android.widget.SearchView.OnSuggestionListener"}, {"package_name": "javax.crypto", "class_name": "SecretKey", "full_name": "javax.crypto.SecretKey"}, {"package_name": "javax.crypto", "class_name": "SecretKeyFactory", "full_name": "javax.crypto.SecretKeyFactory"}, {"package_name": "javax.crypto", "class_name": "SecretKeyFactorySpi", "full_name": "javax.crypto.SecretKeyFactorySpi"}, {"package_name": "javax.crypto.spec", "class_name": "SecretKeySpec", "full_name": "javax.crypto.spec.SecretKeySpec"}, {"package_name": "android.widget", "class_name": "SectionIndexer", "full_name": "android.widget.SectionIndexer"}, {"package_name": "java.net", "class_name": "SecureCacheResponse", "full_name": "java.net.SecureCacheResponse"}, {"package_name": "java.security", "class_name": "SecureClassLoader", "full_name": "java.security.SecureClassLoader"}, {"package_name": "android.security.keystore", "class_name": "SecureKeyImportUnavailableException", "full_name": "android.security.keystore.SecureKeyImportUnavailableException"}, {"package_name": "java.security", "class_name": "SecureRandom", "full_name": "java.security.SecureRandom"}, {"package_name": "java.security", "class_name": "SecureRandomSpi", "full_name": "java.security.SecureRandomSpi"}, {"package_name": "java.security", "class_name": "Security", "full_name": "java.security.Security"}, {"package_name": "java.lang", "class_name": "SecurityException", "full_name": "java.lang.SecurityException"}, {"package_name": "android.app.admin", "class_name": "SecurityLog", "full_name": "android.app.admin.SecurityLog"}, {"package_name": "android.app.admin", "class_name": "SecurityLog.SecurityEvent", "full_name": "android.app.admin.SecurityLog.SecurityEvent"}, {"package_name": "java.lang", "class_name": "SecurityManager", "full_name": "java.lang.SecurityManager"}, {"package_name": "java.security", "class_name": "SecurityPermission", "full_name": "java.security.SecurityPermission"}, {"package_name": "java.nio.channels", "class_name": "SeekableByteChannel", "full_name": "java.nio.channels.SeekableByteChannel"}, {"package_name": "android.widget", "class_name": "SeekBar", "full_name": "android.widget.SeekBar"}, {"package_name": "android.widget", "class_name": "SeekBar.OnSeekBarChangeListener", "full_name": "android.widget.SeekBar.OnSeekBarChangeListener"}, {"package_name": "java.nio.channels", "class_name": "SelectableChannel", "full_name": "java.nio.channels.SelectableChannel"}, {"package_name": "android.icu.text", "class_name": "SelectFormat", "full_name": "android.icu.text.SelectFormat"}, {"package_name": "android.text", "class_name": "Selection", "full_name": "android.text.Selection"}, {"package_name": "android.view.textclassifier", "class_name": "SelectionEvent", "full_name": "android.view.textclassifier.SelectionEvent"}, {"package_name": "java.nio.channels", "class_name": "SelectionKey", "full_name": "java.nio.channels.SelectionKey"}, {"package_name": "java.nio.channels", "class_name": "Selector", "full_name": "java.nio.channels.Selector"}, {"package_name": "java.nio.channels.spi", "class_name": "SelectorProvider", "full_name": "java.nio.channels.spi.SelectorProvider"}, {"package_name": "java.util.concurrent", "class_name": "Semaphore", "full_name": "java.util.concurrent.Semaphore"}, {"package_name": "android.hardware", "class_name": "Sensor", "full_name": "android.hardware.Sensor"}, {"package_name": "android.hardware", "class_name": "SensorAdditionalInfo", "full_name": "android.hardware.SensorAdditionalInfo"}, {"package_name": "android.hardware", "class_name": "SensorDirectChannel", "full_name": "android.hardware.SensorDirectChannel"}, {"package_name": "android.hardware", "class_name": "SensorEvent", "full_name": "android.hardware.SensorEvent"}, {"package_name": "android.hardware", "class_name": "SensorEventCallback", "full_name": "android.hardware.SensorEventCallback"}, {"package_name": "android.hardware", "class_name": "SensorEventListener", "full_name": "android.hardware.SensorEventListener"}, {"package_name": "android.hardware", "class_name": "SensorListener", "full_name": "android.hardware.SensorListener"}, {"package_name": "android.hardware", "class_name": "SensorManager", "full_name": "android.hardware.SensorManager"}, {"package_name": "android.hardware", "class_name": "SensorManager.DynamicSensorCallback", "full_name": "android.hardware.SensorManager.DynamicSensorCallback"}, {"package_name": "android.view.textservice", "class_name": "SentenceSuggestionsInfo", "full_name": "android.view.textservice.SentenceSuggestionsInfo"}, {"package_name": "java.io", "class_name": "SequenceInputStream", "full_name": "java.io.SequenceInputStream"}, {"package_name": "java.io", "class_name": "Serializable", "full_name": "java.io.Serializable"}, {"package_name": "java.io", "class_name": "SerializablePermission", "full_name": "java.io.SerializablePermission"}, {"package_name": "java.net", "class_name": "ServerSocket", "full_name": "java.net.ServerSocket"}, {"package_name": "java.nio.channels", "class_name": "ServerSocketChannel", "full_name": "java.nio.channels.ServerSocketChannel"}, {"package_name": "javax.net", "class_name": "ServerSocketFactory", "full_name": "javax.net.ServerSocketFactory"}, {"package_name": "android.app", "class_name": "Service", "full_name": "android.app.Service"}, {"package_name": "java.util", "class_name": "ServiceConfigurationError", "full_name": "java.util.ServiceConfigurationError"}, {"package_name": "android.content", "class_name": "ServiceConnection", "full_name": "android.content.ServiceConnection"}, {"package_name": "android.os.strictmode", "class_name": "ServiceConnectionLeakedViolation", "full_name": "android.os.strictmode.ServiceConnectionLeakedViolation"}, {"package_name": "android.os.health", "class_name": "ServiceHealthStats", "full_name": "android.os.health.ServiceHealthStats"}, {"package_name": "android.content.pm", "class_name": "ServiceInfo", "full_name": "android.content.pm.ServiceInfo"}, {"package_name": "android.telephony.mbms", "class_name": "ServiceInfo", "full_name": "android.telephony.mbms.ServiceInfo"}, {"package_name": "android.telephony", "class_name": "ServiceState", "full_name": "android.telephony.ServiceState"}, {"package_name": "android.webkit", "class_name": "ServiceWorkerClient", "full_name": "android.webkit.ServiceWorkerClient"}, {"package_name": "android.webkit", "class_name": "ServiceWorkerController", "full_name": "android.webkit.ServiceWorkerController"}, {"package_name": "android.webkit", "class_name": "ServiceWorkerWebSettings", "full_name": "android.webkit.ServiceWorkerWebSettings"}, {"package_name": "android.se.omapi", "class_name": "SEService", "full_name": "android.se.omapi.SEService"}, {"package_name": "android.se.omapi", "class_name": "SEService.OnConnectedListener", "full_name": "android.se.omapi.SEService.OnConnectedListener"}, {"package_name": "android.se.omapi", "class_name": "Session", "full_name": "android.se.omapi.Session"}, {"package_name": "android.location", "class_name": "SettingInjectorService", "full_name": "android.location.SettingInjectorService"}, {"package_name": "android.provider", "class_name": "Settings", "full_name": "android.provider.Settings"}, {"package_name": "android.provider", "class_name": "Settings.Global", "full_name": "android.provider.Settings.Global"}, {"package_name": "android.provider", "class_name": "Settings.NameValueTable", "full_name": "android.provider.Settings.NameValueTable"}, {"package_name": "android.provider", "class_name": "Settings.Secure", "full_name": "android.provider.Settings.Secure"}, {"package_name": "android.provider", "class_name": "Settings.SettingNotFoundException", "full_name": "android.provider.Settings.SettingNotFoundException"}, {"package_name": "android.provider", "class_name": "Settings.System", "full_name": "android.provider.Settings.System"}, {"package_name": "android.provider", "class_name": "SettingsSlicesContract", "full_name": "android.provider.SettingsSlicesContract"}, {"package_name": "android.graphics", "class_name": "Shader", "full_name": "android.graphics.Shader"}, {"package_name": "android.graphics", "class_name": "Shader.TileMode", "full_name": "android.graphics.Shader.TileMode"}, {"package_name": "android.graphics.drawable.shapes", "class_name": "Shape", "full_name": "android.graphics.drawable.shapes.Shape"}, {"package_name": "android.graphics.drawable", "class_name": "ShapeDrawable", "full_name": "android.graphics.drawable.ShapeDrawable"}, {"package_name": "android.graphics.drawable", "class_name": "ShapeDrawable.ShaderFactory", "full_name": "android.graphics.drawable.ShapeDrawable.ShaderFactory"}, {"package_name": "android.widget", "class_name": "ShareActionProvider", "full_name": "android.widget.ShareActionProvider"}, {"package_name": "android.widget", "class_name": "ShareActionProvider.OnShareTargetSelectedListener", "full_name": "android.widget.ShareActionProvider.OnShareTargetSelectedListener"}, {"package_name": "android.app", "class_name": "SharedElementCallback", "full_name": "android.app.SharedElementCallback"}, {"package_name": "android.app", "class_name": "SharedElementCallback.OnSharedElementsReadyListener", "full_name": "android.app.SharedElementCallback.OnSharedElementsReadyListener"}, {"package_name": "android.content.pm", "class_name": "SharedLibraryInfo", "full_name": "android.content.pm.SharedLibraryInfo"}, {"package_name": "android.os", "class_name": "SharedMemory", "full_name": "android.os.SharedMemory"}, {"package_name": "android.content", "class_name": "SharedPreferences", "full_name": "android.content.SharedPreferences"}, {"package_name": "android.content", "class_name": "SharedPreferences.Editor", "full_name": "android.content.SharedPreferences.Editor"}, {"package_name": "android.content", "class_name": "SharedPreferences.OnSharedPreferenceChangeListener", "full_name": "android.content.SharedPreferences.OnSharedPreferenceChangeListener"}, {"package_name": "android.app.backup", "class_name": "SharedPreferencesBackupHelper", "full_name": "android.app.backup.SharedPreferencesBackupHelper"}, {"package_name": "java.lang", "class_name": "Short", "full_name": "java.lang.Short"}, {"package_name": "java.nio", "class_name": "ShortBuffer", "full_name": "java.nio.ShortBuffer"}, {"package_name": "javax.crypto", "class_name": "ShortBufferException", "full_name": "javax.crypto.ShortBufferException"}, {"package_name": "android.content.pm", "class_name": "ShortcutInfo", "full_name": "android.content.pm.ShortcutInfo"}, {"package_name": "android.content.pm", "class_name": "ShortcutInfo.Builder", "full_name": "android.content.pm.ShortcutInfo.Builder"}, {"package_name": "android.content.pm", "class_name": "ShortcutManager", "full_name": "android.content.pm.ShortcutManager"}, {"package_name": "java.nio.channels", "class_name": "ShutdownChannelGroupException", "full_name": "java.nio.channels.ShutdownChannelGroupException"}, {"package_name": "android.transition", "class_name": "SidePropagation", "full_name": "android.transition.SidePropagation"}, {"package_name": "android.telephony", "class_name": "SignalStrength", "full_name": "android.telephony.SignalStrength"}, {"package_name": "android.content.pm", "class_name": "Signature", "full_name": "android.content.pm.Signature"}, {"package_name": "java.security", "class_name": "Signature", "full_name": "java.security.Signature"}, {"package_name": "java.security", "class_name": "SignatureException", "full_name": "java.security.SignatureException"}, {"package_name": "java.security", "class_name": "SignatureSpi", "full_name": "java.security.SignatureSpi"}, {"package_name": "java.security", "class_name": "SignedObject", "full_name": "java.security.SignedObject"}, {"package_name": "java.security", "class_name": "Signer", "full_name": "java.security.Signer"}, {"package_name": "android.content.pm", "class_name": "SigningInfo", "full_name": "android.content.pm.SigningInfo"}, {"package_name": "java.time.format", "class_name": "SignStyle", "full_name": "java.time.format.SignStyle"}, {"package_name": "android.widget", "class_name": "SimpleAdapter", "full_name": "android.widget.SimpleAdapter"}, {"package_name": "android.widget", "class_name": "SimpleAdapter.ViewBinder", "full_name": "android.widget.SimpleAdapter.ViewBinder"}, {"package_name": "android.widget", "class_name": "SimpleCursorAdapter", "full_name": "android.widget.SimpleCursorAdapter"}, {"package_name": "android.widget", "class_name": "SimpleCursorAdapter.CursorToStringConverter", "full_name": "android.widget.SimpleCursorAdapter.CursorToStringConverter"}, {"package_name": "android.widget", "class_name": "SimpleCursorAdapter.ViewBinder", "full_name": "android.widget.SimpleCursorAdapter.ViewBinder"}, {"package_name": "android.widget", "class_name": "SimpleCursorTreeAdapter", "full_name": "android.widget.SimpleCursorTreeAdapter"}, {"package_name": "android.widget", "class_name": "SimpleCursorTreeAdapter.ViewBinder", "full_name": "android.widget.SimpleCursorTreeAdapter.ViewBinder"}, {"package_name": "android.icu.text", "class_name": "SimpleDateFormat", "full_name": "android.icu.text.SimpleDateFormat"}, {"package_name": "java.text", "class_name": "SimpleDateFormat", "full_name": "java.text.SimpleDateFormat"}, {"package_name": "android.widget", "class_name": "SimpleExpandableListAdapter", "full_name": "android.widget.SimpleExpandableListAdapter"}, {"package_name": "java.util.logging", "class_name": "SimpleFormatter", "full_name": "java.util.logging.SimpleFormatter"}, {"package_name": "java.util", "class_name": "SimpleTimeZone", "full_name": "java.util.SimpleTimeZone"}, {"package_name": "android.text.method", "class_name": "SingleLineTransformationMethod", "full_name": "android.text.method.SingleLineTransformationMethod"}, {"package_name": "android.net.sip", "class_name": "SipAudioCall", "full_name": "android.net.sip.SipAudioCall"}, {"package_name": "android.net.sip", "class_name": "SipAudioCall.Listener", "full_name": "android.net.sip.SipAudioCall.Listener"}, {"package_name": "android.net.sip", "class_name": "SipErrorCode", "full_name": "android.net.sip.SipErrorCode"}, {"package_name": "android.net.sip", "class_name": "SipException", "full_name": "android.net.sip.SipException"}, {"package_name": "android.net.sip", "class_name": "SipManager", "full_name": "android.net.sip.SipManager"}, {"package_name": "android.net.sip", "class_name": "SipProfile", "full_name": "android.net.sip.SipProfile"}, {"package_name": "android.net.sip", "class_name": "SipProfile.Builder", "full_name": "android.net.sip.SipProfile.Builder"}, {"package_name": "android.net.sip", "class_name": "SipRegistrationListener", "full_name": "android.net.sip.SipRegistrationListener"}, {"package_name": "android.net.sip", "class_name": "SipSession", "full_name": "android.net.sip.SipSession"}, {"package_name": "android.net.sip", "class_name": "SipSession.Listener", "full_name": "android.net.sip.SipSession.Listener"}, {"package_name": "android.net.sip", "class_name": "SipSession.State", "full_name": "android.net.sip.SipSession.State"}, {"package_name": "android.util", "class_name": "Size", "full_name": "android.util.Size"}, {"package_name": "android.util", "class_name": "SizeF", "full_name": "android.util.SizeF"}, {"package_name": "android.app.slice", "class_name": "Slice", "full_name": "android.app.slice.Slice"}, {"package_name": "android.app.slice", "class_name": "Slice.Builder", "full_name": "android.app.slice.Slice.Builder"}, {"package_name": "android.app.slice", "class_name": "SliceItem", "full_name": "android.app.slice.SliceItem"}, {"package_name": "android.app.slice", "class_name": "SliceManager", "full_name": "android.app.slice.SliceManager"}, {"package_name": "android.app.slice", "class_name": "SliceMetrics", "full_name": "android.app.slice.SliceMetrics"}, {"package_name": "android.app.slice", "class_name": "SliceProvider", "full_name": "android.app.slice.SliceProvider"}, {"package_name": "android.app.slice", "class_name": "SliceSpec", "full_name": "android.app.slice.SliceSpec"}, {"package_name": "android.transition", "class_name": "Slide", "full_name": "android.transition.Slide"}, {"package_name": "android.widget", "class_name": "SlidingDrawer", "full_name": "android.widget.SlidingDrawer"}, {"package_name": "android.widget", "class_name": "SlidingDrawer.OnDrawerCloseListener", "full_name": "android.widget.SlidingDrawer.OnDrawerCloseListener"}, {"package_name": "android.widget", "class_name": "SlidingDrawer.OnDrawerOpenListener", "full_name": "android.widget.SlidingDrawer.OnDrawerOpenListener"}, {"package_name": "android.widget", "class_name": "SlidingDrawer.OnDrawerScrollListener", "full_name": "android.widget.SlidingDrawer.OnDrawerScrollListener"}, {"package_name": "android.test.suitebuilder.annotation", "class_name": "SmallTest", "full_name": "android.test.suitebuilder.annotation.SmallTest"}, {"package_name": "android.test.suitebuilder.annotation", "class_name": "Smoke", "full_name": "android.test.suitebuilder.annotation.Smoke"}, {"package_name": "android.telephony", "class_name": "SmsManager", "full_name": "android.telephony.SmsManager"}, {"package_name": "android.telephony.gsm", "class_name": "SmsManager", "full_name": "android.telephony.gsm.SmsManager"}, {"package_name": "android.telephony", "class_name": "SmsMessage", "full_name": "android.telephony.SmsMessage"}, {"package_name": "android.telephony.gsm", "class_name": "SmsMessage", "full_name": "android.telephony.gsm.SmsMessage"}, {"package_name": "android.telephony", "class_name": "SmsMessage.MessageClass", "full_name": "android.telephony.SmsMessage.MessageClass"}, {"package_name": "android.telephony.gsm", "class_name": "SmsMessage.MessageClass", "full_name": "android.telephony.gsm.SmsMessage.MessageClass"}, {"package_name": "android.telephony", "class_name": "SmsMessage.SubmitPdu", "full_name": "android.telephony.SmsMessage.SubmitPdu"}, {"package_name": "android.telephony.gsm", "class_name": "SmsMessage.SubmitPdu", "full_name": "android.telephony.gsm.SmsMessage.SubmitPdu"}, {"package_name": "javax.net.ssl", "class_name": "SNIHostName", "full_name": "javax.net.ssl.SNIHostName"}, {"package_name": "javax.net.ssl", "class_name": "SNIMatcher", "full_name": "javax.net.ssl.SNIMatcher"}, {"package_name": "javax.net.ssl", "class_name": "SNIServerName", "full_name": "javax.net.ssl.SNIServerName"}, {"package_name": "java.net", "class_name": "Socket", "full_name": "java.net.Socket"}, {"package_name": "java.net", "class_name": "SocketAddress", "full_name": "java.net.SocketAddress"}, {"package_name": "java.nio.channels", "class_name": "SocketChannel", "full_name": "java.nio.channels.SocketChannel"}, {"package_name": "java.net", "class_name": "SocketException", "full_name": "java.net.SocketException"}, {"package_name": "javax.net", "class_name": "SocketFactory", "full_name": "javax.net.SocketFactory"}, {"package_name": "org.apache.http.conn.scheme", "class_name": "SocketFactory", "full_name": "org.apache.http.conn.scheme.SocketFactory"}, {"package_name": "java.util.logging", "class_name": "SocketHandler", "full_name": "java.util.logging.SocketHandler"}, {"package_name": "java.net", "class_name": "SocketImpl", "full_name": "java.net.SocketImpl"}, {"package_name": "java.net", "class_name": "SocketImplFactory", "full_name": "java.net.SocketImplFactory"}, {"package_name": "java.net", "class_name": "SocketOptions", "full_name": "java.net.SocketOptions"}, {"package_name": "java.net", "class_name": "SocketPermission", "full_name": "java.net.SocketPermission"}, {"package_name": "java.net", "class_name": "SocketTimeoutException", "full_name": "java.net.SocketTimeoutException"}, {"package_name": "android.view", "class_name": "SoundEffectConstants", "full_name": "android.view.SoundEffectConstants"}, {"package_name": "android.media", "class_name": "SoundPool", "full_name": "android.media.SoundPool"}, {"package_name": "android.media", "class_name": "SoundPool.Builder", "full_name": "android.media.SoundPool.Builder"}, {"package_name": "android.media", "class_name": "SoundPool.OnLoadCompleteListener", "full_name": "android.media.SoundPool.OnLoadCompleteListener"}, {"package_name": "javax.xml.transform", "class_name": "Source", "full_name": "javax.xml.transform.Source"}, {"package_name": "javax.xml.transform", "class_name": "SourceLocator", "full_name": "javax.xml.transform.SourceLocator"}, {"package_name": "android.widget", "class_name": "Space", "full_name": "android.widget.Space"}, {"package_name": "android.text", "class_name": "Spannable", "full_name": "android.text.Spannable"}, {"package_name": "android.text", "class_name": "Spannable.Factory", "full_name": "android.text.Spannable.Factory"}, {"package_name": "android.text", "class_name": "SpannableString", "full_name": "android.text.SpannableString"}, {"package_name": "android.text", "class_name": "SpannableStringBuilder", "full_name": "android.text.SpannableStringBuilder"}, {"package_name": "android.text", "class_name": "Spanned", "full_name": "android.text.Spanned"}, {"package_name": "android.text", "class_name": "SpannedString", "full_name": "android.text.SpannedString"}, {"package_name": "android.text", "class_name": "SpanWatcher", "full_name": "android.text.SpanWatcher"}, {"package_name": "android.util", "class_name": "SparseBooleanArray", "full_name": "android.util.SparseBooleanArray"}, {"package_name": "android.util", "class_name": "SparseIntArray", "full_name": "android.util.SparseIntArray"}, {"package_name": "android.util", "class_name": "SparseLongArray", "full_name": "android.util.SparseLongArray"}, {"package_name": "android.speech", "class_name": "SpeechRecognizer", "full_name": "android.speech.SpeechRecognizer"}, {"package_name": "android.view.textservice", "class_name": "SpellCheckerInfo", "full_name": "android.view.textservice.SpellCheckerInfo"}, {"package_name": "android.service.textservice", "class_name": "SpellCheckerService", "full_name": "android.service.textservice.SpellCheckerService"}, {"package_name": "android.service.textservice", "class_name": "SpellCheckerService.Session", "full_name": "android.service.textservice.SpellCheckerService.Session"}, {"package_name": "android.view.textservice", "class_name": "SpellCheckerSession", "full_name": "android.view.textservice.SpellCheckerSession"}, {"package_name": "android.view.textservice", "class_name": "SpellCheckerSession.SpellCheckerSessionListener", "full_name": "android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener"}, {"package_name": "android.view.textservice", "class_name": "SpellCheckerSubtype", "full_name": "android.view.textservice.SpellCheckerSubtype"}, {"package_name": "android.widget", "class_name": "Spinner", "full_name": "android.widget.Spinner"}, {"package_name": "android.widget", "class_name": "SpinnerAdapter", "full_name": "android.widget.SpinnerAdapter"}, {"package_name": "java.util", "class_name": "Spliterator.OfDouble", "full_name": "java.util.Spliterator.OfDouble"}, {"package_name": "java.util", "class_name": "Spliterator.OfInt", "full_name": "java.util.Spliterator.OfInt"}, {"package_name": "java.util", "class_name": "Spliterator.OfLong", "full_name": "java.util.Spliterator.OfLong"}, {"package_name": "java.util", "class_name": "Spliterators", "full_name": "java.util.Spliterators"}, {"package_name": "java.util", "class_name": "Spliterators.AbstractDoubleSpliterator", "full_name": "java.util.Spliterators.AbstractDoubleSpliterator"}, {"package_name": "java.util", "class_name": "Spliterators.AbstractIntSpliterator", "full_name": "java.util.Spliterators.AbstractIntSpliterator"}, {"package_name": "java.util", "class_name": "Spliterators.AbstractLongSpliterator", "full_name": "java.util.Spliterators.AbstractLongSpliterator"}, {"package_name": "java.util", "class_name": "SplittableRandom", "full_name": "java.util.SplittableRandom"}, {"package_name": "java.sql", "class_name": "SQLClientInfoException", "full_name": "java.sql.SQLClientInfoException"}, {"package_name": "java.sql", "class_name": "SQLData", "full_name": "java.sql.SQLData"}, {"package_name": "java.sql", "class_name": "SQLDataException", "full_name": "java.sql.SQLDataException"}, {"package_name": "android.database", "class_name": "SQLException", "full_name": "android.database.SQLException"}, {"package_name": "java.sql", "class_name": "SQLException", "full_name": "java.sql.SQLException"}, {"package_name": "java.sql", "class_name": "SQLFeatureNotSupportedException", "full_name": "java.sql.SQLFeatureNotSupportedException"}, {"package_name": "java.sql", "class_name": "SQLInput", "full_name": "java.sql.SQLInput"}, {"package_name": "java.sql", "class_name": "SQLIntegrityConstraintViolationException", "full_name": "java.sql.SQLIntegrityConstraintViolationException"}, {"package_name": "java.sql", "class_name": "SQLInvalidAuthorizationSpecException", "full_name": "java.sql.SQLInvalidAuthorizationSpecException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteAbortException", "full_name": "android.database.sqlite.SQLiteAbortException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteAccessPermException", "full_name": "android.database.sqlite.SQLiteAccessPermException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteBindOrColumnIndexOutOfRangeException", "full_name": "android.database.sqlite.SQLiteBindOrColumnIndexOutOfRangeException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteBlobTooBigException", "full_name": "android.database.sqlite.SQLiteBlobTooBigException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteCantOpenDatabaseException", "full_name": "android.database.sqlite.SQLiteCantOpenDatabaseException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteClosable", "full_name": "android.database.sqlite.SQLiteClosable"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteConstraintException", "full_name": "android.database.sqlite.SQLiteConstraintException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteCursor", "full_name": "android.database.sqlite.SQLiteCursor"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteCursorDriver", "full_name": "android.database.sqlite.SQLiteCursorDriver"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDatabase", "full_name": "android.database.sqlite.SQLiteDatabase"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDatabase.CursorFactory", "full_name": "android.database.sqlite.SQLiteDatabase.CursorFactory"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDatabase.OpenParams", "full_name": "android.database.sqlite.SQLiteDatabase.OpenParams"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDatabase.OpenParams.Builder", "full_name": "android.database.sqlite.SQLiteDatabase.OpenParams.Builder"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDatabaseCorruptException", "full_name": "android.database.sqlite.SQLiteDatabaseCorruptException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDatabaseLockedException", "full_name": "android.database.sqlite.SQLiteDatabaseLockedException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDatatypeMismatchException", "full_name": "android.database.sqlite.SQLiteDatatypeMismatchException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDiskIOException", "full_name": "android.database.sqlite.SQLiteDiskIOException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteDoneException", "full_name": "android.database.sqlite.SQLiteDoneException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteException", "full_name": "android.database.sqlite.SQLiteException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteFullException", "full_name": "android.database.sqlite.SQLiteFullException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteMisuseException", "full_name": "android.database.sqlite.SQLiteMisuseException"}, {"package_name": "android.os.strictmode", "class_name": "SqliteObjectLeakedViolation", "full_name": "android.os.strictmode.SqliteObjectLeakedViolation"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteOpenHelper", "full_name": "android.database.sqlite.SQLiteOpenHelper"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteOutOfMemoryException", "full_name": "android.database.sqlite.SQLiteOutOfMemoryException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteProgram", "full_name": "android.database.sqlite.SQLiteProgram"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteQuery", "full_name": "android.database.sqlite.SQLiteQuery"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteQueryBuilder", "full_name": "android.database.sqlite.SQLiteQueryBuilder"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteReadOnlyDatabaseException", "full_name": "android.database.sqlite.SQLiteReadOnlyDatabaseException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteStatement", "full_name": "android.database.sqlite.SQLiteStatement"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteTableLockedException", "full_name": "android.database.sqlite.SQLiteTableLockedException"}, {"package_name": "android.database.sqlite", "class_name": "SQLiteTransactionListener", "full_name": "android.database.sqlite.SQLiteTransactionListener"}, {"package_name": "java.sql", "class_name": "SQLNonTransientConnectionException", "full_name": "java.sql.SQLNonTransientConnectionException"}, {"package_name": "java.sql", "class_name": "SQLNonTransientException", "full_name": "java.sql.SQLNonTransientException"}, {"package_name": "java.sql", "class_name": "SQLOutput", "full_name": "java.sql.SQLOutput"}, {"package_name": "java.sql", "class_name": "SQLPermission", "full_name": "java.sql.SQLPermission"}, {"package_name": "java.sql", "class_name": "SQLRecoverableException", "full_name": "java.sql.SQLRecoverableException"}, {"package_name": "java.sql", "class_name": "SQLSyntaxErrorException", "full_name": "java.sql.SQLSyntaxErrorException"}, {"package_name": "java.sql", "class_name": "SQLTimeoutException", "full_name": "java.sql.SQLTimeoutException"}, {"package_name": "java.sql", "class_name": "SQLTransactionRollbackException", "full_name": "java.sql.SQLTransactionRollbackException"}, {"package_name": "java.sql", "class_name": "SQLTransientConnectionException", "full_name": "java.sql.SQLTransientConnectionException"}, {"package_name": "java.sql", "class_name": "SQLTransientException", "full_name": "java.sql.SQLTransientException"}, {"package_name": "java.sql", "class_name": "SQLWarning", "full_name": "java.sql.SQLWarning"}, {"package_name": "java.sql", "class_name": "SQLXML", "full_name": "java.sql.SQLXML"}, {"package_name": "android.net.http", "class_name": "SslCertificate", "full_name": "android.net.http.SslCertificate"}, {"package_name": "android.net.http", "class_name": "SslCertificate.DName", "full_name": "android.net.http.SslCertificate.DName"}, {"package_name": "android.net", "class_name": "SSLCertificateSocketFactory", "full_name": "android.net.SSLCertificateSocketFactory"}, {"package_name": "javax.net.ssl", "class_name": "SSLContext", "full_name": "javax.net.ssl.SSLContext"}, {"package_name": "javax.net.ssl", "class_name": "SSLContextSpi", "full_name": "javax.net.ssl.SSLContextSpi"}, {"package_name": "javax.net.ssl", "class_name": "SSLEngine", "full_name": "javax.net.ssl.SSLEngine"}, {"package_name": "javax.net.ssl", "class_name": "SSLEngineResult", "full_name": "javax.net.ssl.SSLEngineResult"}, {"package_name": "javax.net.ssl", "class_name": "SSLEngineResult.HandshakeStatus", "full_name": "javax.net.ssl.SSLEngineResult.HandshakeStatus"}, {"package_name": "javax.net.ssl", "class_name": "SSLEngineResult.Status", "full_name": "javax.net.ssl.SSLEngineResult.Status"}, {"package_name": "android.net.http", "class_name": "SslError", "full_name": "android.net.http.SslError"}, {"package_name": "android.webkit", "class_name": "SslErrorHandler", "full_name": "android.webkit.SslErrorHandler"}, {"package_name": "javax.net.ssl", "class_name": "SSLException", "full_name": "javax.net.ssl.SSLException"}, {"package_name": "javax.net.ssl", "class_name": "SSLHandshakeException", "full_name": "javax.net.ssl.SSLHandshakeException"}, {"package_name": "javax.net.ssl", "class_name": "SSLKeyException", "full_name": "javax.net.ssl.SSLKeyException"}, {"package_name": "javax.net.ssl", "class_name": "SSLParameters", "full_name": "javax.net.ssl.SSLParameters"}, {"package_name": "javax.net.ssl", "class_name": "SSLPeerUnverifiedException", "full_name": "javax.net.ssl.SSLPeerUnverifiedException"}, {"package_name": "javax.net.ssl", "class_name": "SSLPermission", "full_name": "javax.net.ssl.SSLPermission"}, {"package_name": "javax.net.ssl", "class_name": "SSLProtocolException", "full_name": "javax.net.ssl.SSLProtocolException"}, {"package_name": "javax.net.ssl", "class_name": "SSLServerSocket", "full_name": "javax.net.ssl.SSLServerSocket"}, {"package_name": "javax.net.ssl", "class_name": "SSLServerSocketFactory", "full_name": "javax.net.ssl.SSLServerSocketFactory"}, {"package_name": "javax.net.ssl", "class_name": "SSLSession", "full_name": "javax.net.ssl.SSLSession"}, {"package_name": "javax.net.ssl", "class_name": "SSLSessionBindingEvent", "full_name": "javax.net.ssl.SSLSessionBindingEvent"}, {"package_name": "javax.net.ssl", "class_name": "SSLSessionBindingListener", "full_name": "javax.net.ssl.SSLSessionBindingListener"}, {"package_name": "android.net", "class_name": "SSLSessionCache", "full_name": "android.net.SSLSessionCache"}, {"package_name": "javax.net.ssl", "class_name": "SSLSessionContext", "full_name": "javax.net.ssl.SSLSessionContext"}, {"package_name": "javax.net.ssl", "class_name": "SSLSocket", "full_name": "javax.net.ssl.SSLSocket"}, {"package_name": "javax.net.ssl", "class_name": "SSLSocketFactory", "full_name": "javax.net.ssl.SSLSocketFactory"}, {"package_name": "org.apache.http.conn.ssl", "class_name": "SSLSocketFactory", "full_name": "org.apache.http.conn.ssl.SSLSocketFactory"}, {"package_name": "java.lang", "class_name": "StackOverflowError", "full_name": "java.lang.StackOverflowError"}, {"package_name": "java.lang", "class_name": "StackTraceElement", "full_name": "java.lang.StackTraceElement"}, {"package_name": "android.widget", "class_name": "StackView", "full_name": "android.widget.StackView"}, {"package_name": "android.database", "class_name": "StaleDataException", "full_name": "android.database.StaleDataException"}, {"package_name": "java.util.concurrent.locks", "class_name": "StampedLock", "full_name": "java.util.concurrent.locks.StampedLock"}, {"package_name": "java.nio.charset", "class_name": "StandardCharsets", "full_name": "java.nio.charset.StandardCharsets"}, {"package_name": "javax.net.ssl", "class_name": "StandardConstants", "full_name": "javax.net.ssl.StandardConstants"}, {"package_name": "java.nio.file", "class_name": "StandardCopyOption", "full_name": "java.nio.file.StandardCopyOption"}, {"package_name": "java.nio.file", "class_name": "StandardOpenOption", "full_name": "java.nio.file.StandardOpenOption"}, {"package_name": "java.net", "class_name": "StandardProtocolFamily", "full_name": "java.net.StandardProtocolFamily"}, {"package_name": "java.net", "class_name": "StandardSocketOptions", "full_name": "java.net.StandardSocketOptions"}, {"package_name": "java.nio.file", "class_name": "StandardWatchEventKinds", "full_name": "java.nio.file.StandardWatchEventKinds"}, {"package_name": "android.sax", "class_name": "StartElementListener", "full_name": "android.sax.StartElementListener"}, {"package_name": "android.animation", "class_name": "StateListAnimator", "full_name": "android.animation.StateListAnimator"}, {"package_name": "android.graphics.drawable", "class_name": "StateListDrawable", "full_name": "android.graphics.drawable.StateListDrawable"}, {"package_name": "java.sql", "class_name": "Statement", "full_name": "java.sql.Statement"}, {"package_name": "javax.sql", "class_name": "StatementEvent", "full_name": "javax.sql.StatementEvent"}, {"package_name": "javax.sql", "class_name": "StatementEventListener", "full_name": "javax.sql.StatementEventListener"}, {"package_name": "android.util", "class_name": "StateSet", "full_name": "android.util.StateSet"}, {"package_name": "android.os", "class_name": "StatFs", "full_name": "android.os.StatFs"}, {"package_name": "android.text", "class_name": "StaticLayout", "full_name": "android.text.StaticLayout"}, {"package_name": "android.text", "class_name": "StaticLayout.Builder", "full_name": "android.text.StaticLayout.Builder"}, {"package_name": "android.util", "class_name": "StatsLog", "full_name": "android.util.StatsLog"}, {"package_name": "android.service.notification", "class_name": "StatusBarNotification", "full_name": "android.service.notification.StatusBarNotification"}, {"package_name": "android.telecom", "class_name": "StatusHints", "full_name": "android.telecom.StatusHints"}, {"package_name": "android.os.storage", "class_name": "StorageManager", "full_name": "android.os.storage.StorageManager"}, {"package_name": "android.app.usage", "class_name": "StorageStats", "full_name": "android.app.usage.StorageStats"}, {"package_name": "android.app.usage", "class_name": "StorageStatsManager", "full_name": "android.app.usage.StorageStatsManager"}, {"package_name": "android.os.storage", "class_name": "StorageVolume", "full_name": "android.os.storage.StorageVolume"}, {"package_name": "java.io", "class_name": "StreamCorruptedException", "full_name": "java.io.StreamCorruptedException"}, {"package_name": "java.util.logging", "class_name": "StreamHandler", "full_name": "java.util.logging.StreamHandler"}, {"package_name": "android.telephony.mbms", "class_name": "StreamingService", "full_name": "android.telephony.mbms.StreamingService"}, {"package_name": "android.telephony.mbms", "class_name": "StreamingServiceCallback", "full_name": "android.telephony.mbms.StreamingServiceCallback"}, {"package_name": "android.telephony.mbms", "class_name": "StreamingServiceInfo", "full_name": "android.telephony.mbms.StreamingServiceInfo"}, {"package_name": "javax.xml.transform.stream", "class_name": "StreamResult", "full_name": "javax.xml.transform.stream.StreamResult"}, {"package_name": "javax.xml.transform.stream", "class_name": "StreamSource", "full_name": "javax.xml.transform.stream.StreamSource"}, {"package_name": "java.util.stream", "class_name": "StreamSupport", "full_name": "java.util.stream.StreamSupport"}, {"package_name": "java.io", "class_name": "StreamTokenizer", "full_name": "java.io.StreamTokenizer"}, {"package_name": "org.apache.http.conn.ssl", "class_name": "StrictHostnameVerifier", "full_name": "org.apache.http.conn.ssl.StrictHostnameVerifier"}, {"package_name": "java.lang", "class_name": "StrictMath", "full_name": "java.lang.StrictMath"}, {"package_name": "android.os", "class_name": "StrictMode", "full_name": "android.os.StrictMode"}, {"package_name": "android.os", "class_name": "StrictMode.OnThreadViolationListener", "full_name": "android.os.StrictMode.OnThreadViolationListener"}, {"package_name": "android.os", "class_name": "StrictMode.OnVmViolationListener", "full_name": "android.os.StrictMode.OnVmViolationListener"}, {"package_name": "android.os", "class_name": "StrictMode.ThreadPolicy", "full_name": "android.os.StrictMode.ThreadPolicy"}, {"package_name": "android.os", "class_name": "StrictMode.ThreadPolicy.Builder", "full_name": "android.os.StrictMode.ThreadPolicy.Builder"}, {"package_name": "android.os", "class_name": "StrictMode.VmPolicy", "full_name": "android.os.StrictMode.VmPolicy"}, {"package_name": "android.os", "class_name": "StrictMode.VmPolicy.Builder", "full_name": "android.os.StrictMode.VmPolicy.Builder"}, {"package_name": "android.text.style", "class_name": "StrikethroughSpan", "full_name": "android.text.style.StrikethroughSpan"}, {"package_name": "java.lang", "class_name": "String", "full_name": "java.lang.String"}, {"package_name": "java.lang", "class_name": "StringBuffer", "full_name": "java.lang.StringBuffer"}, {"package_name": "java.io", "class_name": "StringBufferInputStream", "full_name": "java.io.StringBufferInputStream"}, {"package_name": "java.lang", "class_name": "StringBuilder", "full_name": "java.lang.StringBuilder"}, {"package_name": "android.util", "class_name": "StringBuilderPrinter", "full_name": "android.util.StringBuilderPrinter"}, {"package_name": "java.text", "class_name": "StringCharacterIterator", "full_name": "java.text.StringCharacterIterator"}, {"package_name": "java.lang", "class_name": "StringIndexOutOfBoundsException", "full_name": "java.lang.StringIndexOutOfBoundsException"}, {"package_name": "java.util", "class_name": "StringJoiner", "full_name": "java.util.StringJoiner"}, {"package_name": "android.icu.text", "class_name": "StringPrepParseException", "full_name": "android.icu.text.StringPrepParseException"}, {"package_name": "java.io", "class_name": "StringReader", "full_name": "java.io.StringReader"}, {"package_name": "android.icu.text", "class_name": "StringSearch", "full_name": "android.icu.text.StringSearch"}, {"package_name": "java.util", "class_name": "StringTokenizer", "full_name": "java.util.StringTokenizer"}, {"package_name": "java.io", "class_name": "StringWriter", "full_name": "java.io.StringWriter"}, {"package_name": "android.security.keystore", "class_name": "StrongBoxUnavailableException", "full_name": "android.security.keystore.StrongBoxUnavailableException"}, {"package_name": "java.sql", "class_name": "Struct", "full_name": "java.sql.Struct"}, {"package_name": "android.system", "class_name": "StructPollfd", "full_name": "android.system.StructPollfd"}, {"package_name": "android.system", "class_name": "StructStat", "full_name": "android.system.StructStat"}, {"package_name": "android.system", "class_name": "StructStatVfs", "full_name": "android.system.StructStatVfs"}, {"package_name": "android.system", "class_name": "StructTimespec", "full_name": "android.system.StructTimespec"}, {"package_name": "android.system", "class_name": "StructUtsname", "full_name": "android.system.StructUtsname"}, {"package_name": "android.text.style", "class_name": "StyleSpan", "full_name": "android.text.style.StyleSpan"}, {"package_name": "javax.security.auth", "class_name": "Subject", "full_name": "javax.security.auth.Subject"}, {"package_name": "javax.security.auth", "class_name": "SubjectDomainCombiner", "full_name": "javax.security.auth.SubjectDomainCombiner"}, {"package_name": "android.view", "class_name": "SubMenu", "full_name": "android.view.SubMenu"}, {"package_name": "android.net.wifi.aware", "class_name": "SubscribeConfig", "full_name": "android.net.wifi.aware.SubscribeConfig"}, {"package_name": "android.net.wifi.aware", "class_name": "SubscribeConfig.Builder", "full_name": "android.net.wifi.aware.SubscribeConfig.Builder"}, {"package_name": "android.net.wifi.aware", "class_name": "SubscribeDiscoverySession", "full_name": "android.net.wifi.aware.SubscribeDiscoverySession"}, {"package_name": "android.telephony", "class_name": "SubscriptionInfo", "full_name": "android.telephony.SubscriptionInfo"}, {"package_name": "android.telephony", "class_name": "SubscriptionManager", "full_name": "android.telephony.SubscriptionManager"}, {"package_name": "android.telephony", "class_name": "SubscriptionManager.OnSubscriptionsChangedListener", "full_name": "android.telephony.SubscriptionManager.OnSubscriptionsChangedListener"}, {"package_name": "android.telephony", "class_name": "SubscriptionPlan", "full_name": "android.telephony.SubscriptionPlan"}, {"package_name": "android.telephony", "class_name": "SubscriptionPlan.Builder", "full_name": "android.telephony.SubscriptionPlan.Builder"}, {"package_name": "android.text.style", "class_name": "SubscriptSpan", "full_name": "android.text.style.SubscriptSpan"}, {"package_name": "android.media", "class_name": "SubtitleData", "full_name": "android.media.SubtitleData"}, {"package_name": "android.view.textservice", "class_name": "SuggestionsInfo", "full_name": "android.view.textservice.SuggestionsInfo"}, {"package_name": "android.text.style", "class_name": "SuggestionSpan", "full_name": "android.text.style.SuggestionSpan"}, {"package_name": "android.graphics", "class_name": "SumPathEffect", "full_name": "android.graphics.SumPathEffect"}, {"package_name": "android.text.style", "class_name": "SuperscriptSpan", "full_name": "android.text.style.SuperscriptSpan"}, {"package_name": "android.net.wifi", "class_name": "SupplicantState", "full_name": "android.net.wifi.SupplicantState"}, {"package_name": "android.test.suitebuilder.annotation", "class_name": "Suppress", "full_name": "android.test.suitebuilder.annotation.Suppress"}, {"package_name": "android.annotation", "class_name": "SuppressLint", "full_name": "android.annotation.SuppressLint"}, {"package_name": "java.lang", "class_name": "SuppressWarnings", "full_name": "java.lang.SuppressWarnings"}, {"package_name": "android.view", "class_name": "Surface", "full_name": "android.view.Surface"}, {"package_name": "android.view", "class_name": "Surface.OutOfResourcesException", "full_name": "android.view.Surface.OutOfResourcesException"}, {"package_name": "android.view", "class_name": "SurfaceHolder", "full_name": "android.view.SurfaceHolder"}, {"package_name": "android.view", "class_name": "SurfaceHolder.BadSurfaceTypeException", "full_name": "android.view.SurfaceHolder.BadSurfaceTypeException"}, {"package_name": "android.view", "class_name": "SurfaceHolder.Callback", "full_name": "android.view.SurfaceHolder.Callback"}, {"package_name": "android.graphics", "class_name": "SurfaceTexture", "full_name": "android.graphics.SurfaceTexture"}, {"package_name": "android.graphics", "class_name": "SurfaceTexture.OnFrameAvailableListener", "full_name": "android.graphics.SurfaceTexture.OnFrameAvailableListener"}, {"package_name": "android.graphics", "class_name": "SurfaceTexture.OutOfResourcesException", "full_name": "android.graphics.SurfaceTexture.OutOfResourcesException"}, {"package_name": "android.view", "class_name": "SurfaceView", "full_name": "android.view.SurfaceView"}, {"package_name": "android.graphics", "class_name": "SweepGradient", "full_name": "android.graphics.SweepGradient"}, {"package_name": "android.widget", "class_name": "Switch", "full_name": "android.widget.Switch"}, {"package_name": "android.preference", "class_name": "SwitchPreference", "full_name": "android.preference.SwitchPreference"}, {"package_name": "android.icu.text", "class_name": "SymbolTable", "full_name": "android.icu.text.SymbolTable"}, {"package_name": "android.content", "class_name": "SyncAdapterType", "full_name": "android.content.SyncAdapterType"}, {"package_name": "android.test", "class_name": "SyncBaseInstrumentation", "full_name": "android.test.SyncBaseInstrumentation"}, {"package_name": "android.content", "class_name": "SyncContext", "full_name": "android.content.SyncContext"}, {"package_name": "java.io", "class_name": "SyncFailedException", "full_name": "java.io.SyncFailedException"}, {"package_name": "android.content", "class_name": "SyncInfo", "full_name": "android.content.SyncInfo"}, {"package_name": "android.media", "class_name": "SyncParams", "full_name": "android.media.SyncParams"}, {"package_name": "android.content", "class_name": "SyncRequest", "full_name": "android.content.SyncRequest"}, {"package_name": "android.content", "class_name": "SyncRequest.Builder", "full_name": "android.content.SyncRequest.Builder"}, {"package_name": "android.content", "class_name": "SyncResult", "full_name": "android.content.SyncResult"}, {"package_name": "android.provider", "class_name": "SyncStateContract", "full_name": "android.provider.SyncStateContract"}, {"package_name": "android.provider", "class_name": "SyncStateContract.Columns", "full_name": "android.provider.SyncStateContract.Columns"}, {"package_name": "android.provider", "class_name": "SyncStateContract.Constants", "full_name": "android.provider.SyncStateContract.Constants"}, {"package_name": "android.provider", "class_name": "SyncStateContract.Helpers", "full_name": "android.provider.SyncStateContract.Helpers"}, {"package_name": "android.content", "class_name": "SyncStats", "full_name": "android.content.SyncStats"}, {"package_name": "android.content", "class_name": "SyncStatusObserver", "full_name": "android.content.SyncStatusObserver"}, {"package_name": "android.speech.tts", "class_name": "SynthesisCallback", "full_name": "android.speech.tts.SynthesisCallback"}, {"package_name": "android.speech.tts", "class_name": "SynthesisRequest", "full_name": "android.speech.tts.SynthesisRequest"}, {"package_name": "java.lang", "class_name": "System", "full_name": "java.lang.System"}, {"package_name": "android.os", "class_name": "SystemClock", "full_name": "android.os.SystemClock"}, {"package_name": "android.os.health", "class_name": "SystemHealthManager", "full_name": "android.os.health.SystemHealthManager"}, {"package_name": "android.app.admin", "class_name": "SystemUpdateInfo", "full_name": "android.app.admin.SystemUpdateInfo"}, {"package_name": "android.app.admin", "class_name": "SystemUpdatePolicy", "full_name": "android.app.admin.SystemUpdatePolicy"}, {"package_name": "android.app.admin", "class_name": "SystemUpdatePolicy.ValidationFailedException", "full_name": "android.app.admin.SystemUpdatePolicy.ValidationFailedException"}, {"package_name": "android.app", "class_name": "TabActivity", "full_name": "android.app.TabActivity"}, {"package_name": "android.widget", "class_name": "TabHost", "full_name": "android.widget.TabHost"}, {"package_name": "android.widget", "class_name": "TabHost.OnTabChangeListener", "full_name": "android.widget.TabHost.OnTabChangeListener"}, {"package_name": "android.widget", "class_name": "TabHost.TabContentFactory", "full_name": "android.widget.TabHost.TabContentFactory"}, {"package_name": "android.widget", "class_name": "TabHost.TabSpec", "full_name": "android.widget.TabHost.TabSpec"}, {"package_name": "android.widget", "class_name": "TableLayout", "full_name": "android.widget.TableLayout"}, {"package_name": "android.widget", "class_name": "TableLayout.LayoutParams", "full_name": "android.widget.TableLayout.LayoutParams"}, {"package_name": "android.widget", "class_name": "TableRow", "full_name": "android.widget.TableRow"}, {"package_name": "android.widget", "class_name": "TableRow.LayoutParams", "full_name": "android.widget.TableRow.LayoutParams"}, {"package_name": "android.text.style", "class_name": "TabStopSpan", "full_name": "android.text.style.TabStopSpan"}, {"package_name": "android.text.style", "class_name": "TabStopSpan.Standard", "full_name": "android.text.style.TabStopSpan.Standard"}, {"package_name": "android.widget", "class_name": "TabWidget", "full_name": "android.widget.TabWidget"}, {"package_name": "android.nfc", "class_name": "Tag", "full_name": "android.nfc.Tag"}, {"package_name": "android.nfc", "class_name": "TagLostException", "full_name": "android.nfc.TagLostException"}, {"package_name": "android.nfc.tech", "class_name": "TagTechnology", "full_name": "android.nfc.tech.TagTechnology"}, {"package_name": "android.icu.util", "class_name": "TaiwanCalendar", "full_name": "android.icu.util.TaiwanCalendar"}, {"package_name": "java.lang.annotation", "class_name": "Target", "full_name": "java.lang.annotation.Target"}, {"package_name": "android.annotation", "class_name": "TargetApi", "full_name": "android.annotation.TargetApi"}, {"package_name": "android.app", "class_name": "TaskStackBuilder", "full_name": "android.app.TaskStackBuilder"}, {"package_name": "android.telecom", "class_name": "TelecomManager", "full_name": "android.telecom.TelecomManager"}, {"package_name": "android.provider", "class_name": "Telephony", "full_name": "android.provider.Telephony"}, {"package_name": "android.provider", "class_name": "Telephony.BaseMmsColumns", "full_name": "android.provider.Telephony.BaseMmsColumns"}, {"package_name": "android.provider", "class_name": "Telephony.CanonicalAddressesColumns", "full_name": "android.provider.Telephony.CanonicalAddressesColumns"}, {"package_name": "android.provider", "class_name": "Telephony.CarrierId", "full_name": "android.provider.Telephony.CarrierId"}, {"package_name": "android.provider", "class_name": "Telephony.Carriers", "full_name": "android.provider.Telephony.Carriers"}, {"package_name": "android.provider", "class_name": "Telephony.Mms", "full_name": "android.provider.Telephony.Mms"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Addr", "full_name": "android.provider.Telephony.Mms.Addr"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Draft", "full_name": "android.provider.Telephony.Mms.Draft"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Inbox", "full_name": "android.provider.Telephony.Mms.Inbox"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Intents", "full_name": "android.provider.Telephony.Mms.Intents"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Outbox", "full_name": "android.provider.Telephony.Mms.Outbox"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Part", "full_name": "android.provider.Telephony.Mms.Part"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Rate", "full_name": "android.provider.Telephony.Mms.Rate"}, {"package_name": "android.provider", "class_name": "Telephony.Mms.Sent", "full_name": "android.provider.Telephony.Mms.Sent"}, {"package_name": "android.provider", "class_name": "Telephony.MmsSms", "full_name": "android.provider.Telephony.MmsSms"}, {"package_name": "android.provider", "class_name": "Telephony.MmsSms.PendingMessages", "full_name": "android.provider.Telephony.MmsSms.PendingMessages"}, {"package_name": "android.provider", "class_name": "Telephony.ServiceStateTable", "full_name": "android.provider.Telephony.ServiceStateTable"}, {"package_name": "android.provider", "class_name": "Telephony.Sms", "full_name": "android.provider.Telephony.Sms"}, {"package_name": "android.provider", "class_name": "Telephony.Sms.Conversations", "full_name": "android.provider.Telephony.Sms.Conversations"}, {"package_name": "android.provider", "class_name": "Telephony.Sms.Draft", "full_name": "android.provider.Telephony.Sms.Draft"}, {"package_name": "android.provider", "class_name": "Telephony.Sms.Inbox", "full_name": "android.provider.Telephony.Sms.Inbox"}, {"package_name": "android.provider", "class_name": "Telephony.Sms.Intents", "full_name": "android.provider.Telephony.Sms.Intents"}, {"package_name": "android.provider", "class_name": "Telephony.Sms.Outbox", "full_name": "android.provider.Telephony.Sms.Outbox"}, {"package_name": "android.provider", "class_name": "Telephony.Sms.Sent", "full_name": "android.provider.Telephony.Sms.Sent"}, {"package_name": "android.provider", "class_name": "Telephony.TextBasedSmsColumns", "full_name": "android.provider.Telephony.TextBasedSmsColumns"}, {"package_name": "android.provider", "class_name": "Telephony.Threads", "full_name": "android.provider.Telephony.Threads"}, {"package_name": "android.provider", "class_name": "Telephony.ThreadsColumns", "full_name": "android.provider.Telephony.ThreadsColumns"}, {"package_name": "android.telephony", "class_name": "TelephonyManager", "full_name": "android.telephony.TelephonyManager"}, {"package_name": "android.telephony", "class_name": "TelephonyManager.UssdResponseCallback", "full_name": "android.telephony.TelephonyManager.UssdResponseCallback"}, {"package_name": "android.telephony", "class_name": "TelephonyScanManager", "full_name": "android.telephony.TelephonyScanManager"}, {"package_name": "android.telephony", "class_name": "TelephonyScanManager.NetworkScanCallback", "full_name": "android.telephony.TelephonyScanManager.NetworkScanCallback"}, {"package_name": "javax.xml.transform", "class_name": "Templates", "full_name": "javax.xml.transform.Templates"}, {"package_name": "javax.xml.transform.sax", "class_name": "TemplatesHandler", "full_name": "javax.xml.transform.sax.TemplatesHandler"}, {"package_name": "java.time.temporal", "class_name": "Temporal", "full_name": "java.time.temporal.Temporal"}, {"package_name": "java.time.temporal", "class_name": "TemporalAccessor", "full_name": "java.time.temporal.TemporalAccessor"}, {"package_name": "java.time.temporal", "class_name": "TemporalAdjuster", "full_name": "java.time.temporal.TemporalAdjuster"}, {"package_name": "java.time.temporal", "class_name": "TemporalAdjusters", "full_name": "java.time.temporal.TemporalAdjusters"}, {"package_name": "java.time.temporal", "class_name": "TemporalAmount", "full_name": "java.time.temporal.TemporalAmount"}, {"package_name": "java.time.temporal", "class_name": "TemporalField", "full_name": "java.time.temporal.TemporalField"}, {"package_name": "java.time.temporal", "class_name": "TemporalQueries", "full_name": "java.time.temporal.TemporalQueries"}, {"package_name": "java.time.temporal", "class_name": "TemporalUnit", "full_name": "java.time.temporal.TemporalUnit"}, {"package_name": "junit.framework", "class_name": "Test", "full_name": "junit.framework.Test"}, {"package_name": "junit.framework", "class_name": "TestCase", "full_name": "junit.framework.TestCase"}, {"package_name": "junit.framework", "class_name": "TestFailure", "full_name": "junit.framework.TestFailure"}, {"package_name": "junit.framework", "class_name": "TestListener", "full_name": "junit.framework.TestListener"}, {"package_name": "android.os", "class_name": "TestLooperManager", "full_name": "android.os.TestLooperManager"}, {"package_name": "android.test.suitebuilder", "class_name": "TestMethod", "full_name": "android.test.suitebuilder.TestMethod"}, {"package_name": "junit.framework", "class_name": "TestResult", "full_name": "junit.framework.TestResult"}, {"package_name": "junit.framework", "class_name": "TestSuite", "full_name": "junit.framework.TestSuite"}, {"package_name": "android.test.suitebuilder", "class_name": "TestSuiteBuilder", "full_name": "android.test.suitebuilder.TestSuiteBuilder"}, {"package_name": "android.test.suitebuilder", "class_name": "TestSuiteBuilder.FailedToCreateTests", "full_name": "android.test.suitebuilder.TestSuiteBuilder.FailedToCreateTests"}, {"package_name": "junit.runner", "class_name": "TestSuiteLoader", "full_name": "junit.runner.TestSuiteLoader"}, {"package_name": "android.test", "class_name": "TestSuiteProvider", "full_name": "android.test.TestSuiteProvider"}, {"package_name": "dalvik.annotation", "class_name": "TestTarget", "full_name": "dalvik.annotation.TestTarget"}, {"package_name": "dalvik.annotation", "class_name": "TestTargetClass", "full_name": "dalvik.annotation.TestTargetClass"}, {"package_name": "android.text.style", "class_name": "TextAppearanceSpan", "full_name": "android.text.style.TextAppearanceSpan"}, {"package_name": "java.awt.font", "class_name": "TextAttribute", "full_name": "java.awt.font.TextAttribute"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassification", "full_name": "android.view.textclassifier.TextClassification"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassification.Builder", "full_name": "android.view.textclassifier.TextClassification.Builder"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassification.Request", "full_name": "android.view.textclassifier.TextClassification.Request"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassification.Request.Builder", "full_name": "android.view.textclassifier.TextClassification.Request.Builder"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassificationContext", "full_name": "android.view.textclassifier.TextClassificationContext"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassificationContext.Builder", "full_name": "android.view.textclassifier.TextClassificationContext.Builder"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassificationManager", "full_name": "android.view.textclassifier.TextClassificationManager"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassificationSessionFactory", "full_name": "android.view.textclassifier.TextClassificationSessionFactory"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassificationSessionId", "full_name": "android.view.textclassifier.TextClassificationSessionId"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassifier", "full_name": "android.view.textclassifier.TextClassifier"}, {"package_name": "android.view.textclassifier", "class_name": "TextClassifier.EntityConfig", "full_name": "android.view.textclassifier.TextClassifier.EntityConfig"}, {"package_name": "android.widget", "class_name": "TextClock", "full_name": "android.widget.TextClock"}, {"package_name": "android.text", "class_name": "TextDirectionHeuristic", "full_name": "android.text.TextDirectionHeuristic"}, {"package_name": "android.text", "class_name": "TextDirectionHeuristics", "full_name": "android.text.TextDirectionHeuristics"}, {"package_name": "android.sax", "class_name": "TextElementListener", "full_name": "android.sax.TextElementListener"}, {"package_name": "android.view.textservice", "class_name": "TextInfo", "full_name": "android.view.textservice.TextInfo"}, {"package_name": "android.text.method", "class_name": "TextKeyListener", "full_name": "android.text.method.TextKeyListener"}, {"package_name": "android.text.method", "class_name": "TextKeyListener.Capitalize", "full_name": "android.text.method.TextKeyListener.Capitalize"}, {"package_name": "android.view.textclassifier", "class_name": "TextLinks", "full_name": "android.view.textclassifier.TextLinks"}, {"package_name": "android.view.textclassifier", "class_name": "TextLinks.Builder", "full_name": "android.view.textclassifier.TextLinks.Builder"}, {"package_name": "android.view.textclassifier", "class_name": "TextLinks.Request", "full_name": "android.view.textclassifier.TextLinks.Request"}, {"package_name": "android.view.textclassifier", "class_name": "TextLinks.Request.Builder", "full_name": "android.view.textclassifier.TextLinks.Request.Builder"}, {"package_name": "android.view.textclassifier", "class_name": "TextLinks.TextLink", "full_name": "android.view.textclassifier.TextLinks.TextLink"}, {"package_name": "android.view.textclassifier", "class_name": "TextLinks.TextLinkSpan", "full_name": "android.view.textclassifier.TextLinks.TextLinkSpan"}, {"package_name": "android.text", "class_name": "TextPaint", "full_name": "android.text.TextPaint"}, {"package_name": "android.view.textclassifier", "class_name": "TextSelection", "full_name": "android.view.textclassifier.TextSelection"}, {"package_name": "android.view.textclassifier", "class_name": "TextSelection.Builder", "full_name": "android.view.textclassifier.TextSelection.Builder"}, {"package_name": "android.view.textclassifier", "class_name": "TextSelection.Request", "full_name": "android.view.textclassifier.TextSelection.Request"}, {"package_name": "android.view.textclassifier", "class_name": "TextSelection.Request.Builder", "full_name": "android.view.textclassifier.TextSelection.Request.Builder"}, {"package_name": "android.view.textservice", "class_name": "TextServicesManager", "full_name": "android.view.textservice.TextServicesManager"}, {"package_name": "java.time.format", "class_name": "TextStyle", "full_name": "java.time.format.TextStyle"}, {"package_name": "android.widget", "class_name": "TextSwitcher", "full_name": "android.widget.TextSwitcher"}, {"package_name": "android.speech.tts", "class_name": "TextToSpeech", "full_name": "android.speech.tts.TextToSpeech"}, {"package_name": "android.speech.tts", "class_name": "TextToSpeech.Engine", "full_name": "android.speech.tts.TextToSpeech.Engine"}, {"package_name": "android.speech.tts", "class_name": "TextToSpeech.EngineInfo", "full_name": "android.speech.tts.TextToSpeech.EngineInfo"}, {"package_name": "android.speech.tts", "class_name": "TextToSpeech.OnInitListener", "full_name": "android.speech.tts.TextToSpeech.OnInitListener"}, {"package_name": "android.speech.tts", "class_name": "TextToSpeech.OnUtteranceCompletedListener", "full_name": "android.speech.tts.TextToSpeech.OnUtteranceCompletedListener"}, {"package_name": "android.speech.tts", "class_name": "TextToSpeechService", "full_name": "android.speech.tts.TextToSpeechService"}, {"package_name": "android.view", "class_name": "TextureView", "full_name": "android.view.TextureView"}, {"package_name": "android.view", "class_name": "TextureView.SurfaceTextureListener", "full_name": "android.view.TextureView.SurfaceTextureListener"}, {"package_name": "android.text", "class_name": "TextUtils", "full_name": "android.text.TextUtils"}, {"package_name": "android.text", "class_name": "TextUtils.EllipsizeCallback", "full_name": "android.text.TextUtils.EllipsizeCallback"}, {"package_name": "android.text", "class_name": "TextUtils.SimpleStringSplitter", "full_name": "android.text.TextUtils.SimpleStringSplitter"}, {"package_name": "android.text", "class_name": "TextUtils.StringSplitter", "full_name": "android.text.TextUtils.StringSplitter"}, {"package_name": "android.text", "class_name": "TextUtils.TruncateAt", "full_name": "android.text.TextUtils.TruncateAt"}, {"package_name": "android.service.autofill", "class_name": "TextValueSanitizer", "full_name": "android.service.autofill.TextValueSanitizer"}, {"package_name": "android.widget", "class_name": "TextView", "full_name": "android.widget.TextView"}, {"package_name": "android.widget", "class_name": "TextView.BufferType", "full_name": "android.widget.TextView.BufferType"}, {"package_name": "android.widget", "class_name": "TextView.OnEditorActionListener", "full_name": "android.widget.TextView.OnEditorActionListener"}, {"package_name": "android.widget", "class_name": "TextView.SavedState", "full_name": "android.widget.TextView.SavedState"}, {"package_name": "android.text", "class_name": "TextWatcher", "full_name": "android.text.TextWatcher"}, {"package_name": "java.time.chrono", "class_name": "ThaiBuddhistChronology", "full_name": "java.time.chrono.ThaiBuddhistChronology"}, {"package_name": "java.time.chrono", "class_name": "ThaiBuddhistDate", "full_name": "java.time.chrono.ThaiBuddhistDate"}, {"package_name": "java.time.chrono", "class_name": "ThaiBuddhistEra", "full_name": "java.time.chrono.ThaiBuddhistEra"}, {"package_name": "android.widget", "class_name": "ThemedSpinnerAdapter", "full_name": "android.widget.ThemedSpinnerAdapter"}, {"package_name": "java.lang", "class_name": "Thread", "full_name": "java.lang.Thread"}, {"package_name": "java.lang", "class_name": "Thread.State", "full_name": "java.lang.Thread.State"}, {"package_name": "java.lang", "class_name": "Thread.UncaughtExceptionHandler", "full_name": "java.lang.Thread.UncaughtExceptionHandler"}, {"package_name": "java.lang", "class_name": "ThreadDeath", "full_name": "java.lang.ThreadDeath"}, {"package_name": "java.util.concurrent", "class_name": "ThreadFactory", "full_name": "java.util.concurrent.ThreadFactory"}, {"package_name": "java.lang", "class_name": "ThreadGroup", "full_name": "java.lang.ThreadGroup"}, {"package_name": "java.util.concurrent", "class_name": "ThreadLocalRandom", "full_name": "java.util.concurrent.ThreadLocalRandom"}, {"package_name": "java.util.concurrent", "class_name": "ThreadPoolExecutor", "full_name": "java.util.concurrent.ThreadPoolExecutor"}, {"package_name": "java.util.concurrent", "class_name": "ThreadPoolExecutor.AbortPolicy", "full_name": "java.util.concurrent.ThreadPoolExecutor.AbortPolicy"}, {"package_name": "java.util.concurrent", "class_name": "ThreadPoolExecutor.CallerRunsPolicy", "full_name": "java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy"}, {"package_name": "java.util.concurrent", "class_name": "ThreadPoolExecutor.DiscardOldestPolicy", "full_name": "java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy"}, {"package_name": "java.util.concurrent", "class_name": "ThreadPoolExecutor.DiscardPolicy", "full_name": "java.util.concurrent.ThreadPoolExecutor.DiscardPolicy"}, {"package_name": "java.lang", "class_name": "Throwable", "full_name": "java.lang.Throwable"}, {"package_name": "android.media", "class_name": "ThumbnailUtils", "full_name": "android.media.ThumbnailUtils"}, {"package_name": "android.service.quicksettings", "class_name": "Tile", "full_name": "android.service.quicksettings.Tile"}, {"package_name": "android.service.quicksettings", "class_name": "TileService", "full_name": "android.service.quicksettings.TileService"}, {"package_name": "android.text.format", "class_name": "Time", "full_name": "android.text.format.Time"}, {"package_name": "java.sql", "class_name": "Time", "full_name": "java.sql.Time"}, {"package_name": "android.animation", "class_name": "TimeAnimator", "full_name": "android.animation.TimeAnimator"}, {"package_name": "android.animation", "class_name": "TimeAnimator.TimeListener", "full_name": "android.animation.TimeAnimator.TimeListener"}, {"package_name": "android.media", "class_name": "TimedMetaData", "full_name": "android.media.TimedMetaData"}, {"package_name": "android.media", "class_name": "TimedText", "full_name": "android.media.TimedText"}, {"package_name": "android.util", "class_name": "TimeFormatException", "full_name": "android.util.TimeFormatException"}, {"package_name": "android.animation", "class_name": "TimeInterpolator", "full_name": "android.animation.TimeInterpolator"}, {"package_name": "android.text.method", "class_name": "TimeKeyListener", "full_name": "android.text.method.TimeKeyListener"}, {"package_name": "java.util.concurrent", "class_name": "TimeoutException", "full_name": "java.util.concurrent.TimeoutException"}, {"package_name": "android.widget", "class_name": "TimePicker", "full_name": "android.widget.TimePicker"}, {"package_name": "android.widget", "class_name": "TimePicker.OnTimeChangedListener", "full_name": "android.widget.TimePicker.OnTimeChangedListener"}, {"package_name": "android.app", "class_name": "TimePickerDialog", "full_name": "android.app.TimePickerDialog"}, {"package_name": "android.app", "class_name": "TimePickerDialog.OnTimeSetListener", "full_name": "android.app.TimePickerDialog.OnTimeSetListener"}, {"package_name": "java.util", "class_name": "Timer", "full_name": "java.util.Timer"}, {"package_name": "android.os.health", "class_name": "TimerStat", "full_name": "android.os.health.TimerStat"}, {"package_name": "java.util", "class_name": "TimerTask", "full_name": "java.util.TimerTask"}, {"package_name": "java.security", "class_name": "Timestamp", "full_name": "java.security.Timestamp"}, {"package_name": "java.sql", "class_name": "Timestamp", "full_name": "java.sql.Timestamp"}, {"package_name": "android.icu.util", "class_name": "TimeUnit", "full_name": "android.icu.util.TimeUnit"}, {"package_name": "java.util.concurrent", "class_name": "TimeUnit", "full_name": "java.util.concurrent.TimeUnit"}, {"package_name": "android.util", "class_name": "TimeUtils", "full_name": "android.util.TimeUtils"}, {"package_name": "android.icu.util", "class_name": "TimeZone", "full_name": "android.icu.util.TimeZone"}, {"package_name": "java.util", "class_name": "TimeZone", "full_name": "java.util.TimeZone"}, {"package_name": "android.icu.util", "class_name": "TimeZone.SystemTimeZoneType", "full_name": "android.icu.util.TimeZone.SystemTimeZoneType"}, {"package_name": "android.icu.text", "class_name": "TimeZoneFormat", "full_name": "android.icu.text.TimeZoneFormat"}, {"package_name": "android.icu.text", "class_name": "TimeZoneFormat.GMTOffsetPatternType", "full_name": "android.icu.text.TimeZoneFormat.GMTOffsetPatternType"}, {"package_name": "android.icu.text", "class_name": "TimeZoneFormat.ParseOption", "full_name": "android.icu.text.TimeZoneFormat.ParseOption"}, {"package_name": "android.icu.text", "class_name": "TimeZoneFormat.Style", "full_name": "android.icu.text.TimeZoneFormat.Style"}, {"package_name": "android.icu.text", "class_name": "TimeZoneFormat.TimeType", "full_name": "android.icu.text.TimeZoneFormat.TimeType"}, {"package_name": "android.icu.text", "class_name": "TimeZoneNames", "full_name": "android.icu.text.TimeZoneNames"}, {"package_name": "android.icu.text", "class_name": "TimeZoneNames.NameType", "full_name": "android.icu.text.TimeZoneNames.NameType"}, {"package_name": "android.util", "class_name": "TimingLogger", "full_name": "android.util.TimingLogger"}, {"package_name": "android.widget", "class_name": "Toast", "full_name": "android.widget.Toast"}, {"package_name": "android.widget", "class_name": "ToggleButton", "full_name": "android.widget.ToggleButton"}, {"package_name": "android.os", "class_name": "TokenWatcher", "full_name": "android.os.TokenWatcher"}, {"package_name": "android.media", "class_name": "ToneGenerator", "full_name": "android.media.ToneGenerator"}, {"package_name": "android.widget", "class_name": "Toolbar", "full_name": "android.widget.Toolbar"}, {"package_name": "android.widget", "class_name": "Toolbar.LayoutParams", "full_name": "android.widget.Toolbar.LayoutParams"}, {"package_name": "android.widget", "class_name": "Toolbar.OnMenuItemClickListener", "full_name": "android.widget.Toolbar.OnMenuItemClickListener"}, {"package_name": "java.util", "class_name": "TooManyListenersException", "full_name": "java.util.TooManyListenersException"}, {"package_name": "android.text.method", "class_name": "Touch", "full_name": "android.text.method.Touch"}, {"package_name": "android.view", "class_name": "TouchDelegate", "full_name": "android.view.TouchDelegate"}, {"package_name": "android.test", "class_name": "TouchUtils", "full_name": "android.test.TouchUtils"}, {"package_name": "android.os", "class_name": "Trace", "full_name": "android.os.Trace"}, {"package_name": "android.webkit", "class_name": "TracingConfig", "full_name": "android.webkit.TracingConfig"}, {"package_name": "android.webkit", "class_name": "TracingConfig.Builder", "full_name": "android.webkit.TracingConfig.Builder"}, {"package_name": "android.webkit", "class_name": "TracingController", "full_name": "android.webkit.TracingController"}, {"package_name": "android.net", "class_name": "TrafficStats", "full_name": "android.net.TrafficStats"}, {"package_name": "android.os", "class_name": "TransactionTooLargeException", "full_name": "android.os.TransactionTooLargeException"}, {"package_name": "android.service.autofill", "class_name": "Transformation", "full_name": "android.service.autofill.Transformation"}, {"package_name": "android.view.animation", "class_name": "Transformation", "full_name": "android.view.animation.Transformation"}, {"package_name": "android.text.method", "class_name": "TransformationMethod", "full_name": "android.text.method.TransformationMethod"}, {"package_name": "javax.xml.transform", "class_name": "Transformer", "full_name": "javax.xml.transform.Transformer"}, {"package_name": "javax.xml.transform", "class_name": "TransformerConfigurationException", "full_name": "javax.xml.transform.TransformerConfigurationException"}, {"package_name": "javax.xml.transform", "class_name": "TransformerException", "full_name": "javax.xml.transform.TransformerException"}, {"package_name": "javax.xml.transform", "class_name": "TransformerFactory", "full_name": "javax.xml.transform.TransformerFactory"}, {"package_name": "javax.xml.transform", "class_name": "TransformerFactoryConfigurationError", "full_name": "javax.xml.transform.TransformerFactoryConfigurationError"}, {"package_name": "javax.xml.transform.sax", "class_name": "TransformerHandler", "full_name": "javax.xml.transform.sax.TransformerHandler"}, {"package_name": "android.transition", "class_name": "Transition", "full_name": "android.transition.Transition"}, {"package_name": "android.transition", "class_name": "Transition.EpicenterCallback", "full_name": "android.transition.Transition.EpicenterCallback"}, {"package_name": "android.transition", "class_name": "Transition.TransitionListener", "full_name": "android.transition.Transition.TransitionListener"}, {"package_name": "android.graphics.drawable", "class_name": "TransitionDrawable", "full_name": "android.graphics.drawable.TransitionDrawable"}, {"package_name": "android.transition", "class_name": "TransitionInflater", "full_name": "android.transition.TransitionInflater"}, {"package_name": "android.transition", "class_name": "TransitionListenerAdapter", "full_name": "android.transition.TransitionListenerAdapter"}, {"package_name": "android.transition", "class_name": "TransitionManager", "full_name": "android.transition.TransitionManager"}, {"package_name": "android.transition", "class_name": "TransitionPropagation", "full_name": "android.transition.TransitionPropagation"}, {"package_name": "android.transition", "class_name": "TransitionSet", "full_name": "android.transition.TransitionSet"}, {"package_name": "android.transition", "class_name": "TransitionValues", "full_name": "android.transition.TransitionValues"}, {"package_name": "android.view.animation", "class_name": "TranslateAnimation", "full_name": "android.view.animation.TranslateAnimation"}, {"package_name": "android.hardware", "class_name": "TriggerEvent", "full_name": "android.hardware.TriggerEvent"}, {"package_name": "android.hardware", "class_name": "TriggerEventListener", "full_name": "android.hardware.TriggerEventListener"}, {"package_name": "java.security.cert", "class_name": "TrustAnchor", "full_name": "java.security.cert.TrustAnchor"}, {"package_name": "javax.net.ssl", "class_name": "TrustManager", "full_name": "javax.net.ssl.TrustManager"}, {"package_name": "javax.net.ssl", "class_name": "TrustManagerFactory", "full_name": "javax.net.ssl.TrustManagerFactory"}, {"package_name": "javax.net.ssl", "class_name": "TrustManagerFactorySpi", "full_name": "javax.net.ssl.TrustManagerFactorySpi"}, {"package_name": "android.text.style", "class_name": "TtsSpan", "full_name": "android.text.style.TtsSpan"}, {"package_name": "android.text.style", "class_name": "TtsSpan.CardinalBuilder", "full_name": "android.text.style.TtsSpan.CardinalBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.DateBuilder", "full_name": "android.text.style.TtsSpan.DateBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.DecimalBuilder", "full_name": "android.text.style.TtsSpan.DecimalBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.DigitsBuilder", "full_name": "android.text.style.TtsSpan.DigitsBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.ElectronicBuilder", "full_name": "android.text.style.TtsSpan.ElectronicBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.FractionBuilder", "full_name": "android.text.style.TtsSpan.FractionBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.MeasureBuilder", "full_name": "android.text.style.TtsSpan.MeasureBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.MoneyBuilder", "full_name": "android.text.style.TtsSpan.MoneyBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.OrdinalBuilder", "full_name": "android.text.style.TtsSpan.OrdinalBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.TelephoneBuilder", "full_name": "android.text.style.TtsSpan.TelephoneBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.TextBuilder", "full_name": "android.text.style.TtsSpan.TextBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.TimeBuilder", "full_name": "android.text.style.TtsSpan.TimeBuilder"}, {"package_name": "android.text.style", "class_name": "TtsSpan.VerbatimBuilder", "full_name": "android.text.style.TtsSpan.VerbatimBuilder"}, {"package_name": "android.media.tv", "class_name": "TvContentRating", "full_name": "android.media.tv.TvContentRating"}, {"package_name": "android.media.tv", "class_name": "TvContract", "full_name": "android.media.tv.TvContract"}, {"package_name": "android.media.tv", "class_name": "TvContract.BaseTvColumns", "full_name": "android.media.tv.TvContract.BaseTvColumns"}, {"package_name": "android.media.tv", "class_name": "TvContract.Channels", "full_name": "android.media.tv.TvContract.Channels"}, {"package_name": "android.media.tv", "class_name": "TvContract.Channels.Logo", "full_name": "android.media.tv.TvContract.Channels.Logo"}, {"package_name": "android.media.tv", "class_name": "TvContract.PreviewPrograms", "full_name": "android.media.tv.TvContract.PreviewPrograms"}, {"package_name": "android.media.tv", "class_name": "TvContract.Programs", "full_name": "android.media.tv.TvContract.Programs"}, {"package_name": "android.media.tv", "class_name": "TvContract.Programs.Genres", "full_name": "android.media.tv.TvContract.Programs.Genres"}, {"package_name": "android.media.tv", "class_name": "TvContract.RecordedPrograms", "full_name": "android.media.tv.TvContract.RecordedPrograms"}, {"package_name": "android.media.tv", "class_name": "TvContract.WatchNextPrograms", "full_name": "android.media.tv.TvContract.WatchNextPrograms"}, {"package_name": "android.media.tv", "class_name": "TvInputInfo", "full_name": "android.media.tv.TvInputInfo"}, {"package_name": "android.media.tv", "class_name": "TvInputInfo.Builder", "full_name": "android.media.tv.TvInputInfo.Builder"}, {"package_name": "android.media.tv", "class_name": "TvInputManager", "full_name": "android.media.tv.TvInputManager"}, {"package_name": "android.media.tv", "class_name": "TvInputManager.TvInputCallback", "full_name": "android.media.tv.TvInputManager.TvInputCallback"}, {"package_name": "android.media.tv", "class_name": "TvInputService", "full_name": "android.media.tv.TvInputService"}, {"package_name": "android.media.tv", "class_name": "TvInputService.HardwareSession", "full_name": "android.media.tv.TvInputService.HardwareSession"}, {"package_name": "android.media.tv", "class_name": "TvInputService.RecordingSession", "full_name": "android.media.tv.TvInputService.RecordingSession"}, {"package_name": "android.media.tv", "class_name": "TvInputService.Session", "full_name": "android.media.tv.TvInputService.Session"}, {"package_name": "android.media.tv", "class_name": "TvRecordingClient", "full_name": "android.media.tv.TvRecordingClient"}, {"package_name": "android.media.tv", "class_name": "TvRecordingClient.RecordingCallback", "full_name": "android.media.tv.TvRecordingClient.RecordingCallback"}, {"package_name": "android.media.tv", "class_name": "TvTrackInfo", "full_name": "android.media.tv.TvTrackInfo"}, {"package_name": "android.media.tv", "class_name": "TvTrackInfo.Builder", "full_name": "android.media.tv.TvTrackInfo.Builder"}, {"package_name": "android.media.tv", "class_name": "TvView", "full_name": "android.media.tv.TvView"}, {"package_name": "android.media.tv", "class_name": "TvView.OnUnhandledInputEventListener", "full_name": "android.media.tv.TvView.OnUnhandledInputEventListener"}, {"package_name": "android.media.tv", "class_name": "TvView.TimeShiftPositionCallback", "full_name": "android.media.tv.TvView.TimeShiftPositionCallback"}, {"package_name": "android.media.tv", "class_name": "TvView.TvInputCallback", "full_name": "android.media.tv.TvView.TvInputCallback"}, {"package_name": "android.widget", "class_name": "TwoLineListItem", "full_name": "android.widget.TwoLineListItem"}, {"package_name": "android.preference", "class_name": "TwoStatePreference", "full_name": "android.preference.TwoStatePreference"}, {"package_name": "android.renderscript", "class_name": "Type", "full_name": "android.renderscript.Type"}, {"package_name": "java.lang.reflect", "class_name": "Type", "full_name": "java.lang.reflect.Type"}, {"package_name": "android.renderscript", "class_name": "Type.Builder", "full_name": "android.renderscript.Type.Builder"}, {"package_name": "android.renderscript", "class_name": "Type.CubemapFace", "full_name": "android.renderscript.Type.CubemapFace"}, {"package_name": "android.content.res", "class_name": "TypedArray", "full_name": "android.content.res.TypedArray"}, {"package_name": "android.util", "class_name": "TypedValue", "full_name": "android.util.TypedValue"}, {"package_name": "android.graphics", "class_name": "Typeface", "full_name": "android.graphics.Typeface"}, {"package_name": "android.graphics", "class_name": "Typeface.Builder", "full_name": "android.graphics.Typeface.Builder"}, {"package_name": "android.text.style", "class_name": "TypefaceSpan", "full_name": "android.text.style.TypefaceSpan"}, {"package_name": "javax.xml.validation", "class_name": "TypeInfoProvider", "full_name": "javax.xml.validation.TypeInfoProvider"}, {"package_name": "java.lang", "class_name": "TypeNotPresentException", "full_name": "java.lang.TypeNotPresentException"}, {"package_name": "java.sql", "class_name": "Types", "full_name": "java.sql.Types"}, {"package_name": "android.icu.lang", "class_name": "UCharacter", "full_name": "android.icu.lang.UCharacter"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.BidiPairedBracketType", "full_name": "android.icu.lang.UCharacter.BidiPairedBracketType"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.DecompositionType", "full_name": "android.icu.lang.UCharacter.DecompositionType"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.EastAsianWidth", "full_name": "android.icu.lang.UCharacter.EastAsianWidth"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.GraphemeClusterBreak", "full_name": "android.icu.lang.UCharacter.GraphemeClusterBreak"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.HangulSyllableType", "full_name": "android.icu.lang.UCharacter.HangulSyllableType"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.JoiningGroup", "full_name": "android.icu.lang.UCharacter.JoiningGroup"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.JoiningType", "full_name": "android.icu.lang.UCharacter.JoiningType"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.LineBreak", "full_name": "android.icu.lang.UCharacter.LineBreak"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.NumericType", "full_name": "android.icu.lang.UCharacter.NumericType"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.SentenceBreak", "full_name": "android.icu.lang.UCharacter.SentenceBreak"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.UnicodeBlock", "full_name": "android.icu.lang.UCharacter.UnicodeBlock"}, {"package_name": "android.icu.lang", "class_name": "UCharacter.WordBreak", "full_name": "android.icu.lang.UCharacter.WordBreak"}, {"package_name": "android.icu.lang", "class_name": "UCharacterCategory", "full_name": "android.icu.lang.UCharacterCategory"}, {"package_name": "android.icu.lang", "class_name": "UCharacterDirection", "full_name": "android.icu.lang.UCharacterDirection"}, {"package_name": "android.icu.lang", "class_name": "UCharacterEnums", "full_name": "android.icu.lang.UCharacterEnums"}, {"package_name": "android.icu.lang", "class_name": "UCharacterEnums.ECharacterCategory", "full_name": "android.icu.lang.UCharacterEnums.ECharacterCategory"}, {"package_name": "android.icu.lang", "class_name": "UCharacterEnums.ECharacterDirection", "full_name": "android.icu.lang.UCharacterEnums.ECharacterDirection"}, {"package_name": "android.icu.text", "class_name": "UCharacterIterator", "full_name": "android.icu.text.UCharacterIterator"}, {"package_name": "android.icu.text", "class_name": "UFormat", "full_name": "android.icu.text.UFormat"}, {"package_name": "android.app", "class_name": "UiAutomation", "full_name": "android.app.UiAutomation"}, {"package_name": "android.app", "class_name": "UiAutomation.AccessibilityEventFilter", "full_name": "android.app.UiAutomation.AccessibilityEventFilter"}, {"package_name": "android.app", "class_name": "UiAutomation.OnAccessibilityEventListener", "full_name": "android.app.UiAutomation.OnAccessibilityEventListener"}, {"package_name": "android.os.health", "class_name": "UidHealthStats", "full_name": "android.os.health.UidHealthStats"}, {"package_name": "android.app", "class_name": "UiModeManager", "full_name": "android.app.UiModeManager"}, {"package_name": "android.test", "class_name": "UiThreadTest", "full_name": "android.test.UiThreadTest"}, {"package_name": "android.icu.util", "class_name": "ULocale", "full_name": "android.icu.util.ULocale"}, {"package_name": "android.icu.util", "class_name": "ULocale.Builder", "full_name": "android.icu.util.ULocale.Builder"}, {"package_name": "android.icu.util", "class_name": "ULocale.Category", "full_name": "android.icu.util.ULocale.Category"}, {"package_name": "android.os.strictmode", "class_name": "UnbufferedIoViolation", "full_name": "android.os.strictmode.UnbufferedIoViolation"}, {"package_name": "java.io", "class_name": "UncheckedIOException", "full_name": "java.io.UncheckedIOException"}, {"package_name": "java.lang.reflect", "class_name": "UndeclaredThrowableException", "full_name": "java.lang.reflect.UndeclaredThrowableException"}, {"package_name": "android.text.style", "class_name": "UnderlineSpan", "full_name": "android.text.style.UnderlineSpan"}, {"package_name": "android.icu.text", "class_name": "UnicodeFilter", "full_name": "android.icu.text.UnicodeFilter"}, {"package_name": "android.icu.text", "class_name": "UnicodeMatcher", "full_name": "android.icu.text.UnicodeMatcher"}, {"package_name": "android.icu.text", "class_name": "UnicodeSet", "full_name": "android.icu.text.UnicodeSet"}, {"package_name": "android.icu.text", "class_name": "UnicodeSet.ComparisonStyle", "full_name": "android.icu.text.UnicodeSet.ComparisonStyle"}, {"package_name": "android.icu.text", "class_name": "UnicodeSet.EntryRange", "full_name": "android.icu.text.UnicodeSet.EntryRange"}, {"package_name": "android.icu.text", "class_name": "UnicodeSet.SpanCondition", "full_name": "android.icu.text.UnicodeSet.SpanCondition"}, {"package_name": "android.icu.text", "class_name": "UnicodeSetIterator", "full_name": "android.icu.text.UnicodeSetIterator"}, {"package_name": "android.icu.text", "class_name": "UnicodeSetSpanner", "full_name": "android.icu.text.UnicodeSetSpanner"}, {"package_name": "android.icu.text", "class_name": "UnicodeSetSpanner.CountMethod", "full_name": "android.icu.text.UnicodeSetSpanner.CountMethod"}, {"package_name": "android.icu.text", "class_name": "UnicodeSetSpanner.TrimOption", "full_name": "android.icu.text.UnicodeSetSpanner.TrimOption"}, {"package_name": "android.icu.util", "class_name": "UniversalTimeScale", "full_name": "android.icu.util.UniversalTimeScale"}, {"package_name": "java.lang", "class_name": "UnknownError", "full_name": "java.lang.UnknownError"}, {"package_name": "java.util", "class_name": "UnknownFormatConversionException", "full_name": "java.util.UnknownFormatConversionException"}, {"package_name": "java.util", "class_name": "UnknownFormatFlagsException", "full_name": "java.util.UnknownFormatFlagsException"}, {"package_name": "java.net", "class_name": "UnknownHostException", "full_name": "java.net.UnknownHostException"}, {"package_name": "java.net", "class_name": "UnknownServiceException", "full_name": "java.net.UnknownServiceException"}, {"package_name": "java.nio.charset", "class_name": "UnmappableCharacterException", "full_name": "java.nio.charset.UnmappableCharacterException"}, {"package_name": "java.security", "class_name": "UnrecoverableEntryException", "full_name": "java.security.UnrecoverableEntryException"}, {"package_name": "java.security", "class_name": "UnrecoverableKeyException", "full_name": "java.security.UnrecoverableKeyException"}, {"package_name": "java.nio.channels", "class_name": "UnresolvedAddressException", "full_name": "java.nio.channels.UnresolvedAddressException"}, {"package_name": "java.security", "class_name": "UnresolvedPermission", "full_name": "java.security.UnresolvedPermission"}, {"package_name": "java.lang", "class_name": "UnsatisfiedLinkError", "full_name": "java.lang.UnsatisfiedLinkError"}, {"package_name": "java.nio.channels", "class_name": "UnsupportedAddressTypeException", "full_name": "java.nio.channels.UnsupportedAddressTypeException"}, {"package_name": "javax.security.auth.callback", "class_name": "UnsupportedCallbackException", "full_name": "javax.security.auth.callback.UnsupportedCallbackException"}, {"package_name": "java.nio.charset", "class_name": "UnsupportedCharsetException", "full_name": "java.nio.charset.UnsupportedCharsetException"}, {"package_name": "java.lang", "class_name": "UnsupportedClassVersionError", "full_name": "java.lang.UnsupportedClassVersionError"}, {"package_name": "java.io", "class_name": "UnsupportedEncodingException", "full_name": "java.io.UnsupportedEncodingException"}, {"package_name": "java.lang", "class_name": "UnsupportedOperationException", "full_name": "java.lang.UnsupportedOperationException"}, {"package_name": "android.media", "class_name": "UnsupportedSchemeException", "full_name": "android.media.UnsupportedSchemeException"}, {"package_name": "java.time.temporal", "class_name": "UnsupportedTemporalTypeException", "full_name": "java.time.temporal.UnsupportedTemporalTypeException"}, {"package_name": "android.os.strictmode", "class_name": "UntaggedSocketViolation", "full_name": "android.os.strictmode.UntaggedSocketViolation"}, {"package_name": "android.text.style", "class_name": "UpdateAppearance", "full_name": "android.text.style.UpdateAppearance"}, {"package_name": "android.text.style", "class_name": "UpdateLayout", "full_name": "android.text.style.UpdateLayout"}, {"package_name": "android.icu.lang", "class_name": "UProperty", "full_name": "android.icu.lang.UProperty"}, {"package_name": "android.icu.lang", "class_name": "UProperty.NameChoice", "full_name": "android.icu.lang.UProperty.NameChoice"}, {"package_name": "android.net", "class_name": "Uri", "full_name": "android.net.Uri"}, {"package_name": "java.net", "class_name": "URI", "full_name": "java.net.URI"}, {"package_name": "android.net", "class_name": "Uri.Builder", "full_name": "android.net.Uri.Builder"}, {"package_name": "android.content", "class_name": "UriMatcher", "full_name": "android.content.UriMatcher"}, {"package_name": "android.content", "class_name": "UriPermission", "full_name": "android.content.UriPermission"}, {"package_name": "javax.xml.transform", "class_name": "URIResolver", "full_name": "javax.xml.transform.URIResolver"}, {"package_name": "java.net", "class_name": "URISyntaxException", "full_name": "java.net.URISyntaxException"}, {"package_name": "java.net", "class_name": "URL", "full_name": "java.net.URL"}, {"package_name": "java.net", "class_name": "URLClassLoader", "full_name": "java.net.URLClassLoader"}, {"package_name": "java.net", "class_name": "URLConnection", "full_name": "java.net.URLConnection"}, {"package_name": "java.net", "class_name": "URLDecoder", "full_name": "java.net.URLDecoder"}, {"package_name": "java.net", "class_name": "URLEncoder", "full_name": "java.net.URLEncoder"}, {"package_name": "android.net", "class_name": "UrlQuerySanitizer", "full_name": "android.net.UrlQuerySanitizer"}, {"package_name": "android.net", "class_name": "UrlQuerySanitizer.IllegalCharacterValueSanitizer", "full_name": "android.net.UrlQuerySanitizer.IllegalCharacterValueSanitizer"}, {"package_name": "android.net", "class_name": "UrlQuerySanitizer.ParameterValuePair", "full_name": "android.net.UrlQuerySanitizer.ParameterValuePair"}, {"package_name": "android.net", "class_name": "UrlQuerySanitizer.ValueSanitizer", "full_name": "android.net.UrlQuerySanitizer.ValueSanitizer"}, {"package_name": "android.text.style", "class_name": "URLSpan", "full_name": "android.text.style.URLSpan"}, {"package_name": "java.net", "class_name": "URLStreamHandler", "full_name": "java.net.URLStreamHandler"}, {"package_name": "java.net", "class_name": "URLStreamHandlerFactory", "full_name": "java.net.URLStreamHandlerFactory"}, {"package_name": "android.webkit", "class_name": "URLUtil", "full_name": "android.webkit.URLUtil"}, {"package_name": "android.app.usage", "class_name": "UsageEvents", "full_name": "android.app.usage.UsageEvents"}, {"package_name": "android.app.usage", "class_name": "UsageEvents.Event", "full_name": "android.app.usage.UsageEvents.Event"}, {"package_name": "android.app.usage", "class_name": "UsageStats", "full_name": "android.app.usage.UsageStats"}, {"package_name": "android.app.usage", "class_name": "UsageStatsManager", "full_name": "android.app.usage.UsageStatsManager"}, {"package_name": "android.hardware.usb", "class_name": "UsbAccessory", "full_name": "android.hardware.usb.UsbAccessory"}, {"package_name": "android.hardware.usb", "class_name": "UsbConfiguration", "full_name": "android.hardware.usb.UsbConfiguration"}, {"package_name": "android.hardware.usb", "class_name": "UsbConstants", "full_name": "android.hardware.usb.UsbConstants"}, {"package_name": "android.hardware.usb", "class_name": "UsbDevice", "full_name": "android.hardware.usb.UsbDevice"}, {"package_name": "android.hardware.usb", "class_name": "UsbDeviceConnection", "full_name": "android.hardware.usb.UsbDeviceConnection"}, {"package_name": "android.hardware.usb", "class_name": "UsbEndpoint", "full_name": "android.hardware.usb.UsbEndpoint"}, {"package_name": "android.hardware.usb", "class_name": "UsbInterface", "full_name": "android.hardware.usb.UsbInterface"}, {"package_name": "android.hardware.usb", "class_name": "UsbManager", "full_name": "android.hardware.usb.UsbManager"}, {"package_name": "android.hardware.usb", "class_name": "UsbRequest", "full_name": "android.hardware.usb.UsbRequest"}, {"package_name": "android.icu.lang", "class_name": "UScript", "full_name": "android.icu.lang.UScript"}, {"package_name": "android.icu.lang", "class_name": "UScript.ScriptUsage", "full_name": "android.icu.lang.UScript.ScriptUsage"}, {"package_name": "android.service.autofill", "class_name": "UserData", "full_name": "android.service.autofill.UserData"}, {"package_name": "android.service.autofill", "class_name": "UserData.Builder", "full_name": "android.service.autofill.UserData.Builder"}, {"package_name": "java.nio.file.attribute", "class_name": "UserDefinedFileAttributeView", "full_name": "java.nio.file.attribute.UserDefinedFileAttributeView"}, {"package_name": "android.provider", "class_name": "UserDictionary", "full_name": "android.provider.UserDictionary"}, {"package_name": "android.provider", "class_name": "UserDictionary.Words", "full_name": "android.provider.UserDictionary.Words"}, {"package_name": "android.os", "class_name": "UserHandle", "full_name": "android.os.UserHandle"}, {"package_name": "android.os", "class_name": "UserManager", "full_name": "android.os.UserManager"}, {"package_name": "android.os", "class_name": "UserManager.UserOperationException", "full_name": "android.os.UserManager.UserOperationException"}, {"package_name": "android.security.keystore", "class_name": "UserNotAuthenticatedException", "full_name": "android.security.keystore.UserNotAuthenticatedException"}, {"package_name": "android.security.keystore", "class_name": "UserPresenceUnavailableException", "full_name": "android.security.keystore.UserPresenceUnavailableException"}, {"package_name": "java.nio.file.attribute", "class_name": "UserPrincipal", "full_name": "java.nio.file.attribute.UserPrincipal"}, {"package_name": "java.nio.file.attribute", "class_name": "UserPrincipalLookupService", "full_name": "java.nio.file.attribute.UserPrincipalLookupService"}, {"package_name": "java.nio.file.attribute", "class_name": "UserPrincipalNotFoundException", "full_name": "java.nio.file.attribute.UserPrincipalNotFoundException"}, {"package_name": "java.io", "class_name": "UTFDataFormatException", "full_name": "java.io.UTFDataFormatException"}, {"package_name": "android.speech.tts", "class_name": "UtteranceProgressListener", "full_name": "android.speech.tts.UtteranceProgressListener"}, {"package_name": "java.util", "class_name": "UUID", "full_name": "java.util.UUID"}, {"package_name": "android.service.autofill", "class_name": "Validator", "full_name": "android.service.autofill.Validator"}, {"package_name": "javax.xml.validation", "class_name": "Validator", "full_name": "javax.xml.validation.Validator"}, {"package_name": "javax.xml.validation", "class_name": "ValidatorHandler", "full_name": "javax.xml.validation.ValidatorHandler"}, {"package_name": "android.service.autofill", "class_name": "Validators", "full_name": "android.service.autofill.Validators"}, {"package_name": "android.animation", "class_name": "ValueAnimator", "full_name": "android.animation.ValueAnimator"}, {"package_name": "android.animation", "class_name": "ValueAnimator.AnimatorUpdateListener", "full_name": "android.animation.ValueAnimator.AnimatorUpdateListener"}, {"package_name": "android.icu.util", "class_name": "ValueIterator", "full_name": "android.icu.util.ValueIterator"}, {"package_name": "android.icu.util", "class_name": "ValueIterator.Element", "full_name": "android.icu.util.ValueIterator.Element"}, {"package_name": "java.time.temporal", "class_name": "ValueRange", "full_name": "java.time.temporal.ValueRange"}, {"package_name": "android.graphics.drawable", "class_name": "VectorDrawable", "full_name": "android.graphics.drawable.VectorDrawable"}, {"package_name": "android.view", "class_name": "VelocityTracker", "full_name": "android.view.VelocityTracker"}, {"package_name": "java.lang", "class_name": "VerifyError", "full_name": "java.lang.VerifyError"}, {"package_name": "junit.runner", "class_name": "Version", "full_name": "junit.runner.Version"}, {"package_name": "android.content.pm", "class_name": "VersionedPackage", "full_name": "android.content.pm.VersionedPackage"}, {"package_name": "android.icu.util", "class_name": "VersionInfo", "full_name": "android.icu.util.VersionInfo"}, {"package_name": "android.os", "class_name": "VibrationEffect", "full_name": "android.os.VibrationEffect"}, {"package_name": "android.os", "class_name": "Vibrator", "full_name": "android.os.Vibrator"}, {"package_name": "android.telecom", "class_name": "VideoProfile", "full_name": "android.telecom.VideoProfile"}, {"package_name": "android.telecom", "class_name": "VideoProfile.CameraCapabilities", "full_name": "android.telecom.VideoProfile.CameraCapabilities"}, {"package_name": "android.widget", "class_name": "VideoView", "full_name": "android.widget.VideoView"}, {"package_name": "android.view", "class_name": "View", "full_name": "android.view.View"}, {"package_name": "android.view", "class_name": "View.AccessibilityDelegate", "full_name": "android.view.View.AccessibilityDelegate"}, {"package_name": "android.view", "class_name": "View.BaseSavedState", "full_name": "android.view.View.BaseSavedState"}, {"package_name": "android.view", "class_name": "View.DragShadowBuilder", "full_name": "android.view.View.DragShadowBuilder"}, {"package_name": "android.view", "class_name": "View.MeasureSpec", "full_name": "android.view.View.MeasureSpec"}, {"package_name": "android.view", "class_name": "View.OnApplyWindowInsetsListener", "full_name": "android.view.View.OnApplyWindowInsetsListener"}, {"package_name": "android.view", "class_name": "View.OnAttachStateChangeListener", "full_name": "android.view.View.OnAttachStateChangeListener"}, {"package_name": "android.view", "class_name": "View.OnCapturedPointerListener", "full_name": "android.view.View.OnCapturedPointerListener"}, {"package_name": "android.view", "class_name": "View.OnClickListener", "full_name": "android.view.View.OnClickListener"}, {"package_name": "android.view", "class_name": "View.OnContextClickListener", "full_name": "android.view.View.OnContextClickListener"}, {"package_name": "android.view", "class_name": "View.OnCreateContextMenuListener", "full_name": "android.view.View.OnCreateContextMenuListener"}, {"package_name": "android.view", "class_name": "View.OnDragListener", "full_name": "android.view.View.OnDragListener"}, {"package_name": "android.view", "class_name": "View.OnFocusChangeListener", "full_name": "android.view.View.OnFocusChangeListener"}, {"package_name": "android.view", "class_name": "View.OnGenericMotionListener", "full_name": "android.view.View.OnGenericMotionListener"}, {"package_name": "android.view", "class_name": "View.OnHoverListener", "full_name": "android.view.View.OnHoverListener"}, {"package_name": "android.view", "class_name": "View.OnKeyListener", "full_name": "android.view.View.OnKeyListener"}, {"package_name": "android.view", "class_name": "View.OnLayoutChangeListener", "full_name": "android.view.View.OnLayoutChangeListener"}, {"package_name": "android.view", "class_name": "View.OnLongClickListener", "full_name": "android.view.View.OnLongClickListener"}, {"package_name": "android.view", "class_name": "View.OnScrollChangeListener", "full_name": "android.view.View.OnScrollChangeListener"}, {"package_name": "android.view", "class_name": "View.OnSystemUiVisibilityChangeListener", "full_name": "android.view.View.OnSystemUiVisibilityChangeListener"}, {"package_name": "android.view", "class_name": "View.OnTouchListener", "full_name": "android.view.View.OnTouchListener"}, {"package_name": "android.view", "class_name": "View.OnUnhandledKeyEventListener", "full_name": "android.view.View.OnUnhandledKeyEventListener"}, {"package_name": "android.view", "class_name": "ViewAnimationUtils", "full_name": "android.view.ViewAnimationUtils"}, {"package_name": "android.widget", "class_name": "ViewAnimator", "full_name": "android.widget.ViewAnimator"}, {"package_name": "android.test", "class_name": "ViewAsserts", "full_name": "android.test.ViewAsserts"}, {"package_name": "android.view", "class_name": "ViewConfiguration", "full_name": "android.view.ViewConfiguration"}, {"package_name": "android.view", "class_name": "ViewDebug", "full_name": "android.view.ViewDebug"}, {"package_name": "android.view", "class_name": "ViewDebug.CapturedViewProperty", "full_name": "android.view.ViewDebug.CapturedViewProperty"}, {"package_name": "android.view", "class_name": "ViewDebug.ExportedProperty", "full_name": "android.view.ViewDebug.ExportedProperty"}, {"package_name": "android.view", "class_name": "ViewDebug.FlagToString", "full_name": "android.view.ViewDebug.FlagToString"}, {"package_name": "android.view", "class_name": "ViewDebug.HierarchyTraceType", "full_name": "android.view.ViewDebug.HierarchyTraceType"}, {"package_name": "android.view", "class_name": "ViewDebug.IntToString", "full_name": "android.view.ViewDebug.IntToString"}, {"package_name": "android.view", "class_name": "ViewDebug.RecyclerTraceType", "full_name": "android.view.ViewDebug.RecyclerTraceType"}, {"package_name": "android.widget", "class_name": "ViewFlipper", "full_name": "android.widget.ViewFlipper"}, {"package_name": "android.view", "class_name": "ViewGroup", "full_name": "android.view.ViewGroup"}, {"package_name": "android.view", "class_name": "ViewGroup.LayoutParams", "full_name": "android.view.ViewGroup.LayoutParams"}, {"package_name": "android.view", "class_name": "ViewGroup.MarginLayoutParams", "full_name": "android.view.ViewGroup.MarginLayoutParams"}, {"package_name": "android.view", "class_name": "ViewGroup.OnHierarchyChangeListener", "full_name": "android.view.ViewGroup.OnHierarchyChangeListener"}, {"package_name": "android.view", "class_name": "ViewGroupOverlay", "full_name": "android.view.ViewGroupOverlay"}, {"package_name": "android.view", "class_name": "ViewManager", "full_name": "android.view.ViewManager"}, {"package_name": "android.view", "class_name": "ViewOutlineProvider", "full_name": "android.view.ViewOutlineProvider"}, {"package_name": "android.view", "class_name": "ViewOverlay", "full_name": "android.view.ViewOverlay"}, {"package_name": "android.view", "class_name": "ViewParent", "full_name": "android.view.ViewParent"}, {"package_name": "android.view", "class_name": "ViewPropertyAnimator", "full_name": "android.view.ViewPropertyAnimator"}, {"package_name": "android.view", "class_name": "ViewStructure", "full_name": "android.view.ViewStructure"}, {"package_name": "android.view", "class_name": "ViewStructure.HtmlInfo", "full_name": "android.view.ViewStructure.HtmlInfo"}, {"package_name": "android.view", "class_name": "ViewStructure.HtmlInfo.Builder", "full_name": "android.view.ViewStructure.HtmlInfo.Builder"}, {"package_name": "android.view", "class_name": "ViewStub", "full_name": "android.view.ViewStub"}, {"package_name": "android.view", "class_name": "ViewStub.OnInflateListener", "full_name": "android.view.ViewStub.OnInflateListener"}, {"package_name": "android.widget", "class_name": "ViewSwitcher", "full_name": "android.widget.ViewSwitcher"}, {"package_name": "android.widget", "class_name": "ViewSwitcher.ViewFactory", "full_name": "android.widget.ViewSwitcher.ViewFactory"}, {"package_name": "android.view", "class_name": "ViewTreeObserver", "full_name": "android.view.ViewTreeObserver"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnDrawListener", "full_name": "android.view.ViewTreeObserver.OnDrawListener"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnGlobalFocusChangeListener", "full_name": "android.view.ViewTreeObserver.OnGlobalFocusChangeListener"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnGlobalLayoutListener", "full_name": "android.view.ViewTreeObserver.OnGlobalLayoutListener"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnPreDrawListener", "full_name": "android.view.ViewTreeObserver.OnPreDrawListener"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnScrollChangedListener", "full_name": "android.view.ViewTreeObserver.OnScrollChangedListener"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnTouchModeChangeListener", "full_name": "android.view.ViewTreeObserver.OnTouchModeChangeListener"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnWindowAttachListener", "full_name": "android.view.ViewTreeObserver.OnWindowAttachListener"}, {"package_name": "android.view", "class_name": "ViewTreeObserver.OnWindowFocusChangeListener", "full_name": "android.view.ViewTreeObserver.OnWindowFocusChangeListener"}, {"package_name": "android.os.strictmode", "class_name": "Violation", "full_name": "android.os.strictmode.Violation"}, {"package_name": "android.hardware.display", "class_name": "VirtualDisplay", "full_name": "android.hardware.display.VirtualDisplay"}, {"package_name": "android.hardware.display", "class_name": "VirtualDisplay.Callback", "full_name": "android.hardware.display.VirtualDisplay.Callback"}, {"package_name": "android.media.audiofx", "class_name": "Virtualizer", "full_name": "android.media.audiofx.Virtualizer"}, {"package_name": "android.media.audiofx", "class_name": "Virtualizer.OnParameterChangeListener", "full_name": "android.media.audiofx.Virtualizer.OnParameterChangeListener"}, {"package_name": "android.media.audiofx", "class_name": "Virtualizer.Settings", "full_name": "android.media.audiofx.Virtualizer.Settings"}, {"package_name": "java.lang", "class_name": "VirtualMachineError", "full_name": "java.lang.VirtualMachineError"}, {"package_name": "android.opengl", "class_name": "Visibility", "full_name": "android.opengl.Visibility"}, {"package_name": "android.transition", "class_name": "Visibility", "full_name": "android.transition.Visibility"}, {"package_name": "android.transition", "class_name": "VisibilityPropagation", "full_name": "android.transition.VisibilityPropagation"}, {"package_name": "android.media.audiofx", "class_name": "Visualizer", "full_name": "android.media.audiofx.Visualizer"}, {"package_name": "android.media.audiofx", "class_name": "Visualizer.MeasurementPeakRms", "full_name": "android.media.audiofx.Visualizer.MeasurementPeakRms"}, {"package_name": "android.media.audiofx", "class_name": "Visualizer.OnDataCaptureListener", "full_name": "android.media.audiofx.Visualizer.OnDataCaptureListener"}, {"package_name": "android.telephony", "class_name": "VisualVoicemailService", "full_name": "android.telephony.VisualVoicemailService"}, {"package_name": "android.telephony", "class_name": "VisualVoicemailService.VisualVoicemailTask", "full_name": "android.telephony.VisualVoicemailService.VisualVoicemailTask"}, {"package_name": "android.telephony", "class_name": "VisualVoicemailSms", "full_name": "android.telephony.VisualVoicemailSms"}, {"package_name": "android.telephony", "class_name": "VisualVoicemailSmsFilterSettings", "full_name": "android.telephony.VisualVoicemailSmsFilterSettings"}, {"package_name": "android.telephony", "class_name": "VisualVoicemailSmsFilterSettings.Builder", "full_name": "android.telephony.VisualVoicemailSmsFilterSettings.Builder"}, {"package_name": "android.speech.tts", "class_name": "Voice", "full_name": "android.speech.tts.Voice"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionService", "full_name": "android.service.voice.VoiceInteractionService"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession", "full_name": "android.service.voice.VoiceInteractionSession"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession.AbortVoiceRequest", "full_name": "android.service.voice.VoiceInteractionSession.AbortVoiceRequest"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession.CommandRequest", "full_name": "android.service.voice.VoiceInteractionSession.CommandRequest"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession.CompleteVoiceRequest", "full_name": "android.service.voice.VoiceInteractionSession.CompleteVoiceRequest"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession.ConfirmationRequest", "full_name": "android.service.voice.VoiceInteractionSession.ConfirmationRequest"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession.Insets", "full_name": "android.service.voice.VoiceInteractionSession.Insets"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession.PickOptionRequest", "full_name": "android.service.voice.VoiceInteractionSession.PickOptionRequest"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSession.Request", "full_name": "android.service.voice.VoiceInteractionSession.Request"}, {"package_name": "android.service.voice", "class_name": "VoiceInteractionSessionService", "full_name": "android.service.voice.VoiceInteractionSessionService"}, {"package_name": "android.app", "class_name": "VoiceInteractor", "full_name": "android.app.VoiceInteractor"}, {"package_name": "android.app", "class_name": "VoiceInteractor.AbortVoiceRequest", "full_name": "android.app.VoiceInteractor.AbortVoiceRequest"}, {"package_name": "android.app", "class_name": "VoiceInteractor.CommandRequest", "full_name": "android.app.VoiceInteractor.CommandRequest"}, {"package_name": "android.app", "class_name": "VoiceInteractor.CompleteVoiceRequest", "full_name": "android.app.VoiceInteractor.CompleteVoiceRequest"}, {"package_name": "android.app", "class_name": "VoiceInteractor.ConfirmationRequest", "full_name": "android.app.VoiceInteractor.ConfirmationRequest"}, {"package_name": "android.app", "class_name": "VoiceInteractor.PickOptionRequest", "full_name": "android.app.VoiceInteractor.PickOptionRequest"}, {"package_name": "android.app", "class_name": "VoiceInteractor.PickOptionRequest.Option", "full_name": "android.app.VoiceInteractor.PickOptionRequest.Option"}, {"package_name": "android.app", "class_name": "VoiceInteractor.Prompt", "full_name": "android.app.VoiceInteractor.Prompt"}, {"package_name": "android.app", "class_name": "VoiceInteractor.Request", "full_name": "android.app.VoiceInteractor.Request"}, {"package_name": "android.provider", "class_name": "VoicemailContract", "full_name": "android.provider.VoicemailContract"}, {"package_name": "android.provider", "class_name": "VoicemailContract.Status", "full_name": "android.provider.VoicemailContract.Status"}, {"package_name": "android.provider", "class_name": "VoicemailContract.Voicemails", "full_name": "android.provider.VoicemailContract.Voicemails"}, {"package_name": "java.lang", "class_name": "Void", "full_name": "java.lang.Void"}, {"package_name": "java.lang.invoke", "class_name": "VolatileCallSite", "full_name": "java.lang.invoke.VolatileCallSite"}, {"package_name": "android.media", "class_name": "VolumeAutomation", "full_name": "android.media.VolumeAutomation"}, {"package_name": "android.media", "class_name": "VolumeProvider", "full_name": "android.media.VolumeProvider"}, {"package_name": "android.media", "class_name": "VolumeShaper", "full_name": "android.media.VolumeShaper"}, {"package_name": "android.media", "class_name": "VolumeShaper.Configuration", "full_name": "android.media.VolumeShaper.Configuration"}, {"package_name": "android.media", "class_name": "VolumeShaper.Configuration.Builder", "full_name": "android.media.VolumeShaper.Configuration.Builder"}, {"package_name": "android.media", "class_name": "VolumeShaper.Operation", "full_name": "android.media.VolumeShaper.Operation"}, {"package_name": "android.net", "class_name": "VpnService", "full_name": "android.net.VpnService"}, {"package_name": "android.net", "class_name": "VpnService.Builder", "full_name": "android.net.VpnService.Builder"}, {"package_name": "android.service.vr", "class_name": "VrListenerService", "full_name": "android.service.vr.VrListenerService"}, {"package_name": "android.app", "class_name": "WallpaperColors", "full_name": "android.app.WallpaperColors"}, {"package_name": "android.app", "class_name": "WallpaperInfo", "full_name": "android.app.WallpaperInfo"}, {"package_name": "android.app", "class_name": "WallpaperManager", "full_name": "android.app.WallpaperManager"}, {"package_name": "android.app", "class_name": "WallpaperManager.OnColorsChangedListener", "full_name": "android.app.WallpaperManager.OnColorsChangedListener"}, {"package_name": "android.service.wallpaper", "class_name": "WallpaperService", "full_name": "android.service.wallpaper.WallpaperService"}, {"package_name": "android.service.wallpaper", "class_name": "WallpaperService.Engine", "full_name": "android.service.wallpaper.WallpaperService.Engine"}, {"package_name": "java.nio.file", "class_name": "Watchable", "full_name": "java.nio.file.Watchable"}, {"package_name": "java.nio.file", "class_name": "WatchEvent.Modifier", "full_name": "java.nio.file.WatchEvent.Modifier"}, {"package_name": "java.nio.file", "class_name": "WatchKey", "full_name": "java.nio.file.WatchKey"}, {"package_name": "java.nio.file", "class_name": "WatchService", "full_name": "java.nio.file.WatchService"}, {"package_name": "android.webkit", "class_name": "WebBackForwardList", "full_name": "android.webkit.WebBackForwardList"}, {"package_name": "android.webkit", "class_name": "WebChromeClient", "full_name": "android.webkit.WebChromeClient"}, {"package_name": "android.webkit", "class_name": "WebChromeClient.CustomViewCallback", "full_name": "android.webkit.WebChromeClient.CustomViewCallback"}, {"package_name": "android.webkit", "class_name": "WebChromeClient.FileChooserParams", "full_name": "android.webkit.WebChromeClient.FileChooserParams"}, {"package_name": "android.webkit", "class_name": "WebHistoryItem", "full_name": "android.webkit.WebHistoryItem"}, {"package_name": "android.webkit", "class_name": "WebIconDatabase", "full_name": "android.webkit.WebIconDatabase"}, {"package_name": "android.webkit", "class_name": "WebIconDatabase.IconListener", "full_name": "android.webkit.WebIconDatabase.IconListener"}, {"package_name": "android.webkit", "class_name": "WebMessage", "full_name": "android.webkit.WebMessage"}, {"package_name": "android.webkit", "class_name": "WebMessagePort", "full_name": "android.webkit.WebMessagePort"}, {"package_name": "android.webkit", "class_name": "WebMessagePort.WebMessageCallback", "full_name": "android.webkit.WebMessagePort.WebMessageCallback"}, {"package_name": "android.webkit", "class_name": "WebResourceError", "full_name": "android.webkit.WebResourceError"}, {"package_name": "android.webkit", "class_name": "WebResourceRequest", "full_name": "android.webkit.WebResourceRequest"}, {"package_name": "android.webkit", "class_name": "WebResourceResponse", "full_name": "android.webkit.WebResourceResponse"}, {"package_name": "android.webkit", "class_name": "WebSettings", "full_name": "android.webkit.WebSettings"}, {"package_name": "android.webkit", "class_name": "WebSettings.LayoutAlgorithm", "full_name": "android.webkit.WebSettings.LayoutAlgorithm"}, {"package_name": "android.webkit", "class_name": "WebSettings.PluginState", "full_name": "android.webkit.WebSettings.PluginState"}, {"package_name": "android.webkit", "class_name": "WebSettings.RenderPriority", "full_name": "android.webkit.WebSettings.RenderPriority"}, {"package_name": "android.webkit", "class_name": "WebSettings.TextSize", "full_name": "android.webkit.WebSettings.TextSize"}, {"package_name": "android.webkit", "class_name": "WebSettings.ZoomDensity", "full_name": "android.webkit.WebSettings.ZoomDensity"}, {"package_name": "android.webkit", "class_name": "WebStorage", "full_name": "android.webkit.WebStorage"}, {"package_name": "android.webkit", "class_name": "WebStorage.Origin", "full_name": "android.webkit.WebStorage.Origin"}, {"package_name": "android.webkit", "class_name": "WebStorage.QuotaUpdater", "full_name": "android.webkit.WebStorage.QuotaUpdater"}, {"package_name": "android.webkit", "class_name": "WebView", "full_name": "android.webkit.WebView"}, {"package_name": "android.webkit", "class_name": "WebView.FindListener", "full_name": "android.webkit.WebView.FindListener"}, {"package_name": "android.webkit", "class_name": "WebView.HitTestResult", "full_name": "android.webkit.WebView.HitTestResult"}, {"package_name": "android.webkit", "class_name": "WebView.PictureListener", "full_name": "android.webkit.WebView.PictureListener"}, {"package_name": "android.webkit", "class_name": "WebView.VisualStateCallback", "full_name": "android.webkit.WebView.VisualStateCallback"}, {"package_name": "android.webkit", "class_name": "WebView.WebViewTransport", "full_name": "android.webkit.WebView.WebViewTransport"}, {"package_name": "android.webkit", "class_name": "WebViewClient", "full_name": "android.webkit.WebViewClient"}, {"package_name": "android.webkit", "class_name": "WebViewDatabase", "full_name": "android.webkit.WebViewDatabase"}, {"package_name": "android.webkit", "class_name": "WebViewFragment", "full_name": "android.webkit.WebViewFragment"}, {"package_name": "android.os.strictmode", "class_name": "WebViewMethodCalledOnWrongThreadViolation", "full_name": "android.os.strictmode.WebViewMethodCalledOnWrongThreadViolation"}, {"package_name": "java.time.temporal", "class_name": "WeekFields", "full_name": "java.time.temporal.WeekFields"}, {"package_name": "android.net.wifi.aware", "class_name": "WifiAwareManager", "full_name": "android.net.wifi.aware.WifiAwareManager"}, {"package_name": "android.net.wifi.aware", "class_name": "WifiAwareSession", "full_name": "android.net.wifi.aware.WifiAwareSession"}, {"package_name": "android.net.wifi", "class_name": "WifiConfiguration", "full_name": "android.net.wifi.WifiConfiguration"}, {"package_name": "android.net.wifi", "class_name": "WifiConfiguration.AuthAlgorithm", "full_name": "android.net.wifi.WifiConfiguration.AuthAlgorithm"}, {"package_name": "android.net.wifi", "class_name": "WifiConfiguration.GroupCipher", "full_name": "android.net.wifi.WifiConfiguration.GroupCipher"}, {"package_name": "android.net.wifi", "class_name": "WifiConfiguration.KeyMgmt", "full_name": "android.net.wifi.WifiConfiguration.KeyMgmt"}, {"package_name": "android.net.wifi", "class_name": "WifiConfiguration.PairwiseCipher", "full_name": "android.net.wifi.WifiConfiguration.PairwiseCipher"}, {"package_name": "android.net.wifi", "class_name": "WifiConfiguration.Protocol", "full_name": "android.net.wifi.WifiConfiguration.Protocol"}, {"package_name": "android.net.wifi", "class_name": "WifiConfiguration.Status", "full_name": "android.net.wifi.WifiConfiguration.Status"}, {"package_name": "android.companion", "class_name": "WifiDeviceFilter", "full_name": "android.companion.WifiDeviceFilter"}, {"package_name": "android.companion", "class_name": "WifiDeviceFilter.Builder", "full_name": "android.companion.WifiDeviceFilter.Builder"}, {"package_name": "android.net.wifi", "class_name": "WifiEnterpriseConfig", "full_name": "android.net.wifi.WifiEnterpriseConfig"}, {"package_name": "android.net.wifi", "class_name": "WifiEnterpriseConfig.Eap", "full_name": "android.net.wifi.WifiEnterpriseConfig.Eap"}, {"package_name": "android.net.wifi", "class_name": "WifiInfo", "full_name": "android.net.wifi.WifiInfo"}, {"package_name": "android.net.wifi", "class_name": "WifiManager", "full_name": "android.net.wifi.WifiManager"}, {"package_name": "android.net.wifi", "class_name": "WifiManager.LocalOnlyHotspotCallback", "full_name": "android.net.wifi.WifiManager.LocalOnlyHotspotCallback"}, {"package_name": "android.net.wifi", "class_name": "WifiManager.LocalOnlyHotspotReservation", "full_name": "android.net.wifi.WifiManager.LocalOnlyHotspotReservation"}, {"package_name": "android.net.wifi", "class_name": "WifiManager.MulticastLock", "full_name": "android.net.wifi.WifiManager.MulticastLock"}, {"package_name": "android.net.wifi", "class_name": "WifiManager.WifiLock", "full_name": "android.net.wifi.WifiManager.WifiLock"}, {"package_name": "android.net.wifi", "class_name": "WifiManager.WpsCallback", "full_name": "android.net.wifi.WifiManager.WpsCallback"}, {"package_name": "android.net.wifi.rtt", "class_name": "WifiRttManager", "full_name": "android.net.wifi.rtt.WifiRttManager"}, {"package_name": "java.lang.reflect", "class_name": "WildcardType", "full_name": "java.lang.reflect.WildcardType"}, {"package_name": "android.view", "class_name": "Window", "full_name": "android.view.Window"}, {"package_name": "android.view", "class_name": "Window.Callback", "full_name": "android.view.Window.Callback"}, {"package_name": "android.view", "class_name": "Window.OnFrameMetricsAvailableListener", "full_name": "android.view.Window.OnFrameMetricsAvailableListener"}, {"package_name": "android.view", "class_name": "Window.OnRestrictedCaptionAreaChangedListener", "full_name": "android.view.Window.OnRestrictedCaptionAreaChangedListener"}, {"package_name": "android.view", "class_name": "WindowAnimationFrameStats", "full_name": "android.view.WindowAnimationFrameStats"}, {"package_name": "android.view", "class_name": "WindowContentFrameStats", "full_name": "android.view.WindowContentFrameStats"}, {"package_name": "android.view", "class_name": "WindowId", "full_name": "android.view.WindowId"}, {"package_name": "android.view", "class_name": "WindowId.FocusObserver", "full_name": "android.view.WindowId.FocusObserver"}, {"package_name": "android.view", "class_name": "WindowInsets", "full_name": "android.view.WindowInsets"}, {"package_name": "android.view", "class_name": "WindowManager", "full_name": "android.view.WindowManager"}, {"package_name": "android.view", "class_name": "WindowManager.BadTokenException", "full_name": "android.view.WindowManager.BadTokenException"}, {"package_name": "android.view", "class_name": "WindowManager.InvalidDisplayException", "full_name": "android.view.WindowManager.InvalidDisplayException"}, {"package_name": "android.view", "class_name": "WindowManager.LayoutParams", "full_name": "android.view.WindowManager.LayoutParams"}, {"package_name": "android.os", "class_name": "WorkSource", "full_name": "android.os.WorkSource"}, {"package_name": "android.net.wifi", "class_name": "WpsInfo", "full_name": "android.net.wifi.WpsInfo"}, {"package_name": "android.security.keystore", "class_name": "WrappedKeyEntry", "full_name": "android.security.keystore.WrappedKeyEntry"}, {"package_name": "java.sql", "class_name": "Wrapper", "full_name": "java.sql.Wrapper"}, {"package_name": "android.widget", "class_name": "WrapperListAdapter", "full_name": "android.widget.WrapperListAdapter"}, {"package_name": "android.text.style", "class_name": "WrapTogetherSpan", "full_name": "android.text.style.WrapTogetherSpan"}, {"package_name": "java.nio.channels", "class_name": "WritableByteChannel", "full_name": "java.nio.channels.WritableByteChannel"}, {"package_name": "java.io", "class_name": "WriteAbortedException", "full_name": "java.io.WriteAbortedException"}, {"package_name": "java.nio.channels", "class_name": "WritePendingException", "full_name": "java.nio.channels.WritePendingException"}, {"package_name": "java.io", "class_name": "Writer", "full_name": "java.io.Writer"}, {"package_name": "java.lang.invoke", "class_name": "WrongMethodTypeException", "full_name": "java.lang.invoke.WrongMethodTypeException"}, {"package_name": "android.graphics", "class_name": "Xfermode", "full_name": "android.graphics.Xfermode"}, {"package_name": "android.util", "class_name": "Xml", "full_name": "android.util.Xml"}, {"package_name": "android.util", "class_name": "Xml.Encoding", "full_name": "android.util.Xml.Encoding"}, {"package_name": "javax.xml", "class_name": "XMLConstants", "full_name": "javax.xml.XMLConstants"}, {"package_name": "org.xml.sax", "class_name": "XMLFilter", "full_name": "org.xml.sax.XMLFilter"}, {"package_name": "org.xml.sax.helpers", "class_name": "XMLFilterImpl", "full_name": "org.xml.sax.helpers.XMLFilterImpl"}, {"package_name": "java.util.logging", "class_name": "XMLFormatter", "full_name": "java.util.logging.XMLFormatter"}, {"package_name": "javax.xml.datatype", "class_name": "XMLGregorianCalendar", "full_name": "javax.xml.datatype.XMLGregorianCalendar"}, {"package_name": "org.xml.sax", "class_name": "XMLReader", "full_name": "org.xml.sax.XMLReader"}, {"package_name": "org.xml.sax.helpers", "class_name": "XMLReaderAdapter", "full_name": "org.xml.sax.helpers.XMLReaderAdapter"}, {"package_name": "org.xml.sax.helpers", "class_name": "XMLReaderFactory", "full_name": "org.xml.sax.helpers.XMLReaderFactory"}, {"package_name": "android.content.res", "class_name": "XmlResourceParser", "full_name": "android.content.res.XmlResourceParser"}, {"package_name": "javax.xml.xpath", "class_name": "XPath", "full_name": "javax.xml.xpath.XPath"}, {"package_name": "javax.xml.xpath", "class_name": "XPathConstants", "full_name": "javax.xml.xpath.XPathConstants"}, {"package_name": "javax.xml.xpath", "class_name": "XPathException", "full_name": "javax.xml.xpath.XPathException"}, {"package_name": "javax.xml.xpath", "class_name": "XPathExpression", "full_name": "javax.xml.xpath.XPathExpression"}, {"package_name": "javax.xml.xpath", "class_name": "XPathExpressionException", "full_name": "javax.xml.xpath.XPathExpressionException"}, {"package_name": "javax.xml.xpath", "class_name": "XPathFactory", "full_name": "javax.xml.xpath.XPathFactory"}, {"package_name": "javax.xml.xpath", "class_name": "XPathFactoryConfigurationException", "full_name": "javax.xml.xpath.XPathFactoryConfigurationException"}, {"package_name": "javax.xml.xpath", "class_name": "XPathFunction", "full_name": "javax.xml.xpath.XPathFunction"}, {"package_name": "javax.xml.xpath", "class_name": "XPathFunctionException", "full_name": "javax.xml.xpath.XPathFunctionException"}, {"package_name": "javax.xml.xpath", "class_name": "XPathFunctionResolver", "full_name": "javax.xml.xpath.XPathFunctionResolver"}, {"package_name": "javax.xml.xpath", "class_name": "XPathVariableResolver", "full_name": "javax.xml.xpath.XPathVariableResolver"}, {"package_name": "java.time", "class_name": "Year", "full_name": "java.time.Year"}, {"package_name": "java.time", "class_name": "YearMonth", "full_name": "java.time.YearMonth"}, {"package_name": "android.graphics", "class_name": "YuvImage", "full_name": "android.graphics.YuvImage"}, {"package_name": "java.util.zip", "class_name": "ZipEntry", "full_name": "java.util.zip.ZipEntry"}, {"package_name": "java.util.zip", "class_name": "ZipError", "full_name": "java.util.zip.ZipError"}, {"package_name": "java.util.zip", "class_name": "ZipException", "full_name": "java.util.zip.ZipException"}, {"package_name": "java.util.zip", "class_name": "ZipFile", "full_name": "java.util.zip.ZipFile"}, {"package_name": "java.util.zip", "class_name": "ZipInputStream", "full_name": "java.util.zip.ZipInputStream"}, {"package_name": "java.util.zip", "class_name": "ZipOutputStream", "full_name": "java.util.zip.ZipOutputStream"}, {"package_name": "java.time", "class_name": "ZonedDateTime", "full_name": "java.time.ZonedDateTime"}, {"package_name": "java.time", "class_name": "ZoneId", "full_name": "java.time.ZoneId"}, {"package_name": "java.time", "class_name": "ZoneOffset", "full_name": "java.time.ZoneOffset"}, {"package_name": "java.time.zone", "class_name": "ZoneOffsetTransition", "full_name": "java.time.zone.ZoneOffsetTransition"}, {"package_name": "java.time.zone", "class_name": "ZoneOffsetTransitionRule", "full_name": "java.time.zone.ZoneOffsetTransitionRule"}, {"package_name": "java.time.zone", "class_name": "ZoneOffsetTransitionRule.TimeDefinition", "full_name": "java.time.zone.ZoneOffsetTransitionRule.TimeDefinition"}, {"package_name": "java.time.zone", "class_name": "ZoneRules", "full_name": "java.time.zone.ZoneRules"}, {"package_name": "java.time.zone", "class_name": "ZoneRulesException", "full_name": "java.time.zone.ZoneRulesException"}, {"package_name": "android.widget", "class_name": "ZoomButton", "full_name": "android.widget.ZoomButton"}, {"package_name": "android.widget", "class_name": "ZoomButtonsController", "full_name": "android.widget.ZoomButtonsController"}, {"package_name": "android.widget", "class_name": "ZoomButtonsController.OnZoomListener", "full_name": "android.widget.ZoomButtonsController.OnZoomListener"}, {"package_name": "android.widget", "class_name": "ZoomControls", "full_name": "android.widget.ZoomControls"}]
\ No newline at end of file
diff --git a/app/src/main/assets/js/js-beautify/beautify.js b/app/src/main/assets/js/js-beautify/beautify.js
index 5fdfb6b61..a797a2c96 100644
--- a/app/src/main/assets/js/js-beautify/beautify.js
+++ b/app/src/main/assets/js/js-beautify/beautify.js
@@ -2848,6 +2848,4 @@ function beautify(source){
'indent_size': 4,
'e4x': true
});
-}
-
-beautify;
\ No newline at end of file
+}
\ No newline at end of file
diff --git "a/app/src/main/assets/sample/\347\225\214\351\235\242\346\216\247\344\273\266/\345\215\241\347\211\207\345\270\203\345\261\200.js" "b/app/src/main/assets/sample/\347\225\214\351\235\242\346\216\247\344\273\266/\345\215\241\347\211\207\345\270\203\345\261\200.js"
index d726ed826..33f4c4619 100644
--- "a/app/src/main/assets/sample/\347\225\214\351\235\242\346\216\247\344\273\266/\345\215\241\347\211\207\345\270\203\345\261\200.js"
+++ "b/app/src/main/assets/sample/\347\225\214\351\235\242\346\216\247\344\273\266/\345\215\241\347\211\207\345\270\203\345\261\200.js"
@@ -24,7 +24,7 @@ ui.layout(
-
+
diff --git a/app/src/main/java/androidx/recyclerview/widget/ThemeColorRecyclerView.java b/app/src/main/java/androidx/recyclerview/widget/ThemeColorRecyclerView.java
new file mode 100644
index 000000000..ebab2b678
--- /dev/null
+++ b/app/src/main/java/androidx/recyclerview/widget/ThemeColorRecyclerView.java
@@ -0,0 +1,128 @@
+package androidx.recyclerview.widget;
+
+
+import android.content.Context;
+import android.os.Build;
+import androidx.annotation.Nullable;
+import androidx.core.widget.EdgeEffectCompat;
+
+import android.util.AttributeSet;
+import android.widget.EdgeEffect;
+
+import com.stardust.theme.ThemeColor;
+import com.stardust.theme.ThemeColorManager;
+import com.stardust.theme.ThemeColorMutable;
+
+import java.lang.reflect.Field;
+
+/**
+ * Created by Stardust on 2016/8/14.
+ */
+public class ThemeColorRecyclerView extends RecyclerView implements ThemeColorMutable {
+
+ private Field mLeftGlowField, mTopGlowField, mRightGlowField, mBottomGlowField;
+ private Field mEdgeEffectField;
+ private int mColorPrimary;
+ private boolean hasAppliedThemeColorLeft;
+ private boolean hasAppliedThemeColorTop;
+ private boolean hasAppliedThemeColorRight;
+ private boolean hasAppliedThemeColorBottom;
+
+ public ThemeColorRecyclerView(Context context) {
+ super(context);
+ init();
+ }
+
+
+ public ThemeColorRecyclerView(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public ThemeColorRecyclerView(Context context, @Nullable AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ init();
+ }
+
+ private boolean applyThemeColor(Field edgeEffectCompatField) {
+ try {
+ EdgeEffectCompat edgeEffectCompat = (EdgeEffectCompat) edgeEffectCompatField.get(this);
+ if (edgeEffectCompat != null)
+ return setEdgeEffectColor(edgeEffectCompat, mColorPrimary);
+ } catch (Exception ignored) {
+ }
+ return false;
+ }
+
+ private void init() {
+ try {
+ mEdgeEffectField = EdgeEffectCompat.class.getDeclaredField("mEdgeEffect");
+ mEdgeEffectField.setAccessible(true);
+ mLeftGlowField = RecyclerView.class.getDeclaredField("mLeftGlow");
+ mLeftGlowField.setAccessible(true);
+ mRightGlowField = RecyclerView.class.getDeclaredField("mRightGlow");
+ mRightGlowField.setAccessible(true);
+ mTopGlowField = RecyclerView.class.getDeclaredField("mTopGlow");
+ mTopGlowField.setAccessible(true);
+ mBottomGlowField = RecyclerView.class.getDeclaredField("mBottomGlow");
+ mBottomGlowField.setAccessible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ ThemeColorManager.add(this);
+ }
+
+ // TODO support api 21 below
+ private boolean setEdgeEffectColor(EdgeEffectCompat compat, int color) {
+ if (compat == null)
+ return false;
+ try {
+ if (Build.VERSION.SDK_INT >= 21) { // Android L
+ EdgeEffect edgeEffect = (EdgeEffect) mEdgeEffectField.get(compat);
+ edgeEffect.setColor(color);
+ }
+ return true;
+ } catch (Exception e) {
+ return true;
+ }
+ }
+
+ @Override
+ public void setThemeColor(ThemeColor color) {
+ if (color.colorPrimary == mColorPrimary)
+ return;
+ mColorPrimary = color.colorPrimary;
+ invalidateGlows();
+ }
+
+ void invalidateGlows() {
+ super.invalidateGlows();
+ hasAppliedThemeColorBottom = hasAppliedThemeColorLeft = hasAppliedThemeColorRight = hasAppliedThemeColorTop = false;
+ }
+
+ void ensureLeftGlow() {
+ super.ensureLeftGlow();
+ if (!hasAppliedThemeColorLeft)
+ hasAppliedThemeColorLeft = applyThemeColor(mLeftGlowField);
+ }
+
+ void ensureRightGlow() {
+ super.ensureLeftGlow();
+ if (!hasAppliedThemeColorRight)
+ hasAppliedThemeColorRight = applyThemeColor(mRightGlowField);
+ }
+
+ void ensureTopGlow() {
+ super.ensureTopGlow();
+ if (!hasAppliedThemeColorTop)
+ hasAppliedThemeColorTop = applyThemeColor(mTopGlowField);
+
+ }
+
+ void ensureBottomGlow() {
+ super.ensureBottomGlow();
+ if (!hasAppliedThemeColorBottom)
+ hasAppliedThemeColorBottom = applyThemeColor(mBottomGlowField);
+ }
+
+}
diff --git a/app/src/main/java/com/stardust/theme/ThemeColor.java b/app/src/main/java/com/stardust/theme/ThemeColor.java
new file mode 100644
index 000000000..dac2b1c16
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/ThemeColor.java
@@ -0,0 +1,105 @@
+package com.stardust.theme;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import androidx.annotation.ColorRes;
+import androidx.core.content.ContextCompat;
+
+/**
+ * Created by Stardust on 2017/3/5.
+ */
+
+public class ThemeColor {
+
+ private static final String KEY_COLOR_PRIMARY = "com.stardust.theme.ThemeColor.KEY_COLOR_PRIMARY";
+ private static final String KEY_COLOR_PRIMARY_DARK = "com.stardust.theme.ThemeColor.KEY_COLOR_PRIMARY_DARK";
+ private static final String KEY_COLOR_ACCENT = "com.stardust.theme.ThemeColor.KEY_COLOR_ACCENT";
+
+ private static final ThemeColor TRANSPARENT = new ThemeColor();
+
+ public int colorPrimary, colorAccent, colorPrimaryDark;
+
+ public ThemeColor() {
+ }
+
+
+ public ThemeColor(int color) {
+ this(color, color, color);
+ }
+
+ public ThemeColor(int colorPrimary, int colorAccent) {
+ this(colorPrimary, colorPrimary, colorAccent);
+ }
+
+ public ThemeColor(int colorPrimary, int colorPrimaryDark, int colorAccent) {
+ this.colorAccent = colorAccent;
+ this.colorPrimary = colorPrimary;
+ this.colorPrimaryDark = colorPrimaryDark;
+ }
+
+ public ThemeColor colorPrimary(int colorPrimary) {
+ this.colorPrimary = colorPrimary;
+ return this;
+ }
+
+ public ThemeColor colorPrimaryDark(int colorPrimaryDark) {
+ this.colorPrimaryDark = colorPrimaryDark;
+ return this;
+ }
+
+ public ThemeColor colorAccent(int colorAccent) {
+ this.colorAccent = colorAccent;
+ return this;
+ }
+
+ public void saveIn(SharedPreferences preferences) {
+ preferences.edit()
+ .putInt(KEY_COLOR_PRIMARY, colorPrimary)
+ .putInt(KEY_COLOR_PRIMARY_DARK, colorPrimaryDark)
+ .putInt(KEY_COLOR_ACCENT, colorAccent)
+ .apply();
+
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj instanceof ThemeColor) {
+ ThemeColor color = (ThemeColor) obj;
+ return colorPrimary == color.colorPrimary && colorPrimaryDark == color.colorPrimaryDark
+ && colorAccent == color.colorAccent;
+ }
+ return false;
+ }
+
+ public ThemeColor readFrom(SharedPreferences preferences, ThemeColor defaultThemeColor) {
+ colorPrimary = preferences.getInt(KEY_COLOR_PRIMARY, defaultThemeColor.colorPrimary);
+ colorAccent = preferences.getInt(KEY_COLOR_ACCENT, defaultThemeColor.colorAccent);
+ colorPrimaryDark = preferences.getInt(KEY_COLOR_PRIMARY_DARK, defaultThemeColor.colorPrimaryDark);
+ return this;
+ }
+
+ public static ThemeColor fromPreferences(SharedPreferences preferences, ThemeColor defaultThemeColor) {
+ if (preferences.contains(KEY_COLOR_PRIMARY) && preferences.contains(KEY_COLOR_PRIMARY_DARK) && preferences.contains(KEY_COLOR_ACCENT)) {
+ return new ThemeColor().readFrom(preferences, TRANSPARENT);
+ } else if (defaultThemeColor == null) {
+ return null;
+ } else {
+ return new ThemeColor().readFrom(preferences, defaultThemeColor);
+ }
+ }
+
+ public static ThemeColor fromColorRes(Context context, @ColorRes int colorPrimaryRes) {
+ return fromColorRes(context, colorPrimaryRes, colorPrimaryRes, colorPrimaryRes);
+ }
+
+ public static ThemeColor fromColorRes(Context context, @ColorRes int colorPrimaryRes, @ColorRes int colorPrimaryDarkRes, @ColorRes int colorAccentRes) {
+ return new ThemeColor()
+ .colorPrimary(ContextCompat.getColor(context, colorPrimaryRes))
+ .colorPrimaryDark(ContextCompat.getColor(context, colorPrimaryDarkRes))
+ .colorAccent(ContextCompat.getColor(context, colorAccentRes));
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/stardust/theme/ThemeColorHelper.java b/app/src/main/java/com/stardust/theme/ThemeColorHelper.java
new file mode 100644
index 000000000..5b000c79a
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/ThemeColorHelper.java
@@ -0,0 +1,110 @@
+package com.stardust.theme;
+
+import android.annotation.TargetApi;
+import android.app.Activity;
+import android.content.res.ColorStateList;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
+import android.graphics.drawable.ShapeDrawable;
+import android.os.Build;
+import androidx.core.graphics.drawable.DrawableCompat;
+import androidx.appcompat.widget.SwitchCompat;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.AbsListView;
+import android.widget.Switch;
+
+import com.stardust.theme.internal.ScrollingViewEdgeGlowColorHelper;
+
+
+/**
+ * Created by Stardust on 2016/10/24.
+ */
+
+public class ThemeColorHelper {
+
+ private static final String TAG = "ThemeColorHelper";
+ private static final int[][] SWITCH_STATES = new int[][]{
+ new int[]{-android.R.attr.state_checked},
+ new int[]{android.R.attr.state_checked},
+ };
+
+ private static void setColorPrimary(View v, int themeColor) {
+ if (v instanceof ThemeColorMutable) {
+ ((ThemeColorMutable) v).setThemeColor(new ThemeColor(themeColor));
+ return;
+ }
+ if (v instanceof AbsListView) {
+ ScrollingViewEdgeGlowColorHelper.setEdgeGlowColor((AbsListView) v, themeColor);
+ return;
+ }
+ Log.e(TAG, "Unsupported view: " + v);
+ }
+
+ private static void setColorPrimary(ViewGroup viewGroup, int themeColor) {
+ for (int i = 0; i < viewGroup.getChildCount(); i++) {
+ setColorPrimary(viewGroup.getChildAt(i), themeColor);
+ }
+ }
+
+ public static void setColorPrimary(SwitchCompat switchCompat, int color) {
+ setThumbDrawableTintList(switchCompat.getThumbDrawable(), color);
+ setTrackDrawableTintList(switchCompat.getTrackDrawable(), color);
+ }
+
+ public static void setColorPrimary(Switch sw, int color) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
+ setThumbDrawableTintList(sw.getThumbDrawable(), color);
+ setTrackDrawableTintList(sw.getTrackDrawable(), color);
+ }
+ }
+
+ private static void setThumbDrawableTintList(Drawable drawable, int color) {
+ int[] thumbColors = new int[]{
+ Color.DKGRAY,
+ color,
+ };
+ DrawableCompat.setTintList(DrawableCompat.wrap(drawable), new ColorStateList(SWITCH_STATES, thumbColors));
+
+ }
+
+ private static void setTrackDrawableTintList(Drawable drawable, int color) {
+ int[] trackColors = new int[]{
+ Color.GRAY,
+ makeAlpha(0x66, color)
+ };
+ DrawableCompat.setTintList(DrawableCompat.wrap(drawable), new ColorStateList(SWITCH_STATES, trackColors));
+ }
+
+ private static int makeAlpha(int alpha, int color) {
+ return (color & 0xffffff) | (alpha << 24);
+ }
+
+
+ @TargetApi(21)
+ public static void setStatusBarColor(Activity activity, int color) {
+ if (Build.VERSION.SDK_INT >= 21) {
+ Window window = activity.getWindow();
+ window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+ window.setStatusBarColor(color);
+ }
+ }
+
+ public static void setBackgroundColor(View view, int color) {
+ Drawable background = view.getBackground();
+ if (background instanceof ShapeDrawable) {
+ ((ShapeDrawable) background).getPaint().setColor(color);
+ } else if (background instanceof GradientDrawable) {
+ ((GradientDrawable) background).setColor(color);
+ } else if (background instanceof ColorDrawable) {
+ ((ColorDrawable) background).setColor(color);
+ } else {
+ view.setBackgroundColor(color);
+ }
+ }
+}
diff --git a/app/src/main/java/com/stardust/theme/ThemeColorManager.java b/app/src/main/java/com/stardust/theme/ThemeColorManager.java
new file mode 100644
index 000000000..633b1c3b0
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/ThemeColorManager.java
@@ -0,0 +1,254 @@
+package com.stardust.theme;
+
+import android.annotation.TargetApi;
+import android.app.Activity;
+import android.content.Context;
+import android.graphics.Paint;
+import android.os.Build;
+import android.preference.PreferenceManager;
+import android.view.View;
+
+import java.lang.ref.WeakReference;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Vector;
+
+/**
+ * Created by Stardust on 2016/5/10.
+ */
+
+public class ThemeColorManager {
+
+ private static ThemeColor defaultThemeColor;
+ private static ThemeColor themeColor;
+ private static WeakReference contextWeakReference;
+ private static boolean shouldApplyDefaultThemeColor;
+
+ public static void init(Context context) {
+ init(context, null, false);
+ }
+
+ public static void init(Context context, ThemeColor defaultThemeColor, boolean apply) {
+ contextWeakReference = new WeakReference<>(context);
+ ThemeColorManager.defaultThemeColor = defaultThemeColor;
+ themeColor = ThemeColor.fromPreferences(PreferenceManager.getDefaultSharedPreferences(context), defaultThemeColor);
+ shouldApplyDefaultThemeColor = apply;
+ }
+
+
+ public static void add(ThemeColorMutable colorMutable) {
+ ThemeColorMutableManager.add(colorMutable);
+ }
+
+ public static void addViewBackground(View titleBarView) {
+ BackgroundColorManager.add(titleBarView);
+ }
+
+ public static void addActivityStatusBar(Activity activity) {
+ StatusBarManager.add(activity);
+ }
+
+ public static void addPaint(Paint paint) {
+ PaintManager.add(paint);
+ }
+
+ public static void addActivityNavigationBar(final Activity activity) {
+ if (Build.VERSION.SDK_INT > 19) {
+ ThemeColorWidgetReferenceManager.add(new ThemeColorMutableReference() {
+ WeakReference weakReference = new WeakReference<>(activity);
+
+ @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+ @Override
+ public void setThemeColor(ThemeColor color) {
+ activity.getWindow().setNavigationBarColor(color.colorPrimary);
+ }
+
+ @Override
+ public boolean isNull() {
+ return weakReference.get() == null;
+ }
+ });
+ }
+ }
+
+ public static int getColorPrimary() {
+ if (themeColor == null) {
+ if (defaultThemeColor == null)
+ return 0;
+ else
+ return defaultThemeColor.colorPrimary;
+ }
+ return themeColor.colorPrimary;
+ }
+
+ public static ThemeColor getThemeColor() {
+ return themeColor;
+ }
+
+ public static ThemeColor getDefaultThemeColor() {
+ return defaultThemeColor;
+ }
+
+ public static void setDefaultThemeColor(ThemeColor defaultThemeColor) {
+ ThemeColorManager.defaultThemeColor = defaultThemeColor;
+ }
+
+ public static void setThemeColor(ThemeColor themeColor) {
+ ThemeColorManager.themeColor = themeColor;
+ saveThemeColorIfNeeded();
+ int color = themeColor.colorPrimary;
+ BackgroundColorManager.setColor(color);
+ StatusBarManager.setColor(color);
+ PaintManager.setColor(color);
+ ThemeColorMutableManager.setColor(themeColor);
+ ThemeColorWidgetReferenceManager.setColor(themeColor);
+ }
+
+ /**
+ * 设置主题色并为记录的状态栏和标题栏改变颜色
+ *
+ * @param color 主题色RGB值
+ */
+ public static void setThemeColor(int color) {
+ themeColor = new ThemeColor(color);
+ saveThemeColorIfNeeded();
+ BackgroundColorManager.setColor(color);
+ StatusBarManager.setColor(color);
+ PaintManager.setColor(color);
+ ThemeColorMutableManager.setColor(themeColor);
+ ThemeColorWidgetReferenceManager.setColor(themeColor);
+ }
+
+ private static void saveThemeColorIfNeeded() {
+ if (contextWeakReference != null && contextWeakReference.get() != null) {
+ themeColor.saveIn(PreferenceManager.getDefaultSharedPreferences(contextWeakReference.get()));
+ }
+ }
+
+
+ private static boolean shouldApplyThemeColor() {
+ return themeColor != null && (defaultThemeColor == null || !defaultThemeColor.equals(themeColor) || shouldApplyDefaultThemeColor);
+ }
+
+ private static class BackgroundColorManager {
+ private static List> views = new LinkedList<>();
+
+ public static void add(View view) {
+ views.add(new WeakReference<>(view));
+ if (shouldApplyThemeColor())
+ view.setBackgroundColor(themeColor.colorPrimary);
+ }
+
+
+ public static void setColor(int color) {
+ Iterator> iterator = views.iterator();
+ while (iterator.hasNext()) {
+ View view = iterator.next().get();
+ if (view != null) {
+ view.setBackgroundColor(color);
+ } else {
+ iterator.remove();
+ }
+ }
+ }
+ }
+
+ private static class StatusBarManager {
+ private static Vector> activities = new Vector<>();
+
+ @TargetApi(21)
+ public static void add(Activity activity) {
+ if (Build.VERSION.SDK_INT >= 21) {
+ activities.add(new WeakReference<>(activity));
+ if (shouldApplyThemeColor())
+ activity.getWindow().setStatusBarColor(themeColor.colorPrimary);
+ }
+ }
+
+ @TargetApi(21)
+ public static void setColor(int color) {
+ Iterator> iterator = activities.iterator();
+ while (iterator.hasNext()) {
+ Activity activity = iterator.next().get();
+ if (activity != null) {
+ activity.getWindow().setStatusBarColor(color);
+ } else {
+ iterator.remove();
+ }
+ }
+ }
+ }
+
+ private static class PaintManager {
+ private static List> paints = new LinkedList<>();
+
+ public static void add(Paint paint) {
+ if (shouldApplyThemeColor())
+ paint.setColor(themeColor.colorPrimary);
+ paints.add(new WeakReference<>(paint));
+ }
+
+ public static void setColor(int color) {
+ Iterator> iterator = paints.iterator();
+ while (iterator.hasNext()) {
+ Paint paint = iterator.next().get();
+ if (paint != null) {
+ paint.setColor(color);
+ } else {
+ iterator.remove();
+ }
+ }
+ }
+ }
+
+ private static class ThemeColorWidgetReferenceManager {
+
+ private static List widgets = new LinkedList<>();
+
+ public static void add(ThemeColorMutableReference widget) {
+ if (shouldApplyThemeColor())
+ widget.setThemeColor(themeColor);
+ widgets.add(widget);
+ }
+
+ public static void setColor(ThemeColor color) {
+ Iterator iterator = widgets.iterator();
+ while (iterator.hasNext()) {
+ ThemeColorMutableReference widget = iterator.next();
+ if (!widget.isNull()) {
+ widget.setThemeColor(color);
+ } else {
+ iterator.remove();
+ }
+ }
+ }
+
+ }
+
+ private static class ThemeColorMutableManager {
+
+ private static List> widgets = new LinkedList<>();
+
+ public static void add(ThemeColorMutable widget) {
+ if (shouldApplyThemeColor())
+ widget.setThemeColor(themeColor);
+ widgets.add(new WeakReference<>(widget));
+ }
+
+ public static void setColor(ThemeColor color) {
+ Iterator> iterator = widgets.iterator();
+ while (iterator.hasNext()) {
+ ThemeColorMutable widget = iterator.next().get();
+ if (widget != null) {
+ widget.setThemeColor(color);
+ } else {
+ iterator.remove();
+ }
+ }
+ }
+
+ }
+
+
+}
diff --git a/app/src/main/java/com/stardust/theme/ThemeColorMutable.java b/app/src/main/java/com/stardust/theme/ThemeColorMutable.java
new file mode 100644
index 000000000..8d10ba396
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/ThemeColorMutable.java
@@ -0,0 +1,11 @@
+package com.stardust.theme;
+
+/**
+ * Created by Stardust on 2016/10/24.
+ */
+
+public interface ThemeColorMutable {
+
+ void setThemeColor(ThemeColor color);
+
+}
diff --git a/app/src/main/java/com/stardust/theme/ThemeColorMutableReference.java b/app/src/main/java/com/stardust/theme/ThemeColorMutableReference.java
new file mode 100644
index 000000000..c7016da35
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/ThemeColorMutableReference.java
@@ -0,0 +1,13 @@
+package com.stardust.theme;
+
+/**
+ * Created by Stardust on 2016/10/24.
+ */
+
+public interface ThemeColorMutableReference {
+
+ void setThemeColor(ThemeColor color);
+
+ boolean isNull();
+
+}
diff --git a/app/src/main/java/com/stardust/theme/app/ColorSelectActivity.java b/app/src/main/java/com/stardust/theme/app/ColorSelectActivity.java
new file mode 100644
index 000000000..8a5aab54a
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/app/ColorSelectActivity.java
@@ -0,0 +1,330 @@
+package com.stardust.theme.app;
+
+import android.animation.Animator;
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewAnimationUtils;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.ColorInt;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.ThemeColorRecyclerView;
+
+import com.google.android.material.appbar.AppBarLayout;
+import com.jrummyapps.android.colorpicker.ColorPickerDialog;
+import com.jrummyapps.android.colorpicker.ColorPickerDialogListener;
+import com.stardust.theme.ThemeColor;
+import com.stardust.theme.ThemeColorHelper;
+import com.stardust.theme.ThemeColorManager;
+
+import org.autojs.autojs.R;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+
+/**
+ * Created by Stardust on 2017/3/5.
+ */
+
+public class ColorSelectActivity extends AppCompatActivity {
+
+ public static class ColorItem {
+ String name;
+
+ ThemeColor themeColor;
+
+ public ColorItem(String name, ThemeColor themeColor) {
+ this.name = name;
+ this.themeColor = themeColor;
+ }
+
+ public ColorItem(String name, int color) {
+ this(name, new ThemeColor(color));
+ }
+ }
+
+ public static void startColorSelect(Context context, String title, List items) {
+ colorItems = items;
+ context.startActivity(new Intent(context, ColorSelectActivity.class)
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ .putExtra("title", title));
+ }
+
+ private static List colorItems = new ArrayList<>();
+ private String mTitle;
+
+ private AppBarLayout mAppBarLayout;
+ private int mCurrentColor;
+ private ColorSettingRecyclerView mColorSettingRecyclerView;
+ private final ColorSettingRecyclerView.OnItemClickListener mOnItemClickListener = new ColorSettingRecyclerView.OnItemClickListener() {
+ @Override
+ public void onItemClick(View v, int position) {
+ ThemeColor color = mColorSettingRecyclerView.getSelectedThemeColor();
+ if (color != null) {
+ int colorPrimary = color.colorPrimary;
+ setColorWithAnimation(mAppBarLayout, colorPrimary);
+ }
+
+ }
+ };
+
+ private void setColorWithAnimation(final View view, final int colorTo) {
+ int x = view.getLeft();
+ int y = view.getBottom();
+
+ findViewById(R.id.appBarContainer).setBackgroundColor(mCurrentColor);
+ view.setBackgroundColor(colorTo);
+
+ int startRadius = 0;
+ int endRadius = (int) Math.hypot(view.getWidth(), view.getHeight());
+
+ Animator anim = ViewAnimationUtils.createCircularReveal(view, x, y, startRadius, endRadius);
+ anim.setDuration(500);
+ anim.start();
+ mCurrentColor = colorTo;
+ }
+
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ handleIntent();
+ setUpUI();
+ getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+ }
+
+ private void handleIntent() {
+ mTitle = getIntent().getStringExtra("title");
+ if (mTitle == null) {
+ mTitle = getString(R.string.mt_color_picker_title);
+ }
+ }
+
+ private void setUpUI() {
+ setContentView(R.layout.mt_activity_color_select);
+ mAppBarLayout = findViewById(R.id.appBar);
+ mCurrentColor = ThemeColorManager.getColorPrimary();
+ mAppBarLayout.setBackgroundColor(mCurrentColor);
+ setUpToolbar();
+ setUpColorSettingRecyclerView();
+ }
+
+ private void setUpColorSettingRecyclerView() {
+ mColorSettingRecyclerView = findViewById(R.id.color_setting_recycler_view);
+ mColorSettingRecyclerView.setColors(colorItems);
+ mColorSettingRecyclerView.setSelectedColor(mCurrentColor);
+ mColorSettingRecyclerView.setOnItemClickListener(mOnItemClickListener);
+ }
+
+ private void setUpToolbar() {
+ Toolbar mToolbar = findViewById(R.id.toolbar);
+ mToolbar.setTitle(mTitle);
+ setSupportActionBar(mToolbar);
+ Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
+ mToolbar.setNavigationOnClickListener(v -> finish());
+ }
+
+ @Override
+ public void finish() {
+ ThemeColor color = mColorSettingRecyclerView.getSelectedThemeColor();
+ if (color != null)
+ ThemeColorManager.setThemeColor(color.colorPrimary);
+ super.finish();
+ }
+
+ public static class ColorSettingRecyclerView extends ThemeColorRecyclerView {
+
+ private static final String COLOR_SETTING_CUSTOM_COLOR = ColorSettingRecyclerView.class.getName() + ".COLOR_SETTING_CUSTOM_COLOR";
+
+ interface OnItemClickListener {
+ void onItemClick(View v, int position);
+ }
+
+ private static final int SELECT_NONE = -1;
+
+ private final List mColors = new ArrayList<>();
+ private OnItemClickListener mOnItemClickListener;
+ private final View.OnClickListener mActualOnItemClickListener = new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ RecyclerView.ViewHolder holder = getChildViewHolder(v);
+ if (holder != null) {
+ int position = holder.getBindingAdapterPosition();
+ if (position == mColors.size() - 1) {
+ showColorPicker(v);
+ } else {
+ setSelectedPosition(position);
+ if (mOnItemClickListener != null) {
+ mOnItemClickListener.onItemClick(v, position);
+ }
+ }
+ }
+
+ }
+ };
+
+
+ private int mSelectedPosition = SELECT_NONE;
+
+ public ColorSettingRecyclerView(Context context) {
+ super(context);
+ init();
+ }
+
+ public ColorSettingRecyclerView(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public ColorSettingRecyclerView(Context context, @Nullable AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ init();
+ }
+
+
+ @Nullable
+ public ThemeColor getSelectedThemeColor() {
+ if (mSelectedPosition < 0)
+ return null;
+ return mColors.get(mSelectedPosition).themeColor;
+ }
+
+ public void setSelectedPosition(int selectedPosition) {
+ if (mSelectedPosition != SELECT_NONE) {
+ int oldSelectedPosition = mSelectedPosition;
+ this.mSelectedPosition = selectedPosition;
+ Objects.requireNonNull(getAdapter()).notifyItemChanged(oldSelectedPosition);
+ getAdapter().notifyItemChanged(mSelectedPosition);
+ } else {
+ this.mSelectedPosition = selectedPosition;
+ getAdapter().notifyDataSetChanged();
+ }
+ }
+
+ public void setSelectedColor(int colorPrimary) {
+ int i = 0;
+ for (ColorItem colorItem : mColors) {
+ if (colorItem.themeColor.colorPrimary == colorPrimary) {
+ setSelectedPosition(i);
+ return;
+ }
+ i++;
+ }
+ mSelectedPosition = SELECT_NONE;
+ }
+
+
+ public void setColors(List colors) {
+ mColors.clear();
+ mColors.addAll(colors);
+ mColors.add(new ColorItem(getContext().getString(R.string.mt_custom), getCustomColor()));
+ }
+
+ private int getCustomColor() {
+ return PreferenceManager.getDefaultSharedPreferences(getContext()).getInt(COLOR_SETTING_CUSTOM_COLOR, 0xffffffff);
+ }
+
+ private void showColorPicker(final View v) {
+ ColorPickerDialog dialog = ColorPickerDialog.newBuilder()
+ .setAllowCustom(true)
+ .setAllowPresets(false)
+ .setDialogType(ColorPickerDialog.TYPE_CUSTOM)
+ .setShowAlphaSlider(false)
+ .setDialogTitle(R.string.mt_color_picker_title)
+ .setColor(getCustomColor())
+ .create();
+ dialog.setColorPickerDialogListener(new ColorPickerDialogListener() {
+ @Override
+ public void onColorSelected(int dialogId, @ColorInt int color) {
+ color = 0xff000000 | color;
+ PreferenceManager.getDefaultSharedPreferences(getContext()).edit().putInt(COLOR_SETTING_CUSTOM_COLOR, color).apply();
+ mColors.get(mColors.size() - 1).themeColor.colorPrimary = color;
+ setSelectedPosition(mColors.size() - 1);
+ if (mOnItemClickListener != null) {
+ mOnItemClickListener.onItemClick(v, mColors.size() - 1);
+ }
+ }
+
+ @Override
+ public void onDialogDismissed(int dialogId) {
+
+ }
+ });
+ Activity activity = (Activity) getContext();
+ dialog.show(activity.getFragmentManager(), "Tag");
+ }
+
+
+ private void init() {
+ setAdapter(new Adapter());
+ setLayoutManager(new LinearLayoutManager(getContext()));
+ addItemDecoration(new DividerItemDecoration(getContext(), VERTICAL));
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ mOnItemClickListener = onItemClickListener;
+ }
+
+ private class Adapter extends RecyclerView.Adapter {
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ return new ViewHolder(LayoutInflater.from(getContext()).inflate(R.layout.mt_color_setting_recycler_view_item, parent, false));
+ }
+
+ @Override
+ public void onBindViewHolder(ViewHolder holder, int position) {
+ ColorItem item = mColors.get(position);
+ holder.setColor(item.themeColor.colorPrimary);
+ holder.name.setText(item.name);
+ holder.setChecked(mSelectedPosition == position);
+ }
+
+ @Override
+ public int getItemCount() {
+ return mColors.size();
+ }
+ }
+
+ private class ViewHolder extends RecyclerView.ViewHolder {
+
+ ImageView color;
+ TextView name;
+
+ ViewHolder(View itemView) {
+ super(itemView);
+ itemView.setOnClickListener(mActualOnItemClickListener);
+ color = itemView.findViewById(R.id.color);
+ name = itemView.findViewById(R.id.name);
+ }
+
+ void setChecked(boolean checked) {
+ if (checked) {
+ color.setImageResource(R.drawable.mt_ic_check_white_36dp);
+ } else {
+ color.setImageDrawable(null);
+ }
+ }
+
+ void setColor(int c) {
+ ThemeColorHelper.setBackgroundColor(color, c);
+ }
+
+ }
+ }
+}
diff --git a/app/src/main/java/com/stardust/theme/app/ThemeColorAppCompatActivity.java b/app/src/main/java/com/stardust/theme/app/ThemeColorAppCompatActivity.java
new file mode 100644
index 000000000..0b95a8b9c
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/app/ThemeColorAppCompatActivity.java
@@ -0,0 +1,20 @@
+package com.stardust.theme.app;
+
+import android.os.Bundle;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.stardust.theme.ThemeColorManager;
+
+/**
+ * Created by Stardust on 2017/3/5.
+ */
+
+public class ThemeColorAppCompatActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ ThemeColorManager.addActivityStatusBar(this);
+ }
+}
diff --git a/app/src/main/java/com/stardust/theme/app/ThemeColorMaterialDialog.java b/app/src/main/java/com/stardust/theme/app/ThemeColorMaterialDialog.java
new file mode 100644
index 000000000..604969550
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/app/ThemeColorMaterialDialog.java
@@ -0,0 +1,30 @@
+package com.stardust.theme.app;
+
+/**
+ * Created by Stardust on 2016/8/15.
+ */
+public class ThemeColorMaterialDialog {
+
+ /*
+
+ public static final int DEFAULT_NEGATIVE_COLOR = 0xff7a7a7a;
+ public static final int DEFAULT_NEUTRAL_COLOR = 0xff616161;
+
+ protected ThemeColorMaterialDialog(Builder builder) {
+ super(builder);
+ }
+
+ public static class Builder extends MaterialDialog.Builder {
+
+ public Builder(@NonNull Context context) {
+ super(context);
+ positiveColor(ThemeColorManager.getColorPrimary());
+ negativeColor(DEFAULT_NEGATIVE_COLOR);
+ neutralColor(DEFAULT_NEUTRAL_COLOR);
+ itemsColor(ThemeColorManager.getColorPrimary());
+ linkColor(ThemeColorManager.getColorPrimary());
+ widgetColor(ThemeColorManager.getColorPrimary());
+ }
+ }
+ */
+}
diff --git a/app/src/main/java/com/stardust/theme/internal/DrawableTool.java b/app/src/main/java/com/stardust/theme/internal/DrawableTool.java
new file mode 100644
index 000000000..d01ea2149
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/internal/DrawableTool.java
@@ -0,0 +1,19 @@
+package com.stardust.theme.internal;
+
+import android.graphics.PorterDuff;
+import android.graphics.drawable.Drawable;
+
+/**
+ * Created by Stardust on 2017/2/12.
+ */
+
+public class DrawableTool {
+
+ public static Drawable filterDrawableColor(Drawable drawable, int color) {
+ if (drawable == null || drawable.getConstantState() == null)
+ return null;
+ Drawable res = drawable.getConstantState().newDrawable().mutate();
+ res.setColorFilter(color, PorterDuff.Mode.SRC_IN);
+ return res;
+ }
+}
diff --git a/app/src/main/java/com/stardust/theme/internal/ScrollingViewEdgeGlowColorHelper.java b/app/src/main/java/com/stardust/theme/internal/ScrollingViewEdgeGlowColorHelper.java
new file mode 100644
index 000000000..c474cc1e7
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/internal/ScrollingViewEdgeGlowColorHelper.java
@@ -0,0 +1,90 @@
+package com.stardust.theme.internal;
+
+import android.annotation.TargetApi;
+import android.os.Build;
+import android.widget.AbsListView;
+import android.widget.EdgeEffect;
+import android.widget.ScrollView;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.lang.reflect.Field;
+import java.util.Objects;
+
+/**
+ * Created by Stardust on 2016/8/14.
+ */
+public class ScrollingViewEdgeGlowColorHelper {
+
+ private static final Field SCROLL_VIEW_FIELD_EDGE_GLOW_TOP;
+ private static final Field SCROLL_VIEW_FIELD_EDGE_GLOW_BOTTOM;
+
+ private static final Field ABS_LIST_VIEW_FIELD_EDGE_GLOW_TOP;
+ private static final Field ABS_LIST_VIEW_FIELD_EDGE_GLOW_BOTTOM;
+
+ private static final Field RECYCLER_VIEW_FIELD_EDGE_GLOW_TOP;
+ private static final Field RECYCLER_VIEW_FIELD_EDGE_GLOW_BOTTOM;
+
+ static {
+ Field[] fields = getEdgeGlowField(ScrollView.class);
+ SCROLL_VIEW_FIELD_EDGE_GLOW_TOP = fields[0];
+ SCROLL_VIEW_FIELD_EDGE_GLOW_BOTTOM = fields[1];
+
+ fields = getEdgeGlowField(AbsListView.class);
+ ABS_LIST_VIEW_FIELD_EDGE_GLOW_TOP = fields[0];
+ ABS_LIST_VIEW_FIELD_EDGE_GLOW_BOTTOM = fields[1];
+
+ fields = getEdgeGlowField(RecyclerView.class);
+ RECYCLER_VIEW_FIELD_EDGE_GLOW_TOP = fields[0];
+ RECYCLER_VIEW_FIELD_EDGE_GLOW_BOTTOM = fields[1];
+ }
+
+ @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+ public static void setEdgeGlowColor(AbsListView listView, int color) {
+ try {
+ Objects.requireNonNull((EdgeEffect) ABS_LIST_VIEW_FIELD_EDGE_GLOW_TOP.get(listView)).setColor(color);
+ Objects.requireNonNull((EdgeEffect) ABS_LIST_VIEW_FIELD_EDGE_GLOW_BOTTOM.get(listView)).setColor(color);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+ public static void setEdgeGlowColor(ScrollView scrollView, int color) {
+ try {
+ Objects.requireNonNull((EdgeEffect) SCROLL_VIEW_FIELD_EDGE_GLOW_TOP.get(scrollView)).setColor(color);
+ Objects.requireNonNull((EdgeEffect) SCROLL_VIEW_FIELD_EDGE_GLOW_BOTTOM.get(scrollView)).setColor(color);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+ public static void setEdgeGlowColor(RecyclerView recyclerView, int color) {
+ try {
+ Objects.requireNonNull((EdgeEffect) RECYCLER_VIEW_FIELD_EDGE_GLOW_TOP.get(recyclerView)).setColor(color);
+ Objects.requireNonNull((EdgeEffect) RECYCLER_VIEW_FIELD_EDGE_GLOW_BOTTOM.get(recyclerView)).setColor(color);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ private static Field[] getEdgeGlowField(Class> viewClass) {
+ Field edgeGlowTop = null, edgeGlowBottom = null;
+ for (Field f : viewClass.getDeclaredFields()) {
+ switch (f.getName()) {
+ case "mEdgeGlowTop":
+ f.setAccessible(true);
+ edgeGlowTop = f;
+ break;
+ case "mEdgeGlowBottom":
+ f.setAccessible(true);
+ edgeGlowBottom = f;
+ break;
+ }
+ if (edgeGlowBottom != null && edgeGlowTop != null)
+ break;
+ }
+ return new Field[]{edgeGlowTop, edgeGlowBottom};
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/stardust/theme/preference/Test.java b/app/src/main/java/com/stardust/theme/preference/Test.java
new file mode 100644
index 000000000..1e3f4318b
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/preference/Test.java
@@ -0,0 +1,30 @@
+package com.stardust.theme.preference;
+
+import android.content.Context;
+import android.os.Build;
+import android.preference.SwitchPreference;
+import androidx.annotation.RequiresApi;
+import android.util.AttributeSet;
+
+/**
+ * Created by Stardust on 2017/8/25.
+ */
+
+public class Test extends SwitchPreference {
+ @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
+ public Test(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ public Test(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+ public Test(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public Test(Context context) {
+ super(context);
+ }
+}
diff --git a/app/src/main/java/com/stardust/theme/preference/ThemeColorCheckBoxPreference.java b/app/src/main/java/com/stardust/theme/preference/ThemeColorCheckBoxPreference.java
new file mode 100644
index 000000000..ac5e2652c
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/preference/ThemeColorCheckBoxPreference.java
@@ -0,0 +1,43 @@
+package com.stardust.theme.preference;
+
+import android.content.Context;
+import android.os.Build;
+import android.preference.CheckBoxPreference;
+
+import androidx.annotation.RequiresApi;
+import android.util.AttributeSet;
+
+import org.autojs.autojs.R;
+
+/**
+ * Created by Stardust on 2017/3/5.
+ */
+
+public class ThemeColorCheckBoxPreference extends CheckBoxPreference {
+
+ public ThemeColorCheckBoxPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
+ public ThemeColorCheckBoxPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init();
+ }
+
+ public ThemeColorCheckBoxPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public ThemeColorCheckBoxPreference(Context context) {
+ super(context);
+ init();
+ }
+
+ private void init() {
+ setWidgetLayoutResource(R.layout.mt_theme_color_check_box_preference);
+ }
+
+}
diff --git a/app/src/main/java/com/stardust/theme/preference/ThemeColorPreferenceCategory.java b/app/src/main/java/com/stardust/theme/preference/ThemeColorPreferenceCategory.java
new file mode 100644
index 000000000..f96dc4d5e
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/preference/ThemeColorPreferenceCategory.java
@@ -0,0 +1,71 @@
+package com.stardust.theme.preference;
+
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.graphics.Color;
+import android.os.Build;
+import android.preference.PreferenceCategory;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.stardust.theme.ThemeColor;
+import com.stardust.theme.ThemeColorManager;
+import com.stardust.theme.ThemeColorMutable;
+
+
+/**
+ * Created by Stardust on 2016/8/8.
+ */
+public class ThemeColorPreferenceCategory extends PreferenceCategory implements ThemeColorMutable {
+
+ private TextView mTitleTextView;
+ private int mColor = Color.TRANSPARENT;
+
+ @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+ public ThemeColorPreferenceCategory(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init();
+ }
+
+ public ThemeColorPreferenceCategory(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ public ThemeColorPreferenceCategory(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public ThemeColorPreferenceCategory(Context context) {
+ super(context);
+ init();
+ }
+
+ private void init() {
+ ThemeColorManager.add(this);
+ }
+
+ public void setTitleTextColor(int titleTextColor) {
+ mColor = titleTextColor;
+ if (mTitleTextView != null)
+ mTitleTextView.setTextColor(titleTextColor);
+ }
+
+ public View onCreateView(ViewGroup parent) {
+ View view = super.onCreateView(parent);
+ mTitleTextView = (TextView) view.findViewById(android.R.id.title);
+ if (mColor != Color.TRANSPARENT)
+ mTitleTextView.setTextColor(mColor);
+ return view;
+ }
+
+ @Override
+ public void setThemeColor(ThemeColor color) {
+ mColor = color.colorPrimary;
+ if (mTitleTextView != null)
+ mTitleTextView.setTextColor(mColor);
+ }
+}
diff --git a/app/src/main/java/com/stardust/theme/preference/ThemeColorPreferenceFragment.java b/app/src/main/java/com/stardust/theme/preference/ThemeColorPreferenceFragment.java
new file mode 100644
index 000000000..d7488a8c5
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/preference/ThemeColorPreferenceFragment.java
@@ -0,0 +1,73 @@
+package com.stardust.theme.preference;
+
+import android.annotation.TargetApi;
+import android.os.Build;
+import android.preference.PreferenceFragment;
+import android.widget.ListView;
+
+import com.stardust.theme.ThemeColor;
+import com.stardust.theme.internal.ScrollingViewEdgeGlowColorHelper;
+import com.stardust.theme.ThemeColorManager;
+import com.stardust.theme.ThemeColorMutable;
+
+import java.lang.reflect.Field;
+
+/**
+ * Created by Stardust on 2016/8/14.
+ */
+@TargetApi(Build.VERSION_CODES.HONEYCOMB)
+public class ThemeColorPreferenceFragment extends PreferenceFragment implements ThemeColorMutable {
+
+ private static Field LIST_VIEW;
+ private int mThemeColor;
+ private boolean hasAppliedThemeColor = false;
+
+ static {
+ try {
+ LIST_VIEW = PreferenceFragment.class.getDeclaredField("mList");
+ LIST_VIEW.setAccessible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+
+ private ListView getListView() {
+ try {
+ return (ListView) LIST_VIEW.get(this);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ public void addPreferencesFromResource(int resId) {
+ super.addPreferencesFromResource(resId);
+ ThemeColorManager.add(this);
+ }
+
+ @Override
+ public void setThemeColor(ThemeColor color) {
+ if (mThemeColor == color.colorPrimary)
+ return;
+ mThemeColor = color.colorPrimary;
+ hasAppliedThemeColor = false;
+ }
+
+ private void applyThemeColor() {
+ ListView listView = getListView();
+ if (listView != null) {
+ ScrollingViewEdgeGlowColorHelper.setEdgeGlowColor(listView, mThemeColor);
+ hasAppliedThemeColor = true;
+ }
+ }
+
+
+ public void onResume() {
+ super.onResume();
+ if (!hasAppliedThemeColor) {
+ applyThemeColor();
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/stardust/theme/preference/ThemeColorSwitchPreference.java b/app/src/main/java/com/stardust/theme/preference/ThemeColorSwitchPreference.java
new file mode 100644
index 000000000..7a7218aa4
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/preference/ThemeColorSwitchPreference.java
@@ -0,0 +1,88 @@
+package com.stardust.theme.preference;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Color;
+import android.os.Build;
+import android.preference.SwitchPreference;
+import androidx.annotation.RequiresApi;
+import androidx.appcompat.widget.SwitchCompat;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.Checkable;
+import android.widget.Switch;
+
+import com.stardust.theme.ThemeColor;
+import com.stardust.theme.ThemeColorHelper;
+import com.stardust.theme.ThemeColorManager;
+import com.stardust.theme.ThemeColorMutable;
+
+import java.lang.reflect.Field;
+
+/**
+ * Created by Stardust on 2017/3/5.
+ */
+
+public class ThemeColorSwitchPreference extends SwitchPreference implements ThemeColorMutable {
+
+ private View mCheckableView;
+ private int mColor = Color.TRANSPARENT;
+
+ @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
+ public ThemeColorSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init();
+ }
+
+ public ThemeColorSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ public ThemeColorSwitchPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public ThemeColorSwitchPreference(Context context) {
+ super(context);
+ init();
+ }
+
+ private void init() {
+ ThemeColorManager.add(this);
+ }
+
+ @Override
+ protected void onBindView(View view) {
+ super.onBindView(view);
+ mCheckableView = view.findViewById(Resources.getSystem().getIdentifier("switch_widget", "id", "android"));
+
+ if (mColor != Color.TRANSPARENT) {
+ applyColor();
+ }
+ }
+
+ @Override
+ public void setThemeColor(ThemeColor color) {
+ mColor = color.colorPrimary;
+ if (mCheckableView != null) {
+ applyColor();
+ }
+ }
+
+ public void applyColor() {
+ if (mCheckableView != null && mCheckableView instanceof Checkable) {
+ if (mCheckableView instanceof Switch) {
+ final Switch switchView = (Switch) mCheckableView;
+ ThemeColorHelper.setColorPrimary(switchView, mColor);
+ }
+
+ if (mCheckableView instanceof SwitchCompat) {
+ final SwitchCompat switchView = (SwitchCompat) mCheckableView;
+ ThemeColorHelper.setColorPrimary(switchView, mColor);
+
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/stardust/theme/util/ListBuilder.java b/app/src/main/java/com/stardust/theme/util/ListBuilder.java
new file mode 100644
index 000000000..8cf889793
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/util/ListBuilder.java
@@ -0,0 +1,30 @@
+package com.stardust.theme.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by Stardust on 2017/3/5.
+ */
+
+public class ListBuilder {
+
+ private List mList;
+
+ public ListBuilder() {
+ this(new ArrayList());
+ }
+
+ public ListBuilder(List list) {
+ mList = list;
+ }
+
+ public ListBuilder add(T entry) {
+ mList.add(entry);
+ return this;
+ }
+
+ public List list() {
+ return mList;
+ }
+}
diff --git a/app/src/main/java/com/stardust/theme/widget/ThemeColorFloatingActionButton.java b/app/src/main/java/com/stardust/theme/widget/ThemeColorFloatingActionButton.java
new file mode 100644
index 000000000..c71938aef
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/widget/ThemeColorFloatingActionButton.java
@@ -0,0 +1,41 @@
+package com.stardust.theme.widget;
+
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.util.AttributeSet;
+
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import com.stardust.theme.ThemeColor;
+import com.stardust.theme.ThemeColorManager;
+import com.stardust.theme.ThemeColorMutable;
+
+/**
+ * Created by Stardust on 2016/8/16.
+ */
+public class ThemeColorFloatingActionButton extends FloatingActionButton implements ThemeColorMutable {
+ public ThemeColorFloatingActionButton(Context context) {
+ super(context);
+ init();
+ }
+
+ public ThemeColorFloatingActionButton(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public ThemeColorFloatingActionButton(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ private void init() {
+ ThemeColorManager.add(this);
+ }
+
+ @Override
+ public void setThemeColor(ThemeColor color) {
+ setBackgroundTintList(ColorStateList.valueOf(color.colorAccent));
+ }
+
+
+}
diff --git a/app/src/main/java/com/stardust/theme/widget/ThemeColorHorizontalScrollView.java b/app/src/main/java/com/stardust/theme/widget/ThemeColorHorizontalScrollView.java
new file mode 100644
index 000000000..fc49e2289
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/widget/ThemeColorHorizontalScrollView.java
@@ -0,0 +1,83 @@
+package com.stardust.theme.widget;
+
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.os.Build;
+import android.util.AttributeSet;
+import android.widget.EdgeEffect;
+import android.widget.HorizontalScrollView;
+
+import com.stardust.theme.ThemeColor;
+import com.stardust.theme.ThemeColorManager;
+import com.stardust.theme.ThemeColorMutable;
+
+import java.lang.reflect.Field;
+
+/**
+ * Created by Stardust on 2016/8/14.
+ */
+public class ThemeColorHorizontalScrollView extends HorizontalScrollView implements ThemeColorMutable {
+ private int mFadingEdgeColor;
+ private EdgeEffect mEdgeGlowLeft;
+ private EdgeEffect mEdgeGlowRight;
+
+ public ThemeColorHorizontalScrollView(Context context) {
+ super(context);
+ init();
+ }
+
+ public ThemeColorHorizontalScrollView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public ThemeColorHorizontalScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+ public ThemeColorHorizontalScrollView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init();
+ }
+
+ private void init() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
+ mEdgeGlowLeft = new EdgeEffect(getContext());
+ mEdgeGlowRight = new EdgeEffect(getContext());
+ }
+ ThemeColorManager.add(this);
+ }
+
+ public int getSolidColor() {
+ return mFadingEdgeColor;
+ }
+
+ @Override
+ public void setThemeColor(ThemeColor color) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ mFadingEdgeColor = color.colorPrimary;
+ if (mEdgeGlowLeft != null && mEdgeGlowRight != null) {
+ mEdgeGlowLeft.setColor(color.colorPrimary);
+ mEdgeGlowRight.setColor(color.colorPrimary);
+ syncEdgeEffect();
+ }
+ invalidate();
+ }
+ }
+
+ private void syncEdgeEffect() {
+ try {
+ Field f1 = HorizontalScrollView.class.getDeclaredField("mEdgeGlowLeft");
+ f1.setAccessible(true);
+ f1.set(this, mEdgeGlowLeft);
+
+ Field f2 = HorizontalScrollView.class.getDeclaredField("mEdgeGlowRight");
+ f2.setAccessible(true);
+ f2.set(this, mEdgeGlowRight);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/app/src/main/java/com/stardust/theme/widget/ThemeColorImageView.java b/app/src/main/java/com/stardust/theme/widget/ThemeColorImageView.java
new file mode 100644
index 000000000..ff1e7053f
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/widget/ThemeColorImageView.java
@@ -0,0 +1,62 @@
+package com.stardust.theme.widget;
+
+import android.content.Context;
+import android.graphics.Color;
+
+import androidx.annotation.RequiresApi;
+import androidx.appcompat.widget.AppCompatImageView;
+import androidx.appcompat.widget.AppCompatTextView;
+import android.util.AttributeSet;
+
+import com.stardust.theme.ThemeColor;
+import com.stardust.theme.ThemeColorManager;
+import com.stardust.theme.ThemeColorMutable;
+import com.stardust.theme.internal.DrawableTool;
+
+/**
+ * Created by Stardust on 2017/2/12.
+ */
+
+public class ThemeColorImageView extends AppCompatImageView implements ThemeColorMutable {
+
+ private int mColor = Color.TRANSPARENT;
+
+ public ThemeColorImageView(Context context) {
+ super(context);
+ init();
+ }
+
+ public ThemeColorImageView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public ThemeColorImageView(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ private void init() {
+ ThemeColorManager.add(this);
+ }
+
+ @Override
+ public void setThemeColor(ThemeColor color) {
+ if (mColor == color.colorPrimary)
+ return;
+ mColor = color.colorPrimary;
+ setColor(color.colorPrimary);
+ }
+
+ @Override
+ public void setImageResource(int resId) {
+ super.setImageResource(resId);
+ if (mColor != Color.TRANSPARENT)
+ setColor(mColor);
+ }
+
+ private void setColor(int color) {
+
+ setImageDrawable(DrawableTool.filterDrawableColor(getDrawable(), color));
+ }
+}
diff --git a/app/src/main/java/com/stardust/theme/widget/ThemeColorNavigationView.java b/app/src/main/java/com/stardust/theme/widget/ThemeColorNavigationView.java
new file mode 100644
index 000000000..3836f6798
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/widget/ThemeColorNavigationView.java
@@ -0,0 +1,59 @@
+package com.stardust.theme.widget;
+
+import android.content.Context;
+import android.content.res.ColorStateList;
+
+import android.util.AttributeSet;
+
+import com.google.android.material.navigation.NavigationView;
+import com.stardust.theme.ThemeColor;
+import com.stardust.theme.ThemeColorManager;
+import com.stardust.theme.ThemeColorMutable;
+
+import java.lang.reflect.Field;
+
+/**
+ * Created by Stardust on 2016/8/15.
+ */
+
+public class ThemeColorNavigationView extends NavigationView implements ThemeColorMutable {
+
+ private static final int COLOR_GRAY = 0xff7a7a7a;
+ private static Field PRESENTER_FIELD;
+
+ static {
+ try {
+ PRESENTER_FIELD = NavigationView.class.getDeclaredField("presenter");
+ PRESENTER_FIELD.setAccessible(true);
+ } catch (NoSuchFieldException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public ThemeColorNavigationView(Context context) {
+ super(context);
+ init();
+ }
+
+ public ThemeColorNavigationView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public ThemeColorNavigationView(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ private void init() {
+ ThemeColorManager.add(this);
+ }
+
+ @Override
+ public void setThemeColor(ThemeColor color) {
+ ColorStateList list = new ColorStateList(new int[][]{{android.R.attr.state_checked}, {-android.R.attr.state_checked}}, new int[]{color.colorPrimary, COLOR_GRAY});
+ setItemIconTintList(list);
+ setItemTextColor(list);
+ }
+
+}
diff --git a/app/src/main/java/com/stardust/theme/widget/ThemeColorScrollView.java b/app/src/main/java/com/stardust/theme/widget/ThemeColorScrollView.java
new file mode 100644
index 000000000..a83e033a8
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/widget/ThemeColorScrollView.java
@@ -0,0 +1,57 @@
+package com.stardust.theme.widget;
+
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.os.Build;
+import android.util.AttributeSet;
+import android.widget.ScrollView;
+
+import com.stardust.theme.ThemeColor;
+import com.stardust.theme.ThemeColorMutable;
+import com.stardust.theme.internal.ScrollingViewEdgeGlowColorHelper;
+import com.stardust.theme.ThemeColorManager;
+
+/**
+ * Created by Stardust on 2016/8/14.
+ */
+public class ThemeColorScrollView extends ScrollView implements ThemeColorMutable {
+
+ private int mFadingEdgeColor;
+
+ public ThemeColorScrollView(Context context) {
+ super(context);
+ init();
+ }
+
+ public ThemeColorScrollView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public ThemeColorScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+ public ThemeColorScrollView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init();
+ }
+
+ private void init() {
+ mFadingEdgeColor = super.getSolidColor();
+ ThemeColorManager.add(this);
+ }
+
+ public int getSolidColor() {
+ return mFadingEdgeColor;
+ }
+
+ @Override
+ public void setThemeColor(ThemeColor color) {
+ mFadingEdgeColor = color.colorPrimary;
+ ScrollingViewEdgeGlowColorHelper.setEdgeGlowColor(this, mFadingEdgeColor);
+ invalidate();
+ }
+}
diff --git a/app/src/main/java/com/stardust/theme/widget/ThemeColorSwitch.java b/app/src/main/java/com/stardust/theme/widget/ThemeColorSwitch.java
new file mode 100644
index 000000000..758e37702
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/widget/ThemeColorSwitch.java
@@ -0,0 +1,40 @@
+package com.stardust.theme.widget;
+
+import android.content.Context;
+import androidx.appcompat.widget.SwitchCompat;
+import android.util.AttributeSet;
+
+import com.stardust.theme.ThemeColor;
+import com.stardust.theme.ThemeColorHelper;
+import com.stardust.theme.ThemeColorManager;
+import com.stardust.theme.ThemeColorMutable;
+
+
+/**
+ * Created by Stardust on 2016/8/7.
+ */
+public class ThemeColorSwitch extends SwitchCompat implements ThemeColorMutable {
+ public ThemeColorSwitch(Context context) {
+ super(context);
+ init();
+ }
+
+ public ThemeColorSwitch(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public ThemeColorSwitch(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ private void init() {
+ ThemeColorManager.add(this);
+ }
+
+ @Override
+ public void setThemeColor(ThemeColor color) {
+ ThemeColorHelper.setColorPrimary(this, color.colorPrimary);
+ }
+}
diff --git a/app/src/main/java/com/stardust/theme/widget/ThemeColorTextView.java b/app/src/main/java/com/stardust/theme/widget/ThemeColorTextView.java
new file mode 100644
index 000000000..06b49689f
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/widget/ThemeColorTextView.java
@@ -0,0 +1,43 @@
+package com.stardust.theme.widget;
+
+import android.content.Context;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
+import androidx.appcompat.widget.AppCompatTextView;
+import android.util.AttributeSet;
+
+import com.stardust.theme.ThemeColor;
+import com.stardust.theme.ThemeColorManager;
+import com.stardust.theme.ThemeColorMutable;
+
+/**
+ * Created by Stardust on 2017/3/5.
+ */
+
+public class ThemeColorTextView extends AppCompatTextView implements ThemeColorMutable {
+
+ public ThemeColorTextView(Context context) {
+ super(context);
+ init();
+ }
+
+ public ThemeColorTextView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public ThemeColorTextView(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ private void init() {
+ ThemeColorManager.add(this);
+ }
+
+ @Override
+ public void setThemeColor(ThemeColor color) {
+ setTextColor(color.colorPrimary);
+ }
+}
diff --git a/app/src/main/java/com/stardust/theme/widget/ThemeColorToolbar.java b/app/src/main/java/com/stardust/theme/widget/ThemeColorToolbar.java
new file mode 100644
index 000000000..09b43dabe
--- /dev/null
+++ b/app/src/main/java/com/stardust/theme/widget/ThemeColorToolbar.java
@@ -0,0 +1,43 @@
+package com.stardust.theme.widget;
+
+import android.content.Context;
+import androidx.annotation.Nullable;
+import androidx.appcompat.widget.Toolbar;
+import android.util.AttributeSet;
+
+import com.stardust.theme.ThemeColor;
+import com.stardust.theme.ThemeColorManager;
+import com.stardust.theme.ThemeColorMutable;
+
+/**
+ * Created by Stardust on 2017/3/5.
+ */
+
+public class ThemeColorToolbar extends Toolbar implements ThemeColorMutable {
+
+ public ThemeColorToolbar(Context context) {
+ super(context);
+ init();
+ }
+
+
+ public ThemeColorToolbar(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public ThemeColorToolbar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ private void init() {
+ ThemeColorManager.add(this);
+ }
+
+
+ @Override
+ public void setThemeColor(ThemeColor color) {
+ setBackgroundColor(color.colorPrimary);
+ }
+}
diff --git a/app/src/main/java/org/autojs/autojs/App.kt b/app/src/main/java/org/autojs/autojs/App.kt
index 2dde69f34..c9132dc78 100644
--- a/app/src/main/java/org/autojs/autojs/App.kt
+++ b/app/src/main/java/org/autojs/autojs/App.kt
@@ -1,21 +1,19 @@
package org.autojs.autojs
import android.annotation.SuppressLint
-import android.content.Context
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.drawable.Drawable
import android.net.Uri
-import androidx.multidex.MultiDexApplication
import android.view.View
import android.widget.ImageView
+import androidx.core.content.ContextCompat
import androidx.localbroadcastmanager.content.LocalBroadcastManager
+import androidx.multidex.MultiDexApplication
import com.bumptech.glide.Glide
import com.bumptech.glide.request.target.SimpleTarget
import com.bumptech.glide.request.transition.Transition
-import com.evernote.android.job.JobRequest
import com.flurry.android.FlurryAgent
-import com.squareup.leakcanary.LeakCanary
import com.stardust.app.GlobalAppContext
import com.stardust.autojs.core.ui.inflater.ImageLoader
import com.stardust.autojs.core.ui.inflater.util.Drawables
@@ -54,8 +52,8 @@ class App : MultiDexApplication() {
if (BuildConfig.DEBUG)
return
FlurryAgent.Builder()
- .withLogEnabled(BuildConfig.DEBUG)
- .build(this, "D42MH48ZN4PJC5TKNYZD")
+ .withLogEnabled(BuildConfig.DEBUG)
+ .build(this, "D42MH48ZN4PJC5TKNYZD")
}
private fun setUpDebugEnvironment() {
@@ -69,17 +67,14 @@ class App : MultiDexApplication() {
crashHandler.setBuglyHandler(Thread.getDefaultUncaughtExceptionHandler())
Thread.setDefaultUncaughtExceptionHandler(crashHandler)
- if (LeakCanary.isInAnalyzerProcess(this)) {
- // This process is dedicated to LeakCanary for heap analysis.
- // You should not init your app in this process.
- return
- }
- //LeakCanary.install(this);
-
}
private fun init() {
- ThemeColorManagerCompat.init(this, ThemeColor(resources.getColor(R.color.colorPrimary), resources.getColor(R.color.colorPrimaryDark), resources.getColor(R.color.colorAccent)))
+ ThemeColorManagerCompat.init(ThemeColor(
+ ContextCompat.getColor(this, R.color.colorPrimary),
+ ContextCompat.getColor(this, R.color.colorPrimaryDark),
+ ContextCompat.getColor(this, R.color.colorAccent)
+ ))
AutoJs.initInstance(this)
if (Pref.isRunningVolumeControlEnabled()) {
GlobalKeyObserver.init()
@@ -95,25 +90,27 @@ class App : MultiDexApplication() {
val localActions = ArrayList()
val actions = ArrayList()
TimedTaskManager.getInstance().allIntentTasks
- .filter { task -> task.action != null }
- .doOnComplete {
- if (localActions.isNotEmpty()) {
- dynamicBroadcastReceivers.register(localActions, true)
- }
- if (actions.isNotEmpty()) {
- dynamicBroadcastReceivers.register(actions, false)
- }
- LocalBroadcastManager.getInstance(applicationContext).sendBroadcast(Intent(
- DynamicBroadcastReceivers.ACTION_STARTUP
- ))
+ .filter { task -> task.action != null }
+ .doOnComplete {
+ if (localActions.isNotEmpty()) {
+ dynamicBroadcastReceivers.register(localActions, true)
+ }
+ if (actions.isNotEmpty()) {
+ dynamicBroadcastReceivers.register(actions, false)
+ }
+ LocalBroadcastManager.getInstance(applicationContext).sendBroadcast(
+ Intent(
+ DynamicBroadcastReceivers.ACTION_STARTUP
+ )
+ )
+ }
+ .subscribe({
+ if (it.isLocal) {
+ localActions.add(it.action)
+ } else {
+ actions.add(it.action)
}
- .subscribe({
- if (it.isLocal) {
- localActions.add(it.action)
- } else {
- actions.add(it.action)
- }
- }, { it.printStackTrace() })
+ }, { it.printStackTrace() })
}
@@ -122,18 +119,18 @@ class App : MultiDexApplication() {
Drawables.setDefaultImageLoader(object : ImageLoader {
override fun loadInto(imageView: ImageView, uri: Uri) {
Glide.with(imageView)
- .load(uri)
- .into(imageView)
+ .load(uri)
+ .into(imageView)
}
override fun loadIntoBackground(view: View, uri: Uri) {
Glide.with(view)
- .load(uri)
- .into(object : SimpleTarget() {
- override fun onResourceReady(resource: Drawable, transition: Transition?) {
- view.background = resource
- }
- })
+ .load(uri)
+ .into(object : SimpleTarget() {
+ override fun onResourceReady(resource: Drawable, transition: Transition?) {
+ view.background = resource
+ }
+ })
}
override fun load(view: View, uri: Uri): Drawable {
@@ -142,31 +139,30 @@ class App : MultiDexApplication() {
override fun load(view: View, uri: Uri, drawableCallback: ImageLoader.DrawableCallback) {
Glide.with(view)
- .load(uri)
- .into(object : SimpleTarget() {
- override fun onResourceReady(resource: Drawable, transition: Transition?) {
- drawableCallback.onLoaded(resource)
- }
- })
+ .load(uri)
+ .into(object : SimpleTarget() {
+ override fun onResourceReady(resource: Drawable, transition: Transition?) {
+ drawableCallback.onLoaded(resource)
+ }
+ })
}
override fun load(view: View, uri: Uri, bitmapCallback: ImageLoader.BitmapCallback) {
Glide.with(view)
- .asBitmap()
- .load(uri)
- .into(object : SimpleTarget() {
- override fun onResourceReady(resource: Bitmap, transition: Transition?) {
- bitmapCallback.onLoaded(resource)
- }
- })
+ .asBitmap()
+ .load(uri)
+ .into(object : SimpleTarget() {
+ override fun onResourceReady(resource: Bitmap, transition: Transition?) {
+ bitmapCallback.onLoaded(resource)
+ }
+ })
}
})
}
companion object {
- private val TAG = "App"
- private val BUGLY_APP_ID = "19b3607b53"
+ private const val BUGLY_APP_ID = "19b3607b53"
private lateinit var instance: WeakReference
diff --git a/app/src/main/java/org/autojs/autojs/Pref.java b/app/src/main/java/org/autojs/autojs/Pref.java
index 776db6783..8b68d34a9 100644
--- a/app/src/main/java/org/autojs/autojs/Pref.java
+++ b/app/src/main/java/org/autojs/autojs/Pref.java
@@ -3,17 +3,15 @@
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Environment;
-import android.preference.PreferenceManager;
+import androidx.preference.PreferenceManager;
import com.stardust.app.GlobalAppContext;
import com.stardust.autojs.runtime.accessibility.AccessibilityConfig;
-import com.stardust.theme.ThemeColorManager;
import org.autojs.autojs.autojs.key.GlobalKeyObserver;
-import org.autojs.autojs.theme.ThemeColorManagerCompat;
import java.io.File;
-import java.util.concurrent.TimeUnit;
+import java.util.Objects;
/**
* Created by Stardust on 2017/1/31.
@@ -22,20 +20,16 @@ public class Pref {
private static final SharedPreferences DISPOSABLE_BOOLEAN = GlobalAppContext.get().getSharedPreferences("DISPOSABLE_BOOLEAN", Context.MODE_PRIVATE);
private static final String KEY_SERVER_ADDRESS = "KEY_SERVER_ADDRESS";
- private static final String KEY_SHOULD_SHOW_ANNUNCIATION = "KEY_SHOULD_SHOW_ANNUNCIATION";
private static final String KEY_FLOATING_MENU_SHOWN = "KEY_FLOATING_MENU_SHOWN";
private static final String KEY_EDITOR_THEME = "editor.theme";
private static final String KEY_EDITOR_TEXT_SIZE = "editor.textSize";
- private static SharedPreferences.OnSharedPreferenceChangeListener onSharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
- @Override
- public void onSharedPreferenceChanged(SharedPreferences p, String key) {
- if (key.equals(getString(R.string.key_guard_mode))) {
- AccessibilityConfig.setIsUnintendedGuardEnabled(p.getBoolean(getString(R.string.key_guard_mode), false));
- } else if ((key.equals(getString(R.string.key_use_volume_control_record)) || key.equals(getString(R.string.key_use_volume_control_running)))
- && p.getBoolean(key, false)) {
- GlobalKeyObserver.init();
- }
+ private static final SharedPreferences.OnSharedPreferenceChangeListener onSharedPreferenceChangeListener = (p, key) -> {
+ if (key.equals(getString(R.string.key_guard_mode))) {
+ AccessibilityConfig.setIsUnintendedGuardEnabled(p.getBoolean(getString(R.string.key_guard_mode), false));
+ } else if ((key.equals(getString(R.string.key_use_volume_control_record)) || key.equals(getString(R.string.key_use_volume_control_running)))
+ && p.getBoolean(key, false)) {
+ GlobalKeyObserver.init();
}
};
@@ -60,19 +54,15 @@ public static boolean isNightModeEnabled() {
}
public static boolean isFirstGoToAccessibilitySetting() {
- return getDisposableBoolean("isFirstGoToAccessibilitySetting", true);
- }
-
- public static int oldVersion() {
- return 0;
+ return getDisposableBoolean("isFirstGoToAccessibilitySetting", false);
}
public static boolean isRunningVolumeControlEnabled() {
- return def().getBoolean(getString(R.string.key_use_volume_control_running), false);
+ return def().getBoolean(getString(R.string.key_use_volume_control_running), true);
}
public static boolean shouldEnableAccessibilityServiceByRoot() {
- return def().getBoolean(getString(R.string.key_enable_accessibility_service_by_root), false);
+ return def().getBoolean(getString(R.string.key_enable_accessibility_service_by_root), true);
}
private static String getString(int id) {
@@ -87,10 +77,6 @@ public static boolean isFirstUsing() {
def().registerOnSharedPreferenceChangeListener(onSharedPreferenceChangeListener);
}
- public static boolean isEditActivityFirstUsing() {
- return getDisposableBoolean("Love Honmua 18.7.9", true);
- }
-
public static String getServerAddressOrDefault(String defaultAddress) {
return def().getString(KEY_SERVER_ADDRESS, defaultAddress);
}
@@ -99,30 +85,12 @@ public static void saveServerAddress(String address) {
def().edit().putString(KEY_SERVER_ADDRESS, address).apply();
}
- public static boolean shouldShowAnnunciation() {
- return getDisposableBoolean(KEY_SHOULD_SHOW_ANNUNCIATION, true);
- }
-
- private static boolean isFirstDay() {
- long firstUsingMillis = def().getLong("firstUsingMillis", -1);
- if (firstUsingMillis == -1) {
- def().edit().putLong("firstUsingMillis", System.currentTimeMillis()).apply();
- return true;
- }
- return System.currentTimeMillis() - firstUsingMillis <= TimeUnit.DAYS.toMillis(1);
- }
-
public static boolean isRecordToastEnabled() {
return def().getBoolean(getString(R.string.key_record_toast), true);
}
public static boolean rootRecordGeneratesBinary() {
- return def().getString(getString(R.string.key_root_record_out_file_type), "binary")
- .equals("binary");
- }
-
- public static boolean isObservingKeyEnabled() {
- return def().getBoolean(getString(R.string.key_enable_observe_key), false);
+ return Objects.equals(def().getString(getString(R.string.key_root_record_out_file_type), "binary"), "binary");
}
public static boolean isStableModeEnabled() {
@@ -169,6 +137,6 @@ public static String getScriptDirPath() {
}
public static boolean isForegroundServiceEnabled() {
- return def().getBoolean(getString(R.string.key_foreground_servie), false);
+ return def().getBoolean(getString(R.string.key_foreground_service), false);
}
}
diff --git a/app/src/main/java/org/autojs/autojs/autojs/AutoJs.java b/app/src/main/java/org/autojs/autojs/autojs/AutoJs.java
index c85ed7a91..cb2160e00 100644
--- a/app/src/main/java/org/autojs/autojs/autojs/AutoJs.java
+++ b/app/src/main/java/org/autojs/autojs/autojs/AutoJs.java
@@ -170,11 +170,7 @@ public void waitForAccessibilityServiceEnabled() {
@Override
protected AccessibilityConfig createAccessibilityConfig() {
- AccessibilityConfig config = super.createAccessibilityConfig();
- if (BuildConfig.CHANNEL.equals("coolapk")) {
- config.addWhiteList("com.coolapk.market");
- }
- return config;
+ return super.createAccessibilityConfig();
}
@Override
diff --git a/app/src/main/java/org/autojs/autojs/autojs/api/timing/TimedTasks.kt b/app/src/main/java/org/autojs/autojs/autojs/api/timing/TimedTasks.kt
deleted file mode 100644
index 576714097..000000000
--- a/app/src/main/java/org/autojs/autojs/autojs/api/timing/TimedTasks.kt
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.autojs.autojs.autojs.api.timing
-
-import com.stardust.autojs.execution.ExecutionConfig
-import org.autojs.autojs.timing.TimedTask
-import org.autojs.autojs.timing.TimedTaskManager
-import org.joda.time.LocalDateTime
-import org.joda.time.LocalTime
-
-object TimedTasks {
-
- fun daily(path: String, hour: Int, minute: Int) {
- TimedTaskManager.getInstance().addTask(TimedTask.dailyTask(LocalTime(hour, minute), path, ExecutionConfig()))
- }
-
- fun disposable(path: String, millis: Long) {
- TimedTaskManager.getInstance().addTask(TimedTask.disposableTask(LocalDateTime(millis), path, ExecutionConfig()))
- }
-
- fun weekly(path: String, millis: Long) {
- //TimedTaskManager.getInstance().addTask(TimedTask.weeklyTask(LocalDateTime(millis), path, ExecutionConfig()))
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/org/autojs/autojs/autojs/record/GlobalActionRecorder.java b/app/src/main/java/org/autojs/autojs/autojs/record/GlobalActionRecorder.java
index a0529cdff..c0bb00670 100644
--- a/app/src/main/java/org/autojs/autojs/autojs/record/GlobalActionRecorder.java
+++ b/app/src/main/java/org/autojs/autojs/autojs/record/GlobalActionRecorder.java
@@ -176,7 +176,7 @@ private void showRecordHandleDialog(final String script) {
.newScriptFileForScript(script);
} else {
ClipboardUtil.setClip(mContext, script);
- Toast.makeText(mContext, R.string.text_already_copy_to_clip, Toast.LENGTH_SHORT).show();
+ Toast.makeText(mContext, R.string.text_already_copied_to_clip, Toast.LENGTH_SHORT).show();
}
})
.negativeText(R.string.text_cancel)
diff --git a/app/src/main/java/org/autojs/autojs/build/ApkBuilderPluginHelper.java b/app/src/main/java/org/autojs/autojs/build/ApkBuilderPluginHelper.java
index dc302e5ce..070964f56 100644
--- a/app/src/main/java/org/autojs/autojs/build/ApkBuilderPluginHelper.java
+++ b/app/src/main/java/org/autojs/autojs/build/ApkBuilderPluginHelper.java
@@ -49,10 +49,6 @@ public static int getPluginVersion(Context context) {
return -1;
}
}
-
- public static int getSuitablePluginVersion() {
- return BuildConfig.VERSION_CODE - 200;
- }
}
diff --git a/app/src/main/java/org/autojs/autojs/model/script/Scripts.kt b/app/src/main/java/org/autojs/autojs/model/script/Scripts.kt
index 5a03e150f..b3adba361 100644
--- a/app/src/main/java/org/autojs/autojs/model/script/Scripts.kt
+++ b/app/src/main/java/org/autojs/autojs/model/script/Scripts.kt
@@ -3,18 +3,15 @@ package org.autojs.autojs.model.script
import android.content.Context
import android.content.Intent
import android.net.Uri
-import androidx.annotation.Nullable
import android.widget.Toast
-
+import androidx.annotation.Nullable
import com.stardust.app.GlobalAppContext
import com.stardust.autojs.execution.ExecutionConfig
import com.stardust.autojs.execution.ScriptExecution
-import com.stardust.autojs.execution.ScriptExecutionListener
import com.stardust.autojs.execution.SimpleScriptExecutionListener
import com.stardust.autojs.runtime.exception.ScriptInterruptedException
import com.stardust.autojs.script.ScriptSource
import com.stardust.util.IntentUtil
-
import org.autojs.autojs.Pref
import org.autojs.autojs.R
import org.autojs.autojs.autojs.AutoJs
@@ -23,9 +20,7 @@ import org.autojs.autojs.external.fileprovider.AppFileProvider
import org.autojs.autojs.external.shortcut.Shortcut
import org.autojs.autojs.external.shortcut.ShortcutActivity
import org.autojs.autojs.ui.edit.EditActivity
-
import org.mozilla.javascript.RhinoException
-
import java.io.File
import java.io.FileFilter
@@ -60,14 +55,18 @@ object Scripts {
col = rhinoException.columnNumber()
}
if (ScriptInterruptedException.causedByInterrupted(e)) {
- GlobalAppContext.get().sendBroadcast(Intent(ACTION_ON_EXECUTION_FINISHED)
+ GlobalAppContext.get().sendBroadcast(
+ Intent(ACTION_ON_EXECUTION_FINISHED)
.putExtra(EXTRA_EXCEPTION_LINE_NUMBER, line)
- .putExtra(EXTRA_EXCEPTION_COLUMN_NUMBER, col))
+ .putExtra(EXTRA_EXCEPTION_COLUMN_NUMBER, col)
+ )
} else {
- GlobalAppContext.get().sendBroadcast(Intent(ACTION_ON_EXECUTION_FINISHED)
+ GlobalAppContext.get().sendBroadcast(
+ Intent(ACTION_ON_EXECUTION_FINISHED)
.putExtra(EXTRA_EXCEPTION_MESSAGE, e.message)
.putExtra(EXTRA_EXCEPTION_LINE_NUMBER, line)
- .putExtra(EXTRA_EXCEPTION_COLUMN_NUMBER, col))
+ .putExtra(EXTRA_EXCEPTION_COLUMN_NUMBER, col)
+ )
}
}
@@ -84,10 +83,10 @@ object Scripts {
fun createShortcut(scriptFile: ScriptFile) {
Shortcut(GlobalAppContext.get()).name(scriptFile.simplifiedName)
- .targetClass(ShortcutActivity::class.java)
- .iconRes(R.drawable.ic_node_js_black)
- .extras(Intent().putExtra(ScriptIntents.EXTRA_KEY_PATH, scriptFile.path))
- .send()
+ .targetClass(ShortcutActivity::class.java)
+ .iconRes(R.drawable.ic_node_js_black)
+ .extras(Intent().putExtra(ScriptIntents.EXTRA_KEY_PATH, scriptFile.path))
+ .send()
}
@@ -99,16 +98,16 @@ object Scripts {
edit(context, ScriptFile(path))
}
- fun run(file: ScriptFile): ScriptExecution? {
- return try {
- AutoJs.getInstance().scriptEngineService.execute(file.toSource(),
- ExecutionConfig(workingDirectory = file.parent))
+ fun run(file: ScriptFile) {
+ try {
+ val parent = file.parent
+ if (parent != null) {
+ AutoJs.getInstance().scriptEngineService.execute(file.toSource(), ExecutionConfig(workingDirectory = parent))
+ }
} catch (e: Exception) {
e.printStackTrace()
Toast.makeText(GlobalAppContext.get(), e.message, Toast.LENGTH_LONG).show()
- null
}
-
}
@@ -123,17 +122,30 @@ object Scripts {
}
- fun runWithBroadcastSender(file: File): ScriptExecution {
- return AutoJs.getInstance().scriptEngineService.execute(ScriptFile(file).toSource(), BROADCAST_SENDER_SCRIPT_EXECUTION_LISTENER,
- ExecutionConfig(workingDirectory = file.parent))
+ fun runWithBroadcastSender(file: File): ScriptExecution? {
+ val parent = file.parent
+ return if (parent == null) {
+ parent
+ } else {
+ AutoJs.getInstance().scriptEngineService.execute(
+ ScriptFile(file).toSource(), BROADCAST_SENDER_SCRIPT_EXECUTION_LISTENER,
+ ExecutionConfig(workingDirectory = parent)
+ )
+ }
}
- fun runRepeatedly(scriptFile: ScriptFile, loopTimes: Int, delay: Long, interval: Long): ScriptExecution {
+ fun runRepeatedly(scriptFile: ScriptFile, loopTimes: Int, delay: Long, interval: Long) {
val source = scriptFile.toSource()
val directoryPath = scriptFile.parent
- return AutoJs.getInstance().scriptEngineService.execute(source, ExecutionConfig(workingDirectory = directoryPath,
- delay = delay, loopTimes = loopTimes, interval = interval))
+ if (directoryPath != null) {
+ AutoJs.getInstance().scriptEngineService.execute(
+ source, ExecutionConfig(
+ workingDirectory = directoryPath,
+ delay = delay, loopTimes = loopTimes, interval = interval
+ )
+ )
+ }
}
@Nullable
@@ -150,11 +162,14 @@ object Scripts {
fun send(file: ScriptFile) {
val context = GlobalAppContext.get()
- context.startActivity(Intent.createChooser(Intent(Intent.ACTION_SEND)
- .setType("text/plain")
- .putExtra(Intent.EXTRA_STREAM, IntentUtil.getUriOfFile(context, file.path, AppFileProvider.AUTHORITY)),
+ context.startActivity(
+ Intent.createChooser(
+ Intent(Intent.ACTION_SEND)
+ .setType("text/plain")
+ .putExtra(Intent.EXTRA_STREAM, IntentUtil.getUriOfFile(context, file.path, AppFileProvider.AUTHORITY)),
GlobalAppContext.getString(R.string.text_send)
- ).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
+ ).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ )
}
}
diff --git a/app/src/main/java/org/autojs/autojs/network/UserService.java b/app/src/main/java/org/autojs/autojs/network/UserService.java
index 4886bd684..c2f8bebdc 100644
--- a/app/src/main/java/org/autojs/autojs/network/UserService.java
+++ b/app/src/main/java/org/autojs/autojs/network/UserService.java
@@ -126,7 +126,7 @@ public Observable me() {
public Observable> getNotifications() {
return NodeBB.getInstance().getRetrofit()
.create(UserApi.class)
- .getNotifitions()
+ .getNotifications()
.map(NotificationResponse::getNotifications);
}
diff --git a/app/src/main/java/org/autojs/autojs/network/VersionService.java b/app/src/main/java/org/autojs/autojs/network/VersionService.java
deleted file mode 100644
index b5da35da5..000000000
--- a/app/src/main/java/org/autojs/autojs/network/VersionService.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package org.autojs.autojs.network;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
-import android.widget.Toast;
-
-import com.google.gson.GsonBuilder;
-import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
-import org.autojs.autojs.App;
-import org.autojs.autojs.BuildConfig;
-import org.autojs.autojs.R;
-import org.autojs.autojs.network.api.UpdateCheckApi;
-import org.autojs.autojs.network.entity.VersionInfo;
-import org.autojs.autojs.tool.SimpleObserver;
-import org.autojs.autojs.ui.update.UpdateInfoDialogBuilder;
-import com.stardust.util.NetworkUtils;
-
-import io.reactivex.Observable;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.annotations.NonNull;
-import io.reactivex.schedulers.Schedulers;
-import retrofit2.Retrofit;
-import retrofit2.converter.gson.GsonConverterFactory;
-
-/**
- * Created by Stardust on 2017/9/20.
- */
-
-public class VersionService {
-
- private static final String KEY_DEPRECATED = "KEY_DEPRECATED";
- private static final String KEY_DEPRECATED_VERSION_CODE = "KEY_DEPRECATED_VERSION_CODE";
-
- private static VersionService sInstance = new VersionService();
- private boolean mDeprecated = false;
- private VersionInfo mVersionInfo;
- private SharedPreferences mSharedPreferences;
- private Retrofit mRetrofit;
-
- public VersionService() {
- mRetrofit = new Retrofit.Builder()
- .baseUrl("https://www.autojs.org/")
- .addConverterFactory(GsonConverterFactory.create(new GsonBuilder()
- .setLenient()
- .create()))
- .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
- .build();
- }
-
- public static VersionService getInstance() {
- return sInstance;
- }
-
- public Observable checkForUpdates() {
- return mRetrofit.create(UpdateCheckApi.class)
- .checkForUpdates()
- .subscribeOn(Schedulers.io());
- }
-
-
- private void readDeprecatedFromPref(Context context) {
- mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
- if (mSharedPreferences.getInt(KEY_DEPRECATED_VERSION_CODE, 0) < BuildConfig.VERSION_CODE) {
- mSharedPreferences.edit().remove(KEY_DEPRECATED_VERSION_CODE)
- .putBoolean(KEY_DEPRECATED, false)
- .apply();
- }
- mDeprecated = mSharedPreferences.getBoolean(KEY_DEPRECATED, false);
- }
-
-
- public void readDeprecatedFromPrefIfNeeded(Context context) {
- if (mSharedPreferences == null) {
- readDeprecatedFromPref(context);
- }
- }
-
- public boolean isCurrentVersionDeprecated() {
- return mDeprecated;
- }
-
- public String getCurrentVersionIssues() {
- if (mVersionInfo == null)
- return null;
- VersionInfo.OldVersion oldVersion = mVersionInfo.getOldVersion(BuildConfig.VERSION_CODE);
- if (oldVersion == null)
- return null;
- return oldVersion.issues;
- }
-
- public Observable checkForUpdatesIfNeededAndUsingWifi(Context context) {
- if (mVersionInfo == null) {
- return checkUpdateIfUsingWifi(context);
- }
- return Observable.just(mVersionInfo);
-
- }
-
- private Observable checkUpdateIfUsingWifi(Context context) {
- if (!NetworkUtils.isWifiAvailable(context)) {
- return Observable.empty();
- }
- Observable observable = checkForUpdates();
- observable.subscribe(new SimpleObserver() {
- @Override
- public void onNext(@NonNull VersionInfo versionInfo) {
- if (versionInfo.isValid()) {
- setVersionInfo(versionInfo);
- }
- }
-
- @Override
- public void onError(@NonNull Throwable e) {
- e.printStackTrace();
- }
- });
- return observable;
- }
-
- private void setVersionInfo(VersionInfo result) {
- mDeprecated = BuildConfig.VERSION_CODE <= result.deprecated;
- mVersionInfo = result;
- if (mDeprecated) {
- mSharedPreferences.edit().putBoolean(KEY_DEPRECATED, mDeprecated)
- .putInt(KEY_DEPRECATED_VERSION_CODE, BuildConfig.VERSION_CODE)
- .apply();
- }
- }
-}
diff --git a/app/src/main/java/org/autojs/autojs/network/api/UpdateCheckApi.java b/app/src/main/java/org/autojs/autojs/network/api/UpdateCheckApi.java
deleted file mode 100644
index 8b40352c8..000000000
--- a/app/src/main/java/org/autojs/autojs/network/api/UpdateCheckApi.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.autojs.autojs.network.api;
-
-import org.autojs.autojs.network.entity.VersionInfo;
-
-import io.reactivex.Observable;
-import retrofit2.http.GET;
-import retrofit2.http.Headers;
-
-/**
- * Created by Stardust on 2017/9/20.
- */
-
-public interface UpdateCheckApi {
-
- @GET("/assets/autojs/version.json")
- @Headers("Cache-Control: no-cache")
- Observable checkForUpdates();
-
-}
diff --git a/app/src/main/java/org/autojs/autojs/network/api/UserApi.java b/app/src/main/java/org/autojs/autojs/network/api/UserApi.java
index 6589be967..01f09aa93 100644
--- a/app/src/main/java/org/autojs/autojs/network/api/UserApi.java
+++ b/app/src/main/java/org/autojs/autojs/network/api/UserApi.java
@@ -36,5 +36,5 @@ Observable register(@HeaderMap Map csrfToken, @Fie
Observable logout(@HeaderMap Map csrfToken);
@GET("/api/notifications")
- Observable getNotifitions();
+ Observable getNotifications();
}
diff --git a/app/src/main/java/org/autojs/autojs/pluginclient/JsonWebSocket.java b/app/src/main/java/org/autojs/autojs/pluginclient/JsonWebSocket.java
index f81301da8..111074c8a 100644
--- a/app/src/main/java/org/autojs/autojs/pluginclient/JsonWebSocket.java
+++ b/app/src/main/java/org/autojs/autojs/pluginclient/JsonWebSocket.java
@@ -10,7 +10,7 @@
import java.io.StringReader;
-import javax.annotation.Nullable;
+import androidx.annotation.Nullable;
import io.reactivex.Observable;
import io.reactivex.subjects.PublishSubject;
diff --git a/app/src/main/java/org/autojs/autojs/theme/ThemeColorManagerCompat.java b/app/src/main/java/org/autojs/autojs/theme/ThemeColorManagerCompat.java
index ed75fab31..36dcc50ea 100644
--- a/app/src/main/java/org/autojs/autojs/theme/ThemeColorManagerCompat.java
+++ b/app/src/main/java/org/autojs/autojs/theme/ThemeColorManagerCompat.java
@@ -1,8 +1,10 @@
package org.autojs.autojs.theme;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
+
+import androidx.preference.PreferenceManager;
import androidx.core.content.ContextCompat;
import androidx.appcompat.app.AppCompatDelegate;
@@ -20,9 +22,8 @@
public class ThemeColorManagerCompat {
private static SharedPreferences sSharedPreferences;
- private static Context sContext;
- private static SharedPreferences.OnSharedPreferenceChangeListener sPreferenceChangeListener = (sharedPreferences, key) -> {
- if (key.equals(sContext.getString(R.string.key_night_mode))) {
+ private static final SharedPreferences.OnSharedPreferenceChangeListener sPreferenceChangeListener = (sharedPreferences, key) -> {
+ if (key.equals(GlobalAppContext.get().getString(R.string.key_night_mode))) {
setNightModeEnabled(sharedPreferences.getBoolean(key, false));
}
};
@@ -30,7 +31,7 @@ public class ThemeColorManagerCompat {
public static int getColorPrimary() {
int color = ThemeColorManager.getColorPrimary();
if (color == 0) {
- return GlobalAppContext.get().getResources().getColor(R.color.colorPrimary);
+ return ContextCompat.getColor(GlobalAppContext.get(), R.color.colorPrimary);
} else {
return color;
}
@@ -39,11 +40,11 @@ public static int getColorPrimary() {
public static void setNightModeEnabled(boolean enabled) {
if (enabled) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
- ThemeColor currentTheme = ThemeColor.fromPreferences(PreferenceManager.getDefaultSharedPreferences(sContext), null);
+ ThemeColor currentTheme = ThemeColor.fromPreferences(PreferenceManager.getDefaultSharedPreferences(GlobalAppContext.get()), null);
if (currentTheme != null) {
currentTheme.saveIn(sSharedPreferences);
}
- ThemeColorManager.setThemeColor(ContextCompat.getColor(sContext, R.color.theme_color_black));
+ ThemeColorManager.setThemeColor(ContextCompat.getColor(GlobalAppContext.get(), R.color.theme_color_black));
} else {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
ThemeColor previousTheme = ThemeColor.fromPreferences(sSharedPreferences, null);
@@ -53,11 +54,11 @@ public static void setNightModeEnabled(boolean enabled) {
}
}
- public static void init(Context context, ThemeColor defaultThemeColor) {
- sContext = context;
- sSharedPreferences = context.getSharedPreferences("theme_color", Context.MODE_PRIVATE);
+ public static void init(ThemeColor defaultThemeColor) {
+ Context mContext = GlobalAppContext.get();
+ sSharedPreferences = mContext.getSharedPreferences("theme_color", Context.MODE_PRIVATE);
ThemeColorManager.setDefaultThemeColor(defaultThemeColor);
- ThemeColorManager.init(context);
- PreferenceManager.getDefaultSharedPreferences(context).registerOnSharedPreferenceChangeListener(sPreferenceChangeListener);
+ ThemeColorManager.init(mContext);
+ PreferenceManager.getDefaultSharedPreferences(mContext).registerOnSharedPreferenceChangeListener(sPreferenceChangeListener);
}
-}
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/autojs/autojs/tool/CrashHandler.java b/app/src/main/java/org/autojs/autojs/tool/CrashHandler.java
index f488b7e01..91d5f70bf 100644
--- a/app/src/main/java/org/autojs/autojs/tool/CrashHandler.java
+++ b/app/src/main/java/org/autojs/autojs/tool/CrashHandler.java
@@ -1,9 +1,6 @@
package org.autojs.autojs.tool;
-/**
- * Created by Stardust on 2017/2/2.
- */
-
+/* Created by Stardust on 2017/2/2 */
import android.content.Intent;
import android.os.Build;
diff --git a/app/src/main/java/org/autojs/autojs/tool/IntentTool.java b/app/src/main/java/org/autojs/autojs/tool/IntentTool.java
index bd79622d0..41d40a12e 100644
--- a/app/src/main/java/org/autojs/autojs/tool/IntentTool.java
+++ b/app/src/main/java/org/autojs/autojs/tool/IntentTool.java
@@ -14,7 +14,7 @@ public class IntentTool {
public static void browse(Context context, String url){
if (!IntentUtil.browse(context, url)) {
- Toast.makeText(context, R.string.text_no_brower, Toast.LENGTH_SHORT).show();
+ Toast.makeText(context, R.string.text_no_browser, Toast.LENGTH_SHORT).show();
}
}
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/BaseActivity.java b/app/src/main/java/org/autojs/autojs/ui/BaseActivity.java
index 746f4aff9..a47e41445 100644
--- a/app/src/main/java/org/autojs/autojs/ui/BaseActivity.java
+++ b/app/src/main/java/org/autojs/autojs/ui/BaseActivity.java
@@ -22,11 +22,9 @@
import org.autojs.autojs.R;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import static android.content.pm.PackageManager.PERMISSION_DENIED;
-import static android.content.pm.PackageManager.PERMISSION_GRANTED;
/**
* Created by Stardust on 2017/1/23.
@@ -39,6 +37,8 @@ public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
+ // Dunno how to disable the splash screen. T-T
+ // com.android.server.policy.PhoneWindowManager.SHOW_SPLASH_SCREENS = false;
super.onCreate(savedInstanceState);
}
@@ -75,19 +75,10 @@ protected void onStart() {
return (T) findViewById(resId);
}
- protected boolean checkPermission(String... permissions) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- String[] requestPermissions = getRequestPermissions(permissions);
- if (requestPermissions.length > 0) {
- requestPermissions(requestPermissions, PERMISSION_REQUEST_CODE);
- return false;
- }
- return true;
- } else {
- int[] grantResults = new int[permissions.length];
- Arrays.fill(grantResults, PERMISSION_GRANTED);
- onRequestPermissionsResult(PERMISSION_REQUEST_CODE, permissions, grantResults);
- return false;
+ protected void checkPermission(String... permissions) {
+ String[] requestPermissions = getRequestPermissions(permissions);
+ if (requestPermissions.length > 0) {
+ requestPermissions(requestPermissions, PERMISSION_REQUEST_CODE);
}
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/common/NotAskAgainDialog.java b/app/src/main/java/org/autojs/autojs/ui/common/NotAskAgainDialog.java
index 5c6468583..e02b359c3 100644
--- a/app/src/main/java/org/autojs/autojs/ui/common/NotAskAgainDialog.java
+++ b/app/src/main/java/org/autojs/autojs/ui/common/NotAskAgainDialog.java
@@ -1,7 +1,7 @@
package org.autojs.autojs.ui.common;
import android.content.Context;
-import android.preference.PreferenceManager;
+import androidx.preference.PreferenceManager;
import androidx.annotation.NonNull;
import android.text.TextUtils;
diff --git a/app/src/main/java/org/autojs/autojs/ui/common/ScriptOperations.java b/app/src/main/java/org/autojs/autojs/ui/common/ScriptOperations.java
index 91f44aed8..af98d86b2 100644
--- a/app/src/main/java/org/autojs/autojs/ui/common/ScriptOperations.java
+++ b/app/src/main/java/org/autojs/autojs/ui/common/ScriptOperations.java
@@ -5,17 +5,19 @@
import android.content.Intent;
import android.os.Environment;
import android.os.Looper;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import com.google.android.material.snackbar.Snackbar;
import android.text.Editable;
import android.text.InputType;
+import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;
+import com.google.android.material.snackbar.Snackbar;
import com.stardust.app.DialogUtils;
import com.stardust.app.GlobalAppContext;
import com.stardust.pio.PFiles;
@@ -30,21 +32,21 @@
import org.autojs.autojs.model.explorer.ExplorerFileItem;
import org.autojs.autojs.model.explorer.ExplorerPage;
import org.autojs.autojs.model.explorer.Explorers;
-import org.autojs.autojs.storage.file.TmpScriptFiles;
import org.autojs.autojs.model.sample.SampleFile;
import org.autojs.autojs.model.script.ScriptFile;
import org.autojs.autojs.model.script.Scripts;
import org.autojs.autojs.network.download.DownloadManager;
+import org.autojs.autojs.storage.file.TmpScriptFiles;
+import org.autojs.autojs.theme.dialog.ThemeColorMaterialDialogBuilder;
import org.autojs.autojs.ui.filechooser.FileChooserDialogBuilder;
import org.autojs.autojs.ui.shortcut.ShortcutCreateActivity;
import org.autojs.autojs.ui.timing.TimedTaskSettingActivity_;
-import org.autojs.autojs.theme.dialog.ThemeColorMaterialDialogBuilder;
-
import org.reactivestreams.Publisher;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Objects;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
@@ -62,10 +64,10 @@ public class ScriptOperations {
private static final String LOG_TAG = "ScriptOperations";
private final ExplorerPage mExplorerPage;
- private Context mContext;
- private View mView;
- private ScriptFile mCurrentDirectory;
- private Explorer mExplorer;
+ private final Context mContext;
+ private final View mView;
+ private final ScriptFile mCurrentDirectory;
+ private final Explorer mExplorer;
public ScriptOperations(Context context, View view, ScriptFile currentDirectory) {
mContext = context;
@@ -243,7 +245,7 @@ private Observable showNameInputDialog(String prefix, MaterialDialog.Inp
.alwaysCallInputCallback()
.input(getString(R.string.text_please_input_name), prefix, false, textWatcher)
.onPositive((dialog, which) -> {
- input.onNext(dialog.getInputEditText().getText().toString());
+ input.onNext(Objects.requireNonNull(dialog.getInputEditText()).getText().toString());
input.onComplete();
})
.build());
@@ -291,11 +293,9 @@ public void createShortcut(ScriptFile file) {
public void delete(final ScriptFile scriptFile) {
DialogUtils.showDialog(new ThemeColorMaterialDialogBuilder(mContext)
.title(mContext.getString(R.string.text_are_you_sure_to_delete, scriptFile.getName()))
- .positiveText(R.string.cancel)
- .negativeText(R.string.ok)
- .onNegative((dialog, which) -> {
- deleteWithoutConfirm(scriptFile);
- })
+ .negativeText(R.string.cancel)
+ .positiveText(R.string.ok)
+ .onPositive((dialog, which) -> deleteWithoutConfirm(scriptFile))
.build());
}
@@ -307,9 +307,12 @@ public void deleteWithoutConfirm(final ScriptFile scriptFile) {
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(deleted -> {
- showMessage(deleted ? R.string.text_already_delete : R.string.text_delete_failed);
- if (deleted)
+ if (deleted) {
+ showMessage(R.string.text_already_delete);
notifyFileRemoved(isDir, scriptFile);
+ } else {
+ showMessage(R.string.text_delete_failed);
+ }
});
}
@@ -338,7 +341,9 @@ public Observable download(String url) {
return RxDialogs.confirm(mContext, R.string.confirm_overwrite_file)
.flatMap(yes -> {
if (yes) {
- new File(savePath).delete();
+ if (!new File(savePath).delete()) {
+ Log.e(LOG_TAG, "download: delete failed");
+ }
return Observable.just(savePath);
} else {
return Observable.empty();
@@ -375,9 +380,9 @@ public void timedTask(ScriptFile scriptFile) {
private class InputCallback implements MaterialDialog.InputCallback {
- private String mExcluded;
+ private final String mExcluded;
private boolean mIsFirstTextChanged = true;
- private String mExtension;
+ private final String mExtension;
InputCallback(@Nullable String ext, String excluded) {
mExtension = ext == null ? null : "." + ext;
diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/EditorMenu.java b/app/src/main/java/org/autojs/autojs/ui/edit/EditorMenu.java
index cf7243525..7870e78eb 100644
--- a/app/src/main/java/org/autojs/autojs/ui/edit/EditorMenu.java
+++ b/app/src/main/java/org/autojs/autojs/ui/edit/EditorMenu.java
@@ -2,7 +2,9 @@
import android.annotation.SuppressLint;
import android.content.Context;
+
import com.google.android.material.snackbar.Snackbar;
+
import android.text.InputType;
import android.text.TextUtils;
import android.view.MenuItem;
@@ -173,7 +175,7 @@ private void showClassSearchingItem(MaterialDialog dialog, ClassSearchingItem it
.neutralText(R.string.text_view_docs)
.onPositive((ignored, which) -> {
ClipboardUtil.setClip(mContext, desc);
- Toast.makeText(mContext, R.string.text_already_copy_to_clip, Toast.LENGTH_SHORT).show();
+ Toast.makeText(mContext, R.string.text_already_copied_to_clip, Toast.LENGTH_SHORT).show();
dialog.dismiss();
})
.onNegative((ignored, which) -> {
@@ -287,7 +289,7 @@ private void findOrReplace() {
private void copyAll() {
ClipboardUtil.setClip(mContext, mEditor.getText());
- Snackbar.make(mEditorView, R.string.text_already_copy_to_clip, Snackbar.LENGTH_SHORT).show();
+ Snackbar.make(mEditorView, R.string.text_already_copied_to_clip, Snackbar.LENGTH_SHORT).show();
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/EditorView.java b/app/src/main/java/org/autojs/autojs/ui/edit/EditorView.java
index 00ac8df38..6b4c9d780 100644
--- a/app/src/main/java/org/autojs/autojs/ui/edit/EditorView.java
+++ b/app/src/main/java/org/autojs/autojs/ui/edit/EditorView.java
@@ -23,6 +23,7 @@
import android.text.TextUtils;
import android.util.AttributeSet;
+import android.util.Log;
import android.util.SparseBooleanArray;
import android.view.Gravity;
import android.view.View;
@@ -90,6 +91,8 @@
@EViewGroup(R.layout.editor_view)
public class EditorView extends FrameLayout implements CodeCompletionBar.OnHintClickListener, FunctionsKeyboardView.ClickCallback, ToolbarFragment.OnMenuItemClickListener {
+ private static final String TAG = EditorView.class.getSimpleName();
+
public static final String EXTRA_PATH = "path";
public static final String EXTRA_NAME = "name";
public static final String EXTRA_CONTENT = "content";
@@ -408,6 +411,7 @@ public ScriptExecution run(boolean showMessage) {
Snackbar.make(this, R.string.text_start_running, Snackbar.LENGTH_SHORT).show();
}
// TODO: 2018/10/24
+ @Nullable
ScriptExecution execution = Scripts.INSTANCE.runWithBroadcastSender(new File(mUri.getPath()));
if (execution == null) {
return null;
@@ -428,7 +432,8 @@ public void redo() {
public Observable save() {
String path = mUri.getPath();
- PFiles.move(path, path + ".bak");
+ String backPath = path + ".bak";
+ PFiles.move(path, backPath);
return Observable.just(mEditor.getText())
.observeOn(Schedulers.io())
.doOnNext(s -> PFiles.write(getContext().getContentResolver().openOutputStream(mUri), s))
@@ -436,6 +441,11 @@ public Observable save() {
.doOnNext(s -> {
mEditor.markTextAsSaved();
setMenuItemStatus(R.id.save, false);
+ })
+ .doOnNext(s -> {
+ if (!new File(backPath).delete()) {
+ Log.e(TAG, "save: failed");
+ }
});
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/FindOrReplaceDialogBuilder.java b/app/src/main/java/org/autojs/autojs/ui/edit/FindOrReplaceDialogBuilder.java
index 632d0b6fb..e54b6b003 100644
--- a/app/src/main/java/org/autojs/autojs/ui/edit/FindOrReplaceDialogBuilder.java
+++ b/app/src/main/java/org/autojs/autojs/ui/edit/FindOrReplaceDialogBuilder.java
@@ -1,7 +1,7 @@
package org.autojs.autojs.ui.edit;
import android.content.Context;
-import android.preference.PreferenceManager;
+import androidx.preference.PreferenceManager;
import androidx.annotation.NonNull;
import android.text.TextUtils;
import android.view.View;
diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/debug/CodeEvaluateDialogBuilder.java b/app/src/main/java/org/autojs/autojs/ui/edit/debug/CodeEvaluateDialogBuilder.java
index 7da4da6b0..ced1b69e3 100644
--- a/app/src/main/java/org/autojs/autojs/ui/edit/debug/CodeEvaluateDialogBuilder.java
+++ b/app/src/main/java/org/autojs/autojs/ui/edit/debug/CodeEvaluateDialogBuilder.java
@@ -2,7 +2,7 @@
import android.content.Context;
import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
+import androidx.preference.PreferenceManager;
import androidx.annotation.NonNull;
import android.text.Editable;
import android.text.TextUtils;
diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/editor/CodeEditor.java b/app/src/main/java/org/autojs/autojs/ui/edit/editor/CodeEditor.java
index 1d56fa3b3..c8a4b8bc2 100644
--- a/app/src/main/java/org/autojs/autojs/ui/edit/editor/CodeEditor.java
+++ b/app/src/main/java/org/autojs/autojs/ui/edit/editor/CodeEditor.java
@@ -100,7 +100,7 @@ public void copyLine() {
CharSequence lineText = mCodeEditText.getText().subSequence(mCodeEditText.getLayout().getLineStart(line),
mCodeEditText.getLayout().getLineEnd(line));
ClipboardUtil.setClip(getContext(), lineText);
- Snackbar.make(this, R.string.text_already_copy_to_clip, Snackbar.LENGTH_SHORT).show();
+ Snackbar.make(this, R.string.text_already_copied_to_clip, Snackbar.LENGTH_SHORT).show();
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/error/ErrorReportActivity.java b/app/src/main/java/org/autojs/autojs/ui/error/ErrorReportActivity.java
index 829ec8008..df4917d15 100644
--- a/app/src/main/java/org/autojs/autojs/ui/error/ErrorReportActivity.java
+++ b/app/src/main/java/org/autojs/autojs/ui/error/ErrorReportActivity.java
@@ -4,20 +4,17 @@
import android.content.ClipboardManager;
import android.os.Build;
import android.os.Bundle;
-import android.preference.PreferenceManager;
-import androidx.annotation.NonNull;
-import androidx.appcompat.widget.Toolbar;
import android.util.Log;
import android.util.SparseIntArray;
import android.widget.Toast;
-import com.afollestad.materialdialogs.DialogAction;
-import com.afollestad.materialdialogs.MaterialDialog;
+import androidx.appcompat.widget.Toolbar;
+import androidx.preference.PreferenceManager;
import org.autojs.autojs.BuildConfig;
-import org.autojs.autojs.ui.BaseActivity;
-import org.autojs.autojs.theme.dialog.ThemeColorMaterialDialogBuilder;
import org.autojs.autojs.R;
+import org.autojs.autojs.theme.dialog.ThemeColorMaterialDialogBuilder;
+import org.autojs.autojs.ui.BaseActivity;
import java.util.Locale;
import java.util.Timer;
@@ -105,7 +102,7 @@ public void run() {
private void copyToClip(String text) {
((ClipboardManager) getSystemService(CLIPBOARD_SERVICE))
.setPrimaryClip(ClipData.newPlainText("Debug", text));
- Toast.makeText(ErrorReportActivity.this, R.string.text_already_copy_to_clip, Toast.LENGTH_SHORT).show();
+ Toast.makeText(ErrorReportActivity.this, R.string.text_already_copied_to_clip, Toast.LENGTH_SHORT).show();
}
private void setUpUI() {
diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/CircularMenu.java b/app/src/main/java/org/autojs/autojs/ui/floating/CircularMenu.java
index e79e9e986..4139e9369 100644
--- a/app/src/main/java/org/autojs/autojs/ui/floating/CircularMenu.java
+++ b/app/src/main/java/org/autojs/autojs/ui/floating/CircularMenu.java
@@ -301,7 +301,7 @@ void copyPackageName() {
if (TextUtils.isEmpty(mRunningPackage))
return;
ClipboardUtil.setClip(mContext, mRunningPackage);
- Toast.makeText(mContext, R.string.text_already_copy_to_clip, Toast.LENGTH_SHORT).show();
+ Toast.makeText(mContext, R.string.text_already_copied_to_clip, Toast.LENGTH_SHORT).show();
}
@Optional
@@ -311,7 +311,7 @@ void copyActivityName() {
if (TextUtils.isEmpty(mRunningActivity))
return;
ClipboardUtil.setClip(mContext, mRunningActivity);
- Toast.makeText(mContext, R.string.text_already_copy_to_clip, Toast.LENGTH_SHORT).show();
+ Toast.makeText(mContext, R.string.text_already_copied_to_clip, Toast.LENGTH_SHORT).show();
}
@Optional
diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/CircularMenuWindow.java b/app/src/main/java/org/autojs/autojs/ui/floating/CircularMenuWindow.java
index 9dc426528..541584f0a 100644
--- a/app/src/main/java/org/autojs/autojs/ui/floating/CircularMenuWindow.java
+++ b/app/src/main/java/org/autojs/autojs/ui/floating/CircularMenuWindow.java
@@ -2,7 +2,7 @@
import android.content.Context;
import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
+import androidx.preference.PreferenceManager;
import android.view.Gravity;
import android.view.OrientationEventListener;
import android.view.View;
diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutBoundsFloatyWindow.java b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutBoundsFloatyWindow.java
index c0d36ee45..ac767c35e 100644
--- a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutBoundsFloatyWindow.java
+++ b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutBoundsFloatyWindow.java
@@ -97,7 +97,7 @@ private void ensureOperationPopMenu() {
if (mBubblePopMenu != null)
return;
mBubblePopMenu = new BubblePopupMenu(mContext, Arrays.asList(
- mContext.getString(R.string.text_show_widget_infomation),
+ mContext.getString(R.string.text_show_widget_information),
mContext.getString(R.string.text_show_layout_hierarchy),
mContext.getString(R.string.text_generate_code)));
mBubblePopMenu.setOnItemClickListener((view, position) -> {
diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutHierarchyFloatyWindow.java b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutHierarchyFloatyWindow.java
index 54fc4be27..6992fffa8 100644
--- a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutHierarchyFloatyWindow.java
+++ b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutHierarchyFloatyWindow.java
@@ -79,7 +79,7 @@ private void ensureOperationPopMenu() {
if (mBubblePopMenu != null)
return;
mBubblePopMenu = new BubblePopupMenu(mContext, Arrays.asList(
- mContext.getString(R.string.text_show_widget_infomation),
+ mContext.getString(R.string.text_show_widget_information),
mContext.getString(R.string.text_show_layout_bounds),
mContext.getString(R.string.text_generate_code)));
mBubblePopMenu.setOnItemClickListener((view, position) -> {
diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/NodeInfoView.kt b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/NodeInfoView.kt
index 54835071d..385beed5b 100644
--- a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/NodeInfoView.kt
+++ b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/NodeInfoView.kt
@@ -74,7 +74,6 @@ class NodeInfoView : RecyclerView {
internal val VIEW_TYPE_HEADER = 0
internal val VIEW_TYPE_ITEM = 1
-
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val layoutRes = if (viewType == VIEW_TYPE_HEADER) R.layout.node_info_view_header else R.layout.node_info_view_item
return ViewHolder(LayoutInflater.from(parent.context).inflate(layoutRes, parent, false))
@@ -96,9 +95,7 @@ class NodeInfoView : RecyclerView {
internal inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- @BindView(R.id.name)
- val attrName: TextView = itemView.findViewById(R.id.name)
-
+ val attrName: TextView = itemView.findViewById(R.id.name);
val attrValue: TextView = itemView.findViewById(R.id.value)
init {
@@ -107,7 +104,7 @@ class NodeInfoView : RecyclerView {
if (pos < 1 || pos >= mData.size)
return@setOnClickListener
ClipboardUtil.setClip(context, mData[pos][0] + " = " + mData[pos][1])
- Snackbar.make(this@NodeInfoView, R.string.text_already_copy_to_clip, Snackbar.LENGTH_SHORT).show()
+ Snackbar.make(this@NodeInfoView, R.string.text_already_copied_to_clip, Snackbar.LENGTH_SHORT).show()
}
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/main/MainActivity.java b/app/src/main/java/org/autojs/autojs/ui/main/MainActivity.java
index f2e38e2c4..d3c786c78 100644
--- a/app/src/main/java/org/autojs/autojs/ui/main/MainActivity.java
+++ b/app/src/main/java/org/autojs/autojs/ui/main/MainActivity.java
@@ -1,26 +1,27 @@
package org.autojs.autojs.ui.main;
import android.Manifest;
+import android.annotation.SuppressLint;
+import android.content.ComponentName;
+import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
+import android.view.Gravity;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
import androidx.annotation.NonNull;
-
-import com.google.android.material.floatingactionbutton.FloatingActionButton;
-
-import androidx.core.view.GravityCompat;
-import androidx.fragment.app.Fragment;
-import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.widget.Toolbar;
+import androidx.core.content.ContextCompat;
+import androidx.drawerlayout.widget.DrawerLayout;
+import androidx.fragment.app.Fragment;
+import androidx.preference.PreferenceManager;
import androidx.viewpager.widget.ViewPager;
-import android.view.Gravity;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.tabs.TabLayout;
import com.stardust.app.FragmentPagerAdapterBuilder;
import com.stardust.app.OnActivityResultDelegate;
@@ -28,7 +29,7 @@
import com.stardust.autojs.core.permission.PermissionRequestProxyActivity;
import com.stardust.autojs.core.permission.RequestPermissionCallbacks;
import com.stardust.enhancedfloaty.FloatyService;
-import com.stardust.pio.PFiles;
+import com.stardust.theme.ThemeColor;
import com.stardust.theme.ThemeColorManager;
import com.stardust.util.BackPressedHandler;
import com.stardust.util.DeveloperUtils;
@@ -39,40 +40,31 @@
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.ViewById;
import org.autojs.autojs.BuildConfig;
-import org.autojs.autojs.Pref;
import org.autojs.autojs.R;
import org.autojs.autojs.autojs.AutoJs;
import org.autojs.autojs.external.foreground.ForegroundService;
import org.autojs.autojs.model.explorer.Explorers;
-import org.autojs.autojs.tool.AccessibilityServiceTool;
import org.autojs.autojs.ui.BaseActivity;
-import org.autojs.autojs.ui.common.NotAskAgainDialog;
import org.autojs.autojs.ui.doc.DocsFragment_;
import org.autojs.autojs.ui.floating.FloatyWindowManger;
import org.autojs.autojs.ui.log.LogActivity_;
-import org.autojs.autojs.ui.main.community.CommunityFragment;
-import org.autojs.autojs.ui.main.community.CommunityFragment_;
-import org.autojs.autojs.ui.main.market.MarketFragment;
import org.autojs.autojs.ui.main.scripts.MyScriptListFragment_;
import org.autojs.autojs.ui.main.task.TaskManagerFragment_;
import org.autojs.autojs.ui.settings.SettingsActivity_;
-import org.autojs.autojs.ui.update.VersionGuard;
-import org.autojs.autojs.ui.widget.CommonMarkdownView;
import org.autojs.autojs.ui.widget.SearchViewItem;
import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
import java.util.Arrays;
+@SuppressLint("NonConstantResourceId")
@EActivity(R.layout.activity_main)
public class MainActivity extends BaseActivity implements OnActivityResultDelegate.DelegateHost, BackPressedHandler.HostActivity, PermissionRequestProxyActivity {
public static class DrawerOpenEvent {
+ @SuppressWarnings("InstantiationOfUtilityClass")
static DrawerOpenEvent SINGLETON = new DrawerOpenEvent();
}
- private static final String LOG_TAG = "MainActivity";
-
@ViewById(R.id.drawer_layout)
DrawerLayout mDrawerLayout;
@@ -83,10 +75,9 @@ public static class DrawerOpenEvent {
FloatingActionButton mFab;
private FragmentPagerAdapterBuilder.StoredFragmentPagerAdapter mPagerAdapter;
- private OnActivityResultDelegate.Mediator mActivityResultMediator = new OnActivityResultDelegate.Mediator();
- private RequestPermissionCallbacks mRequestPermissionCallbacks = new RequestPermissionCallbacks();
- private VersionGuard mVersionGuard;
- private BackPressedHandler.Observer mBackPressObserver = new BackPressedHandler.Observer();
+ private final OnActivityResultDelegate.Mediator mActivityResultMediator = new OnActivityResultDelegate.Mediator();
+ private final RequestPermissionCallbacks mRequestPermissionCallbacks = new RequestPermissionCallbacks();
+ private final BackPressedHandler.Observer mBackPressObserver = new BackPressedHandler.Observer();
private SearchViewItem mSearchViewItem;
private MenuItem mLogMenuItem;
private boolean mDocsSearchItemExpanded;
@@ -96,19 +87,26 @@ public static class DrawerOpenEvent {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
checkPermissions();
- showAccessibilitySettingPromptIfDisabled();
- mVersionGuard = new VersionGuard(this);
- showAnnunciationIfNeeded();
- EventBus.getDefault().register(this);
+ applyThemeColor();
applyDayNightMode();
}
+ void applyThemeColor() {
+ if (ThemeColor.fromPreferences(PreferenceManager.getDefaultSharedPreferences(this), null) == null) {
+ ThemeColor defaultThemeColor = new ThemeColor(
+ ContextCompat.getColor(this, R.color.colorPrimary),
+ ContextCompat.getColor(this, R.color.colorPrimaryDark),
+ ContextCompat.getColor(this, R.color.colorAccent)
+ );
+ ThemeColorManager.setThemeColor(defaultThemeColor);
+ }
+ }
+
@AfterViews
void setUpViews() {
setUpToolbar();
setUpTabViewPager();
- getWindow().getDecorView().setSystemUiVisibility(
- View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+ getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
registerBackPressHandlers();
ThemeColorManager.addViewBackground(findViewById(R.id.app_bar));
mDrawerLayout.addDrawerListener(new DrawerLayout.SimpleDrawerListener() {
@@ -119,20 +117,6 @@ public void onDrawerOpened(View drawerView) {
});
}
- private void showAnnunciationIfNeeded() {
- if (!Pref.shouldShowAnnunciation()) {
- return;
- }
- new CommonMarkdownView.DialogBuilder(this)
- .padding(36, 0, 36, 0)
- .markdown(PFiles.read(getResources().openRawResource(R.raw.annunciation)))
- .title(R.string.text_annunciation)
- .positiveText(R.string.ok)
- .canceledOnTouchOutside(false)
- .show();
- }
-
-
private void registerBackPressHandlers() {
mBackPressObserver.registerHandler(new DrawerAutoClose(mDrawerLayout, Gravity.START));
mBackPressObserver.registerHandler(new BackPressedHandler.DoublePressExit(this, R.string.text_press_again_to_exit));
@@ -142,20 +126,6 @@ private void checkPermissions() {
checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
- private void showAccessibilitySettingPromptIfDisabled() {
- if (AccessibilityServiceTool.isAccessibilityServiceEnabled(this)) {
- return;
- }
- new NotAskAgainDialog.Builder(this, "MainActivity.accessibility")
- .title(R.string.text_need_to_enable_accessibility_service)
- .content(R.string.explain_accessibility_permission)
- .positiveText(R.string.text_go_to_setting)
- .negativeText(R.string.text_cancel)
- .onPositive((dialog, which) ->
- AccessibilityServiceTool.enableAccessibilityService()
- ).show();
- }
-
private void setUpToolbar() {
Toolbar toolbar = $(R.id.toolbar);
setSupportActionBar(toolbar);
@@ -170,10 +140,8 @@ private void setUpTabViewPager() {
TabLayout tabLayout = $(R.id.tab);
mPagerAdapter = new FragmentPagerAdapterBuilder(this)
.add(new MyScriptListFragment_(), R.string.text_file)
- .add(new DocsFragment_(), R.string.text_tutorial)
- .add(new CommunityFragment_(), R.string.text_community)
- .add(new MarketFragment(), R.string.text_market)
- .add(new TaskManagerFragment_(), R.string.text_manage)
+ .add(new DocsFragment_(), R.string.text_documentation)
+ .add(new TaskManagerFragment_(), R.string.text_task)
.build();
mViewPager.setAdapter(mPagerAdapter);
tabLayout.setupWithViewPager(mViewPager);
@@ -206,17 +174,32 @@ public void onPageSelected(int position) {
@Click(R.id.setting)
- void startSettingActivity() {
- startActivity(new Intent(this, SettingsActivity_.class));
+ public void startSettingActivity(View view) {
+ startActivity(new Intent(view.getContext(), SettingsActivity_.class));
}
@Click(R.id.exit)
- public void exitCompletely() {
- finish();
+ public void exitCompletely(View view) {
FloatyWindowManger.hideCircularMenu();
ForegroundService.stop(this);
- stopService(new Intent(this, FloatyService.class));
+ stopService(new Intent(view.getContext(), FloatyService.class));
AutoJs.getInstance().getScriptEngineService().stopAll();
+ finish();
+ Runtime.getRuntime().exit(0);
+ }
+
+ @Click(R.id.restart)
+ public void restartAfterPendingIntent(View view) {
+ Context context = view.getContext();
+ PackageManager packageManager = context.getPackageManager();
+ Intent intent = packageManager.getLaunchIntentForPackage(context.getPackageName());
+ ComponentName componentName = null;
+ if (intent != null) {
+ componentName = intent.getComponent();
+ }
+ Intent mainIntent = Intent.makeRestartActivityTask(componentName);
+ context.startActivity(mainIntent);
+ Runtime.getRuntime().exit(0);
}
@Override
@@ -227,9 +210,9 @@ protected void onPause() {
@Override
protected void onResume() {
super.onResume();
- mVersionGuard.checkForDeprecatesAndUpdates();
}
+ @SuppressLint("MissingSuperCall")
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
mActivityResultMediator.onActivityResult(requestCode, resultCode, data);
@@ -241,13 +224,13 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis
if (mRequestPermissionCallbacks.onRequestPermissionsResult(requestCode, permissions, grantResults)) {
return;
}
- if (getGrantResult(Manifest.permission.READ_EXTERNAL_STORAGE, permissions, grantResults) == PackageManager.PERMISSION_GRANTED) {
+ if (getGrantResult(permissions, grantResults) == PackageManager.PERMISSION_GRANTED) {
Explorers.workspace().refreshAll();
}
}
- private int getGrantResult(String permission, String[] permissions, int[] grantResults) {
- int i = Arrays.asList(permissions).indexOf(permission);
+ private int getGrantResult(String[] permissions, int[] grantResults) {
+ int i = Arrays.asList(permissions).indexOf(Manifest.permission.READ_EXTERNAL_STORAGE);
if (i < 0) {
return 2;
}
@@ -258,7 +241,7 @@ private int getGrantResult(String permission, String[] permissions, int[] grantR
protected void onStart() {
super.onStart();
if (!BuildConfig.DEBUG) {
- DeveloperUtils.verifyApk(this, R.string.dex_crcs);
+ DeveloperUtils.verifyApk(this);
}
}
@@ -321,12 +304,6 @@ public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
- @Subscribe
- public void onLoadUrl(CommunityFragment.LoadUrl loadUrl) {
- mDrawerLayout.closeDrawer(GravityCompat.START);
- }
-
-
private void setUpSearchMenuItem(MenuItem searchMenuItem) {
mSearchViewItem = new SearchViewItem(this, searchMenuItem) {
@Override
diff --git a/app/src/main/java/org/autojs/autojs/ui/main/community/CommunityFragment.java b/app/src/main/java/org/autojs/autojs/ui/main/community/CommunityFragment.java
deleted file mode 100644
index 9e9bbee48..000000000
--- a/app/src/main/java/org/autojs/autojs/ui/main/community/CommunityFragment.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package org.autojs.autojs.ui.main.community;
-
-import android.app.Activity;
-import android.os.Bundle;
-import androidx.annotation.Nullable;
-import com.google.android.material.floatingactionbutton.FloatingActionButton;
-import android.webkit.WebView;
-
-import org.autojs.autojs.R;
-import org.autojs.autojs.network.NodeBB;
-import org.autojs.autojs.ui.main.QueryEvent;
-import org.autojs.autojs.ui.main.ViewPagerFragment;
-import com.stardust.util.BackPressedHandler;
-
-import org.androidannotations.annotations.AfterViews;
-import org.androidannotations.annotations.EFragment;
-import org.androidannotations.annotations.ViewById;
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-
-import java.net.URLEncoder;
-
-/**
- * Created by Stardust on 2017/8/22.
- */
-@EFragment(R.layout.fragment_community)
-public class CommunityFragment extends ViewPagerFragment implements BackPressedHandler {
-
- public static class LoadUrl {
- public final String url;
-
- public LoadUrl(String url) {
- this.url = url;
- }
-
- }
-
- public static class VisibilityChange {
- public final boolean visible;
-
- public VisibilityChange(boolean visible) {
- this.visible = visible;
- }
- }
-
- private static final String POSTS_PAGE_PATTERN = "[\\S\\s]+/topic/[0-9]+/[\\S\\s]+";
-
- @ViewById(R.id.eweb_view)
- CommunityWebView mEWebView;
- WebView mWebView;
-
- public CommunityFragment() {
- super(0);
- setArguments(new Bundle());
- }
-
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- EventBus.getDefault().register(this);
- }
-
- @AfterViews
- void setUpViews() {
- mWebView = mEWebView.getWebView();
- String url = "https://www.autojs.org/";
- Bundle savedWebViewState = getArguments().getBundle("savedWebViewState");
- if (savedWebViewState != null) {
- mWebView.restoreState(savedWebViewState);
- } else {
- mWebView.loadUrl(url);
- }
- }
-
- @Override
- public void onPause() {
- super.onPause();
- Bundle savedWebViewState = new Bundle();
- mWebView.saveState(savedWebViewState);
- getArguments().putBundle("savedWebViewState", savedWebViewState);
- }
-
- @Override
- public boolean onBackPressed(Activity activity) {
- if (mWebView.canGoBack()) {
- mWebView.goBack();
- return true;
- }
- return false;
- }
-
-
- @Override
- protected void onFabClick(FloatingActionButton fab) {
- if (isInPostsPage()) {
- mWebView.loadUrl("javascript:$('button[component=\"topic/reply\"]').click()");
- } else {
- mWebView.loadUrl("javascript:$('#new_topic').click()");
- }
- }
-
- @Subscribe
- public void loadUrl(LoadUrl loadUrl) {
- mWebView.loadUrl(NodeBB.url(loadUrl.url));
- }
-
- @Subscribe
- public void submitQuery(QueryEvent event) {
- if (!isShown() || event == QueryEvent.CLEAR) {
- return;
- }
- String query = URLEncoder.encode(event.getQuery());
- String url = String.format("http://www.autojs.org/search?term=%s&in=titlesposts", query);
- mWebView.loadUrl(url);
- event.collapseSearchView();
- }
-
- private boolean isInPostsPage() {
- String url = mWebView.getUrl();
- return url != null && url.matches(POSTS_PAGE_PATTERN);
- }
-
- @Override
- public void onDestroy() {
- super.onDestroy();
- EventBus.getDefault().unregister(this);
- }
-
- @Override
- public void onPageShow() {
- super.onPageShow();
- EventBus.getDefault().post(new VisibilityChange(true));
- }
-
- @Override
- public void onPageHide() {
- super.onPageHide();
- EventBus.getDefault().post(new VisibilityChange(false));
- }
-}
diff --git a/app/src/main/java/org/autojs/autojs/ui/main/drawer/CommunityDrawerMenu.java b/app/src/main/java/org/autojs/autojs/ui/main/drawer/CommunityDrawerMenu.java
deleted file mode 100644
index 7abea7062..000000000
--- a/app/src/main/java/org/autojs/autojs/ui/main/drawer/CommunityDrawerMenu.java
+++ /dev/null
@@ -1,189 +0,0 @@
-package org.autojs.autojs.ui.main.drawer;
-
-import android.annotation.SuppressLint;
-
-import org.autojs.autojs.R;
-import org.autojs.autojs.network.UserService;
-import org.autojs.autojs.network.entity.notification.Notification;
-import org.autojs.autojs.ui.main.community.CommunityFragment;
-
-import org.greenrobot.eventbus.EventBus;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import io.reactivex.Observable;
-import io.reactivex.ObservableSource;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.functions.Function;
-import io.reactivex.schedulers.Schedulers;
-
-/**
- * Created by Stardust on 2017/12/10.
- */
-@SuppressLint("CheckResult")
-public class CommunityDrawerMenu {
-
- private DrawerMenuItem mUnreadItem = new DrawerMenuItem(R.drawable.community_inbox, R.string.text_community_unread, this::showUnread);
- private DrawerMenuItem mLogoutItem = new DrawerMenuItem(R.drawable.ic_exit_to_app_black_24dp, R.string.text_logout, this::logout);
- private DrawerMenuItem mNotificationItem = new DrawerMenuItem(R.drawable.ic_ali_notification, R.string.text_notification, this::showNotifications);
-
- private List mDrawerMenuItems = new ArrayList<>(Arrays.asList(
- new DrawerMenuGroup(R.string.text_community),
- mNotificationItem,
- new DrawerMenuItem(R.drawable.community_list, R.string.text_community_category, this::showCategories),
- mUnreadItem,
- new DrawerMenuItem(R.drawable.community_time, R.string.text_community_recent, this::showRecent),
- new DrawerMenuItem(R.drawable.community_fire, R.string.text_community_popular, this::showPopular),
- new DrawerMenuItem(R.drawable.community_tags, R.string.text_community_tags, this::showTags),
- mLogoutItem
- ));
-
- private boolean mShown = false;
- private DrawerMenuAdapter mMenuAdapter;
-
-
- public void showCommunityMenu(DrawerMenuAdapter adapter) {
- mMenuAdapter = adapter;
- mShown = true;
- List items = adapter.getDrawerMenuItems();
- if (items.get(0) == mDrawerMenuItems.get(0)) {
- refreshUserStatus(adapter);
- return;
- }
- items.addAll(0, mDrawerMenuItems);
- adapter.notifyItemRangeInserted(0, mDrawerMenuItems.size());
- adapter.notifyItemChanged(mDrawerMenuItems.size());
- refreshUserStatus(adapter);
- }
-
-
- private void refreshUserStatus(DrawerMenuAdapter adapter) {
- UserService.getInstance().refreshOnlineStatus()
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(online -> {
- setUserOnlineStatus(adapter, online);
- if (online) {
- refreshNotificationCount(adapter);
- }
- }, Throwable::printStackTrace);
-
- }
-
- public void refreshNotificationCount(DrawerMenuAdapter adapter) {
- UserService.getInstance().getNotifications()
- .flatMap(Observable::fromIterable)
- .filter(n -> !n.isRead())
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .count()
- .subscribe(count -> setNotificationCount(adapter, count),
- Throwable::printStackTrace);
- }
-
- private void setNotificationCount(DrawerMenuAdapter adapter, long count) {
- mNotificationItem.setNotificationCount((int) count);
- adapter.notifyItemChanged(mNotificationItem);
- }
-
- public void setUserOnlineStatus(DrawerMenuAdapter adapter, boolean online) {
- if (online) {
- addItem(adapter, R.string.text_community, mNotificationItem);
- addItem(adapter, R.string.text_community_category, mUnreadItem);
- addItem(adapter, R.string.text_community_tags, mLogoutItem);
- } else {
- removeItem(adapter, R.string.text_community_unread);
- removeItem(adapter, R.string.text_logout);
- removeItem(adapter, R.string.text_notification);
- }
-
- }
-
- private void addItem(DrawerMenuAdapter adapter, int title, DrawerMenuItem itemToAdd) {
- List items = adapter.getDrawerMenuItems();
- for (int i = 0; i < items.size(); i++) {
- DrawerMenuItem item = items.get(i);
- if (item.getTitle() == title) {
- if (i >= items.size() || items.get(i + 1) != itemToAdd) {
- items.add(i + 1, itemToAdd);
- adapter.notifyItemInserted(i + 1);
- }
- break;
- }
- }
-
- }
-
- private void removeItem(DrawerMenuAdapter adapter, int title) {
- List items = adapter.getDrawerMenuItems();
- for (int i = 0; i < items.size(); i++) {
- DrawerMenuItem item = items.get(i);
- if (item.getTitle() == title) {
- items.remove(i);
- adapter.notifyItemRemoved(i);
- break;
- }
- }
- }
-
-
- public void hideCommunityMenu(DrawerMenuAdapter adapter) {
- List items = adapter.getDrawerMenuItems();
- mShown = false;
- if (items.isEmpty() || items.get(0) != mDrawerMenuItems.get(0)) {
- return;
- }
- for (int i = 1; i < items.size(); i++) {
- DrawerMenuItem item = items.get(i);
- if (item instanceof DrawerMenuGroup) {
- items.subList(0, i).clear();
- adapter.notifyItemRangeRemoved(0, i);
- adapter.notifyItemChanged(0);
- break;
- }
- }
- }
-
- private void showNotifications(DrawerMenuItemViewHolder holder) {
- EventBus.getDefault().post(new CommunityFragment.LoadUrl("/notifications"));
- setNotificationCount(mMenuAdapter, 0);
- }
-
- private void showCategories(DrawerMenuItemViewHolder holder) {
- EventBus.getDefault().post(new CommunityFragment.LoadUrl("/categories"));
- }
-
- private void showUnread(DrawerMenuItemViewHolder holder) {
- EventBus.getDefault().post(new CommunityFragment.LoadUrl("/unread"));
-
- }
-
- private void showRecent(DrawerMenuItemViewHolder holder) {
- EventBus.getDefault().post(new CommunityFragment.LoadUrl("/recent"));
-
- }
-
- private void showPopular(DrawerMenuItemViewHolder holder) {
- EventBus.getDefault().post(new CommunityFragment.LoadUrl("/popular"));
-
- }
-
- private void showTags(DrawerMenuItemViewHolder holder) {
- EventBus.getDefault().post(new CommunityFragment.LoadUrl("/tags"));
-
- }
-
-
- private void logout(DrawerMenuItemViewHolder holder) {
- UserService.getInstance().logout()
- .subscribeOn(Schedulers.io())
- .subscribe();
- EventBus.getDefault().post(new CommunityFragment.LoadUrl("/"));
- }
-
- public boolean isShown() {
- return mShown;
- }
-}
diff --git a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerFragment.java b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerFragment.java
index b5947cc78..6c42b2d82 100644
--- a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerFragment.java
+++ b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerFragment.java
@@ -1,81 +1,57 @@
package org.autojs.autojs.ui.main.drawer;
+import static android.content.Context.POWER_SERVICE;
+
import android.annotation.SuppressLint;
-import android.app.AppOpsManager;
-import android.content.DialogInterface;
+import android.content.ActivityNotFoundException;
+import android.content.Context;
import android.content.Intent;
-import android.os.Build;
+import android.content.pm.PackageManager;
+import android.net.Uri;
import android.os.Bundle;
+import android.os.PowerManager;
import android.provider.Settings;
+import android.view.View;
+import android.widget.Toast;
-import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.TextView;
-import android.widget.Toast;
-
import com.afollestad.materialdialogs.MaterialDialog;
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.load.engine.DiskCacheStrategy;
-import com.bumptech.glide.request.RequestOptions;
-import com.bumptech.glide.request.target.CustomViewTarget;
-import com.bumptech.glide.request.target.SimpleTarget;
-import com.bumptech.glide.request.transition.Transition;
+import com.google.android.material.snackbar.Snackbar;
import com.stardust.app.AppOpsKt;
import com.stardust.app.GlobalAppContext;
+import com.stardust.autojs.core.util.ProcessShell;
+import com.stardust.autojs.util.FloatingPermission;
import com.stardust.notification.NotificationListenerService;
+import com.stardust.theme.ThemeColorManager;
+import com.stardust.util.ClipboardUtil;
+import com.stardust.util.IntentUtil;
+import com.stardust.view.accessibility.AccessibilityService;
+import org.androidannotations.annotations.AfterViews;
+import org.androidannotations.annotations.EFragment;
+import org.androidannotations.annotations.ViewById;
import org.autojs.autojs.Pref;
import org.autojs.autojs.R;
import org.autojs.autojs.external.foreground.ForegroundService;
-import org.autojs.autojs.network.UserService;
+import org.autojs.autojs.pluginclient.DevPluginService;
+import org.autojs.autojs.tool.AccessibilityServiceTool;
import org.autojs.autojs.tool.Observers;
+import org.autojs.autojs.tool.RootTool;
+import org.autojs.autojs.tool.WifiTool;
import org.autojs.autojs.ui.BaseActivity;
import org.autojs.autojs.ui.common.NotAskAgainDialog;
import org.autojs.autojs.ui.floating.CircularMenu;
import org.autojs.autojs.ui.floating.FloatyWindowManger;
-import org.autojs.autojs.network.NodeBB;
-import org.autojs.autojs.network.VersionService;
-import org.autojs.autojs.network.api.UserApi;
-import org.autojs.autojs.network.entity.user.User;
-import org.autojs.autojs.network.entity.VersionInfo;
-import org.autojs.autojs.tool.SimpleObserver;
-import org.autojs.autojs.ui.main.MainActivity;
-import org.autojs.autojs.ui.main.community.CommunityFragment;
-import org.autojs.autojs.ui.user.LoginActivity_;
import org.autojs.autojs.ui.settings.SettingsActivity;
-import org.autojs.autojs.ui.update.UpdateInfoDialogBuilder;
-import org.autojs.autojs.ui.user.WebActivity;
-import org.autojs.autojs.ui.user.WebActivity_;
-import org.autojs.autojs.ui.widget.AvatarView;
-
-import com.stardust.theme.ThemeColorManager;
-
-import org.autojs.autojs.theme.ThemeColorManagerCompat;
-
-import com.stardust.view.accessibility.AccessibilityService;
-
-import org.autojs.autojs.pluginclient.DevPluginService;
-import org.autojs.autojs.tool.AccessibilityServiceTool;
-import org.autojs.autojs.tool.WifiTool;
-
-import com.stardust.util.IntentUtil;
-
-import org.androidannotations.annotations.AfterViews;
-import org.androidannotations.annotations.Click;
-import org.androidannotations.annotations.EFragment;
-import org.androidannotations.annotations.ViewById;
-import org.autojs.autojs.ui.widget.BackgroundTarget;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
-import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Objects;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
@@ -84,50 +60,37 @@
/**
- * Created by Stardust on 2017/1/30.
- * TODO these codes are so ugly!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ * Created by Stardust on Jan 30, 2017.
+ * Modified by SuperMonster003 on Nov 16, 2021.
*/
+@SuppressLint("NonConstantResourceId")
+@SuppressWarnings("ResultOfMethodCallIgnored")
@EFragment(R.layout.fragment_drawer)
public class DrawerFragment extends androidx.fragment.app.Fragment {
private static final String URL_DEV_PLUGIN = "https://www.autojs.org/topic/968/";
+ private static final String WRITE_SECURE_SETTINGS_PERMISSION = "android.permission.WRITE_SECURE_SETTINGS";
@ViewById(R.id.header)
View mHeaderView;
- @ViewById(R.id.username)
- TextView mUserName;
- @ViewById(R.id.avatar)
- AvatarView mAvatar;
- @ViewById(R.id.shadow)
- View mShadow;
- @ViewById(R.id.default_cover)
- View mDefaultCover;
@ViewById(R.id.drawer_menu)
RecyclerView mDrawerMenu;
+ private final DrawerMenuItem mAccessibilityServiceItem = new DrawerMenuItem(R.drawable.ic_accessibility_black_48dp, R.string.text_accessibility_service, 0, this::enableOrDisableAccessibilityService);
+ private final DrawerMenuItem mForegroundServiceItem = new DrawerMenuItem(R.drawable.ic_service_green, R.string.text_foreground_service, R.string.key_foreground_service, this::toggleForegroundService);
- private DrawerMenuItem mConnectionItem = new DrawerMenuItem(R.drawable.ic_connect_to_pc, R.string.debug, 0, this::connectOrDisconnectToRemote);
- private DrawerMenuItem mAccessibilityServiceItem = new DrawerMenuItem(R.drawable.ic_service_green, R.string.text_accessibility_service, 0, this::enableOrDisableAccessibilityService);
- private DrawerMenuItem mStableModeItem = new DrawerMenuItem(R.drawable.ic_stable, R.string.text_stable_mode, R.string.key_stable_mode, null) {
- @Override
- public void setChecked(boolean checked) {
- super.setChecked(checked);
- if (checked)
- showStableModePromptIfNeeded();
- }
- };
-
- private DrawerMenuItem mNotificationPermissionItem = new DrawerMenuItem(R.drawable.ic_ali_notification, R.string.text_notification_permission, 0, this::goToNotificationServiceSettings);
- private DrawerMenuItem mUsageStatsPermissionItem = new DrawerMenuItem(R.drawable.ic_ali_notification, R.string.text_usage_stats_permission, 0, this::goToUsageStatsSettings);
- private DrawerMenuItem mForegroundServiceItem = new DrawerMenuItem(R.drawable.ic_service_green, R.string.text_foreground_service, R.string.key_foreground_servie, this::toggleForegroundService);
+ private final DrawerMenuItem mNotificationPermissionItem = new DrawerMenuItem(R.drawable.ic_ali_notification, R.string.text_notification_permission, 0, this::goToNotificationServiceSettings);
+ private final DrawerMenuItem mUsageStatsPermissionItem = new DrawerMenuItem(R.drawable.ic_assessment_black_48dp, R.string.text_usage_stats_permission, 0, this::goToUsageStatsSettings);
+ private final DrawerMenuItem mIgnoreBatteryOptimizationsItem = new DrawerMenuItem(R.drawable.ic_battery_std_black_48dp, R.string.text_ignore_battery_optimizations, 0, this::toggleIgnoreBatteryOptimizations);
+ private final DrawerMenuItem mDisplayOverOtherAppsItem = new DrawerMenuItem(R.drawable.ic_layers_black_48dp, R.string.text_display_over_other_app, 0, this::goToDisplayOverOtherAppsSettings);
+ private final DrawerMenuItem mWriteSystemSettingsItem = new DrawerMenuItem(R.drawable.ic_settings_black_48dp, R.string.text_write_system_settings, 0, this::goToWriteSystemSettings);
+ private final DrawerMenuItem mWriteSecuritySettingsItem = new DrawerMenuItem(R.drawable.ic_security_black_48dp, R.string.text_write_secure_settings, 0, this::toggleWriteSecureSettings);
- private DrawerMenuItem mFloatingWindowItem = new DrawerMenuItem(R.drawable.ic_robot_64, R.string.text_floating_window, 0, this::showOrDismissFloatingWindow);
- private DrawerMenuItem mCheckForUpdatesItem = new DrawerMenuItem(R.drawable.ic_check_for_updates, R.string.text_check_for_updates, this::checkForUpdates);
+ private final DrawerMenuItem mFloatingWindowItem = new DrawerMenuItem(R.drawable.ic_robot_64, R.string.text_floating_window, 0, this::showOrDismissFloatingWindow);
+ private final DrawerMenuItem mConnectionItem = new DrawerMenuItem(R.drawable.ic_computer_black_48dp, R.string.debug, 0, this::connectOrDisconnectToRemote);
private DrawerMenuAdapter mDrawerMenuAdapter;
private Disposable mConnectionStateDisposable;
- private CommunityDrawerMenu mCommunityDrawerMenu = new CommunityDrawerMenu();
-
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
@@ -135,16 +98,13 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
mConnectionStateDisposable = DevPluginService.getInstance().connectionState()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(state -> {
- if (mConnectionItem != null) {
- setChecked(mConnectionItem, state.getState() == DevPluginService.State.CONNECTED);
- setProgress(mConnectionItem, state.getState() == DevPluginService.State.CONNECTING);
- }
+ setChecked(mConnectionItem, state.getState() == DevPluginService.State.CONNECTED);
+ setProgress(mConnectionItem, state.getState() == DevPluginService.State.CONNECTING);
if (state.getException() != null) {
showMessage(state.getException().getMessage());
}
});
EventBus.getDefault().register(this);
-
}
@AfterViews
@@ -166,50 +126,29 @@ private void initMenuItems() {
mDrawerMenuAdapter = new DrawerMenuAdapter(new ArrayList<>(Arrays.asList(
new DrawerMenuGroup(R.string.text_service),
mAccessibilityServiceItem,
- mStableModeItem,
- mNotificationPermissionItem,
mForegroundServiceItem,
+
+ new DrawerMenuGroup(R.string.text_permission),
+ mNotificationPermissionItem,
mUsageStatsPermissionItem,
+ mIgnoreBatteryOptimizationsItem,
+ mDisplayOverOtherAppsItem,
+ mWriteSystemSettingsItem,
+ mWriteSecuritySettingsItem,
- new DrawerMenuGroup(R.string.text_script_record),
+ new DrawerMenuGroup(R.string.text_tools),
mFloatingWindowItem,
- new DrawerMenuItem(R.drawable.ic_volume, R.string.text_volume_down_control, R.string.key_use_volume_control_record, null),
-
- new DrawerMenuGroup(R.string.text_others),
mConnectionItem,
- new DrawerMenuItem(R.drawable.ic_personalize, R.string.text_theme_color, this::openThemeColorSettings),
+
+ new DrawerMenuGroup(R.string.text_appearance),
new DrawerMenuItem(R.drawable.ic_night_mode, R.string.text_night_mode, R.string.key_night_mode, this::toggleNightMode),
- mCheckForUpdatesItem
+ new DrawerMenuItem(R.drawable.ic_personalize, R.string.text_theme_color, this::openThemeColorSettings)
)));
mDrawerMenu.setAdapter(mDrawerMenuAdapter);
mDrawerMenu.setLayoutManager(new LinearLayoutManager(getContext()));
}
- @SuppressLint("CheckResult")
- @Click(R.id.avatar)
- void loginOrShowUserInfo() {
- UserService.getInstance()
- .me()
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(user -> {
- if (getActivity() == null)
- return;
- WebActivity_.intent(this)
- .extra(WebActivity.EXTRA_URL, NodeBB.url("user/" + user.getUserslug()))
- .extra(Intent.EXTRA_TITLE, user.getUsername())
- .start();
- },
- error -> {
- if (getActivity() == null)
- return;
- LoginActivity_.intent(getActivity()).start();
- }
- );
- }
-
-
void enableOrDisableAccessibilityService(DrawerMenuItemViewHolder holder) {
boolean isAccessibilityServiceEnabled = isAccessibilityServiceEnabled();
boolean checked = holder.getSwitchCompat().isChecked();
@@ -223,9 +162,6 @@ void enableOrDisableAccessibilityService(DrawerMenuItemViewHolder holder) {
}
void goToNotificationServiceSettings(DrawerMenuItemViewHolder holder) {
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) {
- return;
- }
boolean enabled = NotificationListenerService.Companion.getInstance() != null;
boolean checked = holder.getSwitchCompat().isChecked();
if ((checked && !enabled) || (!checked && enabled)) {
@@ -234,23 +170,30 @@ void goToNotificationServiceSettings(DrawerMenuItemViewHolder holder) {
}
void goToUsageStatsSettings(DrawerMenuItemViewHolder holder) {
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
- return;
+ Context context = getContext();
+ boolean enabled = false;
+ if (context != null) {
+ enabled = AppOpsKt.isUsageStatsPermissionGranted(context);
}
- boolean enabled = AppOpsKt.isOpPermissionGranted(getContext(), AppOpsManager.OPSTR_GET_USAGE_STATS);
boolean checked = holder.getSwitchCompat().isChecked();
- if(checked && !enabled){
- if(new NotAskAgainDialog.Builder(getContext(), "DrawerFragment.usage_stats")
+ if (checked && !enabled) {
+ if (new NotAskAgainDialog.Builder(context, "DrawerFragment.usage_stats")
.title(R.string.text_usage_stats_permission)
.content(R.string.description_usage_stats_permission)
.positiveText(R.string.ok)
- .dismissListener(dialog -> IntentUtil.requestAppUsagePermission(getContext()))
- .show() == null){
- IntentUtil.requestAppUsagePermission(getContext());
+ .dismissListener(dialog -> {
+ if (context != null) {
+ IntentUtil.requestAppUsagePermission(context);
+ }
+ })
+ .show() == null) {
+ if (context != null) {
+ IntentUtil.requestAppUsagePermission(context);
+ }
}
}
if (!checked && enabled) {
- IntentUtil.requestAppUsagePermission(getContext());
+ IntentUtil.requestAppUsagePermission(context);
}
}
@@ -268,12 +211,161 @@ void showOrDismissFloatingWindow(DrawerMenuItemViewHolder holder) {
}
}
+ @SuppressLint("BatteryLife")
+ void toggleIgnoreBatteryOptimizations(DrawerMenuItemViewHolder holder) {
+ Context context = getContext();
+ try {
+ Intent intent = new Intent();
+ boolean isIgnoring = false;
+ if (context != null) {
+ isIgnoring = ((PowerManager) context.getSystemService(POWER_SERVICE))
+ .isIgnoringBatteryOptimizations(context.getPackageName());
+ }
+ if (isIgnoring) {
+ intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
+ } else {
+ if (context != null) {
+ intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)
+ .setData(Uri.parse("package:" + context.getPackageName()));
+ }
+ }
+ startActivity(intent);
+ } catch (ActivityNotFoundException e) {
+ e.printStackTrace();
+ Toast.makeText(context, R.string.text_failed, Toast.LENGTH_LONG).show();
+ }
+ }
+
void openThemeColorSettings(DrawerMenuItemViewHolder holder) {
SettingsActivity.selectThemeColor(getActivity());
}
void toggleNightMode(DrawerMenuItemViewHolder holder) {
- ((BaseActivity) getActivity()).setNightModeEnabled(holder.getSwitchCompat().isChecked());
+ ((BaseActivity) requireActivity()).setNightModeEnabled(holder.getSwitchCompat().isChecked());
+ }
+
+ void goToDisplayOverOtherAppsSettings(DrawerMenuItemViewHolder holder) {
+ boolean checked = holder.getSwitchCompat().isChecked();
+ Context context = getContext();
+ if (checked != FloatingPermission.canDrawOverlays(context)) {
+ FloatingPermission.manageDrawOverlays(context);
+ }
+ }
+
+ void goToWriteSystemSettings(DrawerMenuItemViewHolder holder) {
+ boolean checked = holder.getSwitchCompat().isChecked();
+ if (checked != Settings.System.canWrite(getContext())) {
+ Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS)
+ .setData(Uri.parse("package:" + requireContext().getPackageName()))
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ }
+ }
+
+ private void toggleWriteSecureSettings(DrawerMenuItemViewHolder holder) {
+ if (holder.getSwitchCompat().isChecked() && !hasWriteSecureSettingsAccess()) {
+ grantWriteSecureSettingsAccess();
+ } else if (!holder.getSwitchCompat().isChecked() && hasWriteSecureSettingsAccess()) {
+ revokeWriteSecureSettingsAccess();
+ }
+ }
+
+ private boolean hasWriteSecureSettingsAccess() {
+ Context context = getContext();
+ if (context != null) {
+ int checkVal = context.checkCallingOrSelfPermission(WRITE_SECURE_SETTINGS_PERMISSION);
+ return checkVal == PackageManager.PERMISSION_GRANTED;
+ }
+ return false;
+ }
+
+ @SuppressLint("CheckResult")
+ private void grantWriteSecureSettingsAccess() {
+ Observable.fromCallable(RootTool::isRootAvailable)
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(hasRoot -> {
+ if (hasRoot) {
+ setWriteSecureSettingsAccessByRoot(true);
+ } else {
+ setWriteSecureSettingsAccessByAdb(true);
+ }
+ });
+ }
+
+ @SuppressLint("CheckResult")
+ private void revokeWriteSecureSettingsAccess() {
+ Observable.fromCallable(RootTool::isRootAvailable)
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(hasRoot -> {
+ if (hasRoot) {
+ setWriteSecureSettingsAccessByRoot(false);
+ } else {
+ setWriteSecureSettingsAccessByAdb(false);
+ }
+ });
+ }
+
+ private void setWriteSecureSettingsAccessByRoot(boolean state) {
+ Context context = getContext();
+ if (context == null) {
+ return;
+ }
+ String cmdAction = state ? "grant" : "revoke";
+ String cmd = "pm " + cmdAction + " " + context.getPackageName() + " " + WRITE_SECURE_SETTINGS_PERMISSION;
+ try {
+ ProcessShell.execCommand(cmd, true);
+ if (state == hasWriteSecureSettingsAccess()) {
+ int successRes = state ? R.string.text_permission_granted_by_root : R.string.text_permission_revoked_by_root;
+ Toast.makeText(context, successRes, Toast.LENGTH_SHORT).show();
+ return;
+ }
+ } catch (Exception ignore) {
+ // nothing to do here
+ }
+ int successRes = state ? R.string.text_permission_granted_failed_by_root : R.string.text_permission_revoked_failed_by_root;
+ Toast.makeText(context, successRes, Toast.LENGTH_LONG).show();
+ }
+
+ private void setWriteSecureSettingsAccessByAdb(boolean state) {
+ Context context = getContext();
+ if (context == null) {
+ return;
+ }
+ final int SNACKBAR_DURATION = 1000;
+ String scriptAction = state ? "grant" : "revoke";
+ String script = "adb shell pm " + scriptAction + " " + context.getPackageName() + " " + WRITE_SECURE_SETTINGS_PERMISSION;
+
+ new MaterialDialog.Builder(context)
+ .title(R.string.text_adb_tool_needed)
+ .content(script)
+ .neutralText(R.string.text_permission_test)
+ .onNeutral((dialog, which) -> {
+ View view = dialog.getView();
+ int resultRes = hasWriteSecureSettingsAccess() ? R.string.text_granted : R.string.text_not_granted;
+ if (view != null) {
+ Snackbar.make(view, resultRes, SNACKBAR_DURATION).show();
+ } else {
+ Toast.makeText(context, resultRes, Toast.LENGTH_SHORT).show();
+ }
+ })
+ .negativeText(R.string.text_back)
+ .onNegative((dialog, which) -> dialog.dismiss())
+ .positiveText(R.string.text_copy_command)
+ .onPositive((dialog, which) -> {
+ ClipboardUtil.setClip(context, script);
+ View view = dialog.getView();
+ int textRes = R.string.text_command_already_copied_to_clip;
+ if (view != null) {
+ Snackbar.make(view, textRes, SNACKBAR_DURATION).show();
+ } else {
+ Toast.makeText(context, textRes, Toast.LENGTH_SHORT).show();
+ }
+ })
+ .cancelable(false)
+ .autoDismiss(false)
+ .dismissListener(dialog -> setChecked(mWriteSecuritySettingsItem, hasWriteSecureSettingsAccess()))
+ .show();
+
}
@SuppressLint("CheckResult")
@@ -309,9 +401,11 @@ private void toggleForegroundService(DrawerMenuItemViewHolder holder) {
}
+ @SuppressLint("CheckResult")
private void inputRemoteHost() {
- String host = Pref.getServerAddressOrDefault(WifiTool.getRouterIp(getActivity()));
- new MaterialDialog.Builder(getActivity())
+ Context activity = getActivity();
+ String host = Pref.getServerAddressOrDefault(WifiTool.getRouterIp(Objects.requireNonNull(activity)));
+ new MaterialDialog.Builder(activity)
.title(R.string.text_server_address)
.input("", host, (dialog, input) -> {
Pref.saveServerAddress(input.toString());
@@ -321,7 +415,7 @@ private void inputRemoteHost() {
.neutralText(R.string.text_help)
.onNeutral((dialog, which) -> {
setChecked(mConnectionItem, false);
- IntentUtil.browse(getActivity(), URL_DEV_PLUGIN);
+ IntentUtil.browse(activity, URL_DEV_PLUGIN);
})
.cancelListener(dialog -> setChecked(mConnectionItem, false))
.show();
@@ -333,94 +427,33 @@ private void onConnectException(Throwable e) {
Toast.LENGTH_LONG).show();
}
- void checkForUpdates(DrawerMenuItemViewHolder holder) {
- setProgress(mCheckForUpdatesItem, true);
- VersionService.getInstance().checkForUpdates()
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(new SimpleObserver() {
-
- @Override
- public void onNext(@io.reactivex.annotations.NonNull VersionInfo versionInfo) {
- if (getActivity() == null)
- return;
- if (versionInfo.isNewer()) {
- new UpdateInfoDialogBuilder(getActivity(), versionInfo)
- .show();
- } else {
- Toast.makeText(GlobalAppContext.get(), R.string.text_is_latest_version, Toast.LENGTH_SHORT).show();
- }
- setProgress(mCheckForUpdatesItem, false);
- }
-
- @Override
- public void onError(@io.reactivex.annotations.NonNull Throwable e) {
- e.printStackTrace();
- Toast.makeText(GlobalAppContext.get(), R.string.text_check_update_error, Toast.LENGTH_SHORT).show();
- setProgress(mCheckForUpdatesItem, false);
- }
- });
- }
-
-
@Override
public void onResume() {
super.onResume();
syncSwitchState();
- syncUserInfo();
}
- private void syncUserInfo() {
- NodeBB.getInstance().getRetrofit()
- .create(UserApi.class)
- .me()
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(this::setUpUserInfo, error -> {
- error.printStackTrace();
- setUpUserInfo(null);
- });
- }
+ private void syncSwitchState() {
+ Context context = getContext();
- private void setUpUserInfo(@Nullable User user) {
- if (mUserName == null || mAvatar == null)
- return;
- if (user == null) {
- mUserName.setText(R.string.not_login);
- mAvatar.setIcon(R.drawable.profile_avatar_placeholder);
- } else {
- mUserName.setText(user.getUsername());
- mAvatar.setUser(user);
+ if (context != null) {
+ setChecked(mUsageStatsPermissionItem, AppOpsKt.isUsageStatsPermissionGranted(context));
}
- setCoverImage(user);
- }
- private void setCoverImage(User user) {
- if (mDefaultCover == null || mShadow == null || mHeaderView == null)
- return;
- if (user == null || TextUtils.isEmpty(user.getCoverUrl()) || user.getCoverUrl().equals("/assets/images/cover-default.png")) {
- mDefaultCover.setVisibility(View.VISIBLE);
- mShadow.setVisibility(View.GONE);
- mHeaderView.setBackgroundColor(ThemeColorManagerCompat.getColorPrimary());
- } else {
- mDefaultCover.setVisibility(View.GONE);
- mShadow.setVisibility(View.VISIBLE);
- Glide.with(this)
- .load(NodeBB.BASE_URL + user.getCoverUrl())
- .apply(new RequestOptions()
- .diskCacheStrategy(DiskCacheStrategy.NONE)
- )
- .into(new BackgroundTarget(mHeaderView));
+ if (mFloatingWindowItem.isChecked() && !FloatingPermission.canDrawOverlays(context)) {
+ setChecked(mFloatingWindowItem, false);
}
- }
- private void syncSwitchState() {
- setChecked(mAccessibilityServiceItem, AccessibilityServiceTool.isAccessibilityServiceEnabled(getActivity()));
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
- setChecked(mNotificationPermissionItem, NotificationListenerService.Companion.getInstance() != null);
- }
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- setChecked(mUsageStatsPermissionItem, AppOpsKt.isOpPermissionGranted(getContext(), AppOpsManager.OPSTR_GET_USAGE_STATS));
+ if (context != null) {
+ setChecked(mIgnoreBatteryOptimizationsItem, ((PowerManager) context.getSystemService(POWER_SERVICE))
+ .isIgnoringBatteryOptimizations(context.getPackageName()));
}
+
+ setChecked(mAccessibilityServiceItem, AccessibilityServiceTool.isAccessibilityServiceEnabled(getActivity()));
+ setChecked(mNotificationPermissionItem, NotificationListenerService.Companion.getInstance() != null);
+ setChecked(mDisplayOverOtherAppsItem, FloatingPermission.canDrawOverlays(context));
+ setChecked(mWriteSystemSettingsItem, Settings.System.canWrite(getContext()));
+ setChecked(mWriteSecuritySettingsItem, hasWriteSecureSettingsAccess());
}
private void enableAccessibilityService() {
@@ -431,6 +464,7 @@ private void enableAccessibilityService() {
enableAccessibilityServiceByRoot();
}
+ @SuppressLint("CheckResult")
private void enableAccessibilityServiceByRoot() {
setProgress(mAccessibilityServiceItem, true);
Observable.fromCallable(() -> AccessibilityServiceTool.enableAccessibilityServiceByRootAndWaitFor(4000))
@@ -438,7 +472,7 @@ private void enableAccessibilityServiceByRoot() {
.observeOn(AndroidSchedulers.mainThread())
.subscribe(succeed -> {
if (!succeed) {
- Toast.makeText(getContext(), R.string.text_enable_accessibitliy_service_by_root_failed, Toast.LENGTH_SHORT).show();
+ Toast.makeText(getContext(), R.string.text_enable_accessibility_service_by_root_failed, Toast.LENGTH_SHORT).show();
AccessibilityServiceTool.goToAccessibilitySetting();
}
setProgress(mAccessibilityServiceItem, false);
@@ -451,41 +485,6 @@ public void onCircularMenuStateChange(CircularMenu.StateChangeEvent event) {
setChecked(mFloatingWindowItem, event.getCurrentState() != CircularMenu.STATE_CLOSED);
}
- @Subscribe
- public void onCommunityPageVisibilityChange(CommunityFragment.VisibilityChange change) {
- if (change.visible) {
- mCommunityDrawerMenu.showCommunityMenu(mDrawerMenuAdapter);
- } else {
- mCommunityDrawerMenu.hideCommunityMenu(mDrawerMenuAdapter);
- }
- mDrawerMenu.scrollToPosition(0);
- }
-
- @Subscribe(threadMode = ThreadMode.MAIN)
- public void onLoginStateChange(UserService.LoginStateChange change) {
- syncUserInfo();
- if (mCommunityDrawerMenu.isShown()) {
- mCommunityDrawerMenu.setUserOnlineStatus(mDrawerMenuAdapter, change.isOnline());
- }
- }
-
-
- @Subscribe(threadMode = ThreadMode.MAIN)
- public void onDrawerOpen(MainActivity.DrawerOpenEvent event) {
- if (mCommunityDrawerMenu.isShown()) {
- mCommunityDrawerMenu.refreshNotificationCount(mDrawerMenuAdapter);
- }
- }
-
- private void showStableModePromptIfNeeded() {
- new NotAskAgainDialog.Builder(getContext(), "DrawerFragment.stable_mode")
- .title(R.string.text_stable_mode)
- .content(R.string.description_stable_mode)
- .positiveText(R.string.ok)
- .show();
- }
-
-
@Override
public void onDestroy() {
super.onDestroy();
@@ -514,5 +513,4 @@ private void setChecked(DrawerMenuItem item, boolean checked) {
private boolean isAccessibilityServiceEnabled() {
return AccessibilityServiceTool.isAccessibilityServiceEnabled(getActivity());
}
-
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuGroupViewHolder.java b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuGroupViewHolder.java
index 2a0c4df9b..5cd73fd1a 100644
--- a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuGroupViewHolder.java
+++ b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuGroupViewHolder.java
@@ -23,7 +23,7 @@ public DrawerMenuGroupViewHolder(View itemView) {
@Override
public void bind(DrawerMenuItem data, int position) {
mTextView.setText(data.getTitle());
- int padding = itemView.getResources().getDimensionPixelOffset(R.dimen.divider_drawer_menu_group);
+ int padding = (int) (itemView.getResources().getDimensionPixelOffset(R.dimen.divider_drawer_menu_group) / 3);
itemView.setPadding(0, position == 0 ? 0 : padding, 0, 0);
}
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItem.java b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItem.java
index 05fc5b641..4b91932bf 100644
--- a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItem.java
+++ b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItem.java
@@ -69,7 +69,6 @@ public boolean isChecked() {
return mSwitchChecked;
}
-
public boolean isProgress() {
return mOnProgress;
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItemViewHolder.java b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItemViewHolder.java
index 3c0146552..eae6c1d80 100644
--- a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItemViewHolder.java
+++ b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItemViewHolder.java
@@ -25,7 +25,7 @@
public class DrawerMenuItemViewHolder extends BindableViewHolder {
- private static final long CLICK_TIMEOUT = 1000;
+ private static final long CLICK_TIMEOUT = 540;
@BindView(R.id.sw)
PrefSwitch mSwitchCompat;
@@ -96,7 +96,7 @@ private void setSwitch(DrawerMenuItem item) {
private void onClick() {
mDrawerMenuItem.setChecked(mSwitchCompat.isChecked());
if (mAntiShake && (System.currentTimeMillis() - mLastClickMillis < CLICK_TIMEOUT)) {
- Toast.makeText(itemView.getContext(), R.string.text_click_too_frequently, Toast.LENGTH_SHORT).show();
+ // Toast.makeText(itemView.getContext(), R.string.text_click_too_frequently, Toast.LENGTH_SHORT).show();
mSwitchCompat.setChecked(!mSwitchCompat.isChecked(), false);
return;
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/main/market/ImageText.kt b/app/src/main/java/org/autojs/autojs/ui/main/market/ImageText.kt
deleted file mode 100644
index 62ee83fe5..000000000
--- a/app/src/main/java/org/autojs/autojs/ui/main/market/ImageText.kt
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.autojs.autojs.ui.main.market
-
-import android.content.Context
-import android.util.AttributeSet
-import android.view.Gravity
-import android.view.View
-import android.widget.LinearLayout
-import kotlinx.android.synthetic.main.image_text.view.*
-import org.autojs.autojs.R
-
-class ImageText : LinearLayout {
-
- var text: CharSequence?
- get() = textView.text
- set(value) {
- textView.text = value
- }
-
- constructor(context: Context?) : super(context) {
- init(null)
- }
-
- constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) {
- init(attrs)
- }
-
- constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
- init(attrs)
- }
-
- private fun init(attrs: AttributeSet?) {
- View.inflate(context, R.layout.image_text, this)
- gravity = Gravity.CENTER
- orientation = HORIZONTAL
- if (attrs == null) {
- return
- }
- val a = context.obtainStyledAttributes(attrs, R.styleable.ImageText)
- a.getString(R.styleable.ImageText_text)?.let {
- textView.text = it
- }
- val iconResId = a.getResourceId(R.styleable.ImageText_src, 0)
- if (iconResId != 0) {
- imageView.setImageResource(iconResId)
- }
- val imageWidth = a.getDimensionPixelSize(R.styleable.ImageText_image_width, 0)
- if (imageWidth != 0) {
- imageView.layoutParams.width = imageWidth
- }
- a.recycle()
- }
-
- fun setColor(color: Int) {
- textView.setTextColor(color)
- imageView.setColorFilter(color)
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/org/autojs/autojs/ui/main/market/MarketFragment.kt b/app/src/main/java/org/autojs/autojs/ui/main/market/MarketFragment.kt
deleted file mode 100644
index 7a5c820de..000000000
--- a/app/src/main/java/org/autojs/autojs/ui/main/market/MarketFragment.kt
+++ /dev/null
@@ -1,170 +0,0 @@
-package org.autojs.autojs.ui.main.market
-
-import android.app.Activity
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.TextView
-import androidx.core.content.ContextCompat
-import androidx.recyclerview.widget.RecyclerView
-import com.google.android.material.floatingactionbutton.FloatingActionButton
-import com.stardust.autojs.workground.WrapContentLinearLayoutManager
-import kotlinx.android.synthetic.main.fragment_market.*
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.GlobalScope
-import kotlinx.coroutines.launch
-import org.autojs.autojs.R
-import org.autojs.autojs.network.TopicService
-import org.autojs.autojs.network.entity.topic.AppInfo
-import org.autojs.autojs.network.entity.topic.Post
-import org.autojs.autojs.network.entity.topic.Topic
-import org.autojs.autojs.ui.main.ViewPagerFragment
-import org.autojs.autojs.ui.widget.AvatarView
-import org.joda.time.format.DateTimeFormat
-
-class MarketFragment : ViewPagerFragment(0) {
-
- private val mTopics = ArrayList()
-
- override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
- return inflater.inflate(R.layout.fragment_market, container, false)
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- topicsView.layoutManager = WrapContentLinearLayoutManager(context)
- topicsView.adapter = Adapter()
- swipeRefreshLayout.setOnRefreshListener {
- refresh()
- }
- refresh()
- }
-
- private fun refresh() {
- GlobalScope.launch(Dispatchers.Main) {
- swipeRefreshLayout.isRefreshing = true
- try {
- val topics = TopicService.getScriptsTopics()
- mTopics.clear()
- mTopics.addAll(topics)
- topicsView.adapter!!.notifyDataSetChanged()
- swipeRefreshLayout.isRefreshing = false
- } catch (e: Exception) {
- e.printStackTrace()
- }
- }
- }
-
- override fun onBackPressed(activity: Activity): Boolean {
- return false
- }
-
- override fun onFabClick(fab: FloatingActionButton) {
-
- }
-
- inner class TopicViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
-
- private lateinit var topic: Topic
-
- private val rootView: TextView = itemView.findViewById(R.id.root)
- private val titleView: TextView = itemView.findViewById(R.id.title)
- private val avatarView: AvatarView = itemView.findViewById(R.id.avatar)
- private val usernameView: TextView = itemView.findViewById(R.id.username)
- private val dateView: TextView = itemView.findViewById(R.id.date)
- private val upvoteView: ImageText = itemView.findViewById(R.id.upvote)
- private val downvoteView: ImageText = itemView.findViewById(R.id.downvote)
- private val downloadView: ImageText = itemView.findViewById(R.id.download)
- private val starView: ImageText = itemView.findViewById(R.id.star)
-
- init {
- upvoteView.setOnClickListener {
-
- }
- downvoteView.setOnClickListener {
-
- }
- starView.setOnClickListener {
-
- }
- downloadView.setOnClickListener {
-
- }
- }
-
- fun bind(topic: Topic) {
- this.topic = topic
- rootView.setText(if (topic.appInfo.permissions.contains(AppInfo.PERMISSION_ROOT)) {
- R.string.text_root
- } else {
- R.string.text_no_root
- })
- titleView.text = topic.title
- avatarView.setUser(topic.user)
- usernameView.text = topic.user.username
- dateView.text = DateTimeFormat.mediumDateTime().print(topic.timestamp.toLong())
- if (topic.mainPost != null) {
- bindMainPost(topic.mainPost)
- } else {
- fetchMainPost(topic)
- }
- }
-
- private fun fetchMainPost(topic: Topic) {
- GlobalScope.launch(Dispatchers.Main) {
- try {
- val mainPost = TopicService.getMainPost(topic)
- if (topic === this@TopicViewHolder.topic) {
- bindMainPost(mainPost)
- }
- } catch (e: Exception) {
- e.printStackTrace()
- }
- }
- }
-
- private fun bindMainPost(mainPost: Post) {
- context?.let { context ->
- upvoteView.text = if (mainPost.upvotes == 0L) {
- context.getString(R.string.text_upvote)
- } else {
- mainPost.upvotes.toString()
- }
- upvoteView.setColor(if (mainPost.upvoted) {
- ContextCompat.getColor(context, R.color.market_button_selected)
- } else {
- ContextCompat.getColor(context, R.color.market_button_unselected)
- })
- downvoteView.text = if (mainPost.downvotes == 0L) {
- context.getString(R.string.text_downvote)
- } else {
- mainPost.downvotes.toString()
- }
- downvoteView.setColor(if (mainPost.downvoted) {
- ContextCompat.getColor(context, R.color.market_button_selected)
- } else {
- ContextCompat.getColor(context, R.color.market_button_unselected)
- })
- }
-
- }
-
- }
-
- inner class Adapter : RecyclerView.Adapter() {
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TopicViewHolder {
- return TopicViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.item_topic, parent, false))
- }
-
- override fun getItemCount(): Int {
- return mTopics.size
- }
-
- override fun onBindViewHolder(holder: TopicViewHolder, position: Int) {
- val topic = mTopics[position]
- holder.bind(topic)
- }
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/org/autojs/autojs/ui/main/scripts/MyScriptListFragment.java b/app/src/main/java/org/autojs/autojs/ui/main/scripts/MyScriptListFragment.java
index 3ec2a9dc2..7d3de1e0b 100644
--- a/app/src/main/java/org/autojs/autojs/ui/main/scripts/MyScriptListFragment.java
+++ b/app/src/main/java/org/autojs/autojs/ui/main/scripts/MyScriptListFragment.java
@@ -2,7 +2,7 @@
import android.app.Activity;
import android.os.Bundle;
-import android.preference.PreferenceManager;
+import androidx.preference.PreferenceManager;
import androidx.annotation.Nullable;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
diff --git a/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java b/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java
index 928583d37..002a6ebed 100644
--- a/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java
+++ b/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java
@@ -43,7 +43,6 @@
import java.util.concurrent.Callable;
import java.util.regex.Pattern;
-import androidx.cardview.widget.CardView;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
@@ -109,41 +108,34 @@ void setupViews() {
}
private void checkApkBuilderPlugin() {
- if (!ApkBuilderPluginHelper.isPluginAvailable(this)) {
- showPluginDownloadDialog(R.string.no_apk_builder_plugin, true);
- return;
- }
- int version = ApkBuilderPluginHelper.getPluginVersion(this);
- if (version < 0) {
- showPluginDownloadDialog(R.string.no_apk_builder_plugin, true);
- return;
- }
- if (version < ApkBuilderPluginHelper.getSuitablePluginVersion()) {
- showPluginDownloadDialog(R.string.apk_builder_plugin_version_too_low, false);
+ if (!ApkBuilderPluginHelper.isPluginAvailable(this) || ApkBuilderPluginHelper.getPluginVersion(this) < 0) {
+ showPluginDownloadDialog(R.string.no_apk_builder_plugin);
}
}
- private void showPluginDownloadDialog(int msgRes, boolean finishIfCanceled) {
+ private void showPluginDownloadDialog(int msgRes) {
new ThemeColorMaterialDialogBuilder(this)
.content(msgRes)
.positiveText(R.string.ok)
.negativeText(R.string.cancel)
.onPositive((dialog, which) -> downloadPlugin())
- .onNegative((dialog, which) -> {
- if (finishIfCanceled) finish();
- })
+ .onNegative((dialog, which) -> finish())
.show();
}
private void downloadPlugin() {
- IntentUtil.browse(this, String.format(Locale.getDefault(),
- "https://i.autojs.org/autojs/plugin/%d.apk", ApkBuilderPluginHelper.getSuitablePluginVersion()));
+ IntentUtil.browse(this, "https://github.com/" +
+ "SuperMonster002/Hello-Sockpuppet/raw/master/" +
+ "%5B" + "auto.js" + "%5D" +
+ "%5B" + "apk_builder_plugin_4.1.1_alpha2" + "%5D" +
+ "%5B" + "arm-v7a" + "%5D" +
+ "%5B" + "9b150ec3" + "%5D" + ".apk");
}
private void setupWithSourceFile(ScriptFile file) {
String dir = file.getParent();
- if (dir.startsWith(getFilesDir().getPath())) {
+ if (dir != null && dir.startsWith(getFilesDir().getPath())) {
dir = Pref.getScriptDirPath();
}
mOutputPath.setText(dir);
@@ -348,20 +340,19 @@ public void onClean(ApkBuilder builder) {
mProgressDialog.setContent(R.string.apk_builder_clean);
}
- @SuppressLint("CheckResult")
+ @SuppressLint({"CheckResult", "MissingSuperCall"})
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (resultCode != RESULT_OK) {
- return;
+ if (resultCode == RESULT_OK) {
+ //noinspection ResultOfMethodCallIgnored
+ ShortcutIconSelectActivity.getBitmapFromIntent(getApplicationContext(), data)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(bitmap -> {
+ mIcon.setImageBitmap(bitmap);
+ mIsDefaultIcon = false;
+ }, Throwable::printStackTrace);
}
- ShortcutIconSelectActivity.getBitmapFromIntent(getApplicationContext(), data)
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(bitmap -> {
- mIcon.setImageBitmap(bitmap);
- mIsDefaultIcon = false;
- }, Throwable::printStackTrace);
-
}
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/settings/AboutActivity.java b/app/src/main/java/org/autojs/autojs/ui/settings/AboutActivity.java
index b2ec5307d..0e94bd3f1 100644
--- a/app/src/main/java/org/autojs/autojs/ui/settings/AboutActivity.java
+++ b/app/src/main/java/org/autojs/autojs/ui/settings/AboutActivity.java
@@ -4,50 +4,52 @@
import android.widget.TextView;
import android.widget.Toast;
-import com.afollestad.materialdialogs.MaterialDialog;
-import org.autojs.autojs.tool.IntentTool;
-import org.autojs.autojs.ui.BaseActivity;
-import org.autojs.autojs.theme.dialog.ThemeColorMaterialDialogBuilder;
import com.stardust.util.IntentUtil;
-import com.tencent.bugly.crashreport.CrashReport;
-
-import org.autojs.autojs.BuildConfig;
-import org.autojs.autojs.R;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.ViewById;
+import org.autojs.autojs.BuildConfig;
+import org.autojs.autojs.R;
+import org.autojs.autojs.tool.IntentTool;
+import org.autojs.autojs.ui.BaseActivity;
/**
* Created by Stardust on 2017/2/2.
*/
@EActivity(R.layout.activity_about)
public class AboutActivity extends BaseActivity {
-
- private static final String TAG = "AboutActivity";
@ViewById(R.id.version)
TextView mVersion;
- private int mLolClickCount = 0;
-
+ @ViewById(R.id.since)
+ TextView mSince;
@AfterViews
void setUpViews() {
setVersionName();
+ setSinceDate();
setToolbarAsBack(getString(R.string.text_about));
}
@SuppressLint("SetTextI18n")
private void setVersionName() {
- mVersion.setText("Version " + BuildConfig.VERSION_NAME);
+ mVersion.setText(BuildConfig.VERSION_NAME);
}
+ @SuppressLint("SetTextI18n")
+ private void setSinceDate() {
+ mSince.setText(BuildConfig.APP_SINCE_DATE);
+ }
+
+ @SuppressLint("NonConstantResourceId")
@Click(R.id.github)
void openGitHub() {
IntentTool.browse(this, getString(R.string.my_github));
}
+ @SuppressLint("NonConstantResourceId")
@Click(R.id.qq)
void openQQToChatWithMe() {
String qq = getString(R.string.qq);
@@ -56,6 +58,7 @@ void openQQToChatWithMe() {
}
}
+ @SuppressLint("NonConstantResourceId")
@Click(R.id.email)
void openEmailToSendMe() {
String email = getString(R.string.email);
@@ -63,40 +66,15 @@ void openEmailToSendMe() {
}
+ @SuppressLint("NonConstantResourceId")
@Click(R.id.share)
void share() {
IntentUtil.shareText(this, getString(R.string.share_app));
}
- @Click(R.id.icon)
- void lol() {
- mLolClickCount++;
- //Toast.makeText(this, R.string.text_lll, Toast.LENGTH_LONG).show();
- if (mLolClickCount >= 5) {
- crashTest();
- //showEasterEgg();
- }
- }
-
- private void showEasterEgg() {
- new MaterialDialog.Builder(this)
- .customView(R.layout.paint_layout, false)
- .show();
- }
-
- private void crashTest() {
- new ThemeColorMaterialDialogBuilder(this)
- .title("Crash Test")
- .positiveText("Crash")
- .onPositive((dialog, which) -> {
- CrashReport.testJavaCrash();
- }).show();
- }
-
+ @SuppressLint("NonConstantResourceId")
@Click(R.id.developer)
void hhh() {
Toast.makeText(this, R.string.text_it_is_the_developer_of_app, Toast.LENGTH_LONG).show();
}
-
-
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/settings/SettingsActivity.java b/app/src/main/java/org/autojs/autojs/ui/settings/SettingsActivity.java
index 177805def..fab7d2309 100644
--- a/app/src/main/java/org/autojs/autojs/ui/settings/SettingsActivity.java
+++ b/app/src/main/java/org/autojs/autojs/ui/settings/SettingsActivity.java
@@ -1,13 +1,15 @@
package org.autojs.autojs.ui.settings;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceScreen;
-import androidx.core.util.Pair;
+
import androidx.appcompat.widget.Toolbar;
-import android.view.View;
+import androidx.core.content.ContextCompat;
+import androidx.core.util.Pair;
import com.stardust.theme.app.ColorSelectActivity;
import com.stardust.theme.preference.ThemeColorPreferenceFragment;
@@ -19,11 +21,11 @@
import org.autojs.autojs.R;
import org.autojs.autojs.ui.BaseActivity;
import org.autojs.autojs.ui.error.IssueReporterActivity;
-import org.autojs.autojs.ui.update.UpdateCheckDialog;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import de.psdev.licensesdialog.LicenseResolver;
import de.psdev.licensesdialog.LicensesDialog;
@@ -32,6 +34,7 @@
/**
* Created by Stardust on 2017/2/2.
*/
+@SuppressLint("NonConstantResourceId")
@EActivity(R.layout.activity_settings)
public class SettingsActivity extends BaseActivity {
@@ -55,13 +58,13 @@ public class SettingsActivity extends BaseActivity {
.add(new Pair<>(R.color.theme_color_brown, R.string.theme_color_brown))
.add(new Pair<>(R.color.theme_color_gray, R.string.theme_color_gray))
.add(new Pair<>(R.color.theme_color_blue_gray, R.string.theme_color_blue_gray))
+ .add(new Pair<>(R.color.theme_color_default, R.string.theme_color_default))
.list();
public static void selectThemeColor(Context context) {
List colorItems = new ArrayList<>(COLOR_ITEMS.size());
for (Pair item : COLOR_ITEMS) {
- colorItems.add(new ColorSelectActivity.ColorItem(context.getString(item.second),
- context.getResources().getColor(item.first)));
+ colorItems.add(new ColorSelectActivity.ColorItem(context.getString(item.second), ContextCompat.getColor(context, item.first)));
}
ColorSelectActivity.startColorSelect(context, context.getString(R.string.mt_color_picker_title), colorItems);
}
@@ -76,21 +79,14 @@ private void setUpToolbar() {
Toolbar toolbar = $(R.id.toolbar);
toolbar.setTitle(R.string.text_setting);
setSupportActionBar(toolbar);
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- toolbar.setNavigationOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- finish();
- }
- });
+ Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
+ toolbar.setNavigationOnClickListener(v -> finish());
}
public static class PreferenceFragment extends ThemeColorPreferenceFragment {
-
private Map ACTION_MAP;
-
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -102,15 +98,12 @@ public void onStart() {
super.onStart();
ACTION_MAP = new MapBuilder()
.put(getString(R.string.text_theme_color), () -> selectThemeColor(getActivity()))
- .put(getString(R.string.text_check_for_updates), () -> new UpdateCheckDialog(getActivity())
- .show())
.put(getString(R.string.text_issue_report), () -> startActivity(new Intent(getActivity(), IssueReporterActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)))
.put(getString(R.string.text_about_me_and_repo), () -> startActivity(new Intent(getActivity(), AboutActivity_.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)))
- .put(getString(R.string.text_licenses), () -> showLicenseDialog())
+ .put(getString(R.string.text_licenses), this::showLicenseDialog)
.build();
}
- @Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
Runnable action = ACTION_MAP.get(preference.getTitle().toString());
if (action != null) {
@@ -127,7 +120,7 @@ private void showLicenseDialog() {
.setNotices(R.raw.licenses)
.setIncludeOwnLicense(true)
.build()
- .showAppCompat();
+ .show();
}
public static class MozillaPublicLicense20 extends License {
diff --git a/app/src/main/java/org/autojs/autojs/ui/timing/TimedTaskSettingActivity.java b/app/src/main/java/org/autojs/autojs/ui/timing/TimedTaskSettingActivity.java
index 35bdb4ae8..2e5e01e6a 100644
--- a/app/src/main/java/org/autojs/autojs/ui/timing/TimedTaskSettingActivity.java
+++ b/app/src/main/java/org/autojs/autojs/ui/timing/TimedTaskSettingActivity.java
@@ -72,12 +72,11 @@ public class TimedTaskSettingActivity extends BaseActivity {
public static final String EXTRA_TASK_ID = TaskReceiver.EXTRA_TASK_ID;
private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormat.forPattern("HH:mm");
- private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormat.forPattern("yy-MM-dd");
+ private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd");
private static final int REQUEST_CODE_IGNORE_BATTERY = 27101;
private static final String LOG_TAG = "TimedTaskSettings";
-
public static final Map ACTION_DESC_MAP = new MapBuilder()
.put(DynamicBroadcastReceivers.ACTION_STARTUP, R.string.text_run_on_startup)
.put(Intent.ACTION_BOOT_COMPLETED, R.string.text_run_on_boot)
@@ -296,10 +295,13 @@ void showDisposableTaskTimePicker() {
@Click(R.id.disposable_task_date_container)
void showDisposableTaskDatePicker() {
LocalDate date = DATE_FORMATTER.parseLocalDate(mDisposableTaskDate.getText().toString());
- new DatePickerDialog(this, (view, year, month, dayOfMonth) ->
- mDisposableTaskDate.setText(DATE_FORMATTER.print(new LocalDate(year, month, dayOfMonth)))
- , date.getYear(), date.getMonthOfYear() - 1, date.getDayOfMonth())
- .show();
+ new DatePickerDialog(
+ this,
+ (view, year, month, dayOfMonth) -> mDisposableTaskDate.setText(DATE_FORMATTER.print(new LocalDate(year, month + 1, dayOfMonth))),
+ date.getYear(),
+ date.getMonthOfYear() - 1,
+ date.getDayOfMonth()
+ ).show();
}
TimedTask createTimedTask() {
diff --git a/app/src/main/java/org/autojs/autojs/ui/update/UpdateCheckDialog.java b/app/src/main/java/org/autojs/autojs/ui/update/UpdateCheckDialog.java
deleted file mode 100644
index 85951aef3..000000000
--- a/app/src/main/java/org/autojs/autojs/ui/update/UpdateCheckDialog.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.autojs.autojs.ui.update;
-
-import android.content.Context;
-import android.widget.Toast;
-
-import com.afollestad.materialdialogs.MaterialDialog;
-import com.stardust.app.GlobalAppContext;
-import org.autojs.autojs.App;
-import org.autojs.autojs.R;
-import org.autojs.autojs.network.VersionService;
-import org.autojs.autojs.network.entity.VersionInfo;
-import org.autojs.autojs.tool.SimpleObserver;
-
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.annotations.NonNull;
-
-/**
- * Created by Stardust on 2017/9/20.
- */
-
-public class UpdateCheckDialog {
-
- private MaterialDialog mProgress;
- private Context mContext;
-
- public UpdateCheckDialog(Context context) {
- mProgress = new MaterialDialog.Builder(context)
- .progress(true, 0)
- .content(R.string.text_checking_update)
- .build();
- }
-
- public void show() {
- mProgress.show();
- VersionService.getInstance()
- .checkForUpdates()
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(new SimpleObserver() {
- @Override
- public void onNext(@NonNull VersionInfo versionInfo) {
- mProgress.dismiss();
- if (versionInfo.isNewer()) {
- new UpdateInfoDialogBuilder(mContext, versionInfo)
- .show();
- } else {
- Toast.makeText(GlobalAppContext.get(), R.string.text_is_latest_version, Toast.LENGTH_SHORT).show();
- }
- }
-
- @Override
- public void onError(@NonNull Throwable e) {
- e.printStackTrace();
- mProgress.dismiss();
- Toast.makeText(GlobalAppContext.get(), R.string.text_check_update_error, Toast.LENGTH_SHORT).show();
- }
- });
- }
-}
diff --git a/app/src/main/java/org/autojs/autojs/ui/update/UpdateInfoDialogBuilder.java b/app/src/main/java/org/autojs/autojs/ui/update/UpdateInfoDialogBuilder.java
deleted file mode 100644
index 8fa166fe8..000000000
--- a/app/src/main/java/org/autojs/autojs/ui/update/UpdateInfoDialogBuilder.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package org.autojs.autojs.ui.update;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
-import androidx.annotation.NonNull;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.Button;
-import android.widget.CheckBox;
-import android.widget.CompoundButton;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.afollestad.materialdialogs.MaterialDialog;
-import com.stardust.util.IntentUtil;
-
-import org.autojs.autojs.BuildConfig;
-import org.autojs.autojs.Pref;
-import org.autojs.autojs.R;
-import org.autojs.autojs.external.fileprovider.AppFileProvider;
-import org.autojs.autojs.network.download.DownloadManager;
-import org.autojs.autojs.network.entity.VersionInfo;
-import org.autojs.autojs.tool.IntentTool;
-import org.autojs.autojs.ui.widget.CommonMarkdownView;
-
-import java.io.File;
-
-import io.reactivex.android.schedulers.AndroidSchedulers;
-
-/**
- * Created by Stardust on 2017/4/9.
- */
-
-public class UpdateInfoDialogBuilder extends MaterialDialog.Builder {
-
- private static final String KEY_DO_NOT_ASK_AGAIN_FOR_VERSION = "I cannot forget you...cannot help missing you...";
- private View mView;
- private SharedPreferences mSharedPreferences;
- private VersionInfo mVersionInfo;
-
- public UpdateInfoDialogBuilder(@NonNull Context context, VersionInfo info) {
- super(context);
- mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
- updateInfo(info);
- }
-
- public UpdateInfoDialogBuilder updateInfo(VersionInfo info) {
- mVersionInfo = info;
- mView = View.inflate(context, R.layout.dialog_update_info, null);
- setReleaseNotes(mView, info);
- setCurrentVersionIssues(mView, info);
- setUpdateDownloadButtons(mView, info);
- title(context.getString(R.string.text_new_version) + " " + info.versionName);
- customView(mView, false);
- return this;
- }
-
- public UpdateInfoDialogBuilder showDoNotAskAgain() {
- mView.findViewById(R.id.do_not_ask_again_container).setVisibility(View.VISIBLE);
- CheckBox checkBox = (CheckBox) mView.findViewById(R.id.do_not_ask_again);
- checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- mSharedPreferences.edit().putBoolean(KEY_DO_NOT_ASK_AGAIN_FOR_VERSION + mVersionInfo.versionCode, isChecked).apply();
- }
- });
- return this;
- }
-
- @Override
- public MaterialDialog show() {
- if (mSharedPreferences.getBoolean(KEY_DO_NOT_ASK_AGAIN_FOR_VERSION + mVersionInfo.versionCode, false)) {
- return null;
- }
- return super.show();
- }
-
- private void setCurrentVersionIssues(View view, VersionInfo info) {
- TextView issues = (TextView) view.findViewById(R.id.issues);
- VersionInfo.OldVersion currentVersion = info.getOldVersion(BuildConfig.VERSION_CODE);
- if (currentVersion == null) {
- issues.setVisibility(View.GONE);
- } else {
- issues.setText(currentVersion.issues);
- }
- }
-
- private void setUpdateDownloadButtons(View view, VersionInfo info) {
- LinearLayout downloads = (LinearLayout) view.findViewById(R.id.downloads);
- setDirectlyDownloadButton(downloads, info);
- for (final VersionInfo.Download download : info.downloads) {
- Button button = (Button) View.inflate(getContext(), R.layout.dialog_update_info_btn, null);
- button.setText(download.name);
- downloads.addView(button);
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- IntentTool.browse(v.getContext(), download.url);
- }
- });
- }
- }
-
- private void setDirectlyDownloadButton(LinearLayout container, final VersionInfo info) {
- if (TextUtils.isEmpty(info.downloadUrl)) {
- return;
- }
- Button button = (Button) View.inflate(getContext(), R.layout.dialog_update_info_btn, null);
- button.setText(R.string.text_directly_download);
- button.setOnClickListener(v -> directlyDownload(info.downloadUrl));
- container.addView(button);
- }
-
- @SuppressLint("CheckResult")
- private void directlyDownload(String downloadUrl) {
- final String path = new File(Pref.getScriptDirPath(), "AutoJs.apk").getPath();
- DownloadManager.getInstance().downloadWithProgress(getContext(), downloadUrl, path)
- .subscribeOn(AndroidSchedulers.mainThread())
- .subscribe(file -> IntentUtil.installApkOrToast(getContext(), file.getPath(), AppFileProvider.AUTHORITY),
- error -> {
- error.printStackTrace();
- Toast.makeText(getContext(), R.string.text_download_failed, Toast.LENGTH_SHORT).show();
- });
-
- }
-
-
- private void setReleaseNotes(View view, VersionInfo info) {
- CommonMarkdownView markdownView = view.findViewById(R.id.release_notes);
- markdownView.loadMarkdown(info.releaseNotes);
- }
-}
diff --git a/app/src/main/java/org/autojs/autojs/ui/update/VersionGuard.java b/app/src/main/java/org/autojs/autojs/ui/update/VersionGuard.java
deleted file mode 100644
index 57796b4a8..000000000
--- a/app/src/main/java/org/autojs/autojs/ui/update/VersionGuard.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package org.autojs.autojs.ui.update;
-
-import android.app.Activity;
-
-import androidx.annotation.NonNull;
-
-import com.afollestad.materialdialogs.DialogAction;
-import com.afollestad.materialdialogs.MaterialDialog;
-import org.autojs.autojs.BuildConfig;
-import org.autojs.autojs.R;
-import org.autojs.autojs.network.VersionService;
-import org.autojs.autojs.network.entity.VersionInfo;
-import org.autojs.autojs.tool.SimpleObserver;
-
-import io.reactivex.android.schedulers.AndroidSchedulers;
-
-/**
- * Created by Stardust on 2017/4/12.
- */
-
-public class VersionGuard {
-
- private Activity mActivity;
- private MaterialDialog mDeprecatedDialog;
- private VersionService mVersionService = VersionService.getInstance();
-
- public VersionGuard(Activity activity) {
- mActivity = activity;
- }
-
- public void checkForDeprecatesAndUpdates() {
- mVersionService.readDeprecatedFromPrefIfNeeded(mActivity);
- if (mVersionService.isCurrentVersionDeprecated()) {
- showDeprecatedDialogIfNeeded();
- } else {
- checkForUpdatesIfNeeded();
- }
- }
-
- private void checkForUpdatesIfNeeded() {
- mVersionService.checkForUpdatesIfNeededAndUsingWifi(mActivity)
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(new SimpleObserver() {
-
- @Override
- public void onNext(@io.reactivex.annotations.NonNull VersionInfo versionInfo) {
- if (mVersionService.isCurrentVersionDeprecated()) {
- showDeprecatedDialogIfNeeded();
- } else {
- showUpdateInfoIfNeeded(versionInfo);
- }
- }
-
- });
- }
-
- private void showUpdateInfoIfNeeded(org.autojs.autojs.network.entity.VersionInfo info) {
- if (BuildConfig.VERSION_CODE < info.versionCode) {
- new UpdateInfoDialogBuilder(mActivity, info)
- .showDoNotAskAgain()
- .show();
- }
- }
-
- private void showDeprecatedDialogIfNeeded() {
- if (mDeprecatedDialog != null && mDeprecatedDialog.isShowing())
- return;
- String content = mActivity.getString(R.string.warning_version_too_old);
- String issues = mVersionService.getCurrentVersionIssues();
- if (issues != null) {
- content += "\n" + issues;
- }
- mDeprecatedDialog = new MaterialDialog.Builder(mActivity)
- .title(R.string.text_version_too_old)
- .content(content)
- .positiveText(R.string.text_update)
- .negativeText(R.string.text_exit)
- .cancelable(false)
- .autoDismiss(false)
- .onAny((dialog, which) -> {
- if (which == DialogAction.POSITIVE) {
- new UpdateCheckDialog(mActivity)
- .show();
- } else {
- mActivity.finish();
- }
- })
- .dismissListener(dialog -> mDeprecatedDialog = null)
- .show();
- }
-}
diff --git a/app/src/main/java/org/autojs/autojs/ui/user/LoginActivity.java b/app/src/main/java/org/autojs/autojs/ui/user/LoginActivity.java
index d811567e0..9ae4d447e 100644
--- a/app/src/main/java/org/autojs/autojs/ui/user/LoginActivity.java
+++ b/app/src/main/java/org/autojs/autojs/ui/user/LoginActivity.java
@@ -18,7 +18,6 @@
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.ViewById;
-import org.w3c.dom.Node;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
@@ -53,7 +52,7 @@ void login() {
}
MaterialDialog dialog = new MaterialDialog.Builder(this)
.progress(true, 0)
- .content(R.string.text_logining)
+ .content(R.string.text_logging_in)
.cancelable(false)
.show();
UserService.getInstance().login(userName, password)
diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/PrefSwitch.java b/app/src/main/java/org/autojs/autojs/ui/widget/PrefSwitch.java
index bb85fa56c..f1fa6ee8c 100644
--- a/app/src/main/java/org/autojs/autojs/ui/widget/PrefSwitch.java
+++ b/app/src/main/java/org/autojs/autojs/ui/widget/PrefSwitch.java
@@ -3,7 +3,7 @@
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.TypedArray;
-import android.preference.PreferenceManager;
+import androidx.preference.PreferenceManager;
import android.util.AttributeSet;
import com.stardust.theme.ThemeColor;
@@ -43,7 +43,7 @@ private void init(AttributeSet attrs) {
return;
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.PrefSwitch);
mPrefKey = a.getString(R.styleable.PrefSwitch_key);
- mDefaultChecked = a.getBoolean(R.styleable.PrefSwitch_defaultValue, false);
+ mDefaultChecked = a.getBoolean(R.styleable.PrefSwitch_defaultVal, false);
if (mPrefKey != null) {
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
mSharedPreferences.registerOnSharedPreferenceChangeListener(this);
diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/ScrollAwareFABBehavior.java b/app/src/main/java/org/autojs/autojs/ui/widget/ScrollAwareFABBehavior.java
index 7a2c10885..901eea0f0 100644
--- a/app/src/main/java/org/autojs/autojs/ui/widget/ScrollAwareFABBehavior.java
+++ b/app/src/main/java/org/autojs/autojs/ui/widget/ScrollAwareFABBehavior.java
@@ -22,6 +22,10 @@ public class ScrollAwareFABBehavior extends FloatingActionButton.Behavior {
private boolean mHidden = false;
public ScrollAwareFABBehavior(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public ScrollAwareFABBehavior() {
super();
}
diff --git a/app/src/main/res/drawable/mt_circle.xml b/app/src/main/res/drawable/mt_circle.xml
new file mode 100644
index 000000000..994ffe25b
--- /dev/null
+++ b/app/src/main/res/drawable/mt_circle.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/mt_ic_check_white_36dp.png b/app/src/main/res/drawable/mt_ic_check_white_36dp.png
new file mode 100644
index 000000000..9b91350bc
Binary files /dev/null and b/app/src/main/res/drawable/mt_ic_check_white_36dp.png differ
diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml
index e5fb4498b..bee843f0e 100644
--- a/app/src/main/res/layout/activity_about.xml
+++ b/app/src/main/res/layout/activity_about.xml
@@ -1,95 +1,110 @@
-
+
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="#f9f9f9"
+ android:fitsSystemWindows="true"
+ android:orientation="vertical">
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:theme="@style/AppTheme.AppBarOverlay">
+ android:id="@+id/toolbar"
+ android:layout_width="match_parent"
+ android:layout_height="?attr/actionBarSize"
+ android:background="?attr/colorPrimary"
+ android:theme="@style/ToolBarStyle"
+ app:popupTheme="@style/AppTheme.PopupOverlay"
+ app:title="@string/text_about" />
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_margin="16dp"
+ android:orientation="vertical">
+ android:id="@+id/icon_container"
+ android:layout_width="match_parent"
+ android:layout_height="220dp"
+ android:background="@android:color/white"
+ android:clickable="true"
+ android:foreground="?selectableItemBackgroundBorderless"
+ android:focusable="true">
+ android:id="@+id/icon"
+ android:layout_width="91dp"
+ android:layout_height="91dp"
+ android:src="@drawable/autojs_material"
+ tools:ignore="ContentDescription"
+ android:layout_centerInParent="true" />
+
+
+ android:id="@+id/since"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/icon"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="36dp"
+ android:gravity="center"
+ android:textColor="#616161"
+ android:textSize="12sp" />
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
-
+
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:gravity="center"
+ android:text="@string/copyright"
+ android:textColor="#616161"
+ android:textSize="13sp" />
+ android:id="@+id/share"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="16dp"
+ android:clickable="true"
+ android:src="@drawable/ic_share_white_48dp"
+ app:layout_anchor="@id/icon_container"
+ app:layout_anchorGravity="bottom|right|end"
+ android:alpha="0.9"
+ android:focusable="true" />
diff --git a/app/src/main/res/layout/activity_about_items.xml b/app/src/main/res/layout/activity_about_items.xml
index e52c0ae42..a4acf8b24 100644
--- a/app/src/main/res/layout/activity_about_items.xml
+++ b/app/src/main/res/layout/activity_about_items.xml
@@ -1,112 +1,122 @@
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="12dp"
+ android:background="@android:color/white"
+ android:orientation="vertical">
+ android:id="@+id/developer"
+ android:layout_width="match_parent"
+ android:layout_height="52dp"
+ android:background="?selectableItemBackground"
+ android:clickable="true"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:focusable="true">
+ android:layout_width="20dp"
+ android:layout_height="20dp"
+ android:layout_margin="16dp"
+ android:src="@drawable/ic_developer"
+ tools:ignore="ContentDescription" />
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/developer"
+ android:textColor="@android:color/secondary_text_light"
+ android:textSize="16sp" />
-
+
+ android:id="@+id/github"
+ android:layout_width="match_parent"
+ android:layout_height="52dp"
+ android:clickable="true"
+ android:foreground="?selectableItemBackground"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ tools:ignore="UseCompoundDrawables"
+ android:focusable="true">
+ android:layout_width="20dp"
+ android:layout_height="20dp"
+ android:layout_margin="16dp"
+ android:src="@drawable/ic_github_mark"
+ tools:ignore="ContentDescription" />
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/github"
+ android:textColor="@android:color/secondary_text_light"
+ android:textSize="16sp" />
-
+
+ android:id="@+id/email"
+ android:layout_width="match_parent"
+ android:layout_height="52dp"
+ android:background="?selectableItemBackground"
+ android:clickable="true"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:focusable="true">
+ android:layout_width="20dp"
+ android:layout_height="20dp"
+ android:layout_margin="16dp"
+ android:src="@drawable/ic_email_black_48dp"
+ tools:ignore="ContentDescription" />
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/email"
+ android:textColor="@android:color/secondary_text_light"
+ android:textIsSelectable="true"
+ android:textSize="16sp" />
-
+
+ android:id="@+id/qq"
+ android:layout_width="match_parent"
+ android:layout_height="52dp"
+ android:background="?selectableItemBackground"
+ android:clickable="true"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:focusable="true">
+ android:layout_width="20dp"
+ android:layout_height="20dp"
+ android:layout_margin="16dp"
+ android:src="@drawable/ic_qq_black"
+ tools:ignore="ContentDescription" />
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/qq"
+ android:textColor="@android:color/secondary_text_light"
+ android:textIsSelectable="true"
+ android:textSize="16sp" />
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 8ada97c47..2edac342c 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,85 +1,85 @@
-
-
-
+ tools:context="org.autojs.autojs.ui.main.MainActivity">
-
+ android:layout_height="match_parent"
+ android:clipChildren="false"
+ android:clipToPadding="false">
-
+ android:layout_height="wrap_content"
+ android:paddingTop="16dp"
+ android:theme="@style/AppTheme.AppBarOverlay">
+
+
+ android:id="@+id/tab"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ app:tabGravity="fill"
+ app:tabIndicatorColor="@color/tab_indicator"
+ app:tabMode="fixed"
+ app:tabSelectedTextColor="@color/tab_indicator"
+ app:tabTextColor="@color/tab_text" />
+ android:id="@+id/viewpager"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior" />
+ android:id="@+id/fab"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="end|bottom"
+ android:layout_margin="16dp"
+ android:src="@drawable/ic_add_white_48dp"
+ app:backgroundTint="@color/colorPrimary"
+ app:layout_anchor="@id/viewpager"
+ app:layout_anchorGravity="bottom|right|end"
+ app:layout_behavior="org.autojs.autojs.ui.widget.ScrollAwareFABBehavior"
+ android:alpha="0.9" />
+ android:id="@+id/floating_action_menu"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="end|bottom"
+ android:layout_margin="16dp"
+ android:clipChildren="false"
+ android:clipToPadding="false"
+ android:visibility="invisible"
+ app:layout_anchor="@id/viewpager"
+ app:layout_anchorGravity="bottom|right|end" />
-
+
diff --git a/app/src/main/res/layout/activity_timed_task_setting.xml b/app/src/main/res/layout/activity_timed_task_setting.xml
index 9708aa8a1..97ae4d391 100644
--- a/app/src/main/res/layout/activity_timed_task_setting.xml
+++ b/app/src/main/res/layout/activity_timed_task_setting.xml
@@ -1,249 +1,254 @@
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:theme="@style/AppTheme.AppBarOverlay">
+ android:id="@+id/toolbar"
+ android:layout_width="match_parent"
+ android:layout_height="?attr/actionBarSize"
+ android:background="?attr/colorPrimary"
+ android:theme="@style/ToolBarStyle"
+ app:popupTheme="@style/AppTheme.PopupOverlay" />
-
-
-
+ android:layout_height="match_parent">
-
+ android:orientation="vertical">
-
+ android:layout_marginLeft="6dp"
+ android:layout_marginTop="12dp"
+ android:layout_marginRight="6dp"
+ app:cardCornerRadius="2dp"
+ app:cardElevation="1dp"
+ app:cardUseCompatPadding="true">
-
+ android:orientation="vertical"
+ android:padding="16dp">
+
+
+ android:id="@+id/timing_group"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+ android:id="@+id/daily_task_radio"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="16dp"
+ android:text="@string/text_daily_task"
+ tools:ignore="RtlSymmetry" />
-
-
+ app:ael_expanded="false"
+ app:ael_interpolator="fastOutSlowIn"
+ app:ael_orientation="vertical">
+
+
+ android:id="@+id/disposable_task_radio"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="16dp"
+ android:text="@string/text_disposable_task"
+ tools:ignore="RtlSymmetry" />
-
-
+ android:layout_marginStart="36dp"
+ app:ael_expanded="false"
+ app:ael_interpolator="fastOutSlowIn"
+ app:ael_orientation="vertical">
+
+
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_gravity="center_vertical"
+ android:gravity="center"
+ android:src="@drawable/ic_schedule_black_48dp" />
+ android:id="@+id/disposable_task_time"
+ android:layout_width="match_parent"
+ android:layout_height="36dp"
+ android:layout_marginStart="12dp"
+ android:gravity="center_vertical"
+ android:textColor="?android:textColorPrimary"
+ android:textSize="16sp" />
+ android:id="@+id/disposable_task_date_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/disposable_task_time_container"
+ android:layout_alignParentBottom="true"
+ android:background="?selectableItemBackground"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:paddingTop="6dp">
+ android:id="@+id/disposable_task_date_icon"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_gravity="center_vertical"
+ android:gravity="center"
+ android:src="@drawable/ic_date_range_black_48dp" />
+ android:id="@+id/disposable_task_date"
+ android:layout_width="match_parent"
+ android:layout_height="36dp"
+ android:layout_marginStart="12dp"
+ android:gravity="center_vertical"
+ android:textColor="?android:textColorPrimary"
+ android:textSize="16sp" />
+ android:id="@+id/weekly_task_radio"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="16dp"
+ android:text="@string/text_weekly_task"
+ tools:ignore="RtlSymmetry" />
-
-
+ app:ael_expanded="false"
+ app:ael_interpolator="fastOutSlowIn"
+ app:ael_orientation="vertical">
-
+ android:orientation="vertical">
+
+
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="25dp"
+ android:orientation="horizontal"
+ android:weightSum="4">
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="@string/text_day1"
+ tools:ignore="TooDeepLayout" />
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="@string/text_day2" />
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="@string/text_day3" />
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="@string/text_day4" />
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="25dp"
+ android:orientation="horizontal"
+ android:weightSum="4">
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="@string/text_day5" />
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="@string/text_day6" />
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="@string/text_day7" />
@@ -253,176 +258,193 @@
+ android:id="@+id/run_on_broadcast"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="16dp"
+ android:text="@string/text_run_on_broadcast"
+ tools:ignore="RtlSymmetry" />
-
-
+ app:ael_expanded="false"
+ app:ael_interpolator="fastOutSlowIn"
+ app:ael_orientation="vertical">
-
-
+ android:orientation="vertical">
+ android:id="@+id/run_on_startup"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_startup"
+ tools:ignore="RtlSymmetry" />
+ android:id="@+id/run_on_boot"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_boot"
+ tools:ignore="RtlSymmetry" />
+ android:id="@+id/run_on_screen_on"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_screen_on"
+ tools:ignore="RtlSymmetry" />
+ android:id="@+id/run_on_screen_off"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_screen_off"
+ tools:ignore="RtlSymmetry" />
+ android:id="@+id/run_on_screen_unlock"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_screen_unlock"
+ tools:ignore="RtlSymmetry" />
+ android:id="@+id/run_on_battery_change"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_battery_change"
+ tools:ignore="RtlSymmetry" />
+ android:id="@+id/run_on_power_connect"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_power_connect"
+ tools:ignore="RtlSymmetry" />
+ android:id="@+id/run_on_power_disconnect"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_power_disconnect"
+ tools:ignore="RtlSymmetry" />
+ android:id="@+id/run_on_conn_change"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_conn_change"
+ tools:ignore="RtlSymmetry" />
+ android:id="@+id/run_on_package_install"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_package_install"
+ tools:ignore="RtlSymmetry" />
+ android:id="@+id/run_on_package_uninstall"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_package_uninstall"
+ tools:ignore="RtlSymmetry" />
+ android:id="@+id/run_on_package_update"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_package_update"
+ tools:ignore="RtlSymmetry" />
+ android:id="@+id/run_on_headset_plug"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_headset_plug"
+ tools:ignore="RtlSymmetry" />
+ android:id="@+id/run_on_config_change"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_config_change"
+ tools:ignore="RtlSymmetry" />
+ android:id="@+id/run_on_time_tick"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:paddingStart="8dp"
+ android:text="@string/text_run_on_time_tick"
+ tools:ignore="RtlSymmetry" />
+
+
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="36dp"
+ android:layout_marginTop="2dp"
+ android:hint="@string/text_broadcast_action">
+ android:id="@+id/action"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:maxLines="2"
+ android:text="@string/text_broadcast_action_prefix" />
diff --git a/app/src/main/res/layout/fragment_drawer.xml b/app/src/main/res/layout/fragment_drawer.xml
index 98d0f1861..b270edbf4 100644
--- a/app/src/main/res/layout/fragment_drawer.xml
+++ b/app/src/main/res/layout/fragment_drawer.xml
@@ -1,137 +1,140 @@
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="304dp"
+ android:layout_height="match_parent"
+ android:background="?android:windowBackground"
+ android:clickable="true"
+ android:fitsSystemWindows="false"
+ android:importantForAccessibility="no"
+ android:orientation="vertical"
+ android:focusable="true">
+ android:id="@+id/header"
+ android:layout_width="match_parent"
+ android:layout_height="25dp"
+ android:layout_marginBottom="5dp">
-
-
-
-
-
-
+ android:id="@+id/shadow"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/drawer_header_shadow"
+ android:visibility="gone" />
-
-
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:background="?android:divider" />
+ android:layout_width="match_parent"
+ android:layout_height="44dp"
+ android:layout_gravity="bottom"
+ android:baselineAligned="false">
+ android:id="@+id/setting"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:background="?selectableItemBackground"
+ android:gravity="center"
+ android:orientation="horizontal"
+ android:onClick="startSettingActivity">
+ android:layout_width="20dp"
+ android:layout_height="20dp"
+ android:layout_gravity="center_vertical"
+ android:layout_marginEnd="12dp"
+ android:src="@drawable/ic_ali_settings"
+ app:tint="#666666"
+ tools:ignore="ContentDescription" />
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:gravity="center"
+ android:text="@string/text_setting"
+ android:textColor="?android:textColorPrimary"
+ android:textSize="15sp" />
+ android:id="@+id/restart"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:background="?selectableItemBackground"
+ android:gravity="center"
+ android:orientation="horizontal"
+ android:onClick="restartAfterPendingIntent">
+ android:layout_width="20dp"
+ android:layout_height="20dp"
+ android:layout_gravity="center_vertical"
+ android:layout_marginEnd="12dp"
+ android:src="@drawable/ic_refresh_white_24dp"
+ app:tint="#666666"
+ tools:ignore="ContentDescription" />
+
+
+
+ android:orientation="horizontal"
+ android:onClick="exitCompletely">
+
+
+
+
diff --git a/app/src/main/res/layout/item_topic.xml b/app/src/main/res/layout/item_topic.xml
deleted file mode 100644
index 104da64ab..000000000
--- a/app/src/main/res/layout/item_topic.xml
+++ /dev/null
@@ -1,138 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/mt_activity_color_select.xml b/app/src/main/res/layout/mt_activity_color_select.xml
new file mode 100644
index 000000000..dec4555c7
--- /dev/null
+++ b/app/src/main/res/layout/mt_activity_color_select.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/mt_color_setting_recycler_view_item.xml b/app/src/main/res/layout/mt_color_setting_recycler_view_item.xml
new file mode 100644
index 000000000..d8ec52af6
--- /dev/null
+++ b/app/src/main/res/layout/mt_color_setting_recycler_view_item.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/mt_theme_color_check_box_preference.xml b/app/src/main/res/layout/mt_theme_color_check_box_preference.xml
new file mode 100644
index 000000000..2d974caf1
--- /dev/null
+++ b/app/src/main/res/layout/mt_theme_color_check_box_preference.xml
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preference_category_custom.xml b/app/src/main/res/layout/preference_category_custom.xml
index 9f10b0afb..291aa5cd1 100644
--- a/app/src/main/res/layout/preference_category_custom.xml
+++ b/app/src/main/res/layout/preference_category_custom.xml
@@ -6,13 +6,14 @@
android:orientation="vertical">
diff --git a/app/src/main/res/menu/menu_script_options.xml b/app/src/main/res/menu/menu_script_options.xml
index 2e31fe8f0..97beaf9e7 100644
--- a/app/src/main/res/menu/menu_script_options.xml
+++ b/app/src/main/res/menu/menu_script_options.xml
@@ -1,10 +1,6 @@