Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(227)

Side by Side Diff: components/arc/clipboard/clipboard_bridge_impl.cc

Issue 1495723004: Minimum implementation of ARC clipboard Bridge (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix the fakes Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 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
5 #include "components/arc/clipboard/clipboard_bridge_impl.h"
6
7 #include "base/logging.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "components/arc/arc_bridge_service.h"
10 #include "ui/base/clipboard/clipboard.h"
11 #include "ui/base/clipboard/clipboard_types.h"
12 #include "ui/base/clipboard/scoped_clipboard_writer.h"
13
14 namespace arc {
15
16 ClipboardBridgeImpl::ClipboardBridgeImpl(ArcBridgeService* bridge_service)
17 : bridge_service_(bridge_service) {
18 DCHECK(bridge_service_->state() == ArcBridgeService::State::STOPPED);
elijahtaylor1 2015/12/15 01:17:05 is this required?
Luis Héctor Chávez 2015/12/16 23:16:23 Shouldn't be. It was required by input, but is not
cnwan 2015/12/21 11:18:00 Done.
19
20 bridge_service_->AddClipboardObserver(this);
21 }
22
23 ClipboardBridgeImpl::~ClipboardBridgeImpl() {
24 bridge_service_->RemoveClipboardObserver(this);
25 }
26
27 void ClipboardBridgeImpl::OnSetClipboardContent(const std::string& text) {
28 base::string16 result = base::UTF8ToUTF16(text);
29
30 ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE);
31 writer.WriteText(result);
32 }
33
34 void ClipboardBridgeImpl::OnGetClipboardContent() {
35 base::string16 text;
36 ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
elijahtaylor1 2015/12/15 01:17:05 do we need to check which thread we're on to get a
cnwan 2015/12/21 11:18:00 Done.
37 clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &text);
38
39 std::string result = base::UTF16ToUTF8(text);
40 bridge_service_->SendClipboardContentToAndroid(result);
41 }
42
43 scoped_ptr<ClipboardBridge> ClipboardBridge::Create(
44 ArcBridgeService* bridge_service) {
45 return make_scoped_ptr(new ClipboardBridgeImpl(bridge_service));
46 }
47
48 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698