Newer
Older
DevelopRx / app / src / main / java / org / ntlab / developrx / JavaMainActivity.java
package org.ntlab.developrx;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.SeekBar;

import java.util.concurrent.TimeUnit;

import io.reactivex.android.schedulers.AndroidSchedulers;

/**
 * Created by matsumoto_k on 2017/11/11.
 */
public class JavaMainActivity extends AppCompatActivity {
    JavaRxProcess rxProcess = new JavaRxProcess();
    AddressHttpConnection addressHttpConnection = new AddressHttpConnection();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_java);

        findViewById(R.id.flowable_btn).setOnClickListener(view -> rxProcess.flowableReactiveStreams());
        findViewById(R.id.observable_btn).setOnClickListener(view -> rxProcess.observable());
        findViewById(R.id.just_btn).setOnClickListener(view -> rxProcess.just());
        findViewById(R.id.fromarray_btn).setOnClickListener(view -> rxProcess.fromArray());
        findViewById(R.id.range_btn).setOnClickListener(view -> rxProcess.range());
        findViewById(R.id.interval_btn).setOnClickListener(view -> rxProcess.interval());
        findViewById(R.id.timer_btn).setOnClickListener(view -> rxProcess.timer());
        findViewById(R.id.error_btn).setOnClickListener(view -> rxProcess.error());
        findViewById(R.id.map_btn).setOnClickListener(view -> rxProcess.map());
        findViewById(R.id.empty_btn).setOnClickListener(view -> rxProcess.empy());
        findViewById(R.id.flatmap_1_btn).setOnClickListener(view -> rxProcess.flatmap1());
        findViewById(R.id.flatmap_2_btn).setOnClickListener(view -> rxProcess.flatmap2());
        findViewById(R.id.meeting_btn).setOnClickListener(view -> rxProcess.meetingTest());

        SeekBar seekBar = findViewById(R.id.seek_bar);
        seekBar.setMax(1000);
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                rxProcess.getPublishSubject().onNext(progress);
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });

        rxProcess.getPublishSubject()
                .throttleLast(500, TimeUnit.MILLISECONDS)
                .subscribe(progress -> System.out.println(progress));

        findViewById(R.id.address_api_btn).setOnClickListener(view -> {
            addressHttpConnection.addPathParam("api");
            addressHttpConnection.addPathParam("search");
            addressHttpConnection.addQueryParam("zipcode", "6731102");
            addressHttpConnection.doGet();
        });

        addressHttpConnection.getPublishSubject().
                throttleFirst(5000, TimeUnit.MILLISECONDS)
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(
                        response -> System.out.println(response),
                        error -> error.printStackTrace(),
                        () -> System.out.println("onComplete")
                );
    }
}