RxFile

by pavlospt

pavlospt / RxFile

Rx methods to get a File and Image or Video thumbnails from a Document Provider on Android (Drive, D...

452 Stars 44 Forks Last release: Not found Apache License 2.0 58 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Circle CI Download Android Arsenal Android_Weekly

RxFile

Rx methods to get a File and Image or Video thumbnails from any DocumentProvider on Android (Drive, Dropbox, Photos etc)

How To Install

Available on

jCenter()
and
mavenCentral()
compile 'com.github.pavlospt:rxfile:1.8'

How To Use

It is really easy to use it, depending on your needs it returns the appropriate file or Bitmap. You can fetch a Bitmap when you are selecting an Image or a Video. The fetched Bitmap is a thumbnail of the selected Image or Video. When you choose to select a file from Dropbox or Drive, the file is being downloaded and copied to the Library's cache folder. It then returns the File object and you have complete access over it in case you need to upload it to a server or in a similar use case.

To enable logging:

java
RxFile.setLoggingEnabled(true);

To get a File, use: (need to change the name of the method)

java
Observable createFileFromUri(final Context context, final Uri data);
Observable> createFileFromUri(final Context context, final ArrayList uris);
Observable> createFilesFromClipData(final Context context, final ClipData clipData);

To get a thumbnail, use:

java
Observable getThumbnail(Context context, Uri uri);
Observable getThumbnail(Context context, Uri uri, int requiredWidth, int requiredHeight);
Observable getThumbnail(Context context, Uri uri, int requiredWidth, int requiredHeight, int kind);

Get files from a ClipData object (applies to multiple file selection through intent): ```java RxFile.createFilesFromClipData(this,clipData) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber>() { @Override public void onCompleted() { Timber.e("onCompleted() for Files called"); }

                @Override
                public void onError(Throwable e) {
                    Timber.e("Error on files fetching:" + e.getMessage());
                }

            @Override
            public void onNext(List<file> files) {
                Timber.e("Files list size:" + files.size());
                for(File f : files){
                    Timber.e("onNext() file called:" + f.getAbsolutePath());
                }
            }
        });

Get file from single Uri:

```java RxFile.createFileFromUri(this,uri) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber() { @Override public void onCompleted() { Timber.e("onCompleted() for File called"); }

                @Override
                public void onError(Throwable e) {
                    Timber.e("Error on file fetching:" + e.getMessage());
                }

                @Override
                public void onNext(File file) {
                    Timber.e("onNext() file called:" + file.getAbsolutePath());
                }
            });

Get Thumbnail from Uri (photo or video): ```java RxFile.getThumbnail(this,data) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber() { @Override public void onCompleted() { Timber.e("onCompleted() called"); }

                @Override
                public void onError(Throwable e) {
                    Timber.e("onError called with: " +  e.getMessage());
                }

            @Override
            public void onNext(Bitmap bitmap) {
                mBitmap.setImageBitmap(bitmap);
            }
        });

For more, check the Wiki 

Credits

Author : Pavlos-Petros Tournaris ([email protected])

Google+ : +Pavlos-Petros Tournaris

Facebook : Pavlos-Petros Tournaris

LinkedIn : Pavlos-Petros Tournaris

(In case you use this in your app let me know to make a list of apps that use it! )

License

Copyright 2015 Pavlos-Petros Tournaris

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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.