lygttpod / ActivityResultApi

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ActivityResultApi

Maven Central API Android Arsenal

Demo下载体验

一、 添加依赖

   implementation 'io.github.lygttpod:activity-result-api:0.0.2'

二、用法

1、使用ActivityResultApi统一暴露的方法,便于管理

    //在activity或fragment中,声明变量, 根据业务需求去添加不同的Type
    private var activityResultApi = ActivityResultApi.createResultApi(
            this,
            listOf(
                ResultApiType.PERMISSION,
                ResultApiType.PERMISSIONS,
                ResultApiType.TAKE_CAMERA_FILE,
                ResultApiType.TAKE_CAMERA_BITMAP,
                ResultApiType.TAKE_PHOTO,
                ResultApiType.TAKE_PICTURE_CROP,
                ResultApiType.START_ACTIVITY_FOR_RESULT
            )
        )
    
     //对外暴露的方法:
     activityResultApi.permission(permission: String, result: ((Boolean) -> Unit)?)
     activityResultApi.permissions(permissions: Array<String>, result: ((Boolean) -> Unit)?)
     activityResultApi.takeCameraFile(file: File, uri: Uri? = null, result: ((File) -> Unit)?)
     activityResultApi.takeCameraBitmap(result: ((Bitmap) -> Unit)?)
     activityResultApi.takePhoto(result: ((Intent) -> Unit)?)
     activityResultApi.takePictureCrop(cropConfig: CropConfig, result: ((Uri?) -> Unit)?)
     activityResultApi.startActivityForResult(intent: Intent, result: ((Intent) -> Unit)?)
     activityResultApi.takeCameraWithPermission(file: File,permissionResult: ((Boolean) -> Unit)? = null,result: ((File) -> Unit)?)
     activityResultApi.takeCameraWithPermission(uri: Uri,permissionResult: ((Boolean) -> Unit)? = null,result: ((Uri) -> Unit)?)
     activityResultApi.takeCameraBitmapWithPermission(permissionResult: ((Boolean) -> Unit)? = null,result: ((Bitmap?) -> Unit)?)
     activityResultApi.takePhotoWithPermission(permissionResult: ((Boolean) -> Unit)? = null, result: ((Intent?) -> Unit)?)

2、使用内置api

    //在activity或fragment中定义变量
    private var permissionApi: PermissionApi = PermissionApi(this)
    private var permissionsApi: PermissionsApi = PermissionsApi(this)
    private var takeCameraApi: TakeCameraApi = TakeCameraApi(this)
    private var takeCameraBitmapApi: TakeCameraBitmapApi = TakeCameraBitmapApi(this)
    private var takePictureCropApi: TakePictureCropApi = TakePictureCropApi(this)
    private var takePhotoApi: TakePhotoApi = TakePhotoApi(this)
    private var startActivityForResultApi: StartActivityForResultApi = StartActivityForResultApi(this)
    
   
    //示例
    permissionsApi.launch(
                arrayOf(
                    Manifest.permission.READ_EXTERNAL_STORAGE,
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
                    Manifest.permission.ACCESS_FINE_LOCATION
                )
            ) {
                showToast("$it")
            }
    

三、混淆(默认已加混淆,如遇问题添加如下混淆)

    # activity-result-api
    -keep class com.lygttpod.android.activity.result.api.** { *; }

About


Languages

Language:Kotlin 100.0%