gitextract_5sp6w6t0/ ├── .github/ │ ├── CODEOWNERS │ ├── FUNDING.yml │ ├── dependabot.yml │ └── workflows/ │ ├── build.yml │ └── release.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── app/ │ ├── .gitignore │ ├── README.md │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── dev/ │ │ └── shreyaspatil/ │ │ └── permissionFlow/ │ │ └── ExampleInstrumentedTest.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── dev/ │ │ │ └── shreyaspatil/ │ │ │ └── permissionFlow/ │ │ │ └── example/ │ │ │ ├── data/ │ │ │ │ ├── ContactRepository.kt │ │ │ │ ├── impl/ │ │ │ │ │ └── AndroidDefaultContactRepository.kt │ │ │ │ └── model/ │ │ │ │ └── Contact.kt │ │ │ └── ui/ │ │ │ ├── MainActivity.kt │ │ │ ├── composePermission/ │ │ │ │ └── ComposePermissionActivity.kt │ │ │ ├── contacts/ │ │ │ │ ├── ContactsActivity.kt │ │ │ │ ├── ContactsUiEvents.kt │ │ │ │ └── ContactsViewModel.kt │ │ │ ├── fragment/ │ │ │ │ ├── ExampleFragment.kt │ │ │ │ └── ExampleFragmentActivity.kt │ │ │ └── multipermission/ │ │ │ └── MultiPermissionActivity.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ └── ic_launcher_background.xml │ │ ├── drawable-v24/ │ │ │ └── ic_launcher_foreground.xml │ │ ├── layout/ │ │ │ ├── activity_contacts.xml │ │ │ ├── activity_fragment_example.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_multipermission.xml │ │ │ └── view_fragment_example.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ ├── values-night/ │ │ │ └── themes.xml │ │ └── xml/ │ │ ├── backup_rules.xml │ │ └── data_extraction_rules.xml │ └── test/ │ └── java/ │ └── dev/ │ └── shreyaspatil/ │ └── permissionFlow/ │ └── ExampleUnitTest.kt ├── build.gradle ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── permission-flow/ │ ├── .gitignore │ ├── build.gradle │ ├── consumer-rules.pro │ ├── gradle.properties │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── dev/ │ │ └── shreyaspatil/ │ │ └── permissionFlow/ │ │ └── ExampleInstrumentedTest.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── dev/ │ │ └── shreyaspatil/ │ │ └── permissionFlow/ │ │ ├── PermissionFlow.kt │ │ ├── State.kt │ │ ├── contract/ │ │ │ └── RequestPermissionsContract.kt │ │ ├── impl/ │ │ │ └── PermissionFlowImpl.kt │ │ ├── initializer/ │ │ │ └── PermissionFlowInitializer.kt │ │ ├── internal/ │ │ │ └── ApplicationStateMonitor.kt │ │ ├── utils/ │ │ │ ├── ActivityResultLauncherExt.kt │ │ │ ├── PermissionResultLauncher.kt │ │ │ └── stateFlow/ │ │ │ └── CombinedStateFlow.kt │ │ └── watchmen/ │ │ └── PermissionWatchmen.kt │ └── test/ │ └── java/ │ └── dev/ │ └── shreyaspatil/ │ └── permissionFlow/ │ ├── MultiplePermissionStateTest.kt │ ├── PermissionFlowTest.kt │ ├── contract/ │ │ └── RequestPermissionsContractTest.kt │ ├── impl/ │ │ └── PermissionFlowImplTest.kt │ ├── initializer/ │ │ └── PermissionFlowInitializerTest.kt │ ├── internal/ │ │ └── ApplicationStateMonitorTest.kt │ ├── utils/ │ │ ├── ActivityResultLauncherExtTest.kt │ │ ├── PermissionResultLauncherTest.kt │ │ └── stateFlow/ │ │ └── CombinedStateFlowTest.kt │ └── watchmen/ │ └── PermissionWatchmenTest.kt ├── permission-flow-compose/ │ ├── .gitignore │ ├── build.gradle │ ├── consumer-rules.pro │ ├── gradle.properties │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── dev/ │ └── shreyaspatil/ │ └── permissionflow/ │ └── compose/ │ └── PermissionFlow.kt ├── settings.gradle └── spotless/ └── copyright.kt