fake_camera_roll_manager.cc 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // Copyright 2021 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_camera_roll_manager.h"
  5. #include "ash/components/multidevice/logging/logging.h"
  6. #include "ash/components/phonehub/proto/phonehub_api.pb.h"
  7. namespace ash {
  8. namespace phonehub {
  9. FakeCameraRollManager::FakeCameraRollManager() = default;
  10. FakeCameraRollManager::~FakeCameraRollManager() = default;
  11. void FakeCameraRollManager::DownloadItem(
  12. const proto::CameraRollItemMetadata& item_metadata) {
  13. if (is_simulating_error_) {
  14. NotifyCameraRollDownloadError(simulated_error_type_, item_metadata);
  15. PA_LOG(VERBOSE) << "Fake Camera Roll Download: Error";
  16. } else {
  17. PA_LOG(VERBOSE) << "Fake Camera Roll Download: Success";
  18. }
  19. download_request_count_++;
  20. }
  21. void FakeCameraRollManager::SetIsCameraRollAvailableToBeEnabled(
  22. bool can_enable) {
  23. is_avaiable_to_be_enabled_ = can_enable;
  24. ComputeAndUpdateUiState();
  25. }
  26. void FakeCameraRollManager::SetIsCameraRollAccessible(bool accessiable) {
  27. is_camera_roll_accessible_ = accessiable;
  28. ComputeAndUpdateUiState();
  29. }
  30. void FakeCameraRollManager::SetIsAndroidStorageGranted(bool granted) {
  31. is_android_storage_granted_ = granted;
  32. ComputeAndUpdateUiState();
  33. }
  34. void FakeCameraRollManager::SetSimulatedDownloadError(bool has_error) {
  35. is_simulating_error_ = has_error;
  36. }
  37. void FakeCameraRollManager::SetSimulatedErrorType(
  38. Observer::DownloadErrorType error_type) {
  39. simulated_error_type_ = error_type;
  40. }
  41. int FakeCameraRollManager::GetDownloadRequestCount() {
  42. return download_request_count_;
  43. }
  44. void FakeCameraRollManager::ComputeAndUpdateUiState() {
  45. if (!is_camera_roll_accessible_) {
  46. ui_state_ = CameraRollUiState::SHOULD_HIDE;
  47. } else if (!is_android_storage_granted_) {
  48. ui_state_ = CameraRollUiState::NO_STORAGE_PERMISSION;
  49. } else if (is_avaiable_to_be_enabled_) {
  50. ui_state_ = CameraRollUiState::SHOULD_HIDE;
  51. } else if (current_items().empty()) {
  52. ui_state_ = CameraRollUiState::SHOULD_HIDE;
  53. } else {
  54. ui_state_ = CameraRollUiState::ITEMS_VISIBLE;
  55. }
  56. NotifyCameraRollViewUiStateUpdated();
  57. }
  58. } // namespace phonehub
  59. } // namespace ash