├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ ├── colors.xml │ │ │ │ └── themes.xml │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── xml │ │ │ │ ├── file_paths.xml │ │ │ │ ├── backup_rules.xml │ │ │ │ └── data_extraction_rules.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── layout │ │ │ │ ├── activity_second.xml │ │ │ │ └── activity_main.xml │ │ │ ├── values-night │ │ │ │ └── themes.xml │ │ │ ├── drawable-v24 │ │ │ │ └── ic_launcher_foreground.xml │ │ │ └── drawable │ │ │ │ └── ic_launcher_background.xml │ │ ├── java │ │ │ └── cn │ │ │ │ └── hx │ │ │ │ └── activityresultapi │ │ │ │ ├── BaseApplication.kt │ │ │ │ ├── BaseFragment.kt │ │ │ │ ├── BaseActivity.kt │ │ │ │ ├── SecondActivity.kt │ │ │ │ ├── CustomActivityResultRegistry.kt │ │ │ │ └── MainActivity.kt │ │ └── AndroidManifest.xml │ ├── test │ │ ├── resources │ │ │ └── robolectric.properties │ │ └── java │ │ │ └── cn │ │ │ └── hx │ │ │ └── activityresultapi │ │ │ ├── BaseFragmentTest.kt │ │ │ └── BaseActivityTest.kt │ ├── debug │ │ ├── AndroidManifest.xml │ │ ├── res │ │ │ └── layout │ │ │ │ └── activity_test.xml │ │ └── java │ │ │ └── cn │ │ │ └── hx │ │ │ └── activityresultapi │ │ │ ├── TestFragment.kt │ │ │ └── TestActivity.kt │ └── androidTest │ │ └── java │ │ └── cn │ │ └── hx │ │ └── activityresultapi │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro └── build.gradle ├── library ├── .gitignore ├── consumer-rules.pro ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── cn │ │ │ └── hx │ │ │ └── ara │ │ │ ├── TakeVideoCallback.java │ │ │ ├── TakePictureCallback.java │ │ │ ├── ActivityResultCallback.java │ │ │ ├── RequestPermissionCallback.java │ │ │ ├── RequestMultiplePermissionsCallback.java │ │ │ ├── TakeVideoInfo.java │ │ │ ├── TakePictureInfo.java │ │ │ ├── RequestPermissionInfo.java │ │ │ ├── TakeVideoResultInfo.java │ │ │ ├── RequestMultiplePermissionsInfo.java │ │ │ ├── TakePictureResultInfo.java │ │ │ ├── StartActivityResultInfo.java │ │ │ ├── VideoConfig.java │ │ │ ├── RequestPermissionResultInfo.java │ │ │ ├── StartActivityInfo.java │ │ │ ├── ActivityResultInfo.java │ │ │ ├── RequestMultiplePermissionsResultInfo.java │ │ │ ├── CustomCaptureVideo.java │ │ │ ├── ActivityResultSource.java │ │ │ ├── ActivityResultSourceImpl.java │ │ │ ├── ActivityResultManager.java │ │ │ └── ActivityResultSourceDelegate.java │ ├── test │ │ └── java │ │ │ └── cn │ │ │ └── hx │ │ │ └── ara │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── cn │ │ └── hx │ │ └── ara │ │ └── ExampleInstrumentedTest.java ├── proguard-rules.pro ├── gradle.properties └── build.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── settings.gradle ├── gradle.properties ├── README.md ├── gradlew.bat └── gradlew /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /library/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /library/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ActivityResultApi 3 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qq549631030/ActivityResultApi/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/test/resources/robolectric.properties: -------------------------------------------------------------------------------- 1 | sdk=31 2 | qualifiers=w360dp-h720dp-xxhdpi 3 | instrumentedPackages=androidx.loader.content -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qq549631030/ActivityResultApi/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qq549631030/ActivityResultApi/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qq549631030/ActivityResultApi/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qq549631030/ActivityResultApi/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qq549631030/ActivityResultApi/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qq549631030/ActivityResultApi/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qq549631030/ActivityResultApi/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | .idea 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | .cxx 10 | local.properties 11 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qq549631030/ActivityResultApi/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qq549631030/ActivityResultApi/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qq549631030/ActivityResultApi/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /library/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /library/src/main/java/cn/hx/ara/TakeVideoCallback.java: -------------------------------------------------------------------------------- 1 | package cn.hx.ara; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | public interface TakeVideoCallback { 6 | void onTakeVideoResult(@NonNull TakeVideoResultInfo resultInfo); 7 | } -------------------------------------------------------------------------------- /library/src/main/java/cn/hx/ara/TakePictureCallback.java: -------------------------------------------------------------------------------- 1 | package cn.hx.ara; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | public interface TakePictureCallback { 6 | void onTakePictureResult(@NonNull TakePictureResultInfo resultInfo); 7 | } -------------------------------------------------------------------------------- /app/src/main/res/xml/file_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | -------------------------------------------------------------------------------- /library/src/main/java/cn/hx/ara/ActivityResultCallback.java: -------------------------------------------------------------------------------- 1 | package cn.hx.ara; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | public interface ActivityResultCallback { 6 | void onActivityResult(@NonNull StartActivityResultInfo startActivityResultInfo); 7 | } 8 | -------------------------------------------------------------------------------- /library/src/main/java/cn/hx/ara/RequestPermissionCallback.java: -------------------------------------------------------------------------------- 1 | package cn.hx.ara; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | public interface RequestPermissionCallback { 6 | void onRequestPermissionResult(@NonNull RequestPermissionResultInfo resultInfo); 7 | } 8 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri May 13 09:17:16 CST 2022 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /library/src/main/java/cn/hx/ara/RequestMultiplePermissionsCallback.java: -------------------------------------------------------------------------------- 1 | package cn.hx.ara; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | public interface RequestMultiplePermissionsCallback { 6 | void onRequestMultiplePermissionsResult(@NonNull RequestMultiplePermissionsResultInfo resultInfo); 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/cn/hx/activityresultapi/BaseApplication.kt: -------------------------------------------------------------------------------- 1 | package cn.hx.activityresultapi 2 | 3 | import android.app.Application 4 | import cn.hx.ara.ActivityResultManager 5 | 6 | class BaseApplication : Application() { 7 | override fun onCreate() { 8 | super.onCreate() 9 | ActivityResultManager.init(this) 10 | } 11 | } -------------------------------------------------------------------------------- /app/src/main/java/cn/hx/activityresultapi/BaseFragment.kt: -------------------------------------------------------------------------------- 1 | package cn.hx.activityresultapi 2 | 3 | import androidx.fragment.app.Fragment 4 | import cn.hx.ara.ActivityResultSource 5 | import cn.hx.ara.ActivityResultSourceImpl 6 | 7 | open class BaseFragment : Fragment(), ActivityResultSource by ActivityResultSourceImpl() { 8 | 9 | val TAG = this::class.java.simpleName 10 | } -------------------------------------------------------------------------------- /app/src/main/java/cn/hx/activityresultapi/BaseActivity.kt: -------------------------------------------------------------------------------- 1 | package cn.hx.activityresultapi 2 | 3 | import androidx.appcompat.app.AppCompatActivity 4 | import cn.hx.ara.ActivityResultSource 5 | import cn.hx.ara.ActivityResultSourceImpl 6 | 7 | open class BaseActivity : AppCompatActivity(), ActivityResultSource by ActivityResultSourceImpl() { 8 | 9 | val TAG = this::class.java.simpleName 10 | 11 | } -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | gradlePluginPortal() 4 | google() 5 | mavenCentral() 6 | } 7 | } 8 | dependencyResolutionManagement { 9 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 10 | repositories { 11 | google() 12 | mavenCentral() 13 | } 14 | } 15 | rootProject.name = "ActivityResultApi" 16 | include ':app' 17 | include ':library' 18 | -------------------------------------------------------------------------------- /library/src/main/java/cn/hx/ara/TakeVideoInfo.java: -------------------------------------------------------------------------------- 1 | package cn.hx.ara; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | public class TakeVideoInfo { 6 | 7 | @NonNull 8 | final VideoConfig config; 9 | 10 | @NonNull 11 | final TakeVideoCallback callback; 12 | 13 | public TakeVideoInfo(@NonNull VideoConfig config, @NonNull TakeVideoCallback callback) { 14 | this.config = config; 15 | this.callback = callback; 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/debug/res/layout/activity_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | -------------------------------------------------------------------------------- /library/src/test/java/cn/hx/ara/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package cn.hx.ara; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /library/src/main/java/cn/hx/ara/TakePictureInfo.java: -------------------------------------------------------------------------------- 1 | package cn.hx.ara; 2 | 3 | import android.net.Uri; 4 | 5 | import androidx.annotation.NonNull; 6 | 7 | public class TakePictureInfo { 8 | @NonNull 9 | final Uri outputUri; 10 | 11 | @NonNull 12 | final TakePictureCallback callback; 13 | 14 | public TakePictureInfo(@NonNull Uri outputUri, @NonNull TakePictureCallback callback) { 15 | this.outputUri = outputUri; 16 | this.callback = callback; 17 | } 18 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_second.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 |