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, TAGDEFAULT_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_OKACCESSIBILITY_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, setQueryStringaddContentView, 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, supportShouldUpRecreateTaskdump, 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, validateRequestPermissionsRequestCodedispatchKeyShortcutEvent, getExtraData, putExtraData, superDispatchKeyEventattachBaseContext, 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, unregisterForContextMenuapplyOverrideConfiguration, getAssets, getThemebindService, 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, unregisterReceivergetColor, getColorStateList, getDrawable, getString, getString, getSystemService, getText, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, registerComponentCallbacks, unregisterComponentCallbacksprivate 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 BaseActivityprotected void onSaveInstanceState(android.os.Bundle outState)
onSaveInstanceState in class BaseActivitypublic boolean onCreateOptionsMenu(android.view.Menu menu)
onCreateOptionsMenu in class BaseActivityprotected void restoreInstanceState(android.os.Bundle savedInstanceState)
BaseActivityrestoreInstanceState in class BaseActivitysavedInstanceState - our stateprotected void onStart()
onStart in class androidx.appcompat.app.AppCompatActivityprotected void onStop()
onStop in class androidx.appcompat.app.AppCompatActivitypublic boolean onOptionsItemSelected(android.view.MenuItem item)
onOptionsItemSelected in class android.app.Activitypublic void onActivityResult(int requestCode,
int resultCode,
android.content.Intent data)
onActivityResult in class androidx.fragment.app.FragmentActivitypublic 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.OnClickListenerpublic void onConnectionFailed(@NonNull
com.google.android.gms.common.ConnectionResult connectionResult)
onConnectionFailed in interface com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListenerprivate 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