fake_multidevice_feature_access_manager.cc 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "ash/components/phonehub/fake_multidevice_feature_access_manager.h"
  5. namespace ash {
  6. namespace phonehub {
  7. FakeMultideviceFeatureAccessManager::FakeMultideviceFeatureAccessManager(
  8. AccessStatus notification_access_status,
  9. AccessStatus camera_roll_access_status,
  10. AccessStatus apps_access_status,
  11. AccessProhibitedReason reason)
  12. : notification_access_status_(notification_access_status),
  13. camera_roll_access_status_(camera_roll_access_status),
  14. apps_access_status_(apps_access_status),
  15. access_prohibited_reason_(reason) {
  16. ready_for_access_features_ = {};
  17. }
  18. FakeMultideviceFeatureAccessManager::~FakeMultideviceFeatureAccessManager() =
  19. default;
  20. void FakeMultideviceFeatureAccessManager::SetNotificationAccessStatusInternal(
  21. AccessStatus notification_access_status,
  22. AccessProhibitedReason reason) {
  23. if (notification_access_status_ == notification_access_status)
  24. return;
  25. notification_access_status_ = notification_access_status;
  26. access_prohibited_reason_ = reason;
  27. NotifyNotificationAccessChanged();
  28. }
  29. MultideviceFeatureAccessManager::AccessProhibitedReason
  30. FakeMultideviceFeatureAccessManager::GetNotificationAccessProhibitedReason()
  31. const {
  32. return access_prohibited_reason_;
  33. }
  34. void FakeMultideviceFeatureAccessManager::SetCameraRollAccessStatusInternal(
  35. AccessStatus camera_roll_access_status) {
  36. if (camera_roll_access_status_ == camera_roll_access_status)
  37. return;
  38. camera_roll_access_status_ = camera_roll_access_status;
  39. NotifyCameraRollAccessChanged();
  40. }
  41. void FakeMultideviceFeatureAccessManager::SetAppsAccessStatusInternal(
  42. AccessStatus apps_access_status) {
  43. if (apps_access_status_ == apps_access_status)
  44. return;
  45. apps_access_status_ = apps_access_status;
  46. NotifyAppsAccessChanged();
  47. }
  48. void FakeMultideviceFeatureAccessManager::SetFeatureReadyForAccess(
  49. multidevice_setup::mojom::Feature feature) {
  50. ready_for_access_features_.push_back(feature);
  51. }
  52. bool FakeMultideviceFeatureAccessManager::IsAccessRequestAllowed(
  53. multidevice_setup::mojom::Feature feature) {
  54. const auto it = std::find(ready_for_access_features_.begin(),
  55. ready_for_access_features_.end(), feature);
  56. return (it != ready_for_access_features_.end());
  57. }
  58. MultideviceFeatureAccessManager::AccessStatus
  59. FakeMultideviceFeatureAccessManager::GetAppsAccessStatus() const {
  60. return apps_access_status_;
  61. }
  62. MultideviceFeatureAccessManager::AccessStatus
  63. FakeMultideviceFeatureAccessManager::GetNotificationAccessStatus() const {
  64. return notification_access_status_;
  65. }
  66. MultideviceFeatureAccessManager::AccessStatus
  67. FakeMultideviceFeatureAccessManager::GetCameraRollAccessStatus() const {
  68. return camera_roll_access_status_;
  69. }
  70. bool FakeMultideviceFeatureAccessManager::
  71. HasMultideviceFeatureSetupUiBeenDismissed() const {
  72. return has_notification_setup_ui_been_dismissed_;
  73. }
  74. void FakeMultideviceFeatureAccessManager::DismissSetupRequiredUi() {
  75. has_notification_setup_ui_been_dismissed_ = true;
  76. }
  77. void FakeMultideviceFeatureAccessManager::
  78. ResetHasMultideviceFeatureSetupUiBeenDismissed() {
  79. has_notification_setup_ui_been_dismissed_ = false;
  80. }
  81. void FakeMultideviceFeatureAccessManager::SetNotificationSetupOperationStatus(
  82. NotificationAccessSetupOperation::Status new_status) {
  83. switch (new_status) {
  84. case NotificationAccessSetupOperation::Status::kCompletedSuccessfully:
  85. SetNotificationAccessStatusInternal(AccessStatus::kAccessGranted,
  86. AccessProhibitedReason::kUnknown);
  87. break;
  88. case NotificationAccessSetupOperation::Status::
  89. kProhibitedFromProvidingAccess:
  90. SetNotificationAccessStatusInternal(
  91. AccessStatus::kProhibited,
  92. AccessProhibitedReason::kDisabledByPhonePolicy);
  93. break;
  94. default:
  95. // Do not update access status based on other operation status values.
  96. break;
  97. }
  98. MultideviceFeatureAccessManager::SetNotificationSetupOperationStatus(
  99. new_status);
  100. }
  101. void FakeMultideviceFeatureAccessManager::SetCombinedSetupOperationStatus(
  102. CombinedAccessSetupOperation::Status new_status) {
  103. if (new_status ==
  104. CombinedAccessSetupOperation::Status::kCompletedSuccessfully) {
  105. SetCameraRollAccessStatusInternal(AccessStatus::kAccessGranted);
  106. }
  107. MultideviceFeatureAccessManager::SetCombinedSetupOperationStatus(new_status);
  108. }
  109. void FakeMultideviceFeatureAccessManager::
  110. SetFeatureSetupRequestSupportedInternal(bool supported) {
  111. is_feature_setup_request_supported_ = supported;
  112. }
  113. bool FakeMultideviceFeatureAccessManager::GetFeatureSetupRequestSupported()
  114. const {
  115. return is_feature_setup_request_supported_;
  116. }
  117. } // namespace phonehub
  118. } // namespace ash