File: fake_multidevice_feature_access_manager.cc

package info (click to toggle)
chromium 139.0.7258.127-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 6,122,068 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (148 lines) | stat: -rw-r--r-- 5,104 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chromeos/ash/components/phonehub/fake_multidevice_feature_access_manager.h"

#include "base/containers/contains.h"
#include "chromeos/ash/components/phonehub/multidevice_feature_access_manager.h"

namespace ash::phonehub {

FakeMultideviceFeatureAccessManager::FakeMultideviceFeatureAccessManager(
    AccessStatus notification_access_status,
    AccessStatus camera_roll_access_status,
    AccessStatus apps_access_status,
    AccessProhibitedReason reason)
    : notification_access_status_(notification_access_status),
      camera_roll_access_status_(camera_roll_access_status),
      apps_access_status_(apps_access_status),
      access_prohibited_reason_(reason) {
  ready_for_access_features_ = {};
}

FakeMultideviceFeatureAccessManager::~FakeMultideviceFeatureAccessManager() =
    default;

void FakeMultideviceFeatureAccessManager::SetNotificationAccessStatusInternal(
    AccessStatus notification_access_status,
    AccessProhibitedReason reason) {
  if (notification_access_status_ == notification_access_status)
    return;

  notification_access_status_ = notification_access_status;
  access_prohibited_reason_ = reason;
  NotifyNotificationAccessChanged();
}

MultideviceFeatureAccessManager::AccessProhibitedReason
FakeMultideviceFeatureAccessManager::GetNotificationAccessProhibitedReason()
    const {
  return access_prohibited_reason_;
}

void FakeMultideviceFeatureAccessManager::SetCameraRollAccessStatusInternal(
    AccessStatus camera_roll_access_status) {
  if (camera_roll_access_status_ == camera_roll_access_status)
    return;

  camera_roll_access_status_ = camera_roll_access_status;
  NotifyCameraRollAccessChanged();
}

void FakeMultideviceFeatureAccessManager::SetAppsAccessStatusInternal(
    AccessStatus apps_access_status) {
  if (apps_access_status_ == apps_access_status)
    return;

  apps_access_status_ = apps_access_status;
  NotifyAppsAccessChanged();
}

void FakeMultideviceFeatureAccessManager::SetFeatureReadyForAccess(
    multidevice_setup::mojom::Feature feature) {
  ready_for_access_features_.push_back(feature);
}

bool FakeMultideviceFeatureAccessManager::IsAccessRequestAllowed(
    multidevice_setup::mojom::Feature feature) {
  return base::Contains(ready_for_access_features_, feature);
}

MultideviceFeatureAccessManager::AccessStatus
FakeMultideviceFeatureAccessManager::GetAppsAccessStatus() const {
  return apps_access_status_;
}

MultideviceFeatureAccessManager::AccessStatus
FakeMultideviceFeatureAccessManager::GetNotificationAccessStatus() const {
  return notification_access_status_;
}
MultideviceFeatureAccessManager::AccessStatus
FakeMultideviceFeatureAccessManager::GetCameraRollAccessStatus() const {
  return camera_roll_access_status_;
}

bool FakeMultideviceFeatureAccessManager::
    HasMultideviceFeatureSetupUiBeenDismissed() const {
  return has_notification_setup_ui_been_dismissed_;
}

void FakeMultideviceFeatureAccessManager::DismissSetupRequiredUi() {
  has_notification_setup_ui_been_dismissed_ = true;
}

void FakeMultideviceFeatureAccessManager::
    ResetHasMultideviceFeatureSetupUiBeenDismissed() {
  has_notification_setup_ui_been_dismissed_ = false;
}

void FakeMultideviceFeatureAccessManager::SetNotificationSetupOperationStatus(
    NotificationAccessSetupOperation::Status new_status) {
  switch (new_status) {
    case NotificationAccessSetupOperation::Status::kCompletedSuccessfully:
      SetNotificationAccessStatusInternal(AccessStatus::kAccessGranted,
                                          AccessProhibitedReason::kUnknown);
      break;
    case NotificationAccessSetupOperation::Status::
        kProhibitedFromProvidingAccess:
      SetNotificationAccessStatusInternal(
          AccessStatus::kProhibited,
          AccessProhibitedReason::kDisabledByPhonePolicy);
      break;
    default:
      // Do not update access status based on other operation status values.
      break;
  }

  MultideviceFeatureAccessManager::SetNotificationSetupOperationStatus(
      new_status);
}

void FakeMultideviceFeatureAccessManager::SetCombinedSetupOperationStatus(
    CombinedAccessSetupOperation::Status new_status) {
  if (new_status ==
      CombinedAccessSetupOperation::Status::kCompletedSuccessfully) {
    SetCameraRollAccessStatusInternal(AccessStatus::kAccessGranted);
  }
  MultideviceFeatureAccessManager::SetCombinedSetupOperationStatus(new_status);
}

void FakeMultideviceFeatureAccessManager::
    SetFeatureSetupRequestSupportedInternal(bool supported) {
  is_feature_setup_request_supported_ = supported;
}

bool FakeMultideviceFeatureAccessManager::GetFeatureSetupRequestSupported()
    const {
  return is_feature_setup_request_supported_;
}

void FakeMultideviceFeatureAccessManager::
    SetFeatureSetupConnectionOperationStatus(
        FeatureSetupConnectionOperation::Status new_status) {
  MultideviceFeatureAccessManager::SetFeatureSetupConnectionOperationStatus(
      new_status);
}

}  // namespace ash::phonehub