Commit Graph

9 Commits

Author SHA1 Message Date
Alex Johnston
8d06d63fe3 Remove credential management app Settings
* Update string and icon
* Flip icon if languate is RTL e.g. Arabic
* Add dialog when 'Remove app' is selected
* Add Material Next theme to dialog
* Update string terminology when removing a
  CA or user certificate to from 'remove'
  to 'uninstall'
* Final UI tweaks to RequestManageCredentials screen

Screenshots
* Light mode: https://screenshot.googleplex.com/66QKFLhtn6ZueZQ
* Dark mode: https://screenshot.googleplex.com/9kkTaaDV6CiHudF
* RTL: https://screenshot.googleplex.com/AkwSibXakARYM8H
* Request light mode: https://screenshot.googleplex.com/6n6raBQ8drXRHcU
* Request dark mode: https://screenshot.googleplex.com/3bmWNoTwE6JBqAX

Bug: 189416800
Test: atest CredentialManagementAppButtonsControllerTest
      manual testing with TestDPC
Change-Id: I5450d33603418930e92b03c4447aaa1095afe9a3
2021-06-30 13:53:58 +00:00
Alex Johnston
4ef1438512 RequestManageCredentials landscape mode
* Split screen into two halves, where the left
  side includes the title and the right side
  includes the recycler view, floating action
  button and action buttons.
* https://screenshot.googleplex.com/6Co6kn2DyXZRGNZ
* https://screenshot.googleplex.com/6uwHAGuRHjNcStN

Bug: 189193577
Test: manual testing via TestDPC
      RequestManageCredentialsTest
Change-Id: I9c82a7471c885658aacb40b22166ec801e2833ca
2021-06-09 09:06:49 +01:00
Alex Johnston
c82767f627 Return RESULT_OK RequestManageCredentials
Bug: 177979648
Test: Manual testing
Change-Id: I3b4968131f8c7b811752704808d0ef4df617a658
2021-03-03 11:30:46 +00:00
Alex Johnston
c3b31dd94c Add cred mng app metrics to Settings
Log:
* package name
* number of remote apps/URIs
* request accepted
* request failed
* request cancelled
* removed

Bug: 165641221
Test: manual
Change-Id: I629b95626c9581da8d7f1ea6758120768471a60e
2021-01-12 16:49:44 +00:00
Alex Johnston
c850920cc6 Call KeyChain credential management app APIs Settings
Background
* This is part of the work to support
  a credential management app on
  unmanaged devices.
Changes
* Add calls to KeyChain credential management
  app API methods.
* Add logic to add, update and remove credential
  management app from KeyChain.

Manual Testing
* Install TestDPC
* Request to manage credentials (fire intent).
  Add policy mapping: 'com.android.chrome' ->
  'client.badssl.com:443' -> 'testAlias'
* Install badssl user certificate as credential
  management app (TestDPC). Set alias to 'testAlias'
* Check certificate is installed in Settings
* Go to chrome > client.badssl.com
* Verify no certificate selection prompt is
  displayed. User is automatically authenticated.
* Remove credential management app from Settings
  Security > Encryption and credentials >
  Certificate management app
* Verify credential management app is removed and
  'testAlias' is uninstalled.

Bug: 165641221
Test: Manual Testing
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.security.RequestManageCredentialsTest
Change-Id: I52254ccbdb0b46941b35130d487e0cf346212968
2021-01-05 16:57:50 +00:00
Alex Johnston
25cca45c09 Merge "Add credential management app preference to Settings" 2020-12-03 10:00:27 +00:00
Alex Johnston
672c2aaaec Add credential management app preference to Settings
Background
* This is part of the work to support
  a credential management app on
  unmanaged devices.
Changes
* Add a preference controller which will only
  be enabled if there is a credential management app.
* Add a fragment to display details on the credential
  management app and its policy. Add a remove button
  to remove the credential management app.
* Link CredentialManagementAppAdapter to new fragment
  and add expander.

Manual Testing
* Verify preference is disabled if there is no credential
  management app.
* Verify preference summary shows credential mangement
  app name if a credential management app exists.
* Verify fragment details page displays the
  authentication policy correctly.

Bug: 165641221
Test: Manual testing
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.security.CredentialManagementAppFragmentTest
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.security.CredentialManagementAppControllerTest
Change-Id: I06d6b88d0c89022f7a6cbf3031834defcb54bd51
2020-12-03 07:23:50 +00:00
Alex Johnston
a12b402f36 Show Floating action button to request manage credentials
Background
* This is part of the work to support
  a credential management app on
  unmanaged devices.
Changes
* Show FAB for detailed/long manage credentials
  authentication policy.
* Hide FAB for short manage credentials
  authentication policy.
* Unexpand FAB once the user start starts
  scrolling.
* Hide FAB once the user has scrolled to
  the bottom.

Manual Testing
* Verify FAB is shown for a detailed/long policy:
  https://screenshot.googleplex.com/BUb4LGz3GD6AozS
* Verify FAB is hidden for a short policy
* Verify FAB is hidden when user has scrolled to the
  bottom:
  https://screenshot.googleplex.com/6FQRqto3r3jzfXH
* Verify FAB is unexpanded (text hidden)
  when the users start scrolling:
  https://screenshot.googleplex.com/4FfAt5MsCfrAwQK

Bug: 165641221
Test: Manual Testing
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.security.RequestManageCredentialsTest
Change-Id: Ied2ef726ad4dcc3f92c20249f80294f0a3071a8a
2020-12-02 17:17:12 +00:00
Alex Johnston
580b7af1a4 Add request manage credentials to Settings
Background
* This is part of the work to support
  a credential management app on
  unmanaged devices.

Changes
* Add new activity to Settings to display
  a screen to the user requesting whether
  the calling app can manage their
  KeyChain credentials.
* Display the authentication policy

Manual Testing
* Verify screen is not displayed if intent
  action is not android.security.MANAGE_CREDENTIALS
* Verify screen is not displayed if authentication
  policy is not valid
* Verify button panel is visible if all items in the
  authentication policy are displayed
* Verify button panel is not visible if not all items
  in the authentication policy are displayed. Verify
  that scrolling to the bottom of the item list, the
  button panel becomes visible.

Bug: 165641221
Test: Manual testing
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.security.RequestManageCredentialsTest
Change-Id: Ie23b226f1a285b3de6ec3e91b8880d9144bb24a3
2020-11-27 20:43:38 +00:00