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
|
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ash/scanner/scanner_action_view_model.h"
#include <string>
#include <utility>
#include "ash/resources/vector_icons/vector_icons.h"
#include "ash/strings/grit/ash_strings.h"
#include "base/memory/ref_counted_memory.h"
#include "base/memory/scoped_refptr.h"
#include "base/notreached.h"
#include "components/manta/proto/scanner.pb.h"
#include "ui/base/l10n/l10n_util.h"
namespace ash {
ScannerActionViewModel::ScannerActionViewModel(
manta::proto::ScannerAction unpopulated_action,
scoped_refptr<base::RefCountedMemory> downscaled_jpeg_bytes)
: unpopulated_action_(std::move(unpopulated_action)),
downscaled_jpeg_bytes_(std::move(downscaled_jpeg_bytes)) {}
ScannerActionViewModel::ScannerActionViewModel(const ScannerActionViewModel&) =
default;
ScannerActionViewModel& ScannerActionViewModel::operator=(
const ScannerActionViewModel&) = default;
ScannerActionViewModel::ScannerActionViewModel(ScannerActionViewModel&&) =
default;
ScannerActionViewModel& ScannerActionViewModel::operator=(
ScannerActionViewModel&&) = default;
ScannerActionViewModel::~ScannerActionViewModel() = default;
std::u16string ScannerActionViewModel::GetText() const {
switch (unpopulated_action_.action_case()) {
case manta::proto::ScannerAction::kNewEvent:
return l10n_util::GetStringUTF16(
IDS_ASH_SCANNER_ACTION_CREATE_EVENT_LABEL);
case manta::proto::ScannerAction::kNewContact:
return l10n_util::GetStringUTF16(
IDS_ASH_SCANNER_ACTION_CREATE_CONTACT_LABEL);
case manta::proto::ScannerAction::kNewGoogleDoc:
return l10n_util::GetStringUTF16(IDS_ASH_SCANNER_ACTION_CREATE_DOC);
case manta::proto::ScannerAction::kNewGoogleSheet:
return l10n_util::GetStringUTF16(IDS_ASH_SCANNER_ACTION_CREATE_SHEET);
case manta::proto::ScannerAction::kCopyToClipboard:
return l10n_util::GetStringUTF16(
IDS_ASH_SCANNER_ACTION_COPY_TEXT_AND_FORMAT);
case manta::proto::ScannerAction::ACTION_NOT_SET:
// This should only be possible if `unpopulated_action_` has been
// previously moved.
NOTREACHED();
}
// This should not be possible as all Protobuf variant case enums should
// always be known.
NOTREACHED();
}
const gfx::VectorIcon& ScannerActionViewModel::GetIcon() const {
switch (unpopulated_action_.action_case()) {
case manta::proto::ScannerAction::kNewEvent:
return kScannerCalendarIcon;
case manta::proto::ScannerAction::kNewContact:
return kScannerNewContactIcon;
case manta::proto::ScannerAction::kNewGoogleDoc:
return kScannerDocIcon;
case manta::proto::ScannerAction::kNewGoogleSheet:
return kScannerSheetIcon;
case manta::proto::ScannerAction::kCopyToClipboard:
return kScannerClipboardIcon;
case manta::proto::ScannerAction::ACTION_NOT_SET:
// This should only be possible if `unpopulated_action_` has been
// previously moved.
NOTREACHED();
}
}
manta::proto::ScannerAction::ActionCase ScannerActionViewModel::GetActionCase()
const {
return unpopulated_action_.action_case();
}
} // namespace ash
|