Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit 14db49c2d2ba995b9a7c56c1386006716c484c7e
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Feb 18 10:23:32 2021
Update jetifier for strictmode
Test: ./gradlew jetifier-core:test
Bug: 153737341
Change-Id: I9ee8e8c4cb2ff4ffa37a2935e3bfe512bc23268b
M jetifier/jetifier/migration.config
https://android-review.googlesource.com/1592897
Branch: androidx-main
commit 14db49c2d2ba995b9a7c56c1386006716c484c7e
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Feb 18 10:23:32 2021
Update jetifier for strictmode
Test: ./gradlew jetifier-core:test
Bug: 153737341
Change-Id: I9ee8e8c4cb2ff4ffa37a2935e3bfe512bc23268b
M jetifier/jetifier/migration.config
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit e154ee09dbd591ffdae6a749cf04a53fd2cbcb13
Author: Simon Schiller <simonschiller@users.noreply.github.com>
Date: Tue Feb 16 10:29:29 2021
[GH] Add initial infrastructure for FragmentStrictMode
## Proposed Changes
- Add initial infrastructure for `FragmentStrictMode`
Found this in the issue tracker and think it's a great idea. I tried to keep the first version as lean and as closely aligned to `StrictMode` as possible. I also plan on creating some follow-up PRs to add a few checks (see issue tracker), as soon as the infrastructure is discussed and somewhat agreed upon. For now the classes are restricted to the library, until we have the first few checks.
## Testing
Test: See `FragmentStrictModeTest`
## Issues Fixed
Fixes: 153737341
This is an imported pull request fromhttps://github.com/androidx/androidx/pull/123 .
Resolves #123
Github-Pr-Head-Sha: e79ad8e4c100f12e637877e5cc6c0764a11de680
GitOrigin-RevId: 5c1aa683d57c18c300f5e4c21dcffd219ac8d675
Change-Id: Ib634f058efddf686db3de6be0dc6b7af1a3de718
M fragment/fragment/api/public_plus_experimental_current.txt
M fragment/fragment/api/restricted_current.txt
A fragment/fragment/src/androidTest/java/androidx/fragment/app/strictmode/FragmentStrictModeTest.kt
M fragment/fragment/src/main/java/androidx/fragment/app/FragmentManager.java
A fragment/fragment/src/main/java/androidx/fragment/app/strictmode/FragmentStrictMode.java
A fragment/fragment/src/main/java/androidx/fragment/app/strictmode/Violation.java
https://android-review.googlesource.com/1575225
Branch: androidx-main
commit e154ee09dbd591ffdae6a749cf04a53fd2cbcb13
Author: Simon Schiller <simonschiller@users.noreply.github.com>
Date: Tue Feb 16 10:29:29 2021
[GH] Add initial infrastructure for FragmentStrictMode
## Proposed Changes
- Add initial infrastructure for `FragmentStrictMode`
Found this in the issue tracker and think it's a great idea. I tried to keep the first version as lean and as closely aligned to `StrictMode` as possible. I also plan on creating some follow-up PRs to add a few checks (see issue tracker), as soon as the infrastructure is discussed and somewhat agreed upon. For now the classes are restricted to the library, until we have the first few checks.
## Testing
Test: See `FragmentStrictModeTest`
## Issues Fixed
Fixes: 153737341
This is an imported pull request from
Resolves #123
Github-Pr-Head-Sha: e79ad8e4c100f12e637877e5cc6c0764a11de680
GitOrigin-RevId: 5c1aa683d57c18c300f5e4c21dcffd219ac8d675
Change-Id: Ib634f058efddf686db3de6be0dc6b7af1a3de718
M fragment/fragment/api/public_plus_experimental_current.txt
M fragment/fragment/api/restricted_current.txt
A fragment/fragment/src/androidTest/java/androidx/fragment/app/strictmode/FragmentStrictModeTest.kt
M fragment/fragment/src/main/java/androidx/fragment/app/FragmentManager.java
A fragment/fragment/src/main/java/androidx/fragment/app/strictmode/FragmentStrictMode.java
A fragment/fragment/src/main/java/androidx/fragment/app/strictmode/Violation.java
ap...@google.com <ap...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-main
commit 39b483d097bcd3b63f4a6200ee33ed1ceda9ca7c
Author: Simon Schiller <simonschiller@users.noreply.github.com>
Date: Tue Mar 02 17:08:35 2021
[GH] Call FragmentStrictMode listeners on main thread of host
## Proposed Changes
- Don't call listeners on the violating thread anymore, instead use the main thread of the host.
- Follow-up to #123, see [here](https://github.com/androidx/androidx/pull/123#discussion_r568251886 ) and [here](https://github.com/androidx/androidx/pull/123#discussion_r570648776 )
## Testing
Test: `FragmentStrictModeTest#listenerCalledOnCorrectThread`
## Issues Fixed
Fixes: 153737341
This is an imported pull request fromhttps://github.com/androidx/androidx/pull/131 .
Resolves #131
Github-Pr-Head-Sha: 4c0f698f812a6eec0cffe65cbde2f4388b4e6c1f
GitOrigin-RevId: 77da4ec0f36c1518c635c40f5304603a7f460d28
Change-Id: Ica37a16e5f258b765c105224cf0dcab61b29c52e
M fragment/fragment/src/androidTest/java/androidx/fragment/app/strictmode/FragmentStrictModeTest.kt
M fragment/fragment/src/main/java/androidx/fragment/app/FragmentHostCallback.java
M fragment/fragment/src/main/java/androidx/fragment/app/FragmentManager.java
M fragment/fragment/src/main/java/androidx/fragment/app/strictmode/FragmentStrictMode.java
https://android-review.googlesource.com/1612828
Branch: androidx-main
commit 39b483d097bcd3b63f4a6200ee33ed1ceda9ca7c
Author: Simon Schiller <simonschiller@users.noreply.github.com>
Date: Tue Mar 02 17:08:35 2021
[GH] Call FragmentStrictMode listeners on main thread of host
## Proposed Changes
- Don't call listeners on the violating thread anymore, instead use the main thread of the host.
- Follow-up to #123, see [here](
## Testing
Test: `FragmentStrictModeTest#listenerCalledOnCorrectThread`
## Issues Fixed
Fixes: 153737341
This is an imported pull request from
Resolves #131
Github-Pr-Head-Sha: 4c0f698f812a6eec0cffe65cbde2f4388b4e6c1f
GitOrigin-RevId: 77da4ec0f36c1518c635c40f5304603a7f460d28
Change-Id: Ica37a16e5f258b765c105224cf0dcab61b29c52e
M fragment/fragment/src/androidTest/java/androidx/fragment/app/strictmode/FragmentStrictModeTest.kt
M fragment/fragment/src/main/java/androidx/fragment/app/FragmentHostCallback.java
M fragment/fragment/src/main/java/androidx/fragment/app/FragmentManager.java
M fragment/fragment/src/main/java/androidx/fragment/app/strictmode/FragmentStrictMode.java
ap...@google.com <ap...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-main
commit e2e9e6ba772ac721ddd5448b456f5a49513f8128
Author: Jeremy Woods <jbwoods@google.com>
Date: Mon Mar 08 09:20:24 2021
Ignore strictmode directory in jetifier
Instead of ignoring strictmode classes individually for jetifier, ignore
the entire directory.
RelNote: N/A
Test: ./gradlew bOS
Bug: 153737341
Change-Id: I5d3ba42b5b9369e5e6291e2b21254414b5999ad9
M jetifier/jetifier/migration.config
https://android-review.googlesource.com/1622522
Branch: androidx-main
commit e2e9e6ba772ac721ddd5448b456f5a49513f8128
Author: Jeremy Woods <jbwoods@google.com>
Date: Mon Mar 08 09:20:24 2021
Ignore strictmode directory in jetifier
Instead of ignoring strictmode classes individually for jetifier, ignore
the entire directory.
RelNote: N/A
Test: ./gradlew bOS
Bug: 153737341
Change-Id: I5d3ba42b5b9369e5e6291e2b21254414b5999ad9
M jetifier/jetifier/migration.config
Description
Component used: Fragment
StrictMode
We should build the same type of infrastructure for Fragments so that developers can enable runtime checking for bad behaviors and validate that they (or libraries they depend on) aren't using deprecated APIs or known potential problematic behaviors.
Importantly, this should only be as a second line of defense behind deprecation warnings or Lint warnings to catch these issues at build time or to handle cases where third party libraries / dependencies are triggering these behaviors so that bugs can be filed against them.
We should support at least
penaltyLog()
,penaltyDeath()
, andpenaltyListener()
.Given that we should maintain behavior compatibility, we should not add any
enableDefaults()
ordetectAll()
methods and instead have developers opt into exactly thedetect***()
methods they want. This should also remove the need forpermit***()
methods since they'll all default to off.Ideally, this is something that developers can either:
Set globally via
FragmentStrictMode.setDefaultPolicy(FragmentStrictMode.Policy)
Set on a specific
FragmentManager
(and its childrenFragmentManager
s) viafragmentManager.setStrictModePolicy(FragmentStrictMode.Policy)
(this would override the default policy)This API shouldn't be made public until there is at least two
detect***()
calls added. These will be filed as separate issues.