Skip to content

Commit d21e1cf

Browse files
author
Kaushik Gopal
committed
fix: api changes due to upgrade + abstraction of github service
1 parent 0b8efac commit d21e1cf

File tree

5 files changed

+138
-291
lines changed

5 files changed

+138
-291
lines changed

app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheConcatFragment.java

Lines changed: 4 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import android.os.Bundle;
44
import android.support.annotation.Nullable;
5-
import android.text.TextUtils;
65
import android.view.LayoutInflater;
76
import android.view.View;
87
import android.view.ViewGroup;
@@ -12,19 +11,12 @@
1211
import com.morihacky.android.rxjava.R;
1312
import com.morihacky.android.rxjava.retrofit.Contributor;
1413
import com.morihacky.android.rxjava.retrofit.GithubApi;
15-
import com.squareup.okhttp.Interceptor;
16-
import com.squareup.okhttp.OkHttpClient;
17-
import com.squareup.okhttp.Request;
18-
import com.squareup.okhttp.Response;
14+
import com.morihacky.android.rxjava.retrofit.GithubService;
1915

20-
import java.io.IOException;
2116
import java.util.ArrayList;
2217
import java.util.HashMap;
2318
import java.util.List;
2419

25-
import retrofit.GsonConverterFactory;
26-
import retrofit.Retrofit;
27-
import retrofit.RxJavaCallAdapterFactory;
2820
import butterknife.Bind;
2921
import butterknife.ButterKnife;
3022
import butterknife.OnClick;
@@ -35,8 +27,6 @@
3527
import rx.functions.Func1;
3628
import timber.log.Timber;
3729

