Git Product home page Git Product logo

chochanaresh / filepicker Goto Github PK

View Code? Open in Web Editor NEW
122.0 2.0 12.0 311 KB

All file and media picker library for android. This library is designed to simplify the process of selecting and retrieving media files from an Android device, and supports media capture for images and videos.

Home Page: https://github.com/ChochaNaresh/FilePicker

License: Apache License 2.0

Kotlin 100.00%
android filepicker imagepicker kotlin-android videopicker allfilepicker mutiplefilepicker androidlibrary file android-library

filepicker's Introduction

File Picker Library for Android

This library is designed to simplify the process of selecting and retrieving media files from an Android device, and supports media capture for images and videos.

Maven Central Build Workflow API Language Language

How to use

How to add dependencies

Groovy

allprojects {
    repositories {
        mavenCentral() // For FilePicker library, this line is enough.
    }
}
dependencies {
    // ...
    implementation 'io.github.chochanaresh:filepicker:$libVersion'
    // ...
}

kts

allprojects {
    repositories {
        mavenCentral() // For FilePicker library, this line is enough.
    }
}
dependencies {
    // ...
    implementation ("io.github.chochanaresh:filepicker:$libVersion") 
    // ...
}

libs.versions.toml

[versions]
filepicker = "$libVersion"

[libraries]
filepicker = { group = "io.github.chochanaresh", name = "filepicker", version.ref = "filepicker" }
dependencies {
    // ...
    implementation(libs.filepicker)
    // ...
}

Version

Where $libVersion = libVersion

How to get result

Kotlin
private val launcher =
    registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
        if (it.resultCode == Activity.RESULT_OK) {
            // Use the uri to load the image
            val uri = it.data?.data!!
            // Use the file path to set image or upload 
            val filePath= it.data.getStringExtra(Const.BundleExtras.FILE_PATH)
            //... 

            // for Multiple picks 
            // first item 
            val first = it.data?.data!!
            // other items 
            val  clipData = it.data?.clipData
            // Multiple file paths list 
            val filePaths = result.data?.getStringArrayListExtra(Const.BundleExtras.FILE_PATH_LIST) 
            //... 
        }
    }
Java
private ActivityResultLauncher launcher =
        registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
                new ActivityResultCallback<ActivityResult>() {
                    @Override
                    public void onActivityResult(ActivityResult result) {
                        if (result.getResultCode() == Activity.RESULT_OK) {
                            // Use the uri to load the image
                            Uri uri = result.getData().getData();
                            // Use the file path to set image or upload
                            String filePath = result.getData().getStringExtra(Const.BundleExtras.FILE_PATH);
                            //...

                            // for Multiple picks
                            // first item
                            Uri first = result.getData().getData();
                            // other items
                            ClipData clipData = result.getData().getClipData();
                            // Multiple file paths list
                            ArrayList<String> filePaths = result.getData().getStringArrayListExtra(Const.BundleExtras.FILE_PATH_LIST);
                            //...
                        }
                    }
                });

Customization

Multiple option with BottomSheet Or Dialog

Kotlin
FilePicker.Builder(this)
    .setPopUpConfig()
    .addPickDocumentFile()
    .addImageCapture()
    .addVideoCapture()
    .addPickMedia()
    .build()
Java
new FilePicker.Builder(this)
    .setPopUpConfig(null)
    .addPickDocumentFile(null)
    .addImageCapture(null)
    .addVideoCapture(null)
    .addPickMedia(null)
    .build();

Customize popup

Kotlin
//..
setPopUpConfig(
    PopUpConfig(
        chooserTitle = "Choose Profile",
        // layoutId = 0, custom layout 
        mPopUpType = PopUpType.BOTTOM_SHEET,// PopUpType.BOTTOM_SHEET Or PopUpType.DIALOG
        mOrientation = RecyclerView.VERTICAL // RecyclerView.VERTICAL or RecyclerView.HORIZONTAL
    )
)
//..
.build()
Java
//..
setPopUpConfig(
    new PopUpConfig(
        "Choose Profile",
        null,// custom layout 
        PopUpType.BOTTOM_SHEET, // PopUpType.BOTTOM_SHEET Or PopUpType.DIALOG
        RecyclerView.VERTICAL // RecyclerView.VERTICAL or RecyclerView.HORIZONTAL
    )
)
//..
.build()

