2017-07-10 12 views
0

Editをインストール:問題のイメージ、http://imgur.com/a/N4pRbFacebookのログインが

のFacebookを使用してログインすると、私はページに私を取るログインを促すポップアップを、取得するには、「ログインの確認します"それは私のアプリがすでに承認されていると言います。私はokをクリックして、ログインのポップアップに戻る。左上の「x」をクリックすると、onSuccess()コードが実行されます。ログインが完了すると、onSuccess()メソッドはログインを処理し、ユーザーを別のアクティビティにする必要があります。ここからどこに行くのですか?

MainActivity、

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.content_main); 
    fragment.onActivityResult(requestCode, resultCode, data); 
} 

LoginFragment、

public class LoginFragment extends MvpFragment<LoginView, LoginPresenter> implements LoginView, View.OnClickListener { 

private EditText _userName; 
private EditText _password; 
private Button _loginWithFacebook; 
private CallbackManager _callbackManager; 
private static final String TAG = LoginFragment.class.getSimpleName(); 


@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_login, container, false); 

    view.findViewById(R.id.login_btn).setOnClickListener(this); 
    view.findViewById(R.id.login_forgot_password).setOnClickListener(this); 
    view.findViewById(R.id.login_signup).setOnClickListener(this); 
    view.findViewById(R.id.login_skip).setOnClickListener(this); 

    _userName = (EditText) view.findViewById(R.id.login_username); 
    _password = (EditText) view.findViewById(R.id.login_password); 

    _loginWithFacebook = (Button) view.findViewById(R.id.facebook_login_button); 
    _loginWithFacebook.setOnClickListener(this); 

    LoginManager.getInstance().logOut(); 

    return view; 
} 

@NonNull 
@Override 
public LoginPresenter createPresenter() { 
    return new LoginPresenterImpl((LoginRouter) getActivity(), new PreferencesManager(getContext())); 
} 

@Override 
public void authenticationError() { 
    AlertDialogFragment.newInstance(R.string.login_authentication_error, false).show(getChildFragmentManager(), null); 
} 

@Override 
public void onShowEmptyFieldError() { 
    AlertDialogFragment.newInstance(R.string.login_empty_field_error, false).show(getChildFragmentManager(), null); 
} 

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.facebook_login_button: 
      //presenter.onFacebookLoginClick(); 
      facebookLogIn(); 
      break; 
     case R.id.login_btn: 
      doLogin(); 
      break; 
     case R.id.login_forgot_password: 
      presenter.onForgotPasswordClick(); 
      break; 
     case R.id.login_signup: 
      presenter.onSignUpClick(); 
      break; 
     case R.id.login_skip: 
      presenter.onSkipForNowClick(); 
      break; 
    } 
} 


private void doLogin() { 
    presenter.onLocalLoginClick(_userName.getText().toString().trim(), 
      _password.getText().toString().trim()); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (_callbackManager != null) { 
     _callbackManager.onActivityResult(requestCode, resultCode, data); 
    } 
} 


@Override 
public void facebookLogIn() { 
    _callbackManager = CallbackManager.Factory.create(); 

    LoginManager.getInstance().registerCallback(_callbackManager, 
      new FacebookCallback<LoginResult>() { 
       @Override 
       public void onSuccess(LoginResult loginResult) { 
        Log.d(TAG, "Successful Login"); 

        GraphRequestBatch batch = new GraphRequestBatch(
          GraphRequest.newMeRequest(
            loginResult.getAccessToken(), 
            new GraphRequest.GraphJSONObjectCallback() { 
             @Override 
             public void onCompleted(
               JSONObject jsonObject, 
               GraphResponse response) { 
              // Application code for user 

              try { 
               Log.d(TAG, jsonObject.toString()); 
               String s = jsonObject.getString("name"); 

               presenter.checkFacebookUserExists(s); 

              } catch (Exception e) { 
               Log.d(TAG, "Login Unsuccesful"); 
              } 
             } 
            }) 
        ); 

        batch.executeAsync(); 

       } 

       @Override 
       public void onCancel() { 
        // do nothing 
       } 

       @Override 
       public void onError(FacebookException exception) { 
        Log.d(TAG, exception.getMessage()); 

        //showNetworkError(); 
       } 
      }); 

    LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "email")); 
} 
} 

マニフェスト、

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.some.placeholder"> 

<uses-permission android:name="android.permission.INTERNET" /> 
<application 
    android:name=".SomeApplication" 
    android:allowBackup="true" 
    android:hardwareAccelerated="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:largeHeap="true" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".SplashActivity" 
     android:theme="@style/SplashTheme"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".MainActivity" 
     android:screenOrientation="sensorPortrait"> 
     <intent-filter> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".login.LoginActivity" 
     android:windowSoftInputMode="stateAlwaysHidden" /> 
    <activity android:name=".FireworksAnimationActivity" /> 

    <service 
     android:name=".activecrumble.crumblefood.BackgroundStepTracker" 
     android:exported="false" 
     android:stopWithTask="true"> 
     <intent-filter> 
      <action android:name="com.firebase.jobdispatcher.ACTION_EXECUTE" /> 
     </intent-filter> 
    </service> 
    <meta-data 
     android:name="com.facebook.sdk.ApplicationId" 
     android:value="@string/facebook_app_id" /> 
</application> 

答えて

0

はむしろ私のlayouでのFacebook LoginButtonより定期的なボタンを使用して、それを解決t。