SkillAgentSearch skills...

Android11FilePicker

This project can make the file picking process easy, which allows you to select Pictures, Videos, and Documents.

Install / Use

/learn @braver-tool/Android11FilePicker

README

Android FilePicker

Description

This app can make the file picking process easy, which allows you to select Pictures, Videos, and Documents. Also, that has Capturing Photo/Video option. For using this library, you need to migrate your project to AndroidX(If your project is not migrated to AndroidX).

This works without MANAGE_EXTERNAL_STORAGE permission Since it's very useful when you publish the app on Google Plsy Strore.

<img src="app_demo_pic.jpg" width="30%" height="30%"/>

Getting Started

To add this library to your project, please follow below steps

Add this in your root build.gradle file (project level gradle file):

allprojects {
    repositories {
        maven { url "https://www.jitpack.io" }
    }
}

buildscript {
    repositories {
        maven { url "https://www.jitpack.io" }
    }
}

Then, Add this in your root build.gradle file (app level gradle file):

add implementation 'implementation 'com.github.braver-tool:Android11FilePicker:1.0.0' to your build.gradle dependencies block.

for example:

dependencies {
  implementation 'com.github.braver-tool:Android11FilePicker:1.0.0'
}

Key Features :

  • Kotlin language supported
  • Fully Handled Android's Dangerous Permissions
  • Compressing option for selected images included,
  • To Preview your selected images using 'PhotoView'
  • To Preview your selected videos using exoplayer
  • Can pick any non-media files like PDF,Doc,Txt files without using MANAGE_EXTERNAL_STORAGE permission
  • Supports upto Android 12 and SplashScreen API

This library compatible with Android 6 and above

Version Compatibility

It depends on your targetAPI:

  • targetAPI <= 28, you are fine ;)
  • targetAPI >= 29, please enable requestLegacyExternalStorage on your Manifest.xml file

How to use the included SD-card picker:

Include a provider element

Due to changes in Android 6.0 Marshmallow, bare File URIs can no longer be returned in a safe way. This change requires you to add an entry to your manifest.

NOTE: If you have an existing content provider in your app with the same authority you will have a conflict.

    <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="${applicationId}.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths"
                tools:replace="android:resource" />
        </provider>

Permissions Needed :

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.CAMERA
  • android.permission.RECORD_AUDIO

Include the camera activity

**NOTE: The theme set in the manifest is important.

    <activity
       android:name="com.braver.tool.picker.CameraActivity"
       android:label="@string/app_name"
         android:theme="@style/Theme.FilePicker">
    </activity>

Handling the ActivityResult

You can use the included utility method to parse the activity result:

 activityResultLauncherForGallery = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
            if (result.getResultCode() == RESULT_OK && result.getData() != null) {
             Uri selectedMediaUri = result.getData().getData();
             File imageFile = new BraveFilePicker().setActivity(PickerActivity.this).setIsCompressImage(false).setIsTrimVide(false).setFileType(BraveFileType.IMAGE).setDestinationFilePath(AppUtils.getRandomImageFileName(PickerActivity.this)).setContentUri(selectedMediaUri).getSourceFile();
             // Do something with the result...
            }
        });

Want to customize further?

Sample project is here(https://github.com/braver-tool/Android11FilePicker)

Usage

  • Photoview - ImageView for Android that supports zooming, by various touch gestures. https://github.com/Baseflow/PhotoView
View on GitHub
GitHub Stars16
CategoryCustomer
Updated1y ago
Forks2

Languages

Java

Security Score

65/100

Audited on Oct 17, 2024

No findings