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

Side by Side Diff: blimp/client/android/toolbar.cc

Issue 1636163002: Restructure contents of blimp/client. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months 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
« no previous file with comments | « blimp/client/android/toolbar.h ('k') | blimp/client/app/android/AndroidManifest.xml.jinja2 » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "blimp/client/android/toolbar.h"
6
7 #include "base/android/jni_string.h"
8 #include "blimp/client/session/blimp_client_session_android.h"
9 #include "jni/Toolbar_jni.h"
10 #include "third_party/skia/include/core/SkBitmap.h"
11 #include "ui/gfx/android/java_bitmap.h"
12 #include "url/gurl.h"
13
14 namespace blimp {
15 namespace client {
16
17 namespace {
18
19 const int kDummyTabId = 0;
20
21 } // namespace
22
23 static jlong Init(JNIEnv* env,
24 const JavaParamRef<jobject>& jobj,
25 const JavaParamRef<jobject>& blimp_client_session) {
26 BlimpClientSession* client_session =
27 BlimpClientSessionAndroid::FromJavaObject(env,
28 blimp_client_session.obj());
29
30 return reinterpret_cast<intptr_t>(
31 new Toolbar(env, jobj, client_session->GetNavigationFeature()));
32 }
33
34 // static
35 bool Toolbar::RegisterJni(JNIEnv* env) {
36 return RegisterNativesImpl(env);
37 }
38
39 Toolbar::Toolbar(JNIEnv* env,
40 const base::android::JavaParamRef<jobject>& jobj,
41 NavigationFeature* navigation_feature)
42 : navigation_feature_(navigation_feature) {
43 java_obj_.Reset(env, jobj);
44
45 navigation_feature_->SetDelegate(kDummyTabId, this);
46 }
47
48 Toolbar::~Toolbar() {
49 navigation_feature_->RemoveDelegate(kDummyTabId);
50 }
51
52 void Toolbar::Destroy(JNIEnv* env, const JavaParamRef<jobject>& jobj) {
53 delete this;
54 }
55
56 void Toolbar::OnUrlTextEntered(JNIEnv* env,
57 const JavaParamRef<jobject>& jobj,
58 const JavaParamRef<jstring>& text) {
59 navigation_feature_->NavigateToUrlText(
60 kDummyTabId, base::android::ConvertJavaStringToUTF8(env, text));
61 }
62
63 void Toolbar::OnReloadPressed(JNIEnv* env, const JavaParamRef<jobject>& jobj) {
64 navigation_feature_->Reload(kDummyTabId);
65 }
66
67 void Toolbar::OnForwardPressed(JNIEnv* env, const JavaParamRef<jobject>& jobj) {
68 navigation_feature_->GoForward(kDummyTabId);
69 }
70
71 jboolean Toolbar::OnBackPressed(JNIEnv* env,
72 const JavaParamRef<jobject>& jobj) {
73 navigation_feature_->GoBack(kDummyTabId);
74
75 // TODO(dtrainor): Find a way to determine whether or not we're at the end of
76 // our history stack.
77 return true;
78 }
79
80 void Toolbar::OnUrlChanged(int tab_id, const GURL& url) {
81 JNIEnv* env = base::android::AttachCurrentThread();
82 ScopedJavaLocalRef<jstring> jurl(
83 base::android::ConvertUTF8ToJavaString(env, url.spec()));
84
85 Java_Toolbar_onEngineSentUrl(env, java_obj_.obj(), jurl.obj());
86 }
87
88 void Toolbar::OnFaviconChanged(int tab_id, const SkBitmap& favicon) {
89 JNIEnv* env = base::android::AttachCurrentThread();
90 ScopedJavaLocalRef<jobject> jfavicon(gfx::ConvertToJavaBitmap(&favicon));
91
92 Java_Toolbar_onEngineSentFavicon(env, java_obj_.obj(), jfavicon.obj());
93 }
94
95 void Toolbar::OnTitleChanged(int tab_id, const std::string& title) {
96 JNIEnv* env = base::android::AttachCurrentThread();
97 ScopedJavaLocalRef<jstring> jtitle(
98 base::android::ConvertUTF8ToJavaString(env, title));
99
100 Java_Toolbar_onEngineSentTitle(env, java_obj_.obj(), jtitle.obj());
101 }
102
103 void Toolbar::OnLoadingChanged(int tab_id, bool loading) {
104 JNIEnv* env = base::android::AttachCurrentThread();
105
106 Java_Toolbar_onEngineSentLoading(env,
107 java_obj_.obj(),
108 static_cast<jboolean>(loading));
109 }
110
111 } // namespace client
112 } // namespace blimp
OLDNEW
« no previous file with comments | « blimp/client/android/toolbar.h ('k') | blimp/client/app/android/AndroidManifest.xml.jinja2 » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698