38-
import static java.lang.String.format;
39-
4030
public class PseudoCacheConcatFragment
4131
extends BaseFragment {
4232

@@ -122,7 +112,9 @@ private Observable<Contributor> _getCachedData() {
122112
}
123113

124114
private Observable<Contributor> _getFreshData() {
125-
return _createGithubApi().contributors("square", "retrofit")
115+
String githubToken = getResources().getString(R.string.github_oauth_token);
116+
GithubApi githubService = GithubService.createGithubService(githubToken);
117+
return githubService.contributors("square", "retrofit")
126118
.flatMap(new Func1<List<Contributor>, Observable<Contributor>>() {
127119
@Override
128120
public Observable<Contributor> call(List<Contributor> contributors) {
@@ -131,32 +123,6 @@ public Observable<Contributor> call(List<Contributor> contributors) {
131123
});
132124
}
133125

134-
private GithubApi _createGithubApi() {
135-
Retrofit.Builder builder =new Retrofit.Builder()
136-
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
137-
.addConverterFactory(GsonConverterFactory.create())
138-
.baseUrl("https://api.github.com");
139-
140-
final String githubToken = getResources().getString(R.string.github_oauth_token);
141-
142-
if (!TextUtils.isEmpty(githubToken)) {
143-
OkHttpClient client = new OkHttpClient();
144-
client.interceptors().add(new Interceptor() {
145-
@Override
146-
public Response intercept(Chain chain) throws IOException {
147-
Request request = chain.request();
148-
Request newReq = request.newBuilder()
149-
.addHeader("Authorization", format("token %s", githubToken))
150-
.build();
151-
return chain.proceed(newReq);
152-
}
153-
});
154-
builder.client(client);
155-
}
156-
157-
return builder.build().create(GithubApi.class);
158-
}
159-
160126
private void _initializeCache() {
161127
_contributionMap = new HashMap<>();
162128
_contributionMap.put("JakeWharton", 0l);

app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheMergeFragment.java

Lines changed: 15 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -2,57 +2,43 @@
22

33
import android.os.Bundle;
44
import android.support.annotation.Nullable;
5-
import android.text.TextUtils;
65
import android.util.Pair;
76
import android.view.LayoutInflater;
87
import android.view.View;
98
import android.view.ViewGroup;
109
import android.widget.ArrayAdapter;
1110
import android.widget.ListView;
12-
11+
import butterknife.Bind;
12+
import butterknife.ButterKnife;
13+
import butterknife.OnClick;
1314
import com.morihacky.android.rxjava.R;
1415
import com.morihacky.android.rxjava.retrofit.Contributor;
1516
import com.morihacky.android.rxjava.retrofit.GithubApi;
16-
import com.squareup.okhttp.Interceptor;
17-
import com.squareup.okhttp.OkHttpClient;
18-
import com.squareup.okhttp.Request;
19-
import com.squareup.okhttp.Response;
20-
21-
import java.io.IOException;
17+
import com.morihacky.android.rxjava.retrofit.GithubService;
2218
import java.util.ArrayList;
2319
import java.util.HashMap;
2420
import java.util.List;
25-
26-
import retrofit.GsonConverterFactory;
27-
import retrofit.Retrofit;
28-
import retrofit.RxJavaCallAdapterFactory;
29-
import butterknife.Bind;
30-
import butterknife.ButterKnife;
31-
import butterknife.OnClick;
3221
import rx.Observable;
3322
import rx.Subscriber;
3423
import rx.Subscription;
3524
import rx.android.schedulers.AndroidSchedulers;
3625
import rx.functions.Func1;
26+
import rx.schedulers.Schedulers;
3727
import timber.log.Timber;
3828

39-
import static android.text.TextUtils.isEmpty;
40-
import static java.lang.String.format;
41-
4229
public class PseudoCacheMergeFragment
4330
extends BaseFragment {
4431

4532
@Bind(R.id.log_list) ListView _resultList;
46-
47-
private Subscription _subscription = null;
33+
private ArrayAdapter<String> _adapter;
4834
private HashMap<String, Long> _contributionMap = null;
4935
private HashMap<Contributor, Long> _resultAgeMap = new HashMap<>();
50-
private ArrayAdapter<String> _adapter;
36+
private Subscription _subscription = null;
5137

5238
@Override
5339
public View onCreateView(LayoutInflater inflater,
54-
@Nullable ViewGroup container,
55-
@Nullable Bundle savedInstanceState) {
40+
@Nullable ViewGroup container,
41+
@Nullable Bundle savedInstanceState) {
5642
View layout = inflater.inflate(R.layout.fragment_pseudo_cache_concat, container, false);
5743
ButterKnife.bind(this, layout);
5844
_initializeCache();
@@ -69,15 +55,13 @@ public void onPause() {
6955

7056
@OnClick(R.id.btn_start_pseudo_cache)
7157
public void onDemoPseudoCacheClicked() {
72-
_adapter = new ArrayAdapter<>(getActivity(),
73-
R.layout.item_log,
74-
R.id.item_log,
75-
new ArrayList<String>());
58+
_adapter = new ArrayAdapter<>(getActivity(), R.layout.item_log, R.id.item_log, new ArrayList<String>());
7659

7760
_resultList.setAdapter(_adapter);
7861
_initializeCache();
7962

8063
Observable.merge(_getCachedData(), _getFreshData())
64+
.subscribeOn(Schedulers.io())
8165
.observeOn(AndroidSchedulers.mainThread())
8266
.subscribe(new Subscriber<Pair<Contributor, Long>>() {
8367
@Override
@@ -138,7 +122,10 @@ private Observable<Pair<Contributor, Long>> _getCachedData() {
138122
}
139123

140124
private Observable<Pair<Contributor, Long>> _getFreshData() {
141-
return _createGithubApi().contributors("square", "retrofit")
125+
String githubToken = getResources().getString(R.string.github_oauth_token);
126+
GithubApi githubService = GithubService.createGithubService(githubToken);
127+
128+
return githubService.contributors("square", "retrofit")
142129
.flatMap(new Func1<List<Contributor>, Observable<Contributor>>() {
143130
@Override
144131
public Observable<Contributor> call(List<Contributor> contributors) {
@@ -153,32 +140,6 @@ public Pair<Contributor, Long> call(Contributor contributor) {
153140
});
154141
}
155142

156-
private GithubApi _createGithubApi() {
157-
Retrofit.Builder builder = new Retrofit.Builder()
158-
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
159-
.addConverterFactory(GsonConverterFactory.create())
160-
.baseUrl("https://api.github.com");
161-
162-
final String githubToken = getResources().getString(R.string.github_oauth_token);
163-
164-
if (!TextUtils.isEmpty(githubToken)) {
165-
OkHttpClient client = new OkHttpClient();
166-
client.interceptors().add(new Interceptor() {
167-
@Override
168-
public Response intercept(Chain chain) throws IOException {
169-
Request request = chain.request();
170-
Request newReq = request.newBuilder()
171-
.addHeader("Authorization", format("token %s", githubToken))
172-
.build();
173-
return chain.proceed(newReq);
174-
}
175-
});
176-
builder.client(client);
177-
}
178-
179-
return builder.build().create(GithubApi.class);
180-
}
181-
182143
private void _initializeCache() {
183144
_contributionMap = new HashMap<>();
184145
_contributionMap.put("JakeWharton", 0l);

app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitAsyncTaskDeathFragment.java

Lines changed: 8 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import android.os.Bundle;
55
import android.support.annotation.Nullable;
66
import android.support.v4.app.Fragment;
7-
import android.text.TextUtils;
87
import android.view.LayoutInflater;
98
import android.view.View;
109
import android.view.ViewGroup;
@@ -14,26 +13,18 @@
1413

1514
import com.morihacky.android.rxjava.R;
1615
import com.morihacky.android.rxjava.retrofit.GithubApi;
16+
import com.morihacky.android.rxjava.retrofit.GithubService;
1717
import com.morihacky.android.rxjava.retrofit.User;
18-
import com.squareup.okhttp.Interceptor;
19-
import com.squareup.okhttp.OkHttpClient;
20-
import com.squareup.okhttp.Request;
21-
import com.squareup.okhttp.Response;
2218

23-
import java.io.IOException;
2419
import java.util.ArrayList;
2520

26-
import retrofit.GsonConverterFactory;
27-
import retrofit.Retrofit;
28-
import retrofit.RxJavaCallAdapterFactory;
2921
import butterknife.Bind;
3022
import butterknife.ButterKnife;
3123
import butterknife.OnClick;
3224
import rx.Observer;
3325
import rx.android.schedulers.AndroidSchedulers;
3426
import rx.schedulers.Schedulers;
3527

36-
import static android.text.TextUtils.isEmpty;
3728
import static java.lang.String.format;
3829

3930
public class RetrofitAsyncTaskDeathFragment
@@ -42,13 +33,15 @@ public class RetrofitAsyncTaskDeathFragment
4233
@Bind(R.id.btn_demo_retrofit_async_death_username) EditText _username;
4334
@Bind(R.id.log_list) ListView _resultList;
4435

45-
private GithubApi _api;
36+
private GithubApi _githubService;
4637
private ArrayAdapter<String> _adapter;
4738

4839
@Override
4940
public void onCreate(Bundle savedInstanceState) {
5041
super.onCreate(savedInstanceState);
51-
_api = _createGithubApi();
42+
43+
String githubToken = getResources().getString(R.string.github_oauth_token);
44+
_githubService = GithubService.createGithubService(githubToken);
5245
}
5346

5447
@Override
@@ -78,7 +71,7 @@ public void onGetGithubUserClicked() {
7871
/*new AsyncTask<String, Void, User>() {
7972
@Override
8073
protected User doInBackground(String... params) {
81-
return _api.getUser(params[0]);
74+
return _githubService.getUser(params[0]);
8275
}
8376
8477
@Override
@@ -87,7 +80,7 @@ protected void onPostExecute(User user) {
8780
}
8881
}.execute(_username.getText().toString());*/
8982

90-
_api.user(_username.getText().toString())
83+
_githubService.user(_username.getText().toString())
9184
.subscribeOn(Schedulers.io())
9285
.observeOn(AndroidSchedulers.mainThread())
9386
.subscribe(new Observer<User>() {
@@ -111,40 +104,12 @@ public void onNext(User user) {
111104

112105
// -----------------------------------------------------------------------------------
113106

114-
private GithubApi _createGithubApi() {
115-
Retrofit.Builder builder = new Retrofit.Builder()
116-
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
117-
.addConverterFactory(GsonConverterFactory.create())
118-
.baseUrl("https://api.github.com");
119-
120-
final String githubToken = getResources().getString(R.string.github_oauth_token);
121-
122-
if (!TextUtils.isEmpty(githubToken)) {
123-
OkHttpClient client = new OkHttpClient();
124-
client.interceptors().add(new Interceptor() {
125-
@Override
126-
public Response intercept(Chain chain) throws IOException {
127-
Request request = chain.request();
128-
Request newReq = request.newBuilder()
129-
.addHeader("Authorization", format("token %s", githubToken))
130-
.build();
131-
return chain.proceed(newReq);
132-
}
133-
});
134-
builder.client(client);
135-
}
136-
137-
return builder.build().create(GithubApi.class);
138-
}
139-
140-
// -----------------------------------------------------------------------------------
141-
142107
private class GetGithubUser
143108
extends AsyncTask<String, Void, User> {
144109

145110
@Override
146111
protected User doInBackground(String... params) {
147-
return _api.getUser(params[0]);
112+
return _githubService.getUser(params[0]);
148113
}
149114

150115
@Override

0 commit comments

Comments
 (0)