Pick Document Config

Kotlin
//..
addPickDocumentFile(
    DocumentFilePickerConfig(
        popUpIcon = R.drawable.ic_file,// DrawableRes Id 
        popUpText = "File Media",
        allowMultiple = false,// set Multiple pick file 
        maxFiles = 0,// max files working only in android latest version
        mMimeTypes = listOf("*/*"),// added Multiple MimeTypes
        askPermissionTitle = null, // set Permission ask Title
        askPermissionMessage = null,// set Permission ask Message
        settingPermissionTitle = null,// set Permission setting Title
        settingPermissionMessage = null,// set Permission setting Messag
    ),
)
//..
.build()
Java
//..
addPickDocumentFile(
    new DocumentFilePickerConfig(
        null, // DrawableRes Id 
        null,// Title for pop item 
        true, // set Multiple pick file 
        null, // max files working only in android latest version
        mMimeTypesList, // added Multiple MimeTypes
        null,  // set Permission ask Title
        null, // set Permission ask Message
        null, // set Permission setting Title
        null // set Permission setting Messag
    )
)
//..
.build()

Image Capture Config

kotlin
//..
addImageCapture(
    ImageCaptureConfig(
        popUpIcon = R.drawable.ic_camera,// DrawableRes Id 
        popUpText = "Camera",
        mFolder = File(),// set custom folder with write file permission
        fileName = "image.jpg",
        // It is not working correctly. However, it will Work on the same devices.
        isUseRearCamera = true, // setting camera facing
        askPermissionTitle = null, // set Permission ask Title
        askPermissionMessage = null,// set Permission ask Message
        settingPermissionTitle = null,// set Permission setting Title
        settingPermissionMessage = null,// set Permission setting Messag
    ),
)
//..
.build()
Java
//..
addImageCapture(
    new ImageCaptureConfig(
            R.drawable.ic_camera, // DrawableRes Id 
            null, // Title for pop item 
            null, // set custom folder with write file permission
            null,  // set custom File name
            // It is not working correctly. However, it will Work on the same devices.
            isUseRearCamera = true, // setting camera facing
            askPermissionTitle = null, // set Permission ask Title
            askPermissionMessage = null,// set Permission ask Message
            settingPermissionTitle = null,// set Permission setting Title
            settingPermissionMessage = null,// set Permission setting Messag
    )
)
//..
.build()

Video Capture Config

kotlin
//..
addVideoCapture(
    VideoCaptureConfig(
        popUpIcon = R.drawable.ic_video,// DrawableRes Id 
        popUpText = "Video",
        mFolder=File(),// set custom folder with write file permission
        fileName = "video.mp4",
        maxSeconds = null,// set video duration in seconds
        maxSizeLimit = null,// set size limit 
        isHighQuality = null,// set isHighQuality true/false
        askPermissionTitle = null, // set Permission ask Title
        askPermissionMessage = null,// set Permission ask Message
        settingPermissionTitle = null,// set Permission setting Title
        settingPermissionMessage = null,// set Permission setting Messag
    ),
)
//..
.build()
Java
//..
addVideoCapture(
    new VideoCaptureConfig(
            R.drawable.ic_video,// DrawableRes Id 
            null, // Title for pop item 
            null, // set custom folder with write file permission
            null, // set custom File name
            null, // set video duration in seconds
            null, // set size limit 
            null, // set isHighQuality true/false
            null, // set Permission ask Title
            null, // set Permission ask Message
            null, // set Permission setting Title
            null, // set Permission setting Messag
    )
)
//..
.build()

Pick Media Config

