Skip to content

Commit 52cb062

Browse files
committed
Fixed an error when try to using GoogleApiClient which is null or not connected.| Close #127.
1 parent 20bc0f0 commit 52cb062

File tree

4 files changed

+17
-13
lines changed

4 files changed

+17
-13
lines changed

FlowCrypt/src/main/java/com/flowcrypt/email/ui/activity/EmailManagerActivity.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,11 @@ private void logout() {
343343

344344
switch (accountDao.getAccountType()) {
345345
case AccountDao.ACCOUNT_TYPE_GOOGLE:
346-
GoogleApiClientHelper.signOutFromGoogleAccount(this, googleApiClient);
346+
if (googleApiClient != null && googleApiClient.isConnected()) {
347+
GoogleApiClientHelper.signOutFromGoogleAccount(this, googleApiClient);
348+
} else {
349+
showInfoSnackbar(getRootView(), getString(R.string.google_api_is_not_available));
350+
}
347351
break;
348352
}
349353

FlowCrypt/src/main/java/com/flowcrypt/email/ui/activity/SplashActivity.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import com.google.android.gms.auth.api.Auth;
3333
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
3434
import com.google.android.gms.auth.api.signin.GoogleSignInResult;
35-
import com.google.android.gms.common.api.GoogleApiClient;
3635

3736
import org.acra.ACRA;
3837

@@ -46,9 +45,7 @@
4645
* Time: 14:50
4746
4847
*/
49-
public class SplashActivity extends BaseSignInActivity implements
50-
GoogleApiClient.OnConnectionFailedListener, GoogleApiClient.ConnectionCallbacks,
51-
LoaderManager.LoaderCallbacks<LoaderResult> {
48+
public class SplashActivity extends BaseSignInActivity implements LoaderManager.LoaderCallbacks<LoaderResult> {
5249

5350
private static final int REQUEST_CODE_CHECK_PRIVATE_KEYS_FROM_GMAIL = 101;
5451
private static final int REQUEST_CODE_CREATE_OR_IMPORT_KEY = 102;

FlowCrypt/src/main/java/com/flowcrypt/email/ui/activity/base/BaseSignInActivity.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import com.flowcrypt.email.R;
1616
import com.flowcrypt.email.ui.activity.AddNewAccountManuallyActivity;
1717
import com.flowcrypt.email.util.GeneralUtil;
18-
import com.flowcrypt.email.util.UIUtil;
1918
import com.flowcrypt.email.util.google.GoogleApiClientHelper;
2019
import com.google.android.gms.auth.api.Auth;
2120
import com.google.android.gms.common.ConnectionResult;
@@ -52,12 +51,15 @@ public void onClick(View v) {
5251
switch (v.getId()) {
5352
case R.id.buttonSignInWithGmail:
5453
if (GeneralUtil.isInternetConnectionAvailable(this)) {
55-
googleApiClient.clearDefaultAccountAndReconnect();
56-
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
57-
startActivityForResult(signInIntent, REQUEST_CODE_SIGN_IN);
54+
if (googleApiClient != null && googleApiClient.isConnected()) {
55+
googleApiClient.clearDefaultAccountAndReconnect();
56+
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
57+
startActivityForResult(signInIntent, REQUEST_CODE_SIGN_IN);
58+
} else {
59+
showInfoSnackbar(getRootView(), getString(R.string.google_api_is_not_available));
60+
}
5861
} else {
59-
UIUtil.showInfoSnackbar(getRootView(),
60-
getString(R.string.internet_connection_is_not_available));
62+
showInfoSnackbar(getRootView(), getString(R.string.internet_connection_is_not_available));
6163
}
6264
break;
6365

@@ -66,7 +68,7 @@ public void onClick(View v) {
6668
startActivityForResult(new Intent(this, AddNewAccountManuallyActivity.class),
6769
REQUEST_CODE_ADD_OTHER_ACCOUNT);
6870
} else {
69-
UIUtil.showInfoSnackbar(getRootView(), getString(R.string.internet_connection_is_not_available));
71+
showInfoSnackbar(getRootView(), getString(R.string.internet_connection_is_not_available));
7072
}
7173
break;
7274
}
@@ -84,7 +86,7 @@ public void onConnectionSuspended(int i) {
8486

8587
@Override
8688
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
87-
UIUtil.showInfoSnackbar(getRootView(), connectionResult.getErrorMessage());
89+
showInfoSnackbar(getRootView(), connectionResult.getErrorMessage());
8890
}
8991

9092
protected void initGoogleApiClient() {

FlowCrypt/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,4 +213,5 @@
213213
<string name="diagnostic_info">Diagnostic info</string>
214214
<string name="email_does_not_available_in_this_folder">This email doesn\'t available in this folder</string>
215215
<string name="from">From</string>
216+
<string name="google_api_is_not_available">Error: Google API is not available</string>
216217
</resources>

0 commit comments

Comments
 (0)