-
Notifications
You must be signed in to change notification settings - Fork 4
/
ButtonRapidClickActivity.java
45 lines (35 loc) · 1.43 KB
/
ButtonRapidClickActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.jacquessmuts.rxstarter.java.sample;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.jacquessmuts.rxstarter.R;
import com.jacquessmuts.rxstarter.java.BaseActivity;
import com.jakewharton.rxbinding2.view.RxView;
import java.util.concurrent.TimeUnit;
import timber.log.Timber;
public class ButtonRapidClickActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_button_click);
}
@Override
protected void onResume() {
super.onResume();
Button button = findViewById(R.id.button);
TextView textView = findViewById(R.id.textView);
TextView textViewExplanation = findViewById(R.id.textViewExplanation);
rxSubs.add(RxView.clicks(button) // get clicks
.throttleFirst(1000, TimeUnit.MILLISECONDS) // only once per 1000ms
.map( input -> 1) // emit clicks as 1
.scan((total, nuValue) -> total + nuValue) // keep a running tally.
.subscribe( tally -> {
// set tally to textview
textView.setText(String.valueOf(tally));
if (tally > 3){
textViewExplanation.setVisibility(View.VISIBLE);
}
}, Timber::e));
}
}