kotlin
//..
addPickMedia(
    PickMediaConfig(
        popUpIcon = R.drawable.ic_media,// DrawableRes Id 
        popUpText = "Video",
        allowMultiple = false,// set Multiple pick file 
        maxFiles = 0,// max files working only in android latest version
        mPickMediaType = ImageAndVideo,
        askPermissionTitle = null, // set Permission ask Title
        askPermissionMessage = null,// set Permission ask Message
        settingPermissionTitle = null,// set Permission setting Title
        settingPermissionMessage = null,// set Permission setting Messag
    ),
)
//..
.build()
Java
//..
addPickMedia(
    new PickMediaConfig(
            R.drawable.ic_media,// DrawableRes Id 
            null, // Title for pop item 
            null, // set Multiple pick file 
            null, // max files working only in android latest version
            null, // set PickMediaTypes 
            null, // set Permission ask Title
            null, // set Permission ask Message
            null, // set Permission setting Title
            null, // set Permission setting Messag
    )
)
//..
.build()

Pick Media Types

kotlin
import com.nareshchocha.filepickerlibrary.models.PickMediaType
Java
import com.nareshchocha.filepickerlibrary.models.PickMediaType;
  • PickMediaType.ImageOnly
  • PickMediaType.VideoOnly
  • PickMediaType.ImageAndVideo

Use directly

Pick Document

Kotlin
    FilePicker.Builder(this)
        .pickDocumentFileBuild(DocumentFilePickerConfig())

Customization DocumentFilePickerConfig

Java
    new FilePicker.Builder(this)
        .pickDocumentFileBuild(new DocumentFilePickerConfig(null));

Customization DocumentFilePickerConfig

Image Capture

Kotlin
    FilePicker.Builder(this)
        .imageCaptureBuild(ImageCaptureConfig())

Customization ImageCaptureConfig

Java
    new FilePicker.Builder(this)
        .imageCaptureBuild(new ImageCaptureConfig(null));

Customization ImageCaptureConfig

Video Capture

Kotlin
    FilePicker.Builder(this)
        .videoCaptureBuild(VideoCaptureConfig())

Customization VideoCaptureConfig

Java
    new FilePicker.Builder(this)
        .videoCaptureBuild(new VideoCaptureConfig(null));

Customization VideoCaptureConfig

Pick Media

Kotlin
    FilePicker.Builder(this)
        .pickMediaBuild(PickMediaConfig())

Customization PickMediaConfig

Java
    new FilePicker.Builder(this)
        .pickMediaBuild(new PickMediaConfig(null));

Customization PickMediaConfig

Proguard rules

-keepclasseswithmembernames class com.nareshchocha.filepickerlibrary.models.**{
    *;
}
-keepclassmembers class * extends androidx.appcompat.app.AppCompatActivity {
    *;
}

Compatibility

  • Library - Android Lollipop 5.0+ (API 21)
  • Sample - Android Lollipop 5.0+ (API 21)

Contributing

Contributions are always welcome!

Support

For support, email [email protected] or join our Slack channel.

"Buy Me A Coffee"

License

Copyright 2023 Naresh chocha

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
    
http://www.apache.org/licenses/LICENSE-2.0
    
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

filepicker's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

filepicker's Issues

imageCaptureBuild Image rotate

Hi,
I am testing your library, really usefully, thanks

I am using new FilePicker.Builder(mContext).imageCaptureBuild(new ImageCaptureConfig())
and I am receiving an image with a 90° rotation

Android 14 issue

Please check image picker in android 14, we are getting 2 bottom sheet one after another when give access to single image.

Android 10 issue

Hi
please check issue in android 10, image is not picking from picker

Dark Theme support

I am getting this issue when I change the theme of app to Dark. Picker Dialog looks like this.
Screenshot_20240121_015935

Crash on Xiomi Note 5 pro - Android 9 - API 28

I try to pick the file, initially I feel some lacking issue.

First few attempts it's works.

But it crashed

Error log

