Skip to content

Commit 6f3f260

Browse files
author
juniordamacena
committed
Code refactoring, and improvements
1 parent 2c595c6 commit 6f3f260

File tree

6 files changed

+97
-72
lines changed

6 files changed

+97
-72
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ buildscript {
55
jcenter()
66
}
77
dependencies {
8-
classpath 'com.android.tools.build:gradle:2.2.0'
8+
classpath 'com.android.tools.build:gradle:2.3.3'
99
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'
1010
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
1111
// NOTE: Do not place your application dependencies here; they belong
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Mon Dec 28 10:00:20 PST 2015
1+
#Mon Jul 24 11:45:01 BRT 2017
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

oauthLibGithub/build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ext {
1212
siteUrl = 'https://github.com/geniushkg/github-oauth/'
1313
gitUrl = 'https://github.com/geniushkg/github-oauth.git'
1414

15-
libraryVersion = '1.0.2'
15+
libraryVersion = '1.1.0'
1616
developerId = 'geniushkg'
1717
developerName = 'Hardik Goswami'
1818
developerEmail = '[email protected]'
@@ -24,13 +24,13 @@ ext {
2424

2525
android {
2626
compileSdkVersion 23
27-
buildToolsVersion "23.0.3"
27+
buildToolsVersion '25.0.2'
2828

2929
defaultConfig {
3030
minSdkVersion 14
3131
targetSdkVersion 23
32-
versionCode 1
33-
versionName "1.0"
32+
versionCode 2
33+
versionName "$libraryVersion"
3434

3535
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
3636

oauthLibGithub/src/main/java/com/hardikgoswami/oauthLibGithub/GithubOauth.java

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public class GithubOauth {
1414
private boolean debug;
1515
private String packageName;
1616
private ArrayList<String> scopeList;
17+
private boolean clearBeforeLauch;
1718

1819
public boolean isDebug() {
1920
return debug;
@@ -24,7 +25,7 @@ public ArrayList<String> getScopeList() {
2425
}
2526

2627
public void setScopeList(ArrayList<String> scopeList) {
27-
this.scopeList = new ArrayList<String>();
28+
this.scopeList = new ArrayList<>();
2829
this.scopeList = scopeList;
2930
}
3031

@@ -75,11 +76,22 @@ public GithubOauth packageName(String packageName) {
7576
return this;
7677
}
7778

78-
public GithubOauth withScopeList(ArrayList<String> scopeList){
79+
public GithubOauth withScopeList(ArrayList<String> scopeList) {
7980
setScopeList(scopeList);
8081
return this;
8182
}
8283

84+
/**
85+
* Whether the app should clear all data (cookies and cache) before launching a new instance of
86+
* the webView
87+
*
88+
* @param clearBeforeLauch true to clear data
89+
* @return An instance of this class
90+
*/
91+
public GithubOauth clearDataBeforeLauch(boolean clearBeforeLauch) {
92+
this.clearBeforeLauch = clearBeforeLauch;
93+
return this;
94+
}
8395

8496
public void setClient_id(String client_id) {
8597
this.client_id = client_id;
@@ -122,24 +134,22 @@ public void execute() {
122134
ArrayList<String> scopeList = getScopeList();
123135
String github_id = getClient_id();
124136
String github_secret = getClient_secret();
125-
String activityName = getNextActivity();
126-
Intent intent = new Intent(appContext, OauthActivity.class);
137+
Intent intent = new Intent(getAppContext(), OauthActivity.class);
127138
intent.putExtra("id", github_id);
128139
intent.putExtra("secret", github_secret);
129-
intent.putExtra("debug", debug);
130-
intent.putExtra("package", packageName);
131-
intent.putExtra("activity", nextActivity);
132-
if (scopeList != null) {
133-
if (scopeList.size()>0){
134-
intent.putStringArrayListExtra("scope_list",scopeList);
135-
intent.putExtra("isScopeDefined",true);
136-
} else {
137-
intent.putExtra("isScopeDefined",false);
138-
}
139-
} else {
140-
intent.putExtra("isScopeDefined",false);
140+
intent.putExtra("debug", isDebug());
141+
intent.putExtra("package", getPackageName());
142+
intent.putExtra("activity", getNextActivity());
143+
intent.putExtra("clearData", clearBeforeLauch);
144+
145+
boolean hasScope = scopeList != null && scopeList.size() > 0;
146+
147+
if (hasScope) {
148+
intent.putStringArrayListExtra("scope_list", scopeList);
141149
}
142150

151+
intent.putExtra("isScopeDefined", hasScope);
152+
143153
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
144154
appContext.startActivity(intent);
145155
}

oauthLibGithub/src/main/java/com/hardikgoswami/oauthLibGithub/OauthActivity.java

Lines changed: 64 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,17 @@
22

33
import android.content.Intent;
44
import android.content.SharedPreferences;
5-
import android.support.v7.app.AppCompatActivity;
65
import android.os.Bundle;
6+
import android.support.v7.app.AppCompatActivity;
77
import android.util.Log;
8-
import android.view.View;
98
import android.webkit.WebView;
109
import android.webkit.WebViewClient;
11-
import android.widget.ProgressBar;
1210

1311
import org.json.JSONException;
1412
import org.json.JSONObject;
1513

1614
import java.io.IOException;
1715
import java.util.ArrayList;
18-
import java.util.Arrays;
1916
import java.util.List;
2017

2118
import okhttp3.Call;
@@ -31,51 +28,54 @@ public class OauthActivity extends AppCompatActivity {
3128
public static final String GITHUB_OAUTH = "https://github.com/login/oauth/access_token";
3229
private static final String TAG = "github-oauth";
3330
public static String CODE = "";
31+
public static String PACKAGE = "";
3432
public static String CLIENT_ID = "";
3533
public static String CLIENT_SECRET = "";
3634
public static String ACTIVITY_NAME = "";
37-
public static String PACKAGE = "";
38-
private ProgressBar spinner;
35+
public String scopeAppendToUrl = "";
3936
private WebView webview;
4037
private Class c;
41-
private boolean isScopeDefined;
42-
private boolean debug;
38+
private boolean clearDataBeforeLaunch = false;
39+
private boolean isScopeDefined = false;
40+
private boolean debug = false;
4341
public List<String> scopeList;
44-
public String scopeAppendToUrl;
4542

4643
@Override
4744
protected void onCreate(Bundle savedInstanceState) {
4845
super.onCreate(savedInstanceState);
4946
setContentView(R.layout.activity_oauth);
47+
5048
scopeList = new ArrayList<>();
49+
scopeAppendToUrl = "";
50+
5151
if (getIntent().getExtras() != null) {
5252
CLIENT_ID = getIntent().getStringExtra("id");
53+
PACKAGE = getIntent().getStringExtra("package");
5354
CLIENT_SECRET = getIntent().getStringExtra("secret");
5455
ACTIVITY_NAME = getIntent().getStringExtra("activity");
5556
debug = getIntent().getBooleanExtra("debug", false);
56-
PACKAGE = getIntent().getStringExtra("package");
5757
isScopeDefined = getIntent().getBooleanExtra("isScopeDefined", false);
58-
if (isScopeDefined) {
59-
scopeList = getIntent().getStringArrayListExtra("scope_list");
60-
}
58+
clearDataBeforeLaunch = getIntent().getBooleanExtra("clearData", false);
6159
} else {
6260
Log.d(TAG, "intent extras null");
61+
finish();
6362
}
64-
if (debug)
65-
Log.d(TAG, "intent recieved is -client id :" + CLIENT_ID + "-secret:" + CLIENT_SECRET + "-activit : " + ACTIVITY_NAME + "-Package : " + PACKAGE);
66-
// try {
67-
// c = Class.forName(ACTIVITY_NAME);
68-
// } catch (ClassNotFoundException exp) {
69-
// if (debug)Log.d(TAG, "error :" + exp.getMessage());
70-
// }
71-
spinner = (ProgressBar) findViewById(R.id.progressBar);
72-
spinner.setVisibility(View.VISIBLE);
63+
64+
String url_load = GITHUB_URL + "?client_id=" + CLIENT_ID;
65+
7366
if (isScopeDefined) {
67+
scopeList = getIntent().getStringArrayListExtra("scope_list");
7468
scopeAppendToUrl = getCsvFromList(scopeList);
75-
} else {
76-
scopeAppendToUrl = "";
69+
url_load += "&scope=" + scopeAppendToUrl;
7770
}
78-
Log.d(TAG, "onCreate: Scope request are : " + scopeAppendToUrl);
71+
72+
if (debug) {
73+
Log.d(TAG, "intent received is -client id :" + CLIENT_ID + "-secret:" + CLIENT_SECRET + "-activity : " + ACTIVITY_NAME + "-Package : " + PACKAGE);
74+
Log.d(TAG, "onCreate: Scope request are : " + scopeAppendToUrl);
75+
}
76+
77+
// TODO: 7/24/2017 Clear the cache and cookies of the webView if clearDataBeforeLaunch is true
78+
7979
webview = (WebView) findViewById(R.id.webview);
8080
webview.getSettings().setJavaScriptEnabled(true);
8181
webview.setWebViewClient(new WebViewClient() {
@@ -92,16 +92,13 @@ public boolean shouldOverrideUrlLoading(WebView view, String url) {
9292
String[] cleanToken = tokenFetchedIs.split("&");
9393
if (debug) Log.d(TAG, "token cleaned is :" + cleanToken[0]);
9494
fetchOauthTokenWithCode(cleanToken[0]);
95-
} catch (NullPointerException | ArrayIndexOutOfBoundsException e) {}
95+
} catch (NullPointerException | ArrayIndexOutOfBoundsException e) {
96+
e.printStackTrace();
97+
}
9698
return false;
9799
}
98100
});
99-
String url_load = "";
100-
if (isScopeDefined) {
101-
url_load = GITHUB_URL + "?client_id=" + CLIENT_ID + "&scope=" + scopeAppendToUrl;
102-
} else {
103-
url_load = GITHUB_URL + "?client_id=" + CLIENT_ID;
104-
}
101+
105102
webview.loadUrl(url_load);
106103
}
107104

@@ -124,22 +121,35 @@ public void onFailure(Call call, IOException e) {
124121

125122
@Override
126123
public void onResponse(Call call, Response response) throws IOException {
124+
127125
if (response.isSuccessful()) {
128126
String JsonData = response.body().string();
129-
if (debug) Log.d(TAG, "response is:" + JsonData);
127+
128+
if (debug) {
129+
Log.d(TAG, "response is:" + JsonData);
130+
}
131+
130132
try {
131133
JSONObject jsonObject = new JSONObject(JsonData);
132134
String auth_token = jsonObject.getString("access_token");
133-
if (debug) Log.d(TAG, "token is :" + auth_token);
135+
134136
storeToSharedPreference(auth_token);
137+
138+
if (debug) {
139+
Log.d(TAG, "token is :" + auth_token);
140+
}
141+
135142
} catch (JSONException exp) {
136-
if (debug) Log.d(TAG, "json exception :" + exp.getMessage());
143+
if (debug) {
144+
Log.d(TAG, "json exception :" + exp.getMessage());
145+
}
137146
}
138147

139148
} else {
140-
Log.d(TAG, "onResponse: not success : " + response.message());
149+
if (debug) {
150+
Log.d(TAG, "onResponse: not success : " + response.message());
151+
}
141152
}
142-
143153
}
144154
});
145155
}
@@ -157,22 +167,35 @@ public void onBackPressed() {
157167
private void storeToSharedPreference(String auth_token) {
158168
SharedPreferences prefs = getSharedPreferences("github_prefs", MODE_PRIVATE);
159169
SharedPreferences.Editor edit = prefs.edit();
170+
160171
edit.putString("oauth_token", auth_token);
161-
edit.commit();
172+
edit.apply();
173+
174+
// TODO: 7/24/2017 Only open a new activity if specified
162175
Intent intent = new Intent();
163176
intent.setClassName(PACKAGE, ACTIVITY_NAME);
164177
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
165178
startActivity(intent);
179+
166180
finish();
167181
}
168182

183+
/**
184+
* Generate a comma separated list of scopes out of the
185+
*
186+
* @param scopeList list of scopes as defined
187+
* @return comma separated list of scopes
188+
*/
169189
public String getCsvFromList(List<String> scopeList) {
170190
String csvString = "";
171191

172-
for (int i = 0; i < scopeList.size() - 1; i++) {
173-
csvString = csvString + scopeList.get(i) + ",";
192+
for (String scope : scopeList) {
193+
if (!csvString.equals("")) {
194+
csvString += ",";
195+
}
196+
197+
csvString += scope;
174198
}
175-
csvString = csvString + scopeList.get(scopeList.size() - 1);
176199

177200
return csvString;
178201
}

oauthLibGithub/src/main/res/layout/activity_oauth.xml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,6 @@
77
android:orientation="vertical"
88
tools:context="com.hardikgoswami.oauthLibGithub.OauthActivity">
99

10-
<ProgressBar
11-
android:id="@+id/progressBar"
12-
style="?android:attr/progressBarStyleSmall"
13-
android:layout_width="wrap_content"
14-
android:layout_height="wrap_content"
15-
android:layout_centerHorizontal="true"
16-
android:visibility="gone"/>
17-
1810
<WebView
1911
android:id="@+id/webview"
2012
android:layout_width="match_parent"

0 commit comments

Comments
 (0)