├── app
├── .gitignore
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_logo.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_logo.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_logo.png
│ │ │ │ └── ic_place_holder.png
│ │ │ ├── values
│ │ │ │ ├── ids.xml
│ │ │ │ ├── colors.xml
│ │ │ │ ├── styles.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ └── strings.xml
│ │ │ ├── drawable
│ │ │ │ ├── rectangle_select_strategy_normal.xml
│ │ │ │ ├── rectangle_select_strategy_checked.xml
│ │ │ │ ├── rectangle_select_result.xml
│ │ │ │ └── sel_select_strategy_change.xml
│ │ │ ├── layout
│ │ │ │ ├── layout_media_store_gallery.xml
│ │ │ │ ├── layout_select_file_strategy.xml
│ │ │ │ ├── item_select_file_result.xml
│ │ │ │ ├── activity_media_info.xml
│ │ │ │ ├── activity_select_multi_files.xml
│ │ │ │ ├── activity_file_info.xml
│ │ │ │ ├── activity_file_core.xml
│ │ │ │ ├── activity_storage_access_framework.xml
│ │ │ │ ├── activity_media_store.xml
│ │ │ │ └── activity_select_single_image.xml
│ │ │ ├── xml
│ │ │ │ └── paths.xml
│ │ │ └── values-en
│ │ │ │ └── strings.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── ando
│ │ │ │ └── file
│ │ │ │ └── sample
│ │ │ │ ├── ui
│ │ │ │ ├── 2024
│ │ │ │ ├── upload
│ │ │ │ │ ├── IProgressResponseCallBack.java
│ │ │ │ │ ├── FileUploadActivity.kt
│ │ │ │ │ ├── Upload.kt
│ │ │ │ │ └── UploadProgressRequestBody.java
│ │ │ │ ├── selector
│ │ │ │ │ ├── fragment
│ │ │ │ │ │ └── FileSelectFragmentUsageActivity.kt
│ │ │ │ │ └── FileSelectResultAdapter.kt
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── core
│ │ │ │ │ └── FileCoreActivity.kt
│ │ │ │ ├── MediaInfoActivity.kt
│ │ │ │ └── FileInfoActivity.kt
│ │ │ │ ├── App.kt
│ │ │ │ ├── utils
│ │ │ │ ├── NoShakeListener.kt
│ │ │ │ ├── ClearCacheUtils.kt
│ │ │ │ ├── PermissionManager.kt
│ │ │ │ ├── DocumentFileUtils.kt
│ │ │ │ ├── CrashHandler.kt
│ │ │ │ ├── MethodSignKotlinUtils.kt
│ │ │ │ └── BitmapUtils.kt
│ │ │ │ └── Global.kt
│ │ └── AndroidManifest.xml
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── ando
│ │ │ └── file
│ │ │ └── sample
│ │ │ └── ExampleUnitTest.kt
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── ando
│ │ └── file
│ │ └── sample
│ │ └── ExampleInstrumentedTest.kt
├── proguard-rules.pro
└── build.gradle
├── library_core
├── consumer-rules.pro
├── .gitignore
├── src
│ └── main
│ │ ├── java
│ │ └── ando
│ │ │ └── file
│ │ │ └── core
│ │ │ ├── FileProvider.kt
│ │ │ ├── FileLogger.kt
│ │ │ ├── FileOperator.kt
│ │ │ ├── FileOpener.kt
│ │ │ ├── FileGlobal.kt
│ │ │ └── FileDirectory.kt
│ │ ├── res
│ │ └── xml
│ │ │ └── ando_paths.xml
│ │ └── AndroidManifest.xml
├── proguard-rules.pro
└── build.gradle
├── library_selector
├── .gitignore
├── consumer-rules.pro
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── res
│ │ ├── values
│ │ │ └── strings.xml
│ │ └── values-en
│ │ │ └── strings.xml
│ │ └── java
│ │ └── ando
│ │ └── file
│ │ └── selector
│ │ ├── FileSelectResult.kt
│ │ ├── FileSelectorExt.kt
│ │ ├── FileSelectOptions.kt
│ │ └── FileType.kt
├── proguard-rules.pro
└── build.gradle
├── library_compressor
├── .gitignore
├── consumer-rules.pro
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── ando
│ │ └── file
│ │ └── compressor
│ │ ├── ImageCompressInterface.kt
│ │ ├── ImageCompressEngine.kt
│ │ └── ImageChecker.kt
├── proguard-rules.pro
└── build.gradle
├── keystore.jks
├── screenshot
├── cache.png
├── func.png
├── img1.png
├── pick1.png
├── pick2.png
└── pick3.png
├── screenMatch.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── settings.gradle
├── .gitignore
├── gradle.properties
├── gradlew.bat
├── README_VERSIONS.md
├── publish.gradle
├── README_BASIC.md
└── gradlew
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/library_core/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/library_selector/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library_compressor/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library_compressor/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/library_core/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/library_selector/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/keystore.jks:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javakam/FileOperator/HEAD/keystore.jks
--------------------------------------------------------------------------------
/screenshot/cache.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javakam/FileOperator/HEAD/screenshot/cache.png
--------------------------------------------------------------------------------
/screenshot/func.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javakam/FileOperator/HEAD/screenshot/func.png
--------------------------------------------------------------------------------
/screenshot/img1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javakam/FileOperator/HEAD/screenshot/img1.png
--------------------------------------------------------------------------------
/screenshot/pick1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javakam/FileOperator/HEAD/screenshot/pick1.png
--------------------------------------------------------------------------------
/screenshot/pick2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javakam/FileOperator/HEAD/screenshot/pick2.png
--------------------------------------------------------------------------------
/screenshot/pick3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javakam/FileOperator/HEAD/screenshot/pick3.png
--------------------------------------------------------------------------------
/library_compressor/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
描述:上传进度回调接口
5 | * 6 | * @author xuexiang 7 | * @since 2018/6/21 上午1:57 8 | */ 9 | public interface IProgressResponseCallBack { 10 | /** 11 | * 回调进度 12 | * 13 | * @param bytesWritten 当前读取响应体字节长度 14 | * @param contentLength 总长度 15 | * @param done 是否读取完成 16 | */ 17 | void onResponseProgress(long bytesWritten, long contentLength, boolean done); 18 | } 19 | -------------------------------------------------------------------------------- /library_selector/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 |10 | * Description: 11 | *
12 | * @author javakam 13 | * @date 2021/3/2 13:52 14 | */ 15 | class FileUploadActivity: AppCompatActivity() { 16 | 17 | override fun onCreate(savedInstanceState: Bundle?) { 18 | super.onCreate(savedInstanceState) 19 | 20 | val client = OkHttpClient() 21 | val uploader=FileUploader(client,this) 22 | //uploader.uploadFromUri() 23 | 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_media_store_gallery.xml: -------------------------------------------------------------------------------- 1 | 2 |描述:上传请求体
18 | * 1.具有上传进度回调通知功能