nightkidxmd / RxCache

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RxCacheLoaderHelper

[TOC]

1. Initializing

java:

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        RxCacheLoaderHelper.INSTANCE.init(getApplicationContext());

    }
}

kotlin:

class App : Application() {
    override fun onCreate() {
        super.onCreate()
        RxCacheLoaderHelper.init(getApplicationContext())
    }
}

2. Usage

2.1 get text content (Json format)

used Logansquare

Need add logansquare supported
Click to check

java:

        RxCacheLoaderHelper.INSTANCE
          .load(this,URI.create("http://xxxx"), null, SongCategoriesResponse.class,new LoadFromMemoryFirstPolicy())
          .subscribe(new Subscriber<SongCategoriesResponse>() {
            @Override
            public void onCompleted() {
                Log.d("DADA","onCompleted");
            }

            @Override
            public void onError(Throwable e) {
                e.printStackTrace();
                Log.d("DADA","onError:"+e.getMessage());
            }

            @Override
            public void onNext(SongCategoriesResponse songCategoriesResponse) {
               Log.d("DADA","songCategoriesResponse:"+songCategoriesResponse);
            }
        });

kotlin:

        RxCacheLoaderHelper
                .loadFromMemoryFirst(context = this, uri = URI.create("http://xxxx"),clazz = SongCategoriesResponse::class.java)
                .subscribe(
                { t ->  Log.e("DADA","loadFromMemoryFirst:"+t) }, 
                {  e->  e?.printStackTrace()
                   Log.e("DADA","onError:"+e?.message) }, 
                   {     Log.e("DADA","onCompleted") })

2.2 Get Image

java:

        RxCacheLoaderHelper.INSTANCE
                .loadImage(this, URI.create("http://xxxx"),URI.create("file:///sdcard/xxxxx"), imageView,R.drawable.defualt_icon);

kotlin:

        RxCacheLoaderHelper
                .loadImage(this, URI.create("http://xxxx"),URI.create("assets:///xxxx"), imageView,R.drawable.defualt_icon)

3. Pre-Policy

3.1 LoadFromMemoryFirstPolicy

load sequence: memory, disk , network

3.2 LoadFromNetworkFirstPolicy

load sequence: network, memory, disk

3.3 LoadFromAllAtTheSameTimePolicy

load from network,memory,disk at the same time and he priority to pick data is network>memory>disk

3.4 LoadDiskOnlyPolicy

load only from disk

3.5 LoadLocalAndUpdateFromNetwork

load from local and network at the same time, but only local value will be emitted to user, the net result is only to update local file and will be used next time.

4. Custom Made Policy

implement ILoaderPolicy,and set the policy with RxCacheLoaderHelper$setDefaultCachePolicy to modify default policy or pass your policy when call load

5. Custom Made Loader

implementICacheLoader,and modify the default load with RxCacheLoaderHelper$setLoaderPolicy(call it before init) or pass your loader when call load(if so you need to manage the loader by yourself)

About


Languages

Language:Java 58.7%Language:Kotlin 41.3%