package com.github.florent37.rxretrojsoup.sample.androidarsenal;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.widget.Toast;

import com.github.florent37.retrojsoup.RetroJsoup;
import com.github.florent37.rxretrojsoup.R;

import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.functions.BiFunction;
import io.reactivex.schedulers.Schedulers;

public class MainActivity extends AppCompatActivity {

    private RecyclerView recyclerView;
    private Adapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recyclerView = (RecyclerView) findViewById(R.id.recyclerview);

        recyclerView.setLayoutManager(new LinearLayoutManager(getBaseContext()));
        adapter = new Adapter();
        recyclerView.setAdapter(adapter);

        loadWithRetroJsoup();

        Observable.zip(
                Observable.just(""),
                Observable.just("&"),
                new BiFunction<String, String, String>(){

                    @Override
                    public String apply(@NonNull String s, @NonNull String s2) throws Exception {
                        return null;
                    }
                }
        );
    }

    public void loadWithRetroJsoup() {
        final AndroidArsenal tutosAndroidFrance = new RetroJsoup.Builder()
                .url("https://android-arsenal.com/")
                .build()
                .create(AndroidArsenal.class);

        tutosAndroidFrance.projects()
                .toList()

                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())

                .subscribe(
                        adapter::addItems,
                        t -> Toast.makeText(getBaseContext(), t.getMessage(), Toast.LENGTH_SHORT).show()
                );
    }
}