package com.reactnative.drwine;

import android.database.Cursor;
import android.provider.MediaStore;
import android.util.Log;

import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * Created by YinMenglong on 2017/3/27.
 */

public class GetPicturesModule extends ReactContextBaseJavaModule {


    public GetPicturesModule(ReactApplicationContext reactContext) {
        super(reactContext);
    }

    @Override
    public String getName() {
        return "GetPicturesNative";
    }

    @ReactMethod
    private void getAlbums(Callback callback) {

        List<String> albums = new ArrayList<>();
        Map<String, String> map = new HashMap<>();

        Cursor cursor = getCurrentActivity().getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[]{MediaStore.Images.ImageColumns.DATA,
                        MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME,
                        MediaStore.Images.ImageColumns.SIZE},
                null, null, null);

        if (cursor != null || cursor.moveToNext()) {
            cursor.moveToLast();
            do {
                String name = cursor.getString(cursor.getColumnIndex(MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME));

                if (!map.keySet().contains(name)) {
                    map.put(name, name);
                    albums.add(name);
                    Log.d("name:", name);
                }

            }
            while (cursor.moveToPrevious());
        }
        callback.invoke(new Gson().toJson(albums));
    }
}
