Skip to content

Commit ef20629

Browse files
committed
URL and JSON error being logged by class GithubClient.
1 parent d19f162 commit ef20629

24 files changed

+176
-370
lines changed

library/src/main/java/io/syslogic/github/api/GithubClient.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
package io.syslogic.github.api;
22

3+
import android.util.Log;
4+
35
import androidx.annotation.NonNull;
46
import androidx.annotation.Nullable;
57

68
import com.google.gson.Gson;
79
import com.google.gson.GsonBuilder;
10+
import com.google.gson.JsonObject;
11+
import com.google.gson.JsonParser;
812

13+
import java.io.IOException;
914
import java.util.ArrayList;
1015

1116
import io.syslogic.github.api.model.Branch;
@@ -22,6 +27,7 @@
2227
import okhttp3.ResponseBody;
2328

2429
import retrofit2.Call;
30+
import retrofit2.Response;
2531
import retrofit2.Retrofit;
2632
import retrofit2.converter.gson.GsonConverterFactory;
2733

@@ -32,6 +38,7 @@
3238
*/
3339
public class GithubClient {
3440

41+
/** {@link Retrofit} Instance */
3542
private static Retrofit retrofit;
3643

3744
/** @return an instance of {@link GithubService}. */
@@ -231,4 +238,23 @@ public class GithubClient {
231238
@NonNull public static Call<WorkflowJobsResponse> getWorkflowJobs(@Nullable String token, @NonNull String owner, @NonNull String repo, @NonNull Long runId) {
232239
return getService().getWorkflowJobs("token " + token, owner, repo, runId);
233240
}
241+
242+
/** It logs the URL of the call. */
243+
public static void logUrl(@NonNull String tag, @NonNull Call<?> api) {
244+
if (BuildConfig.DEBUG) {Log.w(tag, api.request().url() + "");}
245+
}
246+
247+
/** Note: "bad credentials" means that the provided access-token is invalid. */
248+
public static void logError(@NonNull String tag, @NonNull Response<?> response) {
249+
if (BuildConfig.DEBUG && response.errorBody() != null) {
250+
try {
251+
String errors = response.errorBody().string();
252+
JsonObject jsonObject = JsonParser.parseString(errors).getAsJsonObject();
253+
String message = jsonObject.get("message").toString();
254+
Log.e(tag, message);
255+
} catch (IOException e) {
256+
Log.e(tag, "" + e.getMessage());
257+
}
258+
}
259+
}
234260
}

mobile/src/main/java/io/syslogic/github/activity/BaseActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import io.syslogic.github.R;
1212
import io.syslogic.github.fragment.BaseFragment;
13-
import io.syslogic.github.provider.BaseMenuProvider;
13+
import io.syslogic.github.menu.BaseMenuProvider;
1414

1515
/**
1616
* The Base {@link AppCompatActivity}

mobile/src/main/java/io/syslogic/github/fragment/BaseFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ protected void setCurrentUser(@Nullable User value) {
181181
protected void setUser(@NonNull String accessToken, @Nullable final TokenCallback listener) {
182182

183183
Call<User> api = GithubClient.getUser(accessToken);
184-
if (mDebug) {Log.w(LOG_TAG, api.request().url() + "");}
184+
GithubClient.logUrl(LOG_TAG, api);
185185

186186
api.enqueue(new Callback<>() {
187187

mobile/src/main/java/io/syslogic/github/fragment/HomeScreenFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import io.syslogic.github.api.model.User;
1717
import io.syslogic.github.databinding.FragmentHomeScreenBinding;
1818
import io.syslogic.github.network.TokenCallback;
19-
import io.syslogic.github.provider.HomeScreenMenuProvider;
19+
import io.syslogic.github.menu.HomeScreenMenuProvider;
2020

2121
/**
2222
* Home Screen {@link BaseFragment}

mobile/src/main/java/io/syslogic/github/fragment/QueryStringsFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import io.syslogic.github.R;
1616
import io.syslogic.github.activity.BaseActivity;
1717
import io.syslogic.github.databinding.FragmentQueryStringsBinding;
18-
import io.syslogic.github.provider.QueryStringsMenuProvider;
18+
import io.syslogic.github.menu.QueryStringsMenuProvider;
1919
import io.syslogic.github.recyclerview.QueryStringsAdapter;
2020

2121
/**

mobile/src/main/java/io/syslogic/github/fragment/RepositoriesFragment.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import io.syslogic.github.databinding.FragmentRepositoriesBinding;
2222
import io.syslogic.github.model.PagerState;
2323
import io.syslogic.github.network.TokenCallback;
24-
import io.syslogic.github.provider.RepositoriesMenuProvider;
24+
import io.syslogic.github.menu.RepositoriesMenuProvider;
2525
import io.syslogic.github.recyclerview.RepositoriesAdapter;
2626
import io.syslogic.github.recyclerview.RepositoriesLinearView;
2727
import io.syslogic.github.recyclerview.ScrollListener;
@@ -171,6 +171,7 @@ protected void setDataBinding(@NonNull ViewDataBinding binding) {
171171
@Override
172172
public void onNetworkAvailable() {
173173
super.onNetworkAvailable();
174+
174175
String token = this.getAccessToken();
175176
if (getCurrentUser() == null && token != null) {
176177
this.setUser(token, this);
@@ -204,8 +205,6 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis
204205

205206
@Override
206207
public void onLogin(@NonNull User item) {
207-
if (this.mDataBinding != null) {
208-
this.mDataBinding.setUser(item);
209-
}
208+
if (this.mDataBinding != null) {this.mDataBinding.setUser(item);}
210209
}
211210
}

mobile/src/main/java/io/syslogic/github/fragment/RepositoryFragment.java

Lines changed: 24 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ public class RepositoryFragment extends BaseFragment implements TokenCallback {
7474
/** Data-Binding */
7575
FragmentRepositoryBinding mDataBinding;
7676
ProgressDialogFragment currentDialog;
77+
78+
/** The repository's ID. */
7779
Long repositoryId = -1L;
7880

7981
/** Constructor */
@@ -126,24 +128,25 @@ public void onPageCommitVisible (WebView view, String url) {
126128
@Override
127129
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
128130
if (count > 0) {
129-
130131
WebView webview = getDataBinding().webview;
131132
AppCompatSpinner spinner = getDataBinding().toolbarDownload.spinnerBranch;
132133
String branch = spinner.getSelectedItem().toString();
133-
134134
String url = webview.getUrl();
135-
if (url.equals("https://github.com/" + getDataBinding().getRepository().getFullName())) {
136-
url += "/tree/" + branch;
137-
} else {
138-
Uri uri = Uri.parse(url);
139-
String token = uri.getLastPathSegment();
140-
if (token != null) {
141-
url = url.replace(token, branch);
135+
136+
if (url != null) {
137+
if (url.equals("https://github.com/" + getDataBinding().getRepository().getFullName())) {
138+
url += "/tree/" + branch;
139+
} else {
140+
Uri uri = Uri.parse(url);
141+
String token = uri.getLastPathSegment();
142+
if (token != null) {
143+
url = url.replace(token, branch);
144+
}
142145
}
146+
url = url.replace("/tree/master", "");
147+
if (mDebug) {Log.d(LOG_TAG, url);}
148+
webview.loadUrl(url);
143149
}
144-
url = url.replace("/tree/master", "");
145-
if (mDebug) {Log.d(LOG_TAG, url);}
146-
webview.loadUrl(url);
147150
}
148151
count++;
149152
}
@@ -283,35 +286,20 @@ private void getRepository(Long repositoryId) {
283286
if (repositoryId != 0) {
284287

285288
Call<Repository> api = GithubClient.getRepository(repositoryId);
286-
if (mDebug) {Log.w(LOG_TAG, api.request().url() + "");}
289+
GithubClient.logUrl(LOG_TAG, api);
287290

288291
api.enqueue(new Callback<>() {
289292

290293
@Override
291294
public void onResponse(@NonNull Call<Repository> call, @NonNull Response<Repository> response) {
292-
switch (response.code()) {
293-
case 200 -> {
294-
if (response.body() != null) {
295-
Repository item = response.body();
296-
mDataBinding.setRepository(item);
297-
setBranches(item);
298-
}
299-
}
300-
case 403 -> {
301-
if (response.errorBody() != null) {
302-
try {
303-
String errors = response.errorBody().string();
304-
JsonObject jsonObject = JsonParser.parseString(errors).getAsJsonObject();
305-
String message = jsonObject.get("message").toString();
306-
if (mDebug) {
307-
Toast.makeText(getContext(), message, Toast.LENGTH_LONG).show();
308-
Log.e(LOG_TAG, message);
309-
}
310-
} catch (IOException e) {
311-
if (mDebug) {Log.e(LOG_TAG, "" + e.getMessage());}
312-
}
313-
}
295+
if (response.code() == 200) {
296+
if (response.body() != null) {
297+
Repository item = response.body();
298+
mDataBinding.setRepository(item);
299+
setBranches(item);
314300
}
301+
} else {
302+
GithubClient.logError(LOG_TAG, response);
315303
}
316304
}
317305

@@ -326,7 +314,7 @@ public void onFailure(@NonNull Call<Repository> call, @NonNull Throwable t) {
326314
public void setBranches(@NonNull Repository item) {
327315

328316
Call<ArrayList<Branch>> api = GithubClient.getBranches(item.getOwner().getLogin(), item.getName());
329-
if (mDebug) {Log.w(LOG_TAG, api.request().url() + "");}
317+
GithubClient.logUrl(LOG_TAG, api);
330318
final String repoName = item.getName();
331319

332320
api.enqueue(new Callback<>() {

mobile/src/main/java/io/syslogic/github/fragment/RepositorySearchFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import io.syslogic.github.databinding.FragmentRepositorySearchBinding;
2727
import io.syslogic.github.model.PagerState;
2828
import io.syslogic.github.network.TokenCallback;
29-
import io.syslogic.github.provider.RepositorySearchMenuProvider;
29+
import io.syslogic.github.menu.RepositorySearchMenuProvider;
3030
import io.syslogic.github.recyclerview.RepositorySearchAdapter;
3131
import io.syslogic.github.recyclerview.RepositorySearchLinearView;
3232
import io.syslogic.github.recyclerview.ScrollListener;

mobile/src/main/java/io/syslogic/github/fragment/WorkflowJobsFragment.java

Lines changed: 16 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,18 @@
55
import android.view.LayoutInflater;
66
import android.view.View;
77
import android.view.ViewGroup;
8-
import android.widget.Toast;
98

109
import androidx.annotation.NonNull;
1110
import androidx.annotation.Nullable;
1211
import androidx.databinding.ViewDataBinding;
1312

14-
import com.google.gson.JsonObject;
15-
import com.google.gson.JsonParser;
16-
17-
import java.io.IOException;
18-
1913
import io.syslogic.github.Constants;
2014
import io.syslogic.github.R;
2115
import io.syslogic.github.activity.NavHostActivity;
2216
import io.syslogic.github.api.GithubClient;
2317
import io.syslogic.github.api.model.Repository;
2418
import io.syslogic.github.databinding.FragmentWorkflowJobsBinding;
25-
import io.syslogic.github.provider.WorkflowsMenuProvider;
19+
import io.syslogic.github.menu.WorkflowsMenuProvider;
2620
import io.syslogic.github.recyclerview.WorkflowStepsAdapter;
2721

2822
import retrofit2.Call;
@@ -118,44 +112,30 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c
118112
}
119113

120114
private void getRepository(Long repositoryId) {
121-
122115
if (repositoryId != 0) {
123116

124117
Call<Repository> api = GithubClient.getRepository(repositoryId);
125-
if (mDebug) {Log.w(LOG_TAG, api.request().url() + "");}
118+
GithubClient.logUrl(LOG_TAG, api);
126119

127120
api.enqueue(new Callback<>() {
128121
@Override
129122
public void onResponse(@NonNull Call<Repository> call, @NonNull Response<Repository> response) {
130-
switch (response.code()) {
131-
case 200 -> {
132-
if (response.body() != null) {
133-
Repository item = response.body();
134-
mDataBinding.setRepository(item);
135-
136-
/* Filling in the blanks. */
137-
repositoryOwner = item.getOwner().getLogin();
138-
repositoryName = item.getName();
139-
140-
WorkflowStepsAdapter adapter = ((WorkflowStepsAdapter) mDataBinding.recyclerviewWorkflowSteps.getAdapter());
141-
if (adapter != null) {adapter.getWorkflowSteps(getAccessToken(), repositoryOwner, repositoryName, getRunId());}
142-
}
143-
}
144-
case 403 -> {
145-
if (response.errorBody() != null) {
146-
try {
147-
String errors = response.errorBody().string();
148-
JsonObject jsonObject = JsonParser.parseString(errors).getAsJsonObject();
149-
String message = jsonObject.get("message").toString();
150-
if (mDebug) {
151-
Toast.makeText(getContext(), message, Toast.LENGTH_LONG).show();
152-
Log.e(LOG_TAG, message);
153-
}
154-
} catch (IOException e) {
155-
if (mDebug) {Log.e(LOG_TAG, "" + e.getMessage());}
156-
}
123+
if (response.code() == 200) {
124+
if (response.body() != null) {
125+
Repository item = response.body();
126+
mDataBinding.setRepository(item);
127+
128+
/* Filling in the blanks. */
129+
repositoryOwner = item.getOwner().getLogin();
130+
repositoryName = item.getName();
131+
132+
WorkflowStepsAdapter adapter = ((WorkflowStepsAdapter) mDataBinding.recyclerviewWorkflowSteps.getAdapter());
133+
if (adapter != null) {
134+
adapter.getWorkflowSteps(getAccessToken(), repositoryOwner, repositoryName, getRunId());
157135
}
158136
}
137+
} else {
138+
GithubClient.logError(LOG_TAG, response);
159139
}
160140
}
161141
@Override
@@ -166,21 +146,6 @@ public void onFailure(@NonNull Call<Repository> call, @NonNull Throwable t) {
166146
}
167147
}
168148

169-
@NonNull
170-
public Long getRepositoryId() {
171-
return this.repositoryId;
172-
}
173-
174-
@Nullable
175-
public String getRepositoryOwner() {
176-
return this.repositoryOwner;
177-
}
178-
179-
@Nullable
180-
public String getRepositoryName() {
181-
return this.repositoryName;
182-
}
183-
184149
@NonNull
185150
public Long getRunId() {
186151
return this.runId;

0 commit comments

Comments
 (0)