2323import  android .net .Uri ;
2424import  android .os .Bundle ;
2525import  android .support .annotation .Nullable ;
26- import  android .util .Log ;
2726import  android .view .WindowManager ;
2827
2928import  java .util .ArrayList ;
30- import  java .util .Arrays ;
3129import  java .util .Collection ;
3230import  java .util .List ;
3331import  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
0 commit comments