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

Side by Side Diff: chrome/browser/ui/android/infobars/reader_mode_infobar.cc

Issue 2812753003: 🏠 Reader Mode info bar implementation (Closed)
Patch Set: address comments Created 3 years, 7 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
OLDNEW
(Empty)
1 // Copyright 2017 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 "chrome/browser/ui/android/infobars/reader_mode_infobar.h"
6
7 #include <memory>
8 #include <utility>
9
10 #include "base/memory/ptr_util.h"
11 #include "chrome/browser/android/tab_android.h"
12 #include "chrome/browser/infobars/infobar_service.h"
13 #include "components/infobars/core/infobar_delegate.h"
14 #include "content/public/browser/web_contents.h"
15 #include "jni/ReaderModeInfoBar_jni.h"
16 #include "ui/android/window_android.h"
17
18 using base::android::JavaParamRef;
19 using base::android::ScopedJavaLocalRef;
20
21 class ReaderModeInfoBarDelegate : public infobars::InfoBarDelegate {
22 public:
23 ~ReaderModeInfoBarDelegate() override {}
24
25 infobars::InfoBarDelegate::InfoBarIdentifier GetIdentifier() const override {
26 return InfoBarDelegate::InfoBarIdentifier::READER_MODE_INFOBAR_ANDROID;
27 }
28
29 bool EqualsDelegate(infobars::InfoBarDelegate* delegate) const override {
30 return delegate->GetIdentifier() == GetIdentifier();
31 }
32 };
33
34 ReaderModeInfoBar::ReaderModeInfoBar(
35 std::unique_ptr<ReaderModeInfoBarDelegate> delegate)
36 : InfoBarAndroid(std::move(delegate)) {}
37
38 ReaderModeInfoBar::~ReaderModeInfoBar() {}
39
40 infobars::InfoBarDelegate* ReaderModeInfoBar::GetDelegate() {
41 return delegate();
42 }
43
44 ScopedJavaLocalRef<jobject> ReaderModeInfoBar::CreateRenderInfoBar(
45 JNIEnv* env) {
46 return Java_ReaderModeInfoBar_create(env);
47 }
48
49 void ReaderModeInfoBar::ProcessButton(int action) {}
50
51 void Create(JNIEnv* env,
52 const JavaParamRef<jclass>& j_caller,
53 const JavaParamRef<jobject>& j_tab) {
54 InfoBarService* service = InfoBarService::FromWebContents(
55 TabAndroid::GetNativeTab(env, j_tab)->web_contents());
56
57 service->AddInfoBar(base::MakeUnique<ReaderModeInfoBar>(
58 base::MakeUnique<ReaderModeInfoBarDelegate>()));
59 }
60
61 bool RegisterReaderModeInfoBar(JNIEnv* env) {
62 return RegisterNativesImpl(env);
63 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/android/infobars/reader_mode_infobar.h ('k') | components/infobars/core/infobar_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698