public class SignInActivity extends BaseActivity implements com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener, com.google.android.gms.tasks.OnCompleteListener<com.google.firebase.auth.AuthResult>, android.view.View.OnClickListener
Modifier and Type | Class and Description |
---|---|
(package private) class |
SignInActivity.MyDeviceReceiver
BroadcastReceiver to handle MyDevice actions |
Modifier and Type | Field and Description |
---|---|
private com.google.android.gms.auth.api.signin.GoogleSignInAccount |
mAccount
Google account
|
private com.google.android.gms.common.api.GoogleApiClient |
mApiClient
Google API interface
|
private com.google.firebase.auth.FirebaseAuth |
mAuth
Firebase authorization
|
private boolean |
mConnectionFailed
Flag to indicate if Google API connection failed
|
private java.lang.String |
mErrorMessage
Error message related to SignIn or SignOut
|
private android.content.BroadcastReceiver |
mMyDeviceRcvr
Receive MyDevice actions
|
private static int |
RC_SIGN_IN
Result of Google signIn attempt
|
private static java.lang.String |
STATE_CONNECTION
Saved state: connection status
|
private static java.lang.String |
STATE_ERROR
Saved state: error message
|
mBinding, mHomeUpEnabled, mIsBound, mLayoutID, mOptionsMenu, mOptionsMenuID, mQueryString, mSearchID, TAG
DEFAULT_KEYS_DIALER, DEFAULT_KEYS_DISABLE, DEFAULT_KEYS_SEARCH_GLOBAL, DEFAULT_KEYS_SEARCH_LOCAL, DEFAULT_KEYS_SHORTCUT, FOCUSED_STATE_SET, RESULT_CANCELED, RESULT_FIRST_USER, RESULT_OK
ACCESSIBILITY_SERVICE, ACCOUNT_SERVICE, ACTIVITY_SERVICE, ALARM_SERVICE, APP_OPS_SERVICE, APPWIDGET_SERVICE, AUDIO_SERVICE, BATTERY_SERVICE, BIND_ABOVE_CLIENT, BIND_ADJUST_WITH_ACTIVITY, BIND_ALLOW_OOM_MANAGEMENT, BIND_AUTO_CREATE, BIND_DEBUG_UNBIND, BIND_EXTERNAL_SERVICE, BIND_IMPORTANT, BIND_NOT_FOREGROUND, BIND_WAIVE_PRIORITY, BLUETOOTH_SERVICE, CAMERA_SERVICE, CAPTIONING_SERVICE, CARRIER_CONFIG_SERVICE, CLIPBOARD_SERVICE, COMPANION_DEVICE_SERVICE, CONNECTIVITY_SERVICE, CONSUMER_IR_SERVICE, CONTEXT_IGNORE_SECURITY, CONTEXT_INCLUDE_CODE, CONTEXT_RESTRICTED, CROSS_PROFILE_APPS_SERVICE, DEVICE_POLICY_SERVICE, DISPLAY_SERVICE, DOWNLOAD_SERVICE, DROPBOX_SERVICE, EUICC_SERVICE, FINGERPRINT_SERVICE, HARDWARE_PROPERTIES_SERVICE, INPUT_METHOD_SERVICE, INPUT_SERVICE, IPSEC_SERVICE, JOB_SCHEDULER_SERVICE, KEYGUARD_SERVICE, LAUNCHER_APPS_SERVICE, LAYOUT_INFLATER_SERVICE, LOCATION_SERVICE, MEDIA_PROJECTION_SERVICE, MEDIA_ROUTER_SERVICE, MEDIA_SESSION_SERVICE, MIDI_SERVICE, MODE_APPEND, MODE_ENABLE_WRITE_AHEAD_LOGGING, MODE_MULTI_PROCESS, MODE_NO_LOCALIZED_COLLATORS, MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE, NETWORK_STATS_SERVICE, NFC_SERVICE, NOTIFICATION_SERVICE, NSD_SERVICE, POWER_SERVICE, PRINT_SERVICE, RECEIVER_VISIBLE_TO_INSTANT_APPS, RESTRICTIONS_SERVICE, SEARCH_SERVICE, SENSOR_SERVICE, SHORTCUT_SERVICE, STORAGE_SERVICE, STORAGE_STATS_SERVICE, SYSTEM_HEALTH_SERVICE, TELECOM_SERVICE, TELEPHONY_SERVICE, TELEPHONY_SUBSCRIPTION_SERVICE, TEXT_CLASSIFICATION_SERVICE, TEXT_SERVICES_MANAGER_SERVICE, TV_INPUT_SERVICE, UI_MODE_SERVICE, USAGE_STATS_SERVICE, USB_SERVICE, USER_SERVICE, VIBRATOR_SERVICE, WALLPAPER_SERVICE, WIFI_AWARE_SERVICE, WIFI_P2P_SERVICE, WIFI_RTT_RANGING_SERVICE, WIFI_SERVICE, WINDOW_SERVICE
Constructor and Description |
---|
SignInActivity() |
Modifier and Type | Method and Description |
---|---|
private void |
attemptSilentSignIn()
Try to signin with cached credentials or cross-device single signin
|
private void |
clearUser()
Remove all
User info. |
private void |
connectionFailed(com.google.android.gms.common.ConnectionResult result)
Google API connection failed for some reason
|
private void |
dismissProgress()
Remove progress view
|
private void |
doSignOut()
SignOut of Google and Firebase
|
private void |
doUnregister()
Unregister with App Engine.
|
private void |
firebaseAuthWithGoogle()
Authorize with Firebase
|
private void |
handleSigningOut()
All signout attempts come through here
|
private void |
handleSignInResult(com.google.android.gms.auth.api.signin.GoogleSignInResult result)
All SignIn attempts will come through here
|
void |
onActivityResult(int requestCode,
int resultCode,
android.content.Intent data) |
void |
onClick(android.view.View v) |
void |
onComplete(com.google.android.gms.tasks.Task<com.google.firebase.auth.AuthResult> task) |
void |
onConnectionFailed(com.google.android.gms.common.ConnectionResult connectionResult) |
protected void |
onCreate(android.os.Bundle savedInstanceState) |
boolean |
onCreateOptionsMenu(android.view.Menu menu) |
boolean |
onOptionsItemSelected(android.view.MenuItem item) |
protected void |
onSaveInstanceState(android.os.Bundle outState) |
private void |
onSignInClicked()
SignIn button clicked
|
private void |
onSignOutClicked()
SignOut button clicked
|
protected void |
onStart() |
protected void |
onStop() |
protected void |
restoreInstanceState(android.os.Bundle savedInstanceState)
Override to restore additional state
|
private void |
setProgressMessage(java.lang.String message)
Set progress message
|
private void |
setupButtons()
Initialize Buttons
|
private void |
setupGoogleSignIn()
Initialize Google SignIn API
|
private void |
showHelpDialog()
Show a dialog with rationale for signin
|
private void |
showProgress(java.lang.String message)
Display progress view
|
private void |
signInFailed(java.lang.String error)
SignIn failed for some reason
|
private void |
signInFailed(java.lang.String message,
java.lang.Exception ex)
SignIn failed for some reason
|
private void |
signOutFailed(java.lang.String error)
SignOut failed for some reason
|
private void |
updateView()
Set the state of all the UI elements
|
getFab, getTAG, onQueryTextChange, onQueryTextSubmit, onRestoreInstanceState, onResume, setQueryString
addContentView, closeOptionsMenu, dispatchKeyEvent, findViewById, getDelegate, getDrawerToggleDelegate, getMenuInflater, getResources, getSupportActionBar, getSupportParentActivityIntent, invalidateOptionsMenu, onConfigurationChanged, onContentChanged, onCreateSupportNavigateUpTaskStack, onDestroy, onKeyDown, onMenuItemSelected, onMenuOpened, onPanelClosed, onPostCreate, onPostResume, onPrepareSupportNavigateUpTaskStack, onSupportActionModeFinished, onSupportActionModeStarted, onSupportContentChanged, onSupportNavigateUp, onTitleChanged, onWindowStartingSupportActionMode, openOptionsMenu, setContentView, setContentView, setContentView, setSupportActionBar, setSupportProgress, setSupportProgressBarIndeterminate, setSupportProgressBarIndeterminateVisibility, setSupportProgressBarVisibility, setTheme, startSupportActionMode, supportInvalidateOptionsMenu, supportNavigateUpTo, supportRequestWindowFeature, supportShouldUpRecreateTask
dump, getLastCustomNonConfigurationInstance, getLifecycle, getSupportFragmentManager, getSupportLoaderManager, getViewModelStore, onAttachFragment, onBackPressed, onCreatePanelMenu, onCreateView, onCreateView, onLowMemory, onMultiWindowModeChanged, onNewIntent, onPause, onPictureInPictureModeChanged, onPrepareOptionsPanel, onPreparePanel, onRequestPermissionsResult, onResumeFragments, onRetainCustomNonConfigurationInstance, onRetainNonConfigurationInstance, onStateNotSaved, setEnterSharedElementCallback, setExitSharedElementCallback, startActivityForResult, startActivityForResult, startActivityFromFragment, startActivityFromFragment, startIntentSenderForResult, startIntentSenderForResult, startIntentSenderFromFragment, supportFinishAfterTransition, supportPostponeEnterTransition, supportStartPostponedEnterTransition, validateRequestPermissionsRequestCode
dispatchKeyShortcutEvent, getExtraData, putExtraData, superDispatchKeyEvent
attachBaseContext, closeContextMenu, createPendingResult, dismissDialog, dismissKeyboardShortcutsHelper, dispatchGenericMotionEvent, dispatchPopulateAccessibilityEvent, dispatchTouchEvent, dispatchTrackballEvent, enterPictureInPictureMode, enterPictureInPictureMode, finish, finishActivity, finishActivityFromChild, finishAffinity, finishAfterTransition, finishAndRemoveTask, finishFromChild, getActionBar, getApplication, getCallingActivity, getCallingPackage, getChangingConfigurations, getComponentName, getContentScene, getContentTransitionManager, getCurrentFocus, getFragmentManager, getIntent, getLastNonConfigurationInstance, getLayoutInflater, getLoaderManager, getLocalClassName, getMaxNumPictureInPictureActions, getMediaController, getParent, getParentActivityIntent, getPreferences, getReferrer, getRequestedOrientation, getSearchEvent, getSystemService, getTaskId, getTitle, getTitleColor, getVoiceInteractor, getVolumeControlStream, getWindow, getWindowManager, hasWindowFocus, isActivityTransitionRunning, isChangingConfigurations, isChild, isDestroyed, isFinishing, isImmersive, isInMultiWindowMode, isInPictureInPictureMode, isLocalVoiceInteractionSupported, isTaskRoot, isVoiceInteraction, isVoiceInteractionRoot, managedQuery, moveTaskToBack, navigateUpTo, navigateUpToFromChild, onActionModeFinished, onActionModeStarted, onActivityReenter, onApplyThemeResource, onAttachedToWindow, onAttachFragment, onChildTitleChanged, onContextItemSelected, onContextMenuClosed, onCreate, onCreateContextMenu, onCreateDescription, onCreateDialog, onCreateDialog, onCreateNavigateUpTaskStack, onCreatePanelView, onCreateThumbnail, onDetachedFromWindow, onEnterAnimationComplete, onGenericMotionEvent, onKeyLongPress, onKeyMultiple, onKeyShortcut, onKeyUp, onLocalVoiceInteractionStarted, onLocalVoiceInteractionStopped, onMultiWindowModeChanged, onNavigateUp, onNavigateUpFromChild, onOptionsMenuClosed, onPictureInPictureModeChanged, onPostCreate, onPrepareDialog, onPrepareDialog, onPrepareNavigateUpTaskStack, onPrepareOptionsMenu, onProvideAssistContent, onProvideAssistData, onProvideKeyboardShortcuts, onProvideReferrer, onRestart, onRestoreInstanceState, onSaveInstanceState, onSearchRequested, onSearchRequested, onTouchEvent, onTrackballEvent, onTrimMemory, onUserInteraction, onUserLeaveHint, onVisibleBehindCanceled, onWindowAttributesChanged, onWindowFocusChanged, onWindowStartingActionMode, onWindowStartingActionMode, openContextMenu, overridePendingTransition, postponeEnterTransition, recreate, registerForContextMenu, releaseInstance, removeDialog, reportFullyDrawn, requestDragAndDropPermissions, requestPermissions, requestShowKeyboardShortcuts, requestVisibleBehind, requestWindowFeature, requireViewById, runOnUiThread, setActionBar, setContentTransitionManager, setDefaultKeyMode, setEnterSharedElementCallback, setExitSharedElementCallback, setFeatureDrawable, setFeatureDrawableAlpha, setFeatureDrawableResource, setFeatureDrawableUri, setFinishOnTouchOutside, setImmersive, setIntent, setMediaController, setPictureInPictureParams, setProgress, setProgressBarIndeterminate, setProgressBarIndeterminateVisibility, setProgressBarVisibility, setRequestedOrientation, setResult, setResult, setSecondaryProgress, setShowWhenLocked, setTaskDescription, setTitle, setTitle, setTitleColor, setTurnScreenOn, setVisible, setVolumeControlStream, setVrModeEnabled, shouldShowRequestPermissionRationale, shouldUpRecreateTask, showAssist, showDialog, showDialog, showLockTaskEscapeMessage, startActionMode, startActionMode, startActivities, startActivities, startActivity, startActivity, startActivityFromChild, startActivityFromChild, startActivityFromFragment, startActivityFromFragment, startActivityIfNeeded, startActivityIfNeeded, startIntentSender, startIntentSender, startIntentSenderFromChild, startIntentSenderFromChild, startLocalVoiceInteraction, startLockTask, startManagingCursor, startNextMatchingActivity, startNextMatchingActivity, startPostponedEnterTransition, startSearch, stopLocalVoiceInteraction, stopLockTask, stopManagingCursor, takeKeyEvents, triggerSearch, unregisterForContextMenu
applyOverrideConfiguration, getAssets, getTheme
bindService, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingPermission, checkCallingUriPermission, checkPermission, checkSelfPermission, checkUriPermission, checkUriPermission, clearWallpaper, createConfigurationContext, createContextForSplit, createDeviceProtectedStorageContext, createDisplayContext, createPackageContext, databaseList, deleteDatabase, deleteFile, deleteSharedPreferences, enforceCallingOrSelfPermission, enforceCallingOrSelfUriPermission, enforceCallingPermission, enforceCallingUriPermission, enforcePermission, enforceUriPermission, enforceUriPermission, fileList, getApplicationContext, getApplicationInfo, getBaseContext, getCacheDir, getClassLoader, getCodeCacheDir, getContentResolver, getDatabasePath, getDataDir, getDir, getExternalCacheDir, getExternalCacheDirs, getExternalFilesDir, getExternalFilesDirs, getExternalMediaDirs, getFilesDir, getFileStreamPath, getMainExecutor, getMainLooper, getNoBackupFilesDir, getObbDir, getObbDirs, getPackageCodePath, getPackageManager, getPackageName, getPackageResourcePath, getSharedPreferences, getSystemServiceName, getWallpaper, getWallpaperDesiredMinimumHeight, getWallpaperDesiredMinimumWidth, grantUriPermission, isDeviceProtectedStorage, isRestricted, moveDatabaseFrom, moveSharedPreferencesFrom, openFileInput, openFileOutput, openOrCreateDatabase, openOrCreateDatabase, peekWallpaper, registerReceiver, registerReceiver, registerReceiver, registerReceiver, removeStickyBroadcast, removeStickyBroadcastAsUser, revokeUriPermission, revokeUriPermission, sendBroadcast, sendBroadcast, sendBroadcastAsUser, sendBroadcastAsUser, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcastAsUser, sendStickyBroadcast, sendStickyBroadcastAsUser, sendStickyOrderedBroadcast, sendStickyOrderedBroadcastAsUser, setWallpaper, setWallpaper, startForegroundService, startInstrumentation, startService, stopService, unbindService, unregisterReceiver
getColor, getColorStateList, getDrawable, getString, getString, getSystemService, getText, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, registerComponentCallbacks, unregisterComponentCallbacks
private static final int RC_SIGN_IN
private static final java.lang.String STATE_CONNECTION
private static final java.lang.String STATE_ERROR
private com.google.android.gms.common.api.GoogleApiClient mApiClient
private com.google.android.gms.auth.api.signin.GoogleSignInAccount mAccount
private com.google.firebase.auth.FirebaseAuth mAuth
private android.content.BroadcastReceiver mMyDeviceRcvr
private boolean mConnectionFailed
private java.lang.String mErrorMessage
protected void onCreate(android.os.Bundle savedInstanceState)
onCreate
in class BaseActivity
protected void onSaveInstanceState(android.os.Bundle outState)
onSaveInstanceState
in class BaseActivity
public boolean onCreateOptionsMenu(android.view.Menu menu)
onCreateOptionsMenu
in class BaseActivity
protected void restoreInstanceState(android.os.Bundle savedInstanceState)
BaseActivity
restoreInstanceState
in class BaseActivity
savedInstanceState
- our stateprotected void onStart()
onStart
in class androidx.appcompat.app.AppCompatActivity
protected void onStop()
onStop
in class androidx.appcompat.app.AppCompatActivity
public boolean onOptionsItemSelected(android.view.MenuItem item)
onOptionsItemSelected
in class android.app.Activity
public void onActivityResult(int requestCode, int resultCode, android.content.Intent data)
onActivityResult
in class androidx.fragment.app.FragmentActivity
public void onComplete(@NonNull com.google.android.gms.tasks.Task<com.google.firebase.auth.AuthResult> task)
onComplete
in interface com.google.android.gms.tasks.OnCompleteListener<com.google.firebase.auth.AuthResult>
public void onClick(android.view.View v)
onClick
in interface android.view.View.OnClickListener
public void onConnectionFailed(@NonNull com.google.android.gms.common.ConnectionResult connectionResult)
onConnectionFailed
in interface com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener
private void doSignOut()
private void onSignInClicked()
private void onSignOutClicked()
private void attemptSilentSignIn()
private void handleSignInResult(@Nullable com.google.android.gms.auth.api.signin.GoogleSignInResult result)
result
- The GoogleSignInResult
of any SignIn attemptprivate void firebaseAuthWithGoogle()
private void handleSigningOut()
private void showHelpDialog()
private void setupButtons()
private void setupGoogleSignIn()
private void doUnregister()
private void clearUser()
User
info.private void updateView()
private void connectionFailed(@NonNull com.google.android.gms.common.ConnectionResult result)
result
- info. on failureprivate void signInFailed(java.lang.String error)
error
- info. on failureprivate void signInFailed(java.lang.String message, java.lang.Exception ex)
ex
- info. on failureprivate void signOutFailed(java.lang.String error)
error
- info. on failureprivate void showProgress(java.lang.String message)
message
- - message to displayprivate void dismissProgress()
private void setProgressMessage(java.lang.String message)
message
- - message to display