E FATAL EXCEPTION: main Process: com.nareshchocha.filepicker, PID: 18763 java.lang.IllegalArgumentException: Unknown URI: content://downloads/public_downloads/87788 at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:165) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135) at android.content.ContentProviderProxy.query(ContentProviderNative.java:418) at android.content.ContentResolver.query(ContentResolver.java:804) at android.content.ContentResolver.query(ContentResolver.java:753) at android.content.ContentResolver.query(ContentResolver.java:711) at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getDataColumn(FileUtils.kt:153) at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getDownloadsDocumentPath(FileUtils.kt:116) at com.nareshchocha.filepickerlibrary.utilities.FileUtils.pathFromURI(FileUtils.kt:35) at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getRealPath(FileUtils.kt:21) at com.nareshchocha.filepickerlibrary.ui.activitys.DocumentFilePickerActivity$selectFile$1.invoke(DocumentFilePickerActivity.kt:66) at com.nareshchocha.filepickerlibrary.ui.activitys.DocumentFilePickerActivity$selectFile$1.invoke(DocumentFilePickerActivity.kt:56) at com.nareshchocha.filepickerlibrary.picker.PickerUtils.selectFile$lambda$0(PickerUtils.kt:23) at com.nareshchocha.filepickerlibrary.picker.PickerUtils.$r8$lambda$5EjpwZuwUTQfOHixKEdyGZdAUG8(Unknown Source:0) at com.nareshchocha.filepickerlibrary.picker.PickerUtils$$ExternalSyntheticLambda0.onActivityResult(Unknown Source:2) at androidx.activity.result.ActivityResultRegistry$1.onStateChanged(ActivityResultRegistry.java:149) at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.kt:314) at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.kt:251) at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.kt:287) at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.kt:136) at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.kt:119) at androidx.lifecycle.ReportFragment$Companion.dispatch$lifecycle_runtime_release(ReportFragment.kt:192) at androidx.lifecycle.ReportFragment.dispatch(ReportFragment.kt:87) at androidx.lifecycle.ReportFragment.onStart(ReportFragment.kt:56) at android.app.Fragment.performStart(Fragment.java:2548) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1334) at android.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1581) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1642) at android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3051) at android.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:3008) at android.app.FragmentController.dispatchStart(FragmentController.java:193) at android.app.Activity.performStart(Activity.java:7264) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:2970) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:201) at android.app.ActivityThread.main(ActivityThread.java:6810) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

Android 12 Video Capture Issue

java.lang.SecurityException: UID 10299 does not have permission to content://com.abc.xyz.filepicker.fileprovider/secure_name/FilePicker/tempVideo_1685537034619.mp4 [user 0]

SecurityException While Trying to capture video from camera

App Crashed When I try to pick a document from storage in Android 10 or higher.

I tried to pick a pdf document from storage in android 10 or higher versions
below android 10 versions perfectly working

manged



permissions
and I get.

FATAL EXCEPTION: main
Process: com.inaipi.spark, PID: 23383
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=907489456, result=-1, data=Intent { dat=content://com.android.providers.downloads.documents/... flg=0x43 }} to activity {com.inaipi.spark/com.nareshchocha.filepickerlibrary.ui.activitys.DocumentFilePickerActivity}: java.lang.NumberFormatException: For input string: "msf:1000000043"
at android.app.ActivityThread.deliverResults(ActivityThread.java:5323)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5362)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:67)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7872)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Caused by: java.lang.NumberFormatException: For input string: "msf:1000000043"
at java.lang.Long.parseLong(Long.java:736)
at java.lang.Long.valueOf(Long.java:1188)
at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getDownloadsDocumentPath(FileUtils.kt:114)
at com.nareshchocha.filepickerlibrary.utilities.FileUtils.pathFromURI(FileUtils.kt:35)
at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getRealPath(FileUtils.kt:21)
at com.nareshchocha.filepickerlibrary.ui.activitys.DocumentFilePickerActivity$selectFile$1.invoke(DocumentFilePickerActivity.kt:66)
at com.nareshchocha.filepickerlibrary.ui.activitys.DocumentFilePickerActivity$selectFile$1.invoke(DocumentFilePickerActivity.kt:56)
at com.nareshchocha.filepickerlibrary.picker.PickerUtils.selectFile$lambda$0(PickerUtils.kt:23)
at com.nareshchocha.filepickerlibrary.picker.PickerUtils.$r8$lambda$5EjpwZuwUTQfOHixKEdyGZdAUG8(Unknown Source:0)
at com.nareshchocha.filepickerlibrary.picker.PickerUtils$$ExternalSyntheticLambda0.onActivityResult(Unknown Source:2)
at androidx.activity.result.ActivityResultRegistry.doDispatch(ActivityResultRegistry.java:418)
at androidx.activity.result.ActivityResultRegistry.dispatchResult(ActivityResultRegistry.java:375)
at androidx.activity.ComponentActivity.onActivityResult(ComponentActivity.java:793)
at androidx.fragment.app.FragmentActivity.onActivityResult(FragmentActivity.java:164)
at android.app.Activity.dispatchActivityResult(Activity.java:8628)
at android.app.ActivityThread.deliverResults(ActivityThread.java:5316)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5362) 
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:67) 
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) 
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307) 
at android.os.Handler.dispatchMessage(Handler.java:106) 
at android.os.Looper.loopOnce(Looper.java:201) 
at android.os.Looper.loop(Looper.java:288) 
at android.app.ActivityThread.main(ActivityThread.java:7872) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) 

