Status Update
Comments
ji...@gmail.com <ji...@gmail.com> #2
Some things to work out before making the annotations type-use:
- Determine guidelines for type nullability in public API
- Determine rules for when type nullability can change in public API
- Confirm that intellij nullability lint works as expected for type-use nullability annotations
- Test what the impact would be on existing arrays (due to ambiguities of type-use annotations on arrays)
- Confirm usage of type-use
androidx.annotation.NonNull/Nullable
in metalava won't break anything for platform
ji...@gmail.com <ji...@gmail.com> #4
ji...@gmail.com <ji...@gmail.com> #5 Restricted
ji...@gmail.com <ji...@gmail.com> #6
Branch: androidx-main
commit c8f5025ba9bf1deb5effbebb7e79683ee7ff9f50
Author: Julia McClellan <juliamcclellan@google.com>
Date: Fri Sep 20 12:31:45 2024
Add JSpecify package-list
Bug: 326456246
Test: checking links in output of `./gradlew docs-tip-of-tree:docs` with aosp/3190072 which switches annotations to jspecify
Change-Id: Ic52ecc37cfb84002ba830dfca6186db2dc5bae67
M buildSrc/private/src/main/kotlin/androidx/build/dackka/DackkaTask.kt
A docs-public/package-lists/jspecify/package-list
mk...@google.com <mk...@google.com> #7
Branch: androidx-main
commit b05578cabee04fdccd2f24c7e2d6a8b25b94a97a
Author: Julia McClellan <juliamcclellan@google.com>
Date: Mon Sep 23 11:21:48 2024
Add java format task
Will be used by the jspecify update script
Bug: 326456246
Test: `./gradlew core:core:javaFormat`, `./gradlew core:core:javaFormat --fix-imports-only` to check java diffs. `./gradlew paging:paging-guava:javaFormat` to check the task succeeds for a project with no java files
Change-Id: I6027419d4ad520a4bd82decd009d252b7077d8a6
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
A buildSrc/private/src/main/kotlin/androidx/build/JavaFormat.kt
M gradle/libs.versions.toml
ji...@gmail.com <ji...@gmail.com> #8
Branch: androidx-main
commit 7d0e9ad06dd1a8372872053b882be71ec2208df7
Author: Julia McClellan <juliamcclellan@google.com>
Date: Fri Sep 20 13:55:03 2024
Add script to migrate projects to JSpecify
This script runs lint to update usage of AndroidX nullness annotations to type-use position, switches the imports to point to JSpecify, and adds a dependency in each build.gradle file.
Bug: 326456246
Test: `development/jspecify_update.py` runs over all projects and created aosp/3190072. Tested `development/jspecify_update.py cursoradapter` to run over a specific directory.
Change-Id: Id0b0620d4d2dd12f88bdd6ece6885b8abb7b7843
A development/jspecify_update.py
ap...@google.com <ap...@google.com> #9
Branch: androidx-main
commit 619650cc911ddda040d11f5162d6cdd3bcd48b04
Author: Julia McClellan <juliamcclellan@google.com>
Date: Mon Sep 23 11:38:03 2024
Add kotlin compiler args for JSpecify
These arguments make the kotlin compiler enforce correct usage of jspecify nullness annotations. They will become default in language version 2.1 but are needed until then.
Bug: 326456246
Test: Local testing of running `compileKotlin` when using jspecify nullness incorrectly
Change-Id: I635baf825df0e67d489879dcb2e812b3ee3cffb4
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
ap...@google.com <ap...@google.com> #10
Project: platform/frameworks/support
Branch: androidx-main
Author: Julia McClellan <
Link:
Migrate cursoradapter to use JSpecify annotations
Expand for full commit details
Migrate cursoradapter to use JSpecify annotations
CL created by running `development/jspecify_update.py cursoradapter`
This is the first test of switching to JSpecify annotations. cursoradapter was chosen to check that google3 drops go smoothly because:
* Only a few files need updating
* There have been no recent code updates so merge conflicts are unlikely
* There are usages of it in google3
* No other libraries have a tip-of-tree dependency on it
Bug: 326456246
Test: `checkApi`, `lint`, `runErrorProne` for `cursoradapter:cursoradapter`
Relnote: "This library now uses [JSpecify nullness annotations](https://jspecify.dev/), which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode"
Change-Id: I02c0c11b0cd80d4a725dc78bb1cff0de937927cf
Files:
- M
cursoradapter/cursoradapter/build.gradle
- M
cursoradapter/cursoradapter/src/main/java/androidx/cursoradapter/widget/CursorAdapter.java
- M
cursoradapter/cursoradapter/src/main/java/androidx/cursoradapter/widget/CursorFilter.java
- M
cursoradapter/cursoradapter/src/main/java/androidx/cursoradapter/widget/ResourceCursorAdapter.java
- M
cursoradapter/cursoradapter/src/main/java/androidx/cursoradapter/widget/SimpleCursorAdapter.java
Hash: 7be429cb0f283d0ba3f2dfcc3355e7a5eea47a6c
Date: Mon Sep 23 12:09:09 2024
ap...@google.com <ap...@google.com> #11
It seems
Here is the error we get when trying to roll the commit (
ERROR Unresolved dependencies.
//third_party/androidx:androidx_cursoradapter_cursoradapter_java__classes(//build/toolchain/android:android_clang_arm)
needs //third_party/android_deps:org_jspecify_jspecify_java(//build/toolchain/android:android_clang_arm
Don't really know how to fix this dependency, is this something you've seen somewhere else ?
ap...@google.com <ap...@google.com> #12
It looks like you need to add JSpecify as a dependency somewhere. I'm not familiar with WebRTC, what are you trying to merge the commit into, and do you know how new dependencies are normally handled? What build system is it using?
To drop the library to g3, we needed to manually add the new dependency to the BUILD
file for the library (cl/681488587).
ap...@google.com <ap...@google.com> #13
what are you trying to merge the commit into
So this is a bit convoluted, the commit got in Chromium with
What build system is it using?
The build system is gn (the same as Chromium).
do you know how new dependencies are normally handled?
Usually new dependencies added in androidx are transparent to WebRTC. I'm actually not sure where the library is defined in the first place.
ap...@google.com <ap...@google.com> #14
FYI issue is fixed @head (no idea how it got fixed), sorry for the spam.
ap...@google.com <ap...@google.com> #15
I will be adding the dependency to most other AndroidX libraries, so if this comes up again we can try to figure out what changed -- from looking at the build history, it seems to have switched from the dependency error to a different error later in the build with changes
ap...@google.com <ap...@google.com> #16
When I fixed this one then it just worked ¯\_(ツ)_/¯
> so if this comes up again we can try to figure out what changed
SG, thank you !
ji...@gmail.com <ji...@gmail.com> #17
Project: platform/frameworks/support
Branch: androidx-main
Author: Julia McClellan <
Link:
Migrate benchmark to use JSpecify annotations
Expand for full commit details
Migrate benchmark to use JSpecify annotations
CL created by running `development/jspecify_update.py benchmark`
We are updating all AndroidX libraries to use the Jspecify nullness annotations (https://docs.google.com/document/d/1XjainD032hUdCfgXIzRThHvP9FJANYuocKaTDXWuLXo/edit?usp=sharing)
Bug: 326456246
Test: `checkApi`, `lint`, `runErrorProne`
Relnote: "This library now uses [JSpecify nullness annotations](https://jspecify.dev/), which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode"
Change-Id: I7104f0ca68a72a7e996b79f1609cde685e6c61e6
Files:
- M
benchmark/benchmark-common/build.gradle
- M
benchmark/benchmark-common/src/main/java/androidx/benchmark/simpleperf/ProfileSession.java
- M
benchmark/benchmark-common/src/main/java/androidx/benchmark/simpleperf/RecordOptions.java
- M
benchmark/benchmark-common/src/main/java/androidx/benchmark/vmtrace/ByteBufferUtil.java
- M
benchmark/benchmark-common/src/main/java/androidx/benchmark/vmtrace/MethodInfo.java
- M
benchmark/benchmark-common/src/main/java/androidx/benchmark/vmtrace/VmTraceHandler.java
- M
benchmark/benchmark-common/src/main/java/androidx/benchmark/vmtrace/VmTraceParser.java
- M
benchmark/benchmark-macro/build.gradle
- M
benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/JankCollectionHelper.java
Hash: aa1b06262eb961422573cf16839740a2b1ed232d
Date: Wed Oct 09 09:55:35 2024
mk...@google.com <mk...@google.com> #18
Project: platform/frameworks/support
Branch: androidx-main
Author: Julia McClellan <
Link:
Migrate dynamicanimation to use JSpecify annotations
Expand for full commit details
Migrate dynamicanimation to use JSpecify annotations
CL created by running `development/jspecify_update.py dynamicanimation`
We are updating all AndroidX libraries to use the Jspecify nullness annotations (https://docs.google.com/document/d/1XjainD032hUdCfgXIzRThHvP9FJANYuocKaTDXWuLXo/edit?usp=sharing)
Bug: 326456246
Test: `checkApi`, `lint`, `runErrorProne`
Relnote: "This library now uses [JSpecify nullness annotations](https://jspecify.dev/), which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode"
Change-Id: I707835de5ef50bb485fbb79d26600153ca22f6e2
Files:
- M
dynamicanimation/dynamicanimation/build.gradle
- M
dynamicanimation/dynamicanimation/src/androidTest/java/androidx/dynamicanimation/tests/SpringTests.java
- M
dynamicanimation/dynamicanimation/src/main/java/androidx/dynamicanimation/animation/AnimationHandler.java
- M
dynamicanimation/dynamicanimation/src/main/java/androidx/dynamicanimation/animation/DynamicAnimation.java
- M
dynamicanimation/dynamicanimation/src/main/java/androidx/dynamicanimation/animation/FrameCallbackScheduler.java
Hash: 6d164f6b510ed6296644c50473eae909e7842c4d
Date: Wed Oct 09 13:12:26 2024
ma...@gmail.com <ma...@gmail.com> #19
Project: platform/frameworks/support
Branch: androidx-main
Author: Julia McClellan <
Link:
Migrate appcompat to use JSpecify annotations
Expand for full commit details
Migrate appcompat to use JSpecify annotations
CL created by running `development/jspecify_update.py appcompat`
We are updating all AndroidX libraries to use the Jspecify nullness annotations (https://docs.google.com/document/d/1XjainD032hUdCfgXIzRThHvP9FJANYuocKaTDXWuLXo/edit?usp=sharing)
Bug: 326456246
Test: `checkApi`, `lint`, `runErrorProne`
Relnote: "This library now uses [JSpecify nullness annotations](https://jspecify.dev/), which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode"
Change-Id: Ifdbade99c3de977d8c7e99dfac3858e516a914f7
Files:
- M
appcompat/appcompat-lint/integration-tests/build.gradle
- M
appcompat/appcompat-lint/integration-tests/src/main/java/com/example/android/appcompat/ActivityWithClick.java
- M
appcompat/appcompat-resources/build.gradle
- M
appcompat/appcompat-resources/src/androidTest/java/androidx/appcompat/widget/TestResources.java
- M
appcompat/appcompat-resources/src/main/java/androidx/appcompat/content/res/AppCompatResources.java
- M
appcompat/appcompat-resources/src/main/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompat.java
- M
appcompat/appcompat-resources/src/main/java/androidx/appcompat/graphics/drawable/DrawableContainerCompat.java
- M
appcompat/appcompat-resources/src/main/java/androidx/appcompat/graphics/drawable/DrawableWrapperCompat.java
- M
appcompat/appcompat-resources/src/main/java/androidx/appcompat/graphics/drawable/StateListDrawableCompat.java
- M
appcompat/appcompat-resources/src/main/java/androidx/appcompat/resources/Compatibility.java
- M
appcompat/appcompat-resources/src/main/java/androidx/appcompat/widget/DrawableUtils.java
- M
appcompat/appcompat-resources/src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java
- M
appcompat/appcompat-resources/src/main/java/androidx/appcompat/widget/TintContextWrapper.java
- M
appcompat/appcompat-resources/src/main/java/androidx/appcompat/widget/TintResources.java
- M
appcompat/appcompat-resources/src/main/java/androidx/appcompat/widget/VectorEnabledTintResources.java
- M
appcompat/appcompat/build.gradle
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatDialogFragmentTest.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatMenuItemIconTintingTest.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/BaseBasicsTestCase.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/CustomCollapsibleView.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/FragmentContentIdActivity.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/LocalesUpdateActivity.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeActivity.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/TestDialogFragment.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/g3/FilternatorActivity.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/g3/FilternatorActivityWithCustomDefault.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/g3/OldTranslateActivity.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/inflater/CustomViewInflater.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/inflater/MisbehavingViewInflater.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/testutils/BaseTestActivity.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/testutils/DrawerLayoutActions.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/testutils/TestUtils.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatAutoCompleteTextViewEmojiTest.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseImageViewTest.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseViewTest.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatEditTextEmojiTest.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatEditTextReceiveContentTest.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatMultiAutoCompleteTextViewEmojiTest.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatTextViewAutoSizeTest.java
- M
appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/ToolbarTestActivity.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/ActionBar.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/ActionBarDrawerToggle.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/AlertController.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/AlertDialog.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatActivity.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatCallback.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegate.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDialog.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDialogFragment.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatViewInflater.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/AppLocalesMetadataHolderService.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/LayoutIncludeDetector.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/ResourcesFlusher.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/ToolbarActionBar.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/TwilightManager.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/app/WindowDecorActionBar.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/graphics/drawable/DrawerArrowDrawable.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/view/StandaloneActionMode.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/ActionMenuItem.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/CascadingMenuPopup.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuBuilder.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuDialogHelper.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuItemImpl.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuItemWrapperICS.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuPopup.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuPopupHelper.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuPresenter.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/SubMenuBuilder.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AbsActionBarView.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarBackgroundDrawable.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarContainer.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarContextView.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionMenuPresenter.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionMenuView.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActivityChooserView.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AlertDialogLayout.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatAutoCompleteTextView.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatBackgroundHelper.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatButton.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatCheckBox.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatCheckedTextView.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatCheckedTextViewHelper.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatCompoundButtonHelper.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatDrawableManager.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatEditText.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatEmojiEditTextHelper.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatEmojiTextHelper.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageButton.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageHelper.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageView.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatMultiAutoCompleteTextView.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatPopupWindow.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatRadioButton.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatRatingBar.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatReceiveContentHelper.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatSeekBar.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatSeekBarHelper.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatSpinner.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatTextClassifierHelper.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatTextHelper.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatTextView.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatTextViewAutoSizeHelper.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatToggleButton.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ButtonBarLayout.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ContentFrameLayout.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/DialogTitle.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/DropDownListView.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/FitWindowsFrameLayout.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/FitWindowsLinearLayout.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ListPopupWindow.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/MenuItemHoverListener.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/MenuPopupWindow.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/PopupMenu.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ScrollingTabContainerView.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/SearchView.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/SwitchCompat.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ThemeUtils.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ThemedSpinnerAdapter.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/TintTypedArray.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/Toolbar.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/TooltipCompat.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/TooltipPopup.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ViewStubCompat.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/ViewUtils.java
- M
appcompat/appcompat/src/main/java/androidx/appcompat/widget/WithHint.java
- M
appcompat/integration-tests/receive-content-testapp/build.gradle
- M
appcompat/integration-tests/receive-content-testapp/src/main/java/androidx/appcompat/demo/receivecontent/AttachmentsRecyclerViewAdapter.java
- M
appcompat/integration-tests/receive-content-testapp/src/main/java/androidx/appcompat/demo/receivecontent/AttachmentsRepo.java
- M
appcompat/integration-tests/receive-content-testapp/src/main/java/androidx/appcompat/demo/receivecontent/MainActivity.java
- M
appcompat/integration-tests/receive-content-testapp/src/main/java/androidx/appcompat/demo/receivecontent/MyExecutors.java
- M
appcompat/integration-tests/receive-content-testapp/src/main/java/androidx/appcompat/demo/receivecontent/MyReceiver.java
Hash: 2fe0f867b44f83c71ff0dbe3ec31d510f394ae86
Date: Wed Oct 09 11:37:32 2024
Description
java.lang.ClassCastException: sg.bigo.live.ppi cannot be cast to sg.bigo.live.asd
at sg.bigo.live.c7q.get(Unknown Source:2)
at sg.bigo.live.xka.d(Unknown Source:11)
at sg.bigo.live.kka.u(Unknown Source:8)
at com.yy.iheima.startup.SplashAdvertView.onAttachedToWindow(SplashAdvertView.java:17)
at android.view.View.dispatchAttachedToWindow(View.java:20894)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3539)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3546)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3546)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3546)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3546)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3546)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3546)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3546)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2799)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2305)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9133)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1232)
at android.view.Choreographer.doCallbacks(Choreographer.java:1029)
at android.view.Choreographer.doFrame(Choreographer.java:934)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1217)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:233)
at android.os.Looper.loop(Looper.java:344)
at android.app.ActivityThread.main(ActivityThread.java:8212)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
jadx disassemble result:
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import android.util.Base64;
import com.google.android.gms.internal.p001firebaseauthapi.zzwe;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.List;
import sg.bigo.live.t8l;
/* loaded from: classes.dex */
public class c7q implements asd, etr {
public static volatile c7q y;
public Object z;
public /* synthetic */ c7q(Context context) {
this.z = new HashMap();
this.z = context;
}
public /* synthetic */ c7q(Object obj, Object obj2) {
this.z = obj;
this.z = obj2;
}
public /* synthetic */ c7q(String str) {
this.z = new Intent();
this.z = str;
}
public /* synthetic */ c7q(asd asdVar, esd esdVar) {
this.z = asdVar;
this.z = esdVar;
}
public static c7q z(Context context) {
if (context == null) {
nwp.e("[TinyDataManager]:mContext is null, TinyDataManager.getInstance(Context) failed.");
return null;
}
if (y == null) {
synchronized (c7q.class) {
if (y == null) {
y = new c7q(context);
}
}
}
return y;
}
public void a(Context context) {
Class<?> x = t8l.y.z.x((String) this.z);
if (x != null) {
((Intent) this.z).setClass(context, x);
Intent intent = (Intent) this.z;
if (intent == null || intent.getComponent() == null) {
return;
}
Class[] l0 = qc.l0(x);
if (l0 != null && l0.length != 0) {
qc.I(intent);
if (context instanceof p17) {
new sg.bigo.mobile.android.srouter.api.interceptor.y(context, x, intent, -1).z();
return;
}
qc.g1(intent);
}
qc.v1(context, intent, -1, x);
}
}
public void b(Activity activity, int i) {
Class<?> x = t8l.y.z.x((String) this.z);
if (x != null) {
((Intent) this.z).setClass(activity, x);
Intent intent = (Intent) this.z;
if (intent == null || intent.getComponent() == null) {
return;
}
Class[] l0 = qc.l0(x);
if (l0 != null && l0.length != 0) {
qc.I(intent);
if (activity instanceof p17) {
new sg.bigo.mobile.android.srouter.api.interceptor.y(activity, x, intent, i).z();
return;
}
qc.g1(intent);
}
qc.v1(activity, intent, i, x);
}
}
@Override // sg.bigo.live.asd
public ft2 get(Object obj) {
ft2 ft2Var = ((asd) this.z).get(obj);
if (ft2Var == null) {
((esd) this.z).p();
} else {
((esd) this.z).c(obj);
}
return ft2Var;
}
public boolean u(
if (TextUtils.isEmpty(str)) {
nwp.w("pkgName is null or empty, upload ClientUploadDataItem failed.");
return false;
} else if (yyp.v(hnVar, false)) {
return false;
} else {
if (TextUtils.isEmpty(hnVar.d())) {
hnVar.f(yyp.y());
}
hnVar.g(str);
ozp.z((Context) this.z, hnVar);
return true;
}
}
@Override // sg.bigo.live.asd
public boolean v(rsh rshVar) {
return ((asd) this.z).v(rshVar);
}
@Override // sg.bigo.live.asd
public ft2 w(Object obj, ft2 ft2Var) {
((esd) this.z).k();
return ((asd) this.z).w(obj, ft2Var);
}
@Override // sg.bigo.live.etr
public void x(Object obj) {
bur burVar = (bur) obj;
String str = burVar.z;
msh.u(str);
List i = new com.google.android.gms.internal.p001firebaseauthapi.y(new du1(new kbr())).i(str);
if (i.size() < 2) {
throw new RuntimeException("Invalid idToken ".concat(str));
}
String str2 = (String) i.get(1);
try {
uur z = uur.z(new String(str2 == null ? null : Base64.decode(str2, 11), "UTF-8"));
zzwe zzweVar = new zzwe(burVar.y, burVar.z, Long.valueOf(z.y.longValue() - z.z.longValue()), "Bearer");
Object obj2 = this.z;
jqr.a((jqr) obj2, zzweVar, null, Boolean.FALSE, (b3r) obj2, this);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("Unable to decode token", e);
}
}
@Override // sg.bigo.live.asd
public int y(rsh rshVar) {
return ((asd) this.z).y(rshVar);
}
@Override // sg.bigo.live.etr
public void zza(String str) {
((b3r) this.z).y(xoq.z(str));
}
}