Skip to content

An android file picker like Telegram's file picker

smartdevelopers-ir/SmartFilePicker

Repository files navigation

donate GitHub tag (latest by date)

SmartFilePicker

This is Telegram like File Picker for android .

Installation

  • Add it in your root build.gradle at the end of repositories:
	allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}
  • Add the dependency
	dependencies {
	        implementation 'com.github.smartdevelopers-ir:SmartFilePicker:2.0.7'
	}

Usage

  • open File Picker
Bundle extra=new Bundle();
extra.putInt("my_number",10);
Intent intent = new SmartFilePicker.IntentBuilder()
       .showCamera(true)
       .canSelectMultipleInGallery(true)
       .showGalleryTab(true)
       .showPickFromSystemGalleyMenu(true)
       .setExtra(extra)
       .setFileFilter(new SFBFileFilter.Builder().isFile(true).isFolder(true).build())
       .canSelectMultipleInFiles(true)
       .build(this);
startActivityForResult(intent, 10);
  • Getting result
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode==10){
        if (data!=null) {
            Uri[] uris= SmartFilePicker.getResultUris(data);
            if (uris!=null){
               // do somthing with selected files uri
            }
            Bundle extra= SmartFilePicker.getExtra(data);
            if (extra != null) {
               int number = extra.getInt("my_number");
            }
        }
    }
  }
  • Chaging Theme To change theme you should override this style to extends your AppTheme

     <style name="App.AppTheme" parent="Theme.Material3.Light.NoActionBar">
    	...
    </style>
    <style name="SFB.Base" parent="App.AppTheme"/>

    And for customizing bottomNavigation colors you should override this style :

      <style name="SFB.Base.Theme.Browser" parent="SFB.Base.Theme">
           <item name="SFBColorGallery">@color/sfb_color_gallery</item>
          <item name="SFBColorFile">@color/sfb_color_file</item>
          <item name="SFBColorAudio">@color/sfb_color_audio</item>
          <item name="SFBColorPDF">@color/sfb_color_pdf</item>
          <item name="SFBBottomNavActiveColor">@color/white</item>
          <item name="SFBBottomNavInactiveColor">@color/sfb_color_item_inactive</item>
          <item name="SFBBottomNavColorDisabled">@color/sfb_color_item_disabled</item>
          <item name="SFBCheckboxFillColor">?attr/colorSecondary</item>
          <item name="SFBCheckboxOnFillColor">?attr/colorOnSecondary</item>
          <item name="SFBCheckboxStrokeColor">?attr/colorOnSecondary</item>
      </style>

Donation

You can support me by donating with cryptocurrency :)

I glad to support you