Package com.yubico.yubikit.android.ui
Class YubiKeyPromptActivity
- java.lang.Object
-
- android.content.Context
-
- android.content.ContextWrapper
-
- android.view.ContextThemeWrapper
-
- android.app.Activity
-
- com.yubico.yubikit.android.ui.YubiKeyPromptActivity
-
- All Implemented Interfaces:
android.content.ComponentCallbacks
,android.content.ComponentCallbacks2
,android.view.KeyEvent.Callback
,android.view.LayoutInflater.Factory
,android.view.LayoutInflater.Factory2
,android.view.View.OnCreateContextMenuListener
,android.view.Window.Callback
- Direct Known Subclasses:
OtpActivity
public class YubiKeyPromptActivity extends android.app.Activity
A dialog for interacting with a YubiKey. To use, start this activity with a subclass ofYubiKeyPromptAction
passed using the ARG_ACTION_CLASS extra in the intent. This can be done by using thecreateIntent(android.content.Context, java.lang.Class<? extends com.yubico.yubikit.android.ui.YubiKeyPromptAction>, int)
method:Intent intent = YubiKeyPromptActivity.createIntent(context, MyConnectionAction.class); startActivityForResult(intent, requestCode);
The dialog can be customized by passing additional values in the intent.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ARG_ACTION_CLASS
The YubiKeyPromptAction subclass to use when a YubiKey is attached.static java.lang.String
ARG_ALLOW_NFC
Whether or not to listen for YubiKeys over NFC (default: true).static java.lang.String
ARG_ALLOW_USB
Whether or not to listen for YubiKeys over USB (default: true).static java.lang.String
ARG_CANCEL_BUTTON_ID
A view ID of a Button to use for cancelling the action.static java.lang.String
ARG_CONTENT_VIEW_ID
A layout resource to use as the content of the dialog.static java.lang.String
ARG_ENABLE_NFC_BUTTON_ID
A view ID of a Button to use to enable NFC, if NFC is disabled.static java.lang.String
ARG_HELP_TEXT_VIEW_ID
A view ID of a TextView where helpful information is displayed.static java.lang.String
ARG_TITLE_ID
A string resource to use as the title of the dialog.protected android.widget.Button
cancelButton
protected android.widget.Button
enableNfcButton
protected android.widget.TextView
helpTextView
-
Fields inherited from class android.app.Activity
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
-
Fields inherited from class android.content.Context
ACCESSIBILITY_SERVICE, ACCOUNT_SERVICE, ACTIVITY_SERVICE, ALARM_SERVICE, APP_OPS_SERVICE, APP_SEARCH_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_INCLUDE_CAPABILITIES, BIND_NOT_FOREGROUND, BIND_NOT_PERCEPTIBLE, BIND_WAIVE_PRIORITY, BIOMETRIC_SERVICE, BLOB_STORE_SERVICE, BLUETOOTH_SERVICE, BUGREPORT_SERVICE, CAMERA_SERVICE, CAPTIONING_SERVICE, CARRIER_CONFIG_SERVICE, CLIPBOARD_SERVICE, COMPANION_DEVICE_SERVICE, CONNECTIVITY_DIAGNOSTICS_SERVICE, CONNECTIVITY_SERVICE, CONSUMER_IR_SERVICE, CONTEXT_IGNORE_SECURITY, CONTEXT_INCLUDE_CODE, CONTEXT_RESTRICTED, CROSS_PROFILE_APPS_SERVICE, DEVICE_POLICY_SERVICE, DISPLAY_HASH_SERVICE, DISPLAY_SERVICE, DOMAIN_VERIFICATION_SERVICE, DOWNLOAD_SERVICE, DROPBOX_SERVICE, EUICC_SERVICE, FILE_INTEGRITY_SERVICE, FINGERPRINT_SERVICE, GAME_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_COMMUNICATION_SERVICE, MEDIA_METRICS_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, PEOPLE_SERVICE, PERFORMANCE_HINT_SERVICE, POWER_SERVICE, PRINT_SERVICE, RECEIVER_VISIBLE_TO_INSTANT_APPS, RESTRICTIONS_SERVICE, ROLE_SERVICE, SEARCH_SERVICE, SENSOR_SERVICE, SHORTCUT_SERVICE, STORAGE_SERVICE, STORAGE_STATS_SERVICE, SYSTEM_HEALTH_SERVICE, TELECOM_SERVICE, TELEPHONY_IMS_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_MANAGER_SERVICE, VIBRATOR_SERVICE, VPN_MANAGEMENT_SERVICE, WALLPAPER_SERVICE, WIFI_AWARE_SERVICE, WIFI_P2P_SERVICE, WIFI_RTT_RANGING_SERVICE, WIFI_SERVICE, WINDOW_SERVICE
-
-
Constructor Summary
Constructors Constructor Description YubiKeyPromptActivity()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static android.content.Intent
createIntent(android.content.Context context, java.lang.Class<? extends YubiKeyPromptAction> action)
Helper method to create an Intent to start the YubiKeyPromptActivity with a ConnectionAction.static android.content.Intent
createIntent(android.content.Context context, java.lang.Class<? extends YubiKeyPromptAction> action, int titleRes)
Helper method to create an Intent to start the YubiKeyPromptActivity with a ConnectionAction.protected com.yubico.yubikit.core.application.CommandState
getCommandState()
Get a CommandState for use with some blocking YubiKey actions.protected YubiKitManager
getYubiKitManager()
Get the YubiKitManager used by this activity.protected boolean
isNfcEnabled()
protected void
onCreate(android.os.Bundle savedInstanceState)
protected void
onDestroy()
protected void
onPause()
protected void
onResume()
protected void
onYubiKeyDevice(com.yubico.yubikit.core.YubiKeyDevice device, java.lang.Runnable onDone)
Called when a YubiKey is attached.protected void
provideResult(int resultCode, android.content.Intent data)
Provides a result to return to the caller of the Activity.-
Methods inherited from class android.app.Activity
addContentView, attachBaseContext, closeContextMenu, closeOptionsMenu, createPendingResult, dismissDialog, dismissKeyboardShortcutsHelper, dispatchGenericMotionEvent, dispatchKeyEvent, dispatchKeyShortcutEvent, dispatchPopulateAccessibilityEvent, dispatchTouchEvent, dispatchTrackballEvent, dump, enterPictureInPictureMode, enterPictureInPictureMode, findViewById, finish, finishActivity, finishActivityFromChild, finishAffinity, finishAfterTransition, finishAndRemoveTask, finishFromChild, getActionBar, getApplication, getCallingActivity, getCallingPackage, getChangingConfigurations, getComponentName, getContentScene, getContentTransitionManager, getCurrentFocus, getFragmentManager, getIntent, getLastNonConfigurationInstance, getLayoutInflater, getLoaderManager, getLocalClassName, getMaxNumPictureInPictureActions, getMediaController, getMenuInflater, getParent, getParentActivityIntent, getPreferences, getReferrer, getRequestedOrientation, getSearchEvent, getSplashScreen, getSystemService, getTaskId, getTitle, getTitleColor, getVoiceInteractor, getVolumeControlStream, getWindow, getWindowManager, hasWindowFocus, invalidateOptionsMenu, isActivityTransitionRunning, isChangingConfigurations, isChild, isDestroyed, isFinishing, isImmersive, isInMultiWindowMode, isInPictureInPictureMode, isLaunchedFromBubble, isLocalVoiceInteractionSupported, isTaskRoot, isVoiceInteraction, isVoiceInteractionRoot, managedQuery, moveTaskToBack, navigateUpTo, navigateUpToFromChild, onActionModeFinished, onActionModeStarted, onActivityReenter, onActivityResult, onApplyThemeResource, onAttachedToWindow, onAttachFragment, onBackPressed, onChildTitleChanged, onConfigurationChanged, onContentChanged, onContextItemSelected, onContextMenuClosed, onCreate, onCreateContextMenu, onCreateDescription, onCreateDialog, onCreateDialog, onCreateNavigateUpTaskStack, onCreateOptionsMenu, onCreatePanelMenu, onCreatePanelView, onCreateThumbnail, onCreateView, onCreateView, onDetachedFromWindow, onEnterAnimationComplete, onGenericMotionEvent, onGetDirectActions, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyShortcut, onKeyUp, onLocalVoiceInteractionStarted, onLocalVoiceInteractionStopped, onLowMemory, onMenuItemSelected, onMenuOpened, onMultiWindowModeChanged, onMultiWindowModeChanged, onNavigateUp, onNavigateUpFromChild, onNewIntent, onOptionsItemSelected, onOptionsMenuClosed, onPanelClosed, onPerformDirectAction, onPictureInPictureModeChanged, onPictureInPictureModeChanged, onPictureInPictureRequested, onPictureInPictureUiStateChanged, onPostCreate, onPostCreate, onPostResume, onPrepareDialog, onPrepareDialog, onPrepareNavigateUpTaskStack, onPrepareOptionsMenu, onPreparePanel, onProvideAssistContent, onProvideAssistData, onProvideKeyboardShortcuts, onProvideReferrer, onRequestPermissionsResult, onRestart, onRestoreInstanceState, onRestoreInstanceState, onRetainNonConfigurationInstance, onSaveInstanceState, onSaveInstanceState, onSearchRequested, onSearchRequested, onStart, onStateNotSaved, onStop, onTitleChanged, onTopResumedActivityChanged, onTouchEvent, onTrackballEvent, onTrimMemory, onUserInteraction, onUserLeaveHint, onVisibleBehindCanceled, onWindowAttributesChanged, onWindowFocusChanged, onWindowStartingActionMode, onWindowStartingActionMode, openContextMenu, openOptionsMenu, overridePendingTransition, postponeEnterTransition, recreate, registerActivityLifecycleCallbacks, registerForContextMenu, releaseInstance, removeDialog, reportFullyDrawn, requestDragAndDropPermissions, requestPermissions, requestShowKeyboardShortcuts, requestVisibleBehind, requestWindowFeature, requireViewById, runOnUiThread, setActionBar, setContentTransitionManager, setContentView, setContentView, setContentView, setDefaultKeyMode, setEnterSharedElementCallback, setExitSharedElementCallback, setFeatureDrawable, setFeatureDrawableAlpha, setFeatureDrawableResource, setFeatureDrawableUri, setFinishOnTouchOutside, setImmersive, setInheritShowWhenLocked, setIntent, setLocusContext, setMediaController, setPictureInPictureParams, setProgress, setProgressBarIndeterminate, setProgressBarIndeterminateVisibility, setProgressBarVisibility, setRequestedOrientation, setResult, setResult, setSecondaryProgress, setShowWhenLocked, setTaskDescription, setTheme, setTitle, setTitle, setTitleColor, setTranslucent, setTurnScreenOn, setVisible, setVolumeControlStream, setVrModeEnabled, shouldShowRequestPermissionRationale, shouldUpRecreateTask, showAssist, showDialog, showDialog, showLockTaskEscapeMessage, startActionMode, startActionMode, startActivities, startActivities, startActivity, startActivity, startActivityForResult, startActivityForResult, startActivityFromChild, startActivityFromChild, startActivityFromFragment, startActivityFromFragment, startActivityIfNeeded, startActivityIfNeeded, startIntentSender, startIntentSender, startIntentSenderForResult, startIntentSenderForResult, startIntentSenderFromChild, startIntentSenderFromChild, startLocalVoiceInteraction, startLockTask, startManagingCursor, startNextMatchingActivity, startNextMatchingActivity, startPostponedEnterTransition, startSearch, stopLocalVoiceInteraction, stopLockTask, stopManagingCursor, takeKeyEvents, triggerSearch, unregisterActivityLifecycleCallbacks, unregisterForContextMenu
-
Methods inherited from class android.view.ContextThemeWrapper
applyOverrideConfiguration, getAssets, getResources, getTheme, setTheme
-
Methods inherited from class android.content.ContextWrapper
bindIsolatedService, bindService, bindService, bindServiceAsUser, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingOrSelfUriPermissions, checkCallingPermission, checkCallingUriPermission, checkCallingUriPermissions, checkPermission, checkSelfPermission, checkUriPermission, checkUriPermission, checkUriPermissions, clearWallpaper, createAttributionContext, createConfigurationContext, createContext, createContextForSplit, createDeviceProtectedStorageContext, createDisplayContext, createPackageContext, createWindowContext, createWindowContext, databaseList, deleteDatabase, deleteFile, deleteSharedPreferences, enforceCallingOrSelfPermission, enforceCallingOrSelfUriPermission, enforceCallingPermission, enforceCallingUriPermission, enforcePermission, enforceUriPermission, enforceUriPermission, fileList, getApplicationContext, getApplicationInfo, getAttributionSource, getAttributionTag, getBaseContext, getCacheDir, getClassLoader, getCodeCacheDir, getContentResolver, getDatabasePath, getDataDir, getDir, getDisplay, getExternalCacheDir, getExternalCacheDirs, getExternalFilesDir, getExternalFilesDirs, getExternalMediaDirs, getFilesDir, getFileStreamPath, getMainExecutor, getMainLooper, getNoBackupFilesDir, getObbDir, getObbDirs, getOpPackageName, getPackageCodePath, getPackageManager, getPackageName, getPackageResourcePath, getParams, getSharedPreferences, getSystemServiceName, getWallpaper, getWallpaperDesiredMinimumHeight, getWallpaperDesiredMinimumWidth, grantUriPermission, isDeviceProtectedStorage, isRestricted, isUiContext, moveDatabaseFrom, moveSharedPreferencesFrom, openFileInput, openFileOutput, openOrCreateDatabase, openOrCreateDatabase, peekWallpaper, registerReceiver, registerReceiver, registerReceiver, registerReceiver, removeStickyBroadcast, removeStickyBroadcastAsUser, revokeUriPermission, revokeUriPermission, sendBroadcast, sendBroadcast, sendBroadcastAsUser, sendBroadcastAsUser, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcastAsUser, sendStickyBroadcast, sendStickyBroadcast, sendStickyBroadcastAsUser, sendStickyOrderedBroadcast, sendStickyOrderedBroadcastAsUser, setWallpaper, setWallpaper, startForegroundService, startInstrumentation, startService, stopService, unbindService, unregisterReceiver, updateServiceGroup
-
Methods inherited from class android.content.Context
getColor, getColorStateList, getDrawable, getString, getString, getSystemService, getText, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, registerComponentCallbacks, sendBroadcastWithMultiplePermissions, unregisterComponentCallbacks
-
-
-
-
Field Detail
-
ARG_ACTION_CLASS
public static final java.lang.String ARG_ACTION_CLASS
The YubiKeyPromptAction subclass to use when a YubiKey is attached.- See Also:
- Constant Field Values
-
ARG_ALLOW_USB
public static final java.lang.String ARG_ALLOW_USB
Whether or not to listen for YubiKeys over USB (default: true).- See Also:
- Constant Field Values
-
ARG_ALLOW_NFC
public static final java.lang.String ARG_ALLOW_NFC
Whether or not to listen for YubiKeys over NFC (default: true).- See Also:
- Constant Field Values
-
ARG_TITLE_ID
public static final java.lang.String ARG_TITLE_ID
A string resource to use as the title of the dialog.- See Also:
- Constant Field Values
-
ARG_CONTENT_VIEW_ID
public static final java.lang.String ARG_CONTENT_VIEW_ID
A layout resource to use as the content of the dialog.- See Also:
- Constant Field Values
-
ARG_CANCEL_BUTTON_ID
public static final java.lang.String ARG_CANCEL_BUTTON_ID
A view ID of a Button to use for cancelling the action.- See Also:
- Constant Field Values
-
ARG_ENABLE_NFC_BUTTON_ID
public static final java.lang.String ARG_ENABLE_NFC_BUTTON_ID
A view ID of a Button to use to enable NFC, if NFC is disabled.- See Also:
- Constant Field Values
-
ARG_HELP_TEXT_VIEW_ID
public static final java.lang.String ARG_HELP_TEXT_VIEW_ID
A view ID of a TextView where helpful information is displayed.- See Also:
- Constant Field Values
-
cancelButton
protected android.widget.Button cancelButton
-
enableNfcButton
protected android.widget.Button enableNfcButton
-
helpTextView
protected android.widget.TextView helpTextView
-
-
Method Detail
-
createIntent
public static android.content.Intent createIntent(android.content.Context context, java.lang.Class<? extends YubiKeyPromptAction> action, @StringRes int titleRes)
Helper method to create an Intent to start the YubiKeyPromptActivity with a ConnectionAction.- Parameters:
context
- the Context to use for Intent creationaction
- the ConnectionAction to use for handing YubiKey connections.titleRes
- a string resource to use for the title of the dialog.- Returns:
- an Intent which can be passed to startActivity().
-
createIntent
public static android.content.Intent createIntent(android.content.Context context, java.lang.Class<? extends YubiKeyPromptAction> action)
Helper method to create an Intent to start the YubiKeyPromptActivity with a ConnectionAction.- Parameters:
context
- the Context to use for Intent creationaction
- the ConnectionAction to use for handing YubiKey connections.- Returns:
- an Intent which can be passed to startActivity().
-
getYubiKitManager
protected YubiKitManager getYubiKitManager()
Get the YubiKitManager used by this activity.- Returns:
- a YubiKitManager
-
getCommandState
protected com.yubico.yubikit.core.application.CommandState getCommandState()
Get a CommandState for use with some blocking YubiKey actions. The dialog will react to KEEPALIVE_UPNEEDED, and the state will be cancelled if the user presses the cancel button.- Returns:
- a CommandState
-
isNfcEnabled
protected boolean isNfcEnabled()
-
onYubiKeyDevice
protected void onYubiKeyDevice(com.yubico.yubikit.core.YubiKeyDevice device, java.lang.Runnable onDone)
Called when a YubiKey is attached.If
provideResult(int, Intent)
has been called once this method returns, the Activity will finish.- Parameters:
device
- a connected YubiKey
-
provideResult
protected void provideResult(int resultCode, android.content.Intent data)
Provides a result to return to the caller of the Activity. Internally this callsActivity.setResult(int, Intent)
with the given arguments, as well as informing this Activity that it should finish once it is done handling any connected YubiKey.- Parameters:
resultCode
- The result code to propagate back to the originating activity, often RESULT_CANCELED or RESULT_OKdata
- The data to propagate back to the originating activity.
-
onCreate
protected void onCreate(@Nullable android.os.Bundle savedInstanceState)
- Overrides:
onCreate
in classandroid.app.Activity
-
onResume
protected void onResume()
- Overrides:
onResume
in classandroid.app.Activity
-
onPause
protected void onPause()
- Overrides:
onPause
in classandroid.app.Activity
-
onDestroy
protected void onDestroy()
- Overrides:
onDestroy
in classandroid.app.Activity
-
-