Skip to content

Commit 4cb8563

Browse files
committed
Implemented Logout
1 parent 19cc5eb commit 4cb8563

File tree

2 files changed

+47
-3
lines changed

2 files changed

+47
-3
lines changed

app/src/main/java/in/codelab/androidauthdemo/MainActivity.java

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
import android.support.v7.app.AppCompatActivity;
77
import android.util.Log;
88
import android.view.View;
9+
import android.widget.Button;
910
import android.widget.TextView;
11+
import android.widget.Toast;
1012

1113
import com.google.android.gms.auth.api.Auth;
1214
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
@@ -15,12 +17,16 @@
1517
import com.google.android.gms.common.ConnectionResult;
1618
import com.google.android.gms.common.SignInButton;
1719
import com.google.android.gms.common.api.GoogleApiClient;
20+
import com.google.android.gms.common.api.PendingResult;
21+
import com.google.android.gms.common.api.ResultCallback;
22+
import com.google.android.gms.common.api.Status;
1823

1924
public class MainActivity
2025
extends AppCompatActivity
2126
implements GoogleApiClient.OnConnectionFailedListener, View.OnClickListener {
2227

2328
SignInButton signInButton;
29+
private Button signOutButton;
2430
TextView statusTextView;
2531
GoogleApiClient mGoogleApiClient;
2632
private static final String TAG = "SignInActivity";
@@ -43,19 +49,49 @@ protected void onCreate(Bundle savedInstanceState) {
4349
.build();
4450

4551
statusTextView = (TextView) findViewById(R.id.status_textview);
46-
signInButton = (SignInButton) findViewById(R.id.sign_in_button);
52+
signInButton = (SignInButton) findViewById(R.id.gsign_in_button);
4753
signInButton.setOnClickListener(this);
54+
signOutButton = (Button) findViewById(R.id.sign_out_button);
55+
signOutButton.setOnClickListener(this);
4856
}
4957

5058
@Override
5159
public void onClick(View v) {
5260
switch(v.getId()){
53-
case R.id.sign_in_button:
61+
case R.id.gsign_in_button:
5462
signIn();
5563
break;
64+
case R.id.sign_out_button:
65+
signOut();
66+
break;
67+
default:
68+
Log.d(MainActivity.class.getCanonicalName(), "Unknown id clicked : "+v.getId());
69+
break;
70+
71+
5672
}
5773
}
5874

75+
private void signOut() {
76+
Log.d(MainActivity.class.getCanonicalName(), "Signing out...");
77+
PendingResult<Status> statusPendingResult = Auth.GoogleSignInApi.signOut(mGoogleApiClient);
78+
statusPendingResult.setResultCallback(new ResultCallback<Status>() {
79+
@Override
80+
public void onResult(@NonNull Status status) {
81+
if(status.isSuccess()) {
82+
Toast.makeText(MainActivity.this, status.getStatusMessage(), Toast.LENGTH_SHORT)
83+
.show();
84+
signOutButton.setVisibility(View.INVISIBLE);
85+
signInButton.setVisibility(View.VISIBLE);
86+
statusTextView.setText("Hello World!");
87+
} else {
88+
Toast.makeText(MainActivity.this, status.getStatusMessage(), Toast.LENGTH_LONG)
89+
.show();
90+
}
91+
}
92+
});
93+
}
94+
5995
private void signIn() {
6096
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
6197
startActivityForResult(signInIntent, RC_SIGN_IN);
@@ -82,6 +118,8 @@ private void handleSignInResult(GoogleSignInResult result) {
82118
if (result.isSuccess()) {
83119
GoogleSignInAccount acct = result.getSignInAccount();
84120
statusTextView.setText("Hello, " + acct.getDisplayName()); //pulls the user name
121+
signInButton.setVisibility(View.INVISIBLE);
122+
signOutButton.setVisibility(View.VISIBLE);
85123
} else {
86124
}
87125
}

app/src/main/res/layout/activity_main.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,14 @@
1919
android:layout_height="wrap_content"
2020
android:text="Hello World!" />
2121
<com.google.android.gms.common.SignInButton
22-
android:id="@+id/sign_in_button"
22+
android:id="@+id/gsign_in_button"
2323
android:layout_width="wrap_content"
2424
android:layout_height="wrap_content" />
25+
<Button
26+
android:id="@+id/sign_out_button"
27+
android:layout_width="wrap_content"
28+
android:layout_height="wrap_content"
29+
android:visibility="invisible"
30+
android:text="Sign Out" />
2531
</LinearLayout>
2632
</RelativeLayout>

0 commit comments

Comments
 (0)