Skip to content

Commit 91d1f20

Browse files
committed
Merge pull request #4 from rjam/develop
[1.1.1] safety checks and minor refactor
2 parents bee46c0 + e2d411a commit 91d1f20

File tree

3 files changed

+28
-24
lines changed

3 files changed

+28
-24
lines changed

oneallsdk/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ android {
66
defaultConfig {
77
minSdkVersion 15
88
targetSdkVersion 22
9-
versionCode 6
10-
versionName "1.1"
9+
versionCode 7
10+
versionName "1.1.1"
1111
}
1212
buildTypes {
1313
release {

oneallsdk/src/main/java/com/oneall/oneallsdk/OAManager.java

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,9 @@
2323
import android.net.Uri;
2424
import android.os.Bundle;
2525
import android.support.annotation.Nullable;
26-
import android.util.Log;
2726
import android.view.WindowManager;
2827

2928
import java.util.ArrayList;
30-
import java.util.Arrays;
3129
import java.util.Collection;
3230
import java.util.List;
3331
import java.util.UUID;
@@ -258,12 +256,13 @@ public Boolean login(final Activity activity, String provider, LoginHandler hand
258256
validateInitialization();
259257

260258
loginHandler = handler;
261-
selectedProvider = ProviderManager.getInstance().findByKey(provider);
259+
Provider loginProvider = ProviderManager.getInstance().findByKey(provider);
262260

263-
if (selectedProvider == null) {
264-
throw new IllegalArgumentException("Specified provider does not exist");
261+
if (loginProvider == null) {
262+
throw new IllegalArgumentException("Specified provider does not exist: " + provider);
265263
}
266264

265+
selectedProvider = loginProvider;
267266
lastNonce = UUID.randomUUID().toString();
268267

269268
switch (provider) {
@@ -284,7 +283,7 @@ public void failure(OAError error) {
284283
});
285284

286285
if (!res) {
287-
webLoginWithProvider(activity);
286+
webLoginWithProvider(activity, loginProvider);
288287
}
289288
break;
290289
case "twitter":
@@ -301,7 +300,7 @@ public void failure(OAError error) {
301300
});
302301
break;
303302
default:
304-
webLoginWithProvider(activity);
303+
webLoginWithProvider(activity, loginProvider);
305304
break;
306305
}
307306

@@ -505,10 +504,10 @@ private void webLoginComplete(Intent data) {
505504
*
506505
* @param userInput user information if required by this provider, can be null
507506
*/
508-
private void webLoginWithLoginData(Activity activity, String userInput) {
509-
String url = getApiUrlForProvider(selectedProvider, lastNonce, userInput);
507+
private void webLoginWithLoginData(Activity activity, Provider provider, String userInput) {
508+
String url = getApiUrlForProvider(provider, lastNonce, userInput);
510509
OALog.info(String.format(
511-
"Web login with provider %s and url: %s", selectedProvider.getKey(), url));
510+
"Web login with provider %s and url: %s", provider.getKey(), url));
512511
Intent i = new Intent(activity, WebLoginActivity.class);
513512
i.putExtra(WebLoginActivity.INTENT_EXTRA_URL, url);
514513
i.putExtra(WebLoginActivity.INTENT_EXTRA_LOADING_STRING, loading);
@@ -520,10 +519,10 @@ private void webLoginWithLoginData(Activity activity, String userInput) {
520519
* starts actual web login with selected provider by opening web view with provider relevant
521520
* URL
522521
*/
523-
private void webLoginWithProvider(Activity activity) {
524-
OALog.info(String.format("Login with provider %s", selectedProvider));
522+
private void webLoginWithProvider(Activity activity, final Provider provider) {
523+
OALog.info(String.format("Login with provider %s", provider));
525524

526-
if (selectedProvider.getAuthentication().getIsUserInputRequired()) {
525+
if (provider.getAuthentication().getIsUserInputRequired()) {
527526
FragmentManager fm = activity.getFragmentManager();
528527
final UserInputDialog dialog = new UserInputDialog();
529528
dialog.setListener(new UserInputDialog.DialogListener() {
@@ -532,18 +531,18 @@ public void onCancel() { }
532531

533532
@Override
534533
public void onAccept(String userInput) {
535-
webLoginWithLoginData(dialog.getActivity(), userInput);
534+
webLoginWithLoginData(dialog.getActivity(), provider, userInput);
536535
}
537536
});
538537

539538
Bundle args = new Bundle();
540-
args.putString(UserInputDialog.ARGUMENT_USER_INPUT_TYPE, selectedProvider.getAuthentication().getUserInputType());
541-
args.putString(UserInputDialog.ARGUMENT_PROVIDER_NAME, selectedProvider.getName());
539+
args.putString(UserInputDialog.ARGUMENT_USER_INPUT_TYPE, provider.getAuthentication().getUserInputType());
540+
args.putString(UserInputDialog.ARGUMENT_PROVIDER_NAME, provider.getName());
542541

543542
dialog.setArguments(args);
544543
dialog.show(fm, "user_input_dialog");
545544
} else {
546-
webLoginWithLoginData(activity, null);
545+
webLoginWithLoginData(activity, provider, null);
547546
}
548547
}
549548

oneallsdk/src/main/java/com/oneall/oneallsdk/ProviderManager.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,13 @@ public void success(ResponseProvidersList responseProvidersList, Response respon
8888
.getProviders()
8989
.getEntries();
9090

91-
cacheProviders(context, pps);
92-
providers = pps;
93-
OALog.info(String.format("Parsed %d providers from server", pps.size()));
91+
if(pps != null) {
92+
cacheProviders(context, pps);
93+
providers = pps;
94+
OALog.info(String.format("Parsed %d providers from server", pps.size()));
95+
} else {
96+
OALog.error("Failed to parse providers from server: got null");
97+
}
9498
}
9599

96100
@Override
@@ -177,9 +181,10 @@ private void loadCachedProviders(Context context) {
177181
try {
178182
fis = context.openFileInput(PROVIDERS_CACHE_FILE);
179183
is = new ObjectInputStream(fis);
180-
providers = (Collection<Provider>) is.readObject();
184+
Collection<Provider> tmp = (Collection<Provider>) is.readObject();
181185

182-
if (providers != null) {
186+
if (tmp != null && !tmp.isEmpty()) {
187+
providers = tmp;
183188
OALog.info(String.format("Loaded %d cached providers", providers.size()));
184189
}
185190
} catch (FileNotFoundException ignored) {

0 commit comments

Comments
 (0)