MCPcopy Index your code
hub / github.com/kk121/File-Loader

github.com/kk121/File-Loader @1.6

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.6 ↗ · + Follow
174 symbols 377 edges 23 files 22 documented · 13% 375 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

File Loader

Android Arsenal Jitpack

Android library for downloading, saving/caching and retrieving any type of files ( image, video, pdf, apk etc ) easily.

Download

Gradle:

repositories {
    mavenCentral()
    maven { url 'https://jitpack.io' }
}

dependencies {
    implementation 'com.github.kk121:File-Loader:1.2'
}

Maven:

<dependency>
  <groupId>com.github.kk121</groupId>
  <artifactId>File-Loader</artifactId>
  <version>1.2</version>
</dependency>

How do I use File Loader?

Asynchronously load file as generic file:

FileLoader.with(this)
                .load("https://upload.wikimedia.org/wikipedia/commons/3/3c/Enrique_Simonet_-_Marina_veneciana_6MB.jpg",false) //2nd parameter is optioal, pass true to force load from network
                .fromDirectory("test4", FileLoader.DIR_INTERNAL)
                .asFile(new FileRequestListener<File>() {
                    @Override
                    public void onLoad(FileLoadRequest request, FileResponse<File> response) {
                        File loadedFile = response.getBody();
                        // do something with the file
                    }

                    @Override
                    public void onError(FileLoadRequest request, Throwable t) {
                    }
                });

Load file as Object:

FileLoader.with(this)
                .load("http://echo.jsontest.com/key1/value1/key2/value2")
                .fromDirectory("test3", FileLoader.DIR_INTERNAL)
                .asObject(new FileRequestListener<JsonTest>() {
                    @Override
                    public void onLoad(FileLoadRequest request, FileResponse<JsonTest> response) {
                        JsonTest jsonTest = response.getBody();
                        //do something with jsonTest object
                    }

                    @Override
                    public void onError(FileLoadRequest request, Throwable t) {

                    }
                });

Load multiple files with progress update listener ( load all from same directory ):

final String[] uris = {"https://images.pexels.com/photos/45170/kittens-cat-cat-puppy-rush-45170.jpeg",
                "https://upload.wikimedia.org/wikipedia/commons/3/3c/Enrique_Simonet_-_Marina_veneciana_6MB.jpg",
                "https://d15shllkswkct0.cloudfront.net/wp-content/blogs.dir/1/files/2017/01/Google-acquires-Fabric.png"};

FileLoader.multiFileDownload(this)
                .fromDirectory(Environment.DIRECTORY_PICTURES, FileLoader.DIR_EXTERNAL_PUBLIC)
                .progressListener(new MultiFileDownloadListener() {
                    @Override
                    public void onProgress(File downloadedFile, int progress, int totalFiles) {
                    }

                    @Override
                    public void onError(Exception e, int progress) {
                        super.onError(e, progress);
                    }
                }).loadMultiple(uris);

Load multiple files with progress update listener ( load from different directory ):

List<MultiFileLoadRequest> multiFileLoadRequests = new ArrayList<>();
        multiFileLoadRequests.add(new MultiFileLoadRequest(uris[0], "test2", FileLoader.DIR_INTERNAL, false));
        multiFileLoadRequests.add(new MultiFileLoadRequest(uris[1], Environment.DIRECTORY_DOWNLOADS, FileLoader.DIR_EXTERNAL_PRIVATE, false));
        multiFileLoadRequests.add(new MultiFileLoadRequest(uris[2], Environment.DIRECTORY_PICTURES, FileLoader.DIR_EXTERNAL_PUBLIC, false));

MultiFileDownloader multiFileDownloader = FileLoader.multiFileDownload(this);
multiFileDownloader.progressListener(new MultiFileDownloadListener() {
            @Override
            public void onProgress(File downloadedFile, int progress, int totalFiles) {

            }

            @Override
            public void onError(Exception e, int progress) {
                super.onError(e, progress);
            }
        }).loadMultiple(true, uris);

Cancel the Multiple loading:

multiFileDownloader.cancelLoad();

Delete multiple files:

final String[] uris = {"https://images.pexels.com/photos/45170/kittens-cat-cat-puppy-rush-45170.jpeg",
                "https://upload.wikimedia.org/wikipedia/commons/3/3c/Enrique_Simonet_-_Marina_veneciana_6MB.jpg",
                "https://d15shllkswkct0.cloudfront.net/wp-content/blogs.dir/1/files/2017/01/Google-acquires-Fabric.png"};
try {
      FileLoader.deleteWith(this).fromDirectory("test2", FileLoader.DIR_INTERNAL).deleteFiles(uris);
    } catch (Exception e) {
      e.printStackTrace();
    }

Delete all files of the directory:

FileLoader.deleteWith(this).fromDirectory("test2", FileLoader.DIR_INTERNAL).deleteAllFiles();

Delete all files of directory except files passed in argument:

FileLoader.deleteWith(this).fromDirectory("test3", FileLoader.DIR_INTERNAL).deleteAllFilesExcept(uris);

Status

This is still in beta.Comments/bugs/questions/pull requests are always welcome!

Cheers :)

Core symbols most depended-on inside this repo

getDirectoryName
called by 8
fileloader/src/main/java/com/krishna/fileloader/request/FileLoadRequest.java
buildFileLoader
called by 8
fileloader/src/main/java/com/krishna/fileloader/builder/FileLoaderBuilder.java
getDirectoryType
called by 7
fileloader/src/main/java/com/krishna/fileloader/request/FileLoadRequest.java
getFileNamePrefix
called by 6
fileloader/src/main/java/com/krishna/fileloader/request/FileLoadRequest.java
with
called by 5
fileloader/src/main/java/com/krishna/fileloader/FileLoader.java
getUri
called by 5
fileloader/src/main/java/com/krishna/fileloader/request/FileLoadRequest.java
load
called by 5
fileloader/src/main/java/com/krishna/fileloader/builder/FileLoaderBuilder.java
loadFile
called by 4
fileloader/src/main/java/com/krishna/fileloader/FileLoader.java

Shape

Method 151
Class 23

Languages

Java100%

Modules by API surface

fileloader/src/main/java/com/krishna/fileloader/request/FileLoadRequest.java26 symbols
fileloader/src/main/java/com/krishna/fileloader/FileLoader.java24 symbols
fileloader/src/main/java/com/krishna/fileloader/request/MultiFileLoadRequest.java16 symbols
fileloader/src/main/java/com/krishna/fileloader/utility/AndroidFileManager.java13 symbols
fileloader/src/main/java/com/krishna/fileloader/builder/FileLoaderBuilder.java11 symbols
fileloader/src/main/java/com/krishna/fileloader/request/FileDeleteRequest.java10 symbols
fileloader/src/main/java/com/krishna/fileloader/pojo/FileResponse.java10 symbols
fileloader/src/main/java/com/krishna/fileloader/utility/Utils.java8 symbols
fileloader/src/main/java/com/krishna/fileloader/builder/MultiFileDownloader.java8 symbols
fileloader/src/main/java/com/krishna/fileloader/builder/FileDeleteBuilder.java7 symbols
app/src/main/java/com/krishna/fileloadersample/MainActivity.java6 symbols
fileloader/src/main/java/com/krishna/fileloader/pojo/DownloadResponse.java5 symbols

For agents

$ claude mcp add File-Loader \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact