Skip to content

Instantly share code, notes, and snippets.

View rohmanhakim's full-sized avatar
😪
Back to Basic

Muhammad Arif Rohman Hakim rohmanhakim

😪
Back to Basic
View GitHub Profile
[default]
access_key = asf
bucket_location = US
cloudfront_host = cloudfront.amazonaws.com
cloudfront_resource = /2010-07-15/distribution
default_mime_type = binary/octet-stream
delete_removed = False
dry_run = False
encoding = UTF-8
encrypt = False
var a0 = 1;
var a1 = 2;
var a2 = 3;
var b0 = 4;
var b1 = 5;
var b2 = 6;
var ranks = [
[a0,b0],
var nkq = ['3','2','3'];
var arr = (['1','2','3']).map(function(num) {
return parseInt(num);
});
var m = ['0','1','2'];
var n = parseInt(nkq[0]);
var k = parseInt(nkq[1]);
var q = parseInt(nkq[2]);
package com.rohmanhakim.androidreactivedemo;
import android.support.v4.view.ViewCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
package com.rohmanhakim.androidreactivedemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.Button;
package com.rohmanhakim.androidreactivedemo;
import java.util.List;
import retrofit2.http.GET;
import rx.Observable;
public interface SampleService {
@GET("emails")
Observable<List<String>> getEmails();
// Return true jika password yang diketik user < 6 karakter
Observable<Boolean> passwordStream = RxTextView.textChanges(etPassword)
.map(new Func1<CharSequence, Boolean>() {
@Override
public Boolean call(CharSequence charSequence) {
return !TextUtils.isEmpty(charSequence)
&& charSequence.toString().trim().length() < 6;
}
});
Observable<Boolean> invalidFieldsStream = Observable.combineLatest(
emailStream,
passwordStream,
passwordConfirmationStream,
emptyFieldStream, new Func4<Boolean, Boolean, Boolean, Boolean, Boolean>() {
@Override
public Boolean call(Boolean emailInvalid, Boolean passwordInvalid, Boolean passwordConfirmationInvalid, Boolean emptyFieldExist) {
return !emailInvalid && !passwordInvalid && !passwordConfirmationInvalid && !emptyFieldExist;
}
});
// Ambil daftar email dari APi, kemudian cek apakah email user sudah dipakai
public Observable<Boolean> checkIfEmailExistFromAPI(final String input){
return service.getEmails()
.flatMap(new Func1<List<String>, Observable<String>>() { // Mengubah stream of List<String> menjadi stream of String
@Override
public Observable<String> call(List<String> strings) {
return Observable.from(strings);
}
}).contains(input) // Cek apakah email di emit oleh stream sebelumnya
.subscribeOn(Schedulers.newThread())
// Inisialisasi observer untuk field email
// subscribe ke stream email, menampilkan peringatan ketika email yg diketik user sudah dipakai di backend
Observer<Boolean> emailObserver = new Observer<Boolean>() {
@Override
public void onCompleted() {
Log.d("rx","Email stream completed");
}
@Override
public void onError(Throwable e) {