diff --git a/app/src/main/java/com/ensarsarajcic/reactivegithubsample/models/GitHubRepo.java b/app/src/main/java/com/ensarsarajcic/reactivegithubsample/models/GitHubRepo.java index 2b6296e..6749544 100644 --- a/app/src/main/java/com/ensarsarajcic/reactivegithubsample/models/GitHubRepo.java +++ b/app/src/main/java/com/ensarsarajcic/reactivegithubsample/models/GitHubRepo.java @@ -1,7 +1,5 @@ package com.ensarsarajcic.reactivegithubsample.models; -import com.google.gson.annotations.SerializedName; - /** * Created by ensar on 03/10/16. */ diff --git a/app/src/main/java/com/ensarsarajcic/reactivegithubsample/models/GitHubSearchResponse.java b/app/src/main/java/com/ensarsarajcic/reactivegithubsample/models/GitHubSearchResponse.java index 1a19d03..f3c7dcb 100644 --- a/app/src/main/java/com/ensarsarajcic/reactivegithubsample/models/GitHubSearchResponse.java +++ b/app/src/main/java/com/ensarsarajcic/reactivegithubsample/models/GitHubSearchResponse.java @@ -1,7 +1,5 @@ package com.ensarsarajcic.reactivegithubsample.models; -import com.google.gson.annotations.SerializedName; - import java.util.List; /** diff --git a/app/src/main/java/com/ensarsarajcic/reactivegithubsample/models/GitHubUser.java b/app/src/main/java/com/ensarsarajcic/reactivegithubsample/models/GitHubUser.java index d9d35e4..4602631 100644 --- a/app/src/main/java/com/ensarsarajcic/reactivegithubsample/models/GitHubUser.java +++ b/app/src/main/java/com/ensarsarajcic/reactivegithubsample/models/GitHubUser.java @@ -1,7 +1,5 @@ package com.ensarsarajcic.reactivegithubsample.models; -import com.google.gson.annotations.SerializedName; - /** * Created by ensar on 03/10/16. */ diff --git a/app/src/main/java/com/ensarsarajcic/reactivegithubsample/views/GitHubUsersAdapter.java b/app/src/main/java/com/ensarsarajcic/reactivegithubsample/views/GitHubUsersAdapter.java index 7dc9e30..f2babc6 100644 --- a/app/src/main/java/com/ensarsarajcic/reactivegithubsample/views/GitHubUsersAdapter.java +++ b/app/src/main/java/com/ensarsarajcic/reactivegithubsample/views/GitHubUsersAdapter.java @@ -17,12 +17,10 @@ import com.ensarsarajcic.reactivegithubsample.models.GitHubRepo; import com.ensarsarajcic.reactivegithubsample.models.GitHubUser; import com.ensarsarajcic.reactivegithubsample.network.RestClient; import com.jakewharton.rxbinding.view.RxView; -import com.jakewharton.rxbinding.widget.RxCompoundButton; -import com.jakewharton.rxbinding.widget.RxTextView; -import java.io.IOException; import java.net.URL; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Random; @@ -99,7 +97,7 @@ public class GitHubUsersAdapter extends RecyclerView.Adapter call(GitHubUser gitHubUser) { try { return RestClient.getGitHubApi().getUserRepos(gitHubUser.getLogin()).execute().body(); - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); Log.e(TAG, "call: ", e); return null; @@ -115,36 +113,24 @@ public class GitHubUsersAdapter extends RecyclerView.Adapter randomReposObservable = RxView.clicks(holder.tvRepos).subscribeOn(AndroidSchedulers.mainThread()); -// -// compositeSubscription.add(randomReposObservable.subscribe(new Subscriber() { -// @Override -// public void onCompleted() { -// Log.d(TAG, "onCompleted: "); -// } -// -// @Override -// public void onError(Throwable e) { -// Log.d(TAG, "onError: "); -// } -// -// @Override -// public void onNext(Void aVoid) { -// Log.d(TAG, "onNext: "); -// } -// })); -// -// Observable> gitHubReposObservable = Observable.combineLatest(randomReposObservable, fetchUserReposObservable, new Func2, List>() { -// @Override -// public List call(Void aVoid, List gitHubRepos) { -// return gitHubRepos; -// } -// }).subscribeOn(AndroidSchedulers.mainThread()); + Observable randomReposObservable = RxView.clicks(holder.tvRepos) + // Very stupid way to just generate a single event because type is void + .startWith(Arrays.asList(new Void[]{null})) + .subscribeOn(AndroidSchedulers.mainThread()); - Observable> repoNamesObservable = fetchUserReposObservable.map(new Func1, List>() { + Observable> gitHubReposObservable = Observable.combineLatest(randomReposObservable, fetchUserReposObservable, new Func2, List>() { @Override - public List call(List gitHubRepos) { + public List call(Void aVoid, List gitHubRepos) { + return gitHubRepos; + } + }); + + Observable> repoNamesObservable = gitHubReposObservable.map(new Func1, List>() { + @Override + public List call(List gitHubReposOriginal) { List names = new ArrayList(); + List gitHubRepos = new ArrayList(); + gitHubRepos.addAll(gitHubReposOriginal); for (int i = 0; i < 3; i++) { if(gitHubRepos.isEmpty()) break; int position = new Random().nextInt(gitHubRepos.size()); @@ -155,8 +141,6 @@ public class GitHubUsersAdapter extends RecyclerView.Adapter() { @Override public void onCompleted() { @@ -204,6 +188,7 @@ public class GitHubUsersAdapter extends RecyclerView.Adapter + android:layout_height="wrap_content" + android:textColor="@color/colorPrimaryDark" + android:textAllCaps="true" + android:layout_marginTop="10dp" + android:layout_marginBottom="5dp"/>