├── .bazelci └── presubmit.yml ├── .bazelproject ├── .bazelrc ├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.md │ └── feature-request.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── BUILD ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── WORKSPACE ├── java └── com │ └── google │ └── android │ └── apps │ └── authenticator │ ├── AndroidManifest.xml │ ├── AuthenticatorActivity.java │ ├── AuthenticatorApplication.java │ ├── AuthenticatorModule.java │ ├── BUILD │ ├── CountdownIndicator.java │ ├── UserRowView.java │ ├── barcode │ ├── BarcodeCaptureActivity.java │ ├── BarcodeCentralFilter.java │ ├── BarcodeCentralFocusingProcessor.java │ ├── BarcodeConditionChecker.java │ ├── BarcodeTracker.java │ └── preview │ │ ├── CameraSourcePreview.java │ │ └── GraphicOverlay.java │ ├── common │ ├── AndroidDependenciesModule.java │ └── ApplicationContext.java │ ├── crypto │ └── CryptoModule.java │ ├── enroll2sv │ └── wizard │ │ └── AddAccountActivity.java │ ├── howitworks │ ├── HowItWorksActivity.java │ └── PagingIndicator.java │ ├── license │ ├── License.java │ ├── LicenseActivity.java │ ├── LicenseLoader.java │ ├── LicenseMenuActivity.java │ └── Licenses.java │ ├── otp │ ├── AccountDb.java │ ├── CheckCodeActivity.java │ ├── EnterKeyActivity.java │ ├── OtpModule.java │ ├── OtpProvider.java │ ├── OtpSource.java │ ├── OtpSourceException.java │ ├── PasscodeGenerator.java │ ├── PinInfo.java │ ├── TotpClock.java │ ├── TotpCountdownTask.java │ └── TotpCounter.java │ ├── proguard-rules.pro │ ├── res │ ├── anim │ │ └── deny_allow_seekbar.xml │ ├── drawable-hdpi │ │ ├── barcode_scanner_image.png │ │ ├── ic_menu_grey400_24dp.png │ │ ├── ic_refresh_grey400_24dp.png │ │ ├── ic_refresh_grey700_24dp.png │ │ ├── product_logo_authenticator_color_144.png │ │ ├── product_logo_authenticator_color_tablet.png │ │ ├── quantum_ic_account_circle_googblue_24.png │ │ ├── quantum_ic_add_white_24.png │ │ ├── quantum_ic_content_copy_white_24.png │ │ ├── quantum_ic_delete_white_24.png │ │ ├── quantum_ic_edit_white_24.png │ │ ├── quantum_ic_highlight_off_white_24.png │ │ ├── quantum_ic_history_googblue_24.png │ │ ├── quantum_ic_keyboard_arrow_down_grey600_24.png │ │ ├── quantum_ic_keyboard_grey600_24.png │ │ ├── quantum_ic_lock_googblue_24.png │ │ ├── quantum_ic_lock_white_24.png │ │ ├── quantum_ic_navigate_next_white_24.png │ │ ├── quantum_ic_phone_white_24.png │ │ ├── quantum_ic_photo_camera_grey600_24.png │ │ ├── quantum_ic_refresh_black_48.png │ │ ├── quantum_ic_refresh_googblue_48.png │ │ ├── quantum_ic_refresh_grey600_48.png │ │ ├── quantum_ic_report_problem_grey600_24.png │ │ └── quantum_ic_vpn_key_white_24.png │ ├── drawable-ldrtl-hdpi │ │ └── quantum_ic_content_copy_white_24.png │ ├── drawable-ldrtl-mdpi │ │ └── quantum_ic_content_copy_white_24.png │ ├── drawable-ldrtl-xhdpi │ │ └── quantum_ic_content_copy_white_24.png │ ├── drawable-ldrtl-xxhdpi │ │ └── quantum_ic_content_copy_white_24.png │ ├── drawable-ldrtl-xxxhdpi │ │ └── quantum_ic_content_copy_white_24.png │ ├── drawable-mdpi │ │ ├── product_logo_authenticator_color_144.png │ │ ├── quantum_ic_account_circle_googblue_24.png │ │ ├── quantum_ic_add_white_24.png │ │ ├── quantum_ic_content_copy_white_24.png │ │ ├── quantum_ic_delete_white_24.png │ │ ├── quantum_ic_edit_white_24.png │ │ ├── quantum_ic_highlight_off_white_24.png │ │ ├── quantum_ic_history_googblue_24.png │ │ ├── quantum_ic_keyboard_arrow_down_grey600_24.png │ │ ├── quantum_ic_keyboard_grey600_24.png │ │ ├── quantum_ic_lock_googblue_24.png │ │ ├── quantum_ic_lock_white_24.png │ │ ├── quantum_ic_navigate_next_white_24.png │ │ ├── quantum_ic_phone_white_24.png │ │ ├── quantum_ic_photo_camera_grey600_24.png │ │ ├── quantum_ic_refresh_black_48.png │ │ ├── quantum_ic_refresh_googblue_48.png │ │ ├── quantum_ic_refresh_grey600_48.png │ │ ├── quantum_ic_report_problem_grey600_24.png │ │ └── quantum_ic_vpn_key_white_24.png │ ├── drawable-xhdpi │ │ ├── barcode_scanner_image.png │ │ ├── howitworks_image_1.png │ │ ├── howitworks_image_1_tablet.png │ │ ├── howitworks_image_2.png │ │ ├── howitworks_image_2_tablet.png │ │ ├── howitworks_image_3.png │ │ ├── howitworks_image_3_tablet.png │ │ ├── ic_enroll2sv_account.png │ │ ├── ic_menu_grey400_24dp.png │ │ ├── ic_refresh_grey400_24dp.png │ │ ├── ic_refresh_grey700_24dp.png │ │ ├── product_logo_authenticator_color_144.png │ │ ├── quantum_ic_account_circle_googblue_24.png │ │ ├── quantum_ic_add_white_24.png │ │ ├── quantum_ic_content_copy_white_24.png │ │ ├── quantum_ic_delete_white_24.png │ │ ├── quantum_ic_edit_white_24.png │ │ ├── quantum_ic_highlight_off_white_24.png │ │ ├── quantum_ic_history_googblue_24.png │ │ ├── quantum_ic_keyboard_arrow_down_grey600_24.png │ │ ├── quantum_ic_keyboard_grey600_24.png │ │ ├── quantum_ic_lock_googblue_24.png │ │ ├── quantum_ic_lock_white_24.png │ │ ├── quantum_ic_navigate_next_white_24.png │ │ ├── quantum_ic_phone_white_24.png │ │ ├── quantum_ic_photo_camera_grey600_24.png │ │ ├── quantum_ic_refresh_black_48.png │ │ ├── quantum_ic_refresh_googblue_48.png │ │ ├── quantum_ic_refresh_grey600_48.png │ │ ├── quantum_ic_report_problem_grey600_24.png │ │ └── quantum_ic_vpn_key_white_24.png │ ├── drawable-xxhdpi │ │ ├── product_logo_authenticator_color_144.png │ │ ├── quantum_ic_account_circle_googblue_24.png │ │ ├── quantum_ic_add_white_24.png │ │ ├── quantum_ic_content_copy_white_24.png │ │ ├── quantum_ic_delete_white_24.png │ │ ├── quantum_ic_edit_white_24.png │ │ ├── quantum_ic_highlight_off_white_24.png │ │ ├── quantum_ic_history_googblue_24.png │ │ ├── quantum_ic_keyboard_arrow_down_grey600_24.png │ │ ├── quantum_ic_keyboard_grey600_24.png │ │ ├── quantum_ic_lock_googblue_24.png │ │ ├── quantum_ic_lock_white_24.png │ │ ├── quantum_ic_navigate_next_white_24.png │ │ ├── quantum_ic_phone_white_24.png │ │ ├── quantum_ic_photo_camera_grey600_24.png │ │ ├── quantum_ic_refresh_black_48.png │ │ ├── quantum_ic_refresh_googblue_48.png │ │ ├── quantum_ic_refresh_grey600_48.png │ │ ├── quantum_ic_report_problem_grey600_24.png │ │ └── quantum_ic_vpn_key_white_24.png │ ├── drawable-xxxhdpi │ │ ├── product_logo_authenticator_color_144.png │ │ ├── quantum_ic_account_circle_googblue_24.png │ │ ├── quantum_ic_add_white_24.png │ │ ├── quantum_ic_content_copy_white_24.png │ │ ├── quantum_ic_delete_white_24.png │ │ ├── quantum_ic_edit_white_24.png │ │ ├── quantum_ic_highlight_off_white_24.png │ │ ├── quantum_ic_history_googblue_24.png │ │ ├── quantum_ic_keyboard_arrow_down_grey600_24.png │ │ ├── quantum_ic_keyboard_grey600_24.png │ │ ├── quantum_ic_lock_googblue_24.png │ │ ├── quantum_ic_lock_white_24.png │ │ ├── quantum_ic_navigate_next_white_24.png │ │ ├── quantum_ic_phone_white_24.png │ │ ├── quantum_ic_photo_camera_grey600_24.png │ │ ├── quantum_ic_refresh_black_48.png │ │ ├── quantum_ic_refresh_googblue_48.png │ │ ├── quantum_ic_refresh_grey600_48.png │ │ ├── quantum_ic_report_problem_grey600_24.png │ │ └── quantum_ic_vpn_key_white_24.png │ ├── drawable │ │ ├── refresh_button.xml │ │ ├── refresh_button_dark.xml │ │ ├── toolbar_shadow.xml │ │ ├── user_row_dragged_shadow_bottom.xml │ │ ├── user_row_dragged_shadow_bottom_dark.xml │ │ ├── user_row_dragged_shadow_top.xml │ │ ├── user_row_dragged_shadow_top_dark.xml │ │ ├── user_row_selector.xml │ │ └── user_row_selector_dark.xml │ ├── layout-sw360dp │ │ └── main_no_accounts.xml │ ├── layout-sw600dp-land │ │ ├── howitworks_layout_1.xml │ │ ├── howitworks_layout_2.xml │ │ ├── howitworks_layout_3.xml │ │ └── main_no_accounts.xml │ ├── layout-sw600dp-port │ │ ├── howitworks_layout_1.xml │ │ ├── howitworks_layout_2.xml │ │ ├── howitworks_layout_3.xml │ │ └── main_no_accounts.xml │ ├── layout │ │ ├── barcode_capture_activity.xml │ │ ├── check_code.xml │ │ ├── dummy_placeholder.xml │ │ ├── enroll2sv_add_account.xml │ │ ├── enter_key.xml │ │ ├── howitworks.xml │ │ ├── howitworks_layout_1.xml │ │ ├── howitworks_layout_2.xml │ │ ├── howitworks_layout_3.xml │ │ ├── license.xml │ │ ├── license_menu_activity.xml │ │ ├── license_scrollview.xml │ │ ├── listitem_device.xml │ │ ├── main.xml │ │ ├── main_bottom_sheet.xml │ │ ├── main_no_accounts.xml │ │ ├── opensource_notices.xml │ │ ├── rename.xml │ │ ├── two_step_verification_settings.xml │ │ ├── user_row.xml │ │ └── user_row_dragged.xml │ ├── menu │ │ ├── account_list_context.xml │ │ ├── add_account.xml │ │ └── main.xml │ ├── mipmap-hdpi │ │ └── product_logo_authenticator_launcher_color_48.png │ ├── mipmap-mdpi │ │ └── product_logo_authenticator_launcher_color_48.png │ ├── mipmap-xhdpi │ │ └── product_logo_authenticator_launcher_color_48.png │ ├── mipmap-xxhdpi │ │ └── product_logo_authenticator_launcher_color_48.png │ ├── mipmap-xxxhdpi │ │ └── product_logo_authenticator_launcher_color_48.png │ ├── raw │ │ ├── third_party_license_metadata │ │ └── third_party_licenses │ ├── values-af │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-am │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-ar │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-az-rAZ │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-b+sr+Latn │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-be-rBY │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-bg │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-bn-rBD │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-bs-rBA │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-ca │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-cs │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-da │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-de │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-el │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-en-rAU │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-en-rGB │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-en-rIN │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-es-rUS │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-es │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-et-rEE │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-eu-rES │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-fa │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-fi │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-fr-rCA │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-fr │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-gl-rES │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-gu-rIN │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-hi │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-hr │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-hu │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-hy-rAM │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-in │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-is-rIS │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-it │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-iw │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-ja │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-ka-rGE │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-kk-rKZ │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-km-rKH │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-kn-rIN │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-ko │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-ky-rKG │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-lo-rLA │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-lt │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-lv │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-mk-rMK │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-ml-rIN │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-mn-rMN │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-mr-rIN │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-ms-rMY │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-ms │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-my-rMM │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-nb │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-ne-rNP │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-nl │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-pa-rIN │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-pl │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-pt-rPT │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-pt │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-ro │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-ru │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-si-rLK │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-sk │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-sl │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-sq-rAL │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-sr │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-sv │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-sw │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-sw600dp │ │ ├── dimen.xml │ │ └── others.xml │ ├── values-ta-rIN │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-te-rIN │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-th │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-tl │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-tr │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-uk │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-ur-rPK │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-uz-rUZ │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-v21 │ │ └── themes.xml │ ├── values-vi │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-zh-rCN │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-zh-rHK │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-zh-rTW │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values-zu │ │ ├── enroll2sv_strings.xml │ │ ├── strings.xml │ │ └── timesync_strings.xml │ ├── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimen.xml │ │ ├── enroll2sv_strings.xml │ │ ├── others.xml │ │ ├── strings.xml │ │ ├── themes.xml │ │ └── timesync_strings.xml │ └── xml │ │ ├── preferences.xml │ │ ├── preferences_about.xml │ │ └── preferences_time_correction.xml │ ├── settings │ ├── AppCompatPreferenceActivity.java │ ├── SettingsAboutActivity.java │ └── SettingsActivity.java │ ├── testability │ ├── DaggerInjector.java │ ├── DependencyInjector.java │ ├── DependencyInjectorModule.java │ ├── SharedPreferencesRenamingDelegatingContext.java │ ├── StartActivityListener.java │ ├── StartServiceListener.java │ ├── TestableActivity.java │ └── TestablePreferenceActivity.java │ ├── time │ ├── Clock.java │ └── SystemWallClock.java │ ├── timesync │ ├── HttpURLConnectionFactory.java │ ├── HttpURLConnectionFactoryImpl.java │ ├── NetworkTimeProvider.java │ ├── SettingsTimeCorrectionActivity.java │ ├── SyncNowActivity.java │ ├── SyncNowController.java │ └── TimeSyncModule.java │ └── util │ ├── Base32String.java │ ├── CryptoUtils.java │ ├── EmptySpaceClickableDragSortListView.java │ ├── FileUtilities.java │ ├── IntentUtils.java │ ├── PrngFixes.java │ ├── Utilities.java │ ├── annotations │ └── FixWhenMinSdkVersion.java │ ├── concurrent │ └── RunOnThisLooperThreadExecutor.java │ └── permissions │ ├── AutoGrantPermissionRequestor.java │ ├── PermissionRequestor.java │ └── RuntimePermissionRequestor.java ├── javatests └── com │ └── google │ └── android │ └── apps │ └── authenticator │ ├── AndroidManifest.xml │ ├── AuthenticatorActivityPart2Test.java │ ├── AuthenticatorActivityTest.java │ ├── BUILD │ ├── enroll2sv │ └── wizard │ │ └── AddAccountActivityTest.java │ ├── howitworks │ └── HowItWorksActivityTest.java │ ├── otp │ ├── AccountDbTest.java │ ├── CheckCodeActivityTest.java │ ├── EnterKeyActivityTest.java │ ├── OtpProviderTest.java │ ├── PasscodeGeneratorTest.java │ ├── PinInfoTest.java │ ├── TotpClockTest.java │ └── TotpCounterTest.java │ ├── settings │ ├── SettingsAboutActivityTest.java │ └── SettingsActivityTest.java │ ├── target_devices.bzl │ ├── testability │ └── DependencyInjectorModuleForIntegrationTesting.java │ ├── testing │ └── TestUtilities.java │ ├── time │ └── SystemWallClockTest.java │ ├── timesync │ ├── NetworkTimeProviderTest.java │ └── SyncNowControllerTest.java │ └── util │ ├── Base32StringTest.java │ ├── CryptoUtilsTest.java │ ├── FileUtilitiesTest.java │ ├── IntentUtilsTest.java │ └── UtilitiesTest.java └── third_party └── DragSortListView ├── AndroidManifest.xml ├── BUILD ├── LICENSE ├── README.md ├── res └── values │ └── dslv_attrs.xml └── src └── com └── mobeta └── android └── dslv ├── DragSortController.java ├── DragSortCursorAdapter.java ├── DragSortItemView.java ├── DragSortItemViewCheckable.java ├── DragSortListView.java ├── ResourceDragSortCursorAdapter.java ├── SimpleDragSortCursorAdapter.java └── SimpleFloatViewManager.java /.bazelci/presubmit.yml: -------------------------------------------------------------------------------- 1 | --- 2 | tasks: 3 | ubuntu1804: 4 | build_targets: 5 | - "//java/com/google/android/apps/authenticator" 6 | test_targets: 7 | - "//javatests/..." 8 | -------------------------------------------------------------------------------- /.bazelproject: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | directories: 16 | . 17 | 18 | targets: 19 | //... 20 | 21 | test_sources: 22 | javatests/com/google/android/apps/authenticator/* 23 | 24 | android_sdk_platform: android-28 25 | -------------------------------------------------------------------------------- /.bazelrc: -------------------------------------------------------------------------------- 1 | # Configurations for testing with Bazel 2 | # Select a configuration by running 3 | # `bazel test //my:target --config={headless, gui, local_device}` 4 | 5 | # Headless instrumentation tests (No GUI) 6 | test:headless --test_arg=--enable_display=false 7 | # Graphical instrumentation tests. Ensure that $DISPLAY is set. 8 | test:gui --test_env=DISPLAY 9 | test:gui --test_arg=--enable_display=true 10 | 11 | # Testing with a local emulator or device. Ensure that `adb devices` lists the 12 | # device. 13 | # WARNING: Running tests may delete existing seeds on the target device. Only 14 | # use test devices when running the test suite on a real device. 15 | # 16 | # Run tests serially. 17 | test:local_device --test_strategy=exclusive 18 | # Use the local device broker type, as opposed to WRAPPED_EMULATOR. 19 | test:local_device --test_arg=--device_broker_type=LOCAL_ADB_SERVER 20 | # Uncomment and set $device_id if there is more than one connected device. 21 | # test:local_device --test_arg=--device_serial_number=$device_id 22 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: "There's a bug in the app \U0001F41B" 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | Found a bug in the Android app? Thanks for reporting it! To help us out, fill out this template to the best of your ability. 11 | 12 | Please note that the code in this repository is an open source fork of the app in the Play Store, so **there is no guarantee that both apps will be in sync**. Please check which version of the app your bug applies to below. 13 | 14 | - [ ] This issue is present in the app downloaded from the [Play Store][playstore]. 15 | - [ ] This issue is with the [Github version][opensource] of the app. 16 | 17 | ## Describe the Bug 18 | 19 | Replace this section with a clear summary of the issue you're encountering. Be as clear and concise as possible. 20 | 21 | ### Intended Behavior 22 | 23 | What did you expect to happen? 24 | 25 | ### Actual Behavior 26 | 27 | What actually happened? 28 | 29 | ## Reproducing 30 | 31 | How does one encounter this error. If possible, provide steps that we can take, like as shown below: 32 | 33 | 1. Go to '...' 34 | 2. Click on '....' 35 | 3. Scroll down to '....' 36 | 4. See error 37 | 38 | ### Screenshots 39 | 40 | If applicable, add screenshots to help explain your problem. 41 | 42 | ### Device 43 | 44 | Fill out the details about the device and app version in which you encountered the bug. 45 | 46 | - Device: [e.g. iPhone6] 47 | - OS: [e.g. iOS8.1] 48 | - Version [e.g. 22] 49 | 50 | ## Additional Information 51 | 52 | Add any other context about the problem here. 53 | 54 | [playstore]: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 55 | [opensource]: https://github.com/google/google-authenticator-android 56 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature Request 3 | about: Request a feature ⚙️ 4 | title: '' 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | Please note that the code in this repository is an open source fork of the app in the Play Store, so **there is no guarantee that both apps will be in sync**. Please check which version of the app your bug applies to below. 11 | 12 | - [ ] This feature request applies to the app downloaded from the [Play Store][playstore]. 13 | - [ ] This feature request is for the [Github version][opensource] of the app. 14 | 15 | The Google Authenticator app is maintained by a small group of 20%-ers within Google. Although we'd love to give the app some more love, engineers need to allocate limited cycles to many competing priorities. Please check the box below to make sure that we're on the same page. 16 | 17 | - [ ] I have acknowledged that filing this feature request does not obligate Google to implement my specific request. 18 | 19 | ## Feature Description 20 | 21 | Describe the feature you'd like. Be as clear and concise as possible. Why do you want this feature? (We also welcome [pull requests][pr]!) 22 | 23 | ### Why is it important? 24 | 25 | Why is implementing this feature important? Filling this out helps us prioritize different issues. 26 | 27 | ## Additional Information 28 | 29 | Add any other context about the feature request here. 30 | 31 | [playstore]: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 32 | [opensource]: https://github.com/google/google-authenticator-android 33 | [pr]: https://github.com/google/google-authenticator-android/blob/master/CONTRIBUTING.md 34 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Thanks for creating a pull request with us! Please make sure you have submitted the CLA at https://cla.developers.google.com/ if you haven't already. 2 | 3 | ## Change Description 4 | 5 | Please describe the change from your pull request here. If this pull request is related to an existing issue, link the issue here as well. 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore all bazel-* symlinks. There is no full list since this can change 2 | # based on the name of the directory bazel is cloned into. 3 | /bazel-* 4 | 5 | # Built application files 6 | *.apk 7 | *.ap_ 8 | *.aab 9 | 10 | # Files for the ART/Dalvik VM 11 | *.dex 12 | 13 | # Java class files 14 | *.class 15 | 16 | # Generated files 17 | bin/ 18 | gen/ 19 | out/ 20 | 21 | # Gradle files 22 | .gradle/ 23 | build/ 24 | 25 | # Local configuration file (sdk path, etc) 26 | local.properties 27 | 28 | # Proguard folder generated by Eclipse 29 | proguard/ 30 | 31 | # Log Files 32 | *.log 33 | 34 | # Android Studio Navigation editor temp files 35 | .navigation/ 36 | 37 | # Android Studio captures folder 38 | captures/ 39 | 40 | # IntelliJ 41 | *.iml 42 | .idea/workspace.xml 43 | .idea/tasks.xml 44 | .idea/gradle.xml 45 | .idea/assetWizardSettings.xml 46 | .idea/dictionaries 47 | .idea/libraries 48 | .idea/caches 49 | # Android Studio 3 in .gitignore file. 50 | .idea/caches/build_file_checksums.ser 51 | .idea/modules.xml 52 | .aswb/ 53 | 54 | # Keystore files 55 | *.jks 56 | *.keystore 57 | 58 | # External native build folder generated in Android Studio 2.2 and later 59 | .externalNativeBuild 60 | 61 | # Google Services (e.g. APIs or Firebase) 62 | google-services.json 63 | 64 | # Freeline 65 | freeline.py 66 | freeline/ 67 | freeline_project_description.json 68 | 69 | # fastlane 70 | fastlane/report.xml 71 | fastlane/Preview.html 72 | fastlane/screenshots 73 | fastlane/test_output 74 | fastlane/readme.md 75 | 76 | # Version control 77 | vcs.xml 78 | 79 | # lint 80 | lint/intermediates/ 81 | lint/generated/ 82 | lint/outputs/ 83 | lint/tmp/ 84 | gint/reports/ 85 | -------------------------------------------------------------------------------- /BUILD: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | package( 16 | default_visibility = [ 17 | "//java/com/google/android/apps/authenticator:__subpackages__", 18 | "//javatests/com/google/android/apps/authenticator:__subpackages__", 19 | ], 20 | ) 21 | 22 | licenses(["notice"]) # Apache 2.0 23 | 24 | java_plugin( 25 | name = "dagger-graph-analysis-processor", 26 | processor_class = "dagger.internal.codegen.GraphAnalysisProcessor", 27 | deps = [ 28 | "@maven//:com_squareup_dagger_dagger_compiler", 29 | ], 30 | ) 31 | 32 | java_plugin( 33 | name = "dagger-inject-adapter-processor", 34 | processor_class = "dagger.internal.codegen.InjectAdapterProcessor", 35 | deps = [ 36 | "@maven//:com_squareup_dagger_dagger_compiler", 37 | ], 38 | ) 39 | 40 | java_plugin( 41 | name = "dagger-module-adapter-processor", 42 | processor_class = "dagger.internal.codegen.ModuleAdapterProcessor", 43 | deps = [ 44 | "@maven//:com_squareup_dagger_dagger_compiler", 45 | ], 46 | ) 47 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to Contribute 2 | 3 | We'd love to accept your patches and contributions to this project. There are 4 | just a few small guidelines you need to follow. 5 | 6 | ## Contributor License Agreement 7 | 8 | Contributions to this project must be accompanied by a Contributor License 9 | Agreement. You (or your employer) retain the copyright to your contribution; 10 | this simply gives us permission to use and redistribute your contributions as 11 | part of the project. Head over to to see 12 | your current agreements on file or to sign a new one. 13 | 14 | You generally only need to submit a CLA once, so if you've already submitted one 15 | (even if it was for a different project), you probably don't need to do it 16 | again. 17 | 18 | ## Code reviews 19 | 20 | All submissions, including submissions by project members, require review. We 21 | use GitHub pull requests for this purpose. Consult 22 | [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more 23 | information on using pull requests. 24 | 25 | ## Community Guidelines 26 | 27 | This project follows 28 | [Google's Open Source Community Guidelines](https://opensource.google.com/conduct/). 29 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/AuthenticatorModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.apps.authenticator; 18 | 19 | import android.content.Context; 20 | import com.google.android.apps.authenticator.barcode.BarcodeCaptureActivity; 21 | import com.google.android.apps.authenticator.barcode.BarcodeConditionChecker; 22 | import com.google.android.apps.authenticator.common.AndroidDependenciesModule; 23 | import com.google.android.apps.authenticator.common.ApplicationContext; 24 | import com.google.android.apps.authenticator.crypto.CryptoModule; 25 | import com.google.android.apps.authenticator.otp.OtpModule; 26 | import com.google.android.apps.authenticator.timesync.TimeSyncModule; 27 | import dagger.Module; 28 | import dagger.Provides; 29 | import javax.inject.Singleton; 30 | 31 | /** 32 | * Dagger injection module for Authenticator. 33 | */ 34 | @Module( 35 | includes = { 36 | AndroidDependenciesModule.class, 37 | CryptoModule.class, 38 | OtpModule.class, 39 | TimeSyncModule.class, 40 | }, 41 | injects = { 42 | AuthenticatorActivity.class, 43 | BarcodeCaptureActivity.class 44 | } 45 | ) 46 | public class AuthenticatorModule { 47 | private Context applicationContext; 48 | 49 | // No arg constructor is needed for this module to be included from other modules 50 | public AuthenticatorModule() {} 51 | 52 | public AuthenticatorModule(Context applicationContext) { 53 | this.applicationContext = applicationContext; 54 | } 55 | 56 | @Provides @ApplicationContext 57 | public Context provideApplicationContext() { 58 | return applicationContext; 59 | } 60 | 61 | @Provides @Singleton 62 | public BarcodeConditionChecker provideBarcodeConditionChecker() { 63 | return new BarcodeConditionChecker(); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/barcode/BarcodeTracker.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.apps.authenticator.barcode; 18 | 19 | import com.google.android.gms.vision.Tracker; 20 | import com.google.android.gms.vision.barcode.Barcode; 21 | 22 | /** 23 | * Tracker used to receive notifications for a detected barcode over time. It can notify others 24 | * about detected barcodes using the {@link OnDetectionListener}. 25 | */ 26 | class BarcodeTracker extends Tracker { 27 | 28 | /** 29 | * Listener interface used to supply data from a detected barcode. 30 | */ 31 | public interface OnDetectionListener { 32 | 33 | /** 34 | * Called when a barcode is detected. 35 | * 36 | * The ID represents the specific detected barcode. If two different calls to this method 37 | * contain the same ID, it's because it has been determined that the new barcode was the same 38 | * barcode that was detected before. 39 | * 40 | * @param id ID representing the specified barcode. 41 | * @param barcode the barcode detected. 42 | */ 43 | void onNewDetection(int id, Barcode barcode); 44 | } 45 | 46 | private OnDetectionListener onDetectionListener; 47 | 48 | /** 49 | * Sets a detection listener. 50 | */ 51 | public void setDetectionListener(OnDetectionListener onDetectionListener) { 52 | this.onDetectionListener = onDetectionListener; 53 | } 54 | 55 | @Override 56 | public void onNewItem(int id, Barcode barcode) { 57 | if (onDetectionListener != null) { 58 | onDetectionListener.onNewDetection(id, barcode); 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/common/AndroidDependenciesModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.apps.authenticator.common; 18 | 19 | import android.content.Context; 20 | import android.content.SharedPreferences; 21 | import android.os.Build.VERSION; 22 | import android.os.Build.VERSION_CODES; 23 | import android.preference.PreferenceManager; 24 | import com.google.android.apps.authenticator.time.Clock; 25 | import com.google.android.apps.authenticator.time.SystemWallClock; 26 | import com.google.android.apps.authenticator.util.permissions.AutoGrantPermissionRequestor; 27 | import com.google.android.apps.authenticator.util.permissions.PermissionRequestor; 28 | import com.google.android.apps.authenticator.util.permissions.RuntimePermissionRequestor; 29 | import dagger.Module; 30 | import dagger.Provides; 31 | import java.net.Authenticator; 32 | import javax.inject.Singleton; 33 | 34 | /** 35 | * Android framework dependencies module. 36 | */ 37 | @Module( 38 | library = true, 39 | complete = false 40 | ) 41 | public class AndroidDependenciesModule { 42 | 43 | @Provides @Singleton 44 | public SharedPreferences provideSharedPreferences( 45 | @ApplicationContext Context applicationContext) { 46 | return PreferenceManager.getDefaultSharedPreferences(applicationContext); 47 | } 48 | 49 | @Provides @Singleton 50 | public Clock provideClock() { 51 | return new SystemWallClock(); 52 | } 53 | 54 | @Provides @Singleton 55 | public PermissionRequestor providesPermissionRequestor() { 56 | return VERSION.SDK_INT < VERSION_CODES.N 57 | ? new AutoGrantPermissionRequestor() 58 | : new RuntimePermissionRequestor(); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/common/ApplicationContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.apps.authenticator.common; 18 | 19 | import java.lang.annotation.Retention; 20 | import java.lang.annotation.RetentionPolicy; 21 | 22 | import javax.inject.Qualifier; 23 | 24 | /** 25 | * Annotation for requesting the application context. 26 | */ 27 | @Qualifier 28 | @Retention(RetentionPolicy.RUNTIME) 29 | public @interface ApplicationContext {} 30 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/crypto/CryptoModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.apps.authenticator.crypto; 18 | 19 | import dagger.Module; 20 | import dagger.Provides; 21 | 22 | import java.security.MessageDigest; 23 | import java.security.NoSuchAlgorithmException; 24 | 25 | import javax.inject.Named; 26 | 27 | /** 28 | * Dagger module for crypto package. 29 | */ 30 | @Module( 31 | library = true 32 | ) 33 | public class CryptoModule { 34 | 35 | @Provides @Named("MD5") 36 | public MessageDigest provideMessageDigestMd5() { 37 | try { 38 | return MessageDigest.getInstance("MD5"); 39 | } catch (NoSuchAlgorithmException e) { 40 | throw new RuntimeException(e); 41 | } 42 | } 43 | 44 | @Provides @Named("SHA256") 45 | public MessageDigest provideMessageDigestSha256() { 46 | try { 47 | return MessageDigest.getInstance("SHA256"); 48 | } catch (NoSuchAlgorithmException e) { 49 | throw new RuntimeException(e); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/license/LicenseLoader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License 15 | */ 16 | 17 | package com.google.android.apps.authenticator.license; 18 | 19 | import android.content.Context; 20 | import android.support.v4.content.AsyncTaskLoader; 21 | import com.google.android.apps.authenticator2.R; 22 | import java.util.List; 23 | 24 | /** {@link AsyncTaskLoader} to load the list of licenses for the license menu activity. */ 25 | final class LicenseLoader extends AsyncTaskLoader> { 26 | 27 | private List licenses; 28 | 29 | LicenseLoader(Context context) { 30 | // This must only pass the application context to avoid leaking a pointer to the Activity. 31 | super(context.getApplicationContext()); 32 | } 33 | 34 | @Override 35 | public List loadInBackground() { 36 | return Licenses.getLicenses(getContext()); 37 | } 38 | 39 | @Override 40 | public void deliverResult(List licenses) { 41 | this.licenses = licenses; 42 | super.deliverResult(licenses); 43 | } 44 | 45 | @Override 46 | protected void onStartLoading() { 47 | if (licenses != null) { 48 | deliverResult(licenses); 49 | } else { 50 | forceLoad(); 51 | } 52 | } 53 | 54 | @Override 55 | protected void onStopLoading() { 56 | cancelLoad(); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/otp/OtpModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.apps.authenticator.otp; 18 | 19 | import android.content.Context; 20 | import com.google.android.apps.authenticator.AuthenticatorActivity; 21 | import com.google.android.apps.authenticator.common.ApplicationContext; 22 | import com.google.android.apps.authenticator.time.Clock; 23 | import dagger.Module; 24 | import dagger.Provides; 25 | import javax.inject.Singleton; 26 | 27 | /** 28 | * Dagger module for the otp package. 29 | */ 30 | @Module( 31 | library = true, 32 | complete = false 33 | ) 34 | public class OtpModule { 35 | 36 | @Provides @Singleton 37 | public TotpClock providesTotpClock(@ApplicationContext Context applicationContext, Clock clock) { 38 | return new TotpClock(applicationContext, clock); 39 | } 40 | 41 | @Provides @Singleton 42 | public OtpSource providesOtpSource(AccountDb accountDb, TotpClock totpClock) { 43 | return new OtpProvider(accountDb, totpClock); 44 | } 45 | 46 | @Provides 47 | public TotpCounter providesTotpCounter(OtpSource otpSource) { 48 | return otpSource.getTotpCounter(); 49 | } 50 | 51 | @Provides 52 | public TotpCountdownTask providesTotpCountdownTask(TotpCounter totpCounter, TotpClock totpClock) { 53 | return new TotpCountdownTask(totpCounter, totpClock, 54 | AuthenticatorActivity.TOTP_COUNTDOWN_REFRESH_PERIOD_MILLIS); 55 | } 56 | 57 | @Provides @Singleton 58 | public AccountDb providesAccountDb(@ApplicationContext Context applicationContext) { 59 | return new AccountDb(applicationContext); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/otp/OtpSource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.apps.authenticator.otp; 18 | 19 | import com.google.android.apps.authenticator.otp.AccountDb.AccountIndex; 20 | 21 | import java.util.List; 22 | 23 | /** Abstraction for collection of OTP tokens. */ 24 | public interface OtpSource { 25 | 26 | /** 27 | * Enumerate list of accounts that this OTP token supports. 28 | */ 29 | List enumerateAccounts(); 30 | 31 | /** 32 | * Return the next OTP code for specified account. 33 | * Invoking this function may change internal state of the OTP generator, 34 | * for example advancing the counter. 35 | * 36 | * @return OTP as string code. 37 | */ 38 | String getNextCode(AccountIndex account) throws OtpSourceException; 39 | 40 | /** 41 | * Generate response to a given challenge based on next OTP code. 42 | * Subclasses are not required to implement this method. 43 | * 44 | * @param account the unique index for the account. 45 | * @param challenge Server specified challenge as UTF8 string. 46 | * @return Response to the challenge. 47 | * @throws UnsupportedOperationException if the token does not support 48 | * challenge-response extension for this account. 49 | */ 50 | String respondToChallenge(AccountIndex account, String challenge) throws OtpSourceException; 51 | 52 | /** 53 | * Gets the counter for generating or verifying TOTP codes. 54 | */ 55 | TotpCounter getTotpCounter(); 56 | 57 | /** 58 | * Gets the clock for generating or verifying TOTP codes. 59 | */ 60 | TotpClock getTotpClock(); 61 | } 62 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/otp/OtpSourceException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.apps.authenticator.otp; 18 | 19 | /** Indicates that {@link OtpSource} failed to performed the requested operation. */ 20 | public class OtpSourceException extends Exception { 21 | public OtpSourceException(String message) { 22 | super(message); 23 | } 24 | 25 | public OtpSourceException(String message, Throwable cause) { 26 | super(message, cause); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/anim/deny_allow_seekbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 26 | 27 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/barcode_scanner_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/barcode_scanner_image.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/ic_menu_grey400_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/ic_menu_grey400_24dp.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/ic_refresh_grey400_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/ic_refresh_grey400_24dp.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/ic_refresh_grey700_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/ic_refresh_grey700_24dp.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/product_logo_authenticator_color_144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/product_logo_authenticator_color_144.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/product_logo_authenticator_color_tablet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/product_logo_authenticator_color_tablet.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_account_circle_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_account_circle_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_add_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_add_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_content_copy_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_content_copy_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_delete_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_delete_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_edit_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_edit_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_highlight_off_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_highlight_off_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_history_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_history_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_keyboard_arrow_down_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_keyboard_arrow_down_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_keyboard_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_keyboard_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_lock_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_lock_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_lock_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_lock_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_navigate_next_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_navigate_next_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_phone_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_phone_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_photo_camera_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_photo_camera_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_refresh_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_refresh_black_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_refresh_googblue_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_refresh_googblue_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_refresh_grey600_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_refresh_grey600_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_report_problem_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_report_problem_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_vpn_key_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-hdpi/quantum_ic_vpn_key_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-ldrtl-hdpi/quantum_ic_content_copy_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-ldrtl-hdpi/quantum_ic_content_copy_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-ldrtl-mdpi/quantum_ic_content_copy_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-ldrtl-mdpi/quantum_ic_content_copy_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-ldrtl-xhdpi/quantum_ic_content_copy_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-ldrtl-xhdpi/quantum_ic_content_copy_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-ldrtl-xxhdpi/quantum_ic_content_copy_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-ldrtl-xxhdpi/quantum_ic_content_copy_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-ldrtl-xxxhdpi/quantum_ic_content_copy_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-ldrtl-xxxhdpi/quantum_ic_content_copy_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/product_logo_authenticator_color_144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/product_logo_authenticator_color_144.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_account_circle_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_account_circle_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_add_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_add_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_content_copy_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_content_copy_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_delete_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_delete_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_edit_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_edit_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_highlight_off_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_highlight_off_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_history_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_history_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_keyboard_arrow_down_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_keyboard_arrow_down_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_keyboard_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_keyboard_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_lock_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_lock_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_lock_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_lock_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_navigate_next_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_navigate_next_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_phone_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_phone_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_photo_camera_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_photo_camera_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_refresh_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_refresh_black_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_refresh_googblue_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_refresh_googblue_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_refresh_grey600_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_refresh_grey600_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_report_problem_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_report_problem_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_vpn_key_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-mdpi/quantum_ic_vpn_key_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/barcode_scanner_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/barcode_scanner_image.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/howitworks_image_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/howitworks_image_1.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/howitworks_image_1_tablet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/howitworks_image_1_tablet.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/howitworks_image_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/howitworks_image_2.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/howitworks_image_2_tablet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/howitworks_image_2_tablet.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/howitworks_image_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/howitworks_image_3.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/howitworks_image_3_tablet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/howitworks_image_3_tablet.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/ic_enroll2sv_account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/ic_enroll2sv_account.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/ic_menu_grey400_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/ic_menu_grey400_24dp.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/ic_refresh_grey400_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/ic_refresh_grey400_24dp.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/ic_refresh_grey700_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/ic_refresh_grey700_24dp.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/product_logo_authenticator_color_144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/product_logo_authenticator_color_144.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_account_circle_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_account_circle_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_add_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_add_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_content_copy_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_content_copy_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_delete_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_delete_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_edit_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_edit_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_highlight_off_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_highlight_off_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_history_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_history_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_keyboard_arrow_down_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_keyboard_arrow_down_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_keyboard_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_keyboard_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_lock_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_lock_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_lock_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_lock_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_navigate_next_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_navigate_next_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_phone_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_phone_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_photo_camera_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_photo_camera_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_refresh_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_refresh_black_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_refresh_googblue_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_refresh_googblue_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_refresh_grey600_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_refresh_grey600_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_report_problem_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_report_problem_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_vpn_key_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xhdpi/quantum_ic_vpn_key_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/product_logo_authenticator_color_144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/product_logo_authenticator_color_144.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_account_circle_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_account_circle_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_add_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_add_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_content_copy_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_content_copy_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_delete_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_delete_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_edit_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_edit_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_highlight_off_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_highlight_off_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_history_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_history_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_keyboard_arrow_down_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_keyboard_arrow_down_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_keyboard_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_keyboard_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_lock_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_lock_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_lock_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_lock_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_navigate_next_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_navigate_next_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_phone_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_phone_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_photo_camera_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_photo_camera_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_refresh_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_refresh_black_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_refresh_googblue_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_refresh_googblue_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_refresh_grey600_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_refresh_grey600_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_report_problem_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_report_problem_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_vpn_key_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxhdpi/quantum_ic_vpn_key_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/product_logo_authenticator_color_144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/product_logo_authenticator_color_144.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_account_circle_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_account_circle_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_add_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_add_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_content_copy_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_content_copy_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_delete_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_delete_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_edit_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_edit_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_highlight_off_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_highlight_off_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_history_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_history_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_keyboard_arrow_down_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_keyboard_arrow_down_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_keyboard_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_keyboard_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_lock_googblue_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_lock_googblue_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_lock_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_lock_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_navigate_next_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_navigate_next_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_phone_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_phone_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_photo_camera_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_photo_camera_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_refresh_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_refresh_black_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_refresh_googblue_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_refresh_googblue_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_refresh_grey600_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_refresh_grey600_48.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_report_problem_grey600_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_report_problem_grey600_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_vpn_key_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/google-authenticator-android/6f65e99fcbc9bbefdc3317c008345db595052a2b/java/com/google/android/apps/authenticator/res/drawable-xxxhdpi/quantum_ic_vpn_key_white_24.png -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable/refresh_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable/refresh_button_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable/toolbar_shadow.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 19 | 22 | 23 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable/user_row_dragged_shadow_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 19 | 22 | 23 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable/user_row_dragged_shadow_bottom_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 19 | 22 | 23 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable/user_row_dragged_shadow_top.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 19 | 22 | 23 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable/user_row_dragged_shadow_top_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 19 | 22 | 23 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable/user_row_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 20 | 22 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/drawable/user_row_selector_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 20 | 22 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/layout/barcode_capture_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 27 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/layout/dummy_placeholder.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 22 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/layout/license.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 24 | 25 | 39 | 40 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/layout/license_menu_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 22 | 23 | 36 | 37 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/layout/license_scrollview.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | 22 | 32 | 33 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/layout/listitem_device.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | 25 | 29 | 30 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/layout/opensource_notices.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | 23 | 26 | 27 | 31 | 32 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/layout/rename.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 22 | 23 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /java/com/google/android/apps/authenticator/res/layout/two_step_verification_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | 24 | 27 | 28 | 34 | 35 | 40 | 41 | 42 |