Video Picker Crash

Hi, Video Capture is working fine in android 13 but video picker is giving error , I am using latest 0.1.4

Caused by: java.lang.SecurityException: UID 10512 does not have permission to content://media/picker/0/com.android.providers.media.photopicker/media/1000085114 [user 0]

App Crashed When I try to pick a pdf document from storage in Android 12 motorola from recents or whatsapp media document

java.lang.NullPointerException
at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getDataColumn(FileUtils.kt:154)
at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getMediaDocumentPath(FileUtils.kt:96)
at com.nareshchocha.filepickerlibrary.utilities.FileUtils.pathFromURI(FileUtils.kt:39)
at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getRealPath(FileUtils.kt:21)
at com.nareshchocha.filepickerlibrary.ui.activitys.DocumentFilePickerActivity$selectFile$1.invoke(DocumentFilePickerActivity.kt:66)
at com.nareshchocha.filepickerlibrary.ui.activitys.DocumentFilePickerActivity$selectFile$1.invoke(DocumentFilePickerActivity.kt:56)
at com.nareshchocha.filepickerlibrary.picker.PickerUtils.selectFile$lambda$0(PickerUtils.kt:23)
at com.nareshchocha.filepickerlibrary.picker.PickerUtils.$r8$lambda$5EjpwZuwUTQfOHixKEdyGZdAUG8(Unknown Source:0)
at com.nareshchocha.filepickerlibrary.picker.PickerUtils$$ExternalSyntheticLambda0.onActivityResult(Unknown Source:2)
at androidx.activity.result.ActivityResultRegistry$1.onStateChanged(ActivityResultRegistry.java:149)
at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.kt:314)
at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.kt:251)
at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.kt:287)
at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.kt:136)
at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.kt:119)
at androidx.lifecycle.ReportFragment$Companion.dispatch$lifecycle_runtime_release(ReportFragment.kt:192)
at androidx.lifecycle.ReportFragment$LifecycleCallbacks.onActivityPostStarted(ReportFragment.kt:121)
at android.app.Activity.dispatchActivityPostStarted(Activity.java:1431)
at android.app.Activity.performStart(Activity.java:8296)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3776)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2311)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loopOnce(Looper.java:238)
at android.os.Looper.loop(Looper.java:357)
at android.app.ActivityThread.main(ActivityThread.java:8090)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1026)

Android 10 Permission Denied dialog

My app is already having CAMERA and WRITE_EXTERNAL_STORAGE permission allowed but still, Permission Denied Dialog is being displayed in Android 10.

Gradle Plugin 8.0 suppoort

Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find com.github.ChochaNaresh:FilePicker:0.1.6.

Maximum file selection Issue

I configured maximum selection 5. But I can select more than 5. How to reselect the already chosen files after clicking the Choose button.

Config camera facing option

Whenever my app open the camera UI, it's always using the front camera. How do I force to use the back camera? Couldn't find the config inside ImageCaptureConfig.

Thank you in advance for this library.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.