OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.infobar; | 5 package org.chromium.chrome.browser.infobar; |
6 | 6 |
7 import android.util.TypedValue; | 7 import android.util.TypedValue; |
8 import android.view.Gravity; | 8 import android.view.Gravity; |
9 import android.view.View; | 9 import android.view.View; |
10 import android.widget.TextView; | 10 import android.widget.TextView; |
11 | 11 |
12 import org.chromium.base.ApiCompatibilityUtils; | 12 import org.chromium.base.ApiCompatibilityUtils; |
13 import org.chromium.base.annotations.CalledByNative; | 13 import org.chromium.base.annotations.CalledByNative; |
14 import org.chromium.chrome.R; | 14 import org.chromium.chrome.R; |
| 15 import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel; |
| 16 import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChange
Reason; |
15 import org.chromium.chrome.browser.dom_distiller.ReaderModeManager; | 17 import org.chromium.chrome.browser.dom_distiller.ReaderModeManager; |
16 import org.chromium.chrome.browser.tab.Tab; | 18 import org.chromium.chrome.browser.tab.Tab; |
17 | 19 |
18 /** | 20 /** |
19 * This is the InfoBar implementation of the Reader Mode UI. This is used in pla
ce of the | 21 * This is the InfoBar implementation of the Reader Mode UI. This is used in pla
ce of the |
20 * {@link OverlayPanel} implementation when Chrome Home is enabled. | 22 * {@link OverlayPanel} implementation when Chrome Home is enabled. |
21 */ | 23 */ |
22 public class ReaderModeInfoBar extends InfoBar { | 24 public class ReaderModeInfoBar extends InfoBar { |
23 /** A handle to the {@link ReaderModeManager} to trigger page navigations. *
/ | 25 /** A handle to the {@link ReaderModeManager} to trigger page navigations. *
/ |
24 private static ReaderModeManager sManager; | 26 private static ReaderModeManager sManager; |
(...skipping 17 matching lines...) Expand all Loading... |
42 prompt.setSingleLine(); | 44 prompt.setSingleLine(); |
43 prompt.setTextSize(TypedValue.COMPLEX_UNIT_PX, | 45 prompt.setTextSize(TypedValue.COMPLEX_UNIT_PX, |
44 getContext().getResources().getDimension(R.dimen.infobar_text_si
ze)); | 46 getContext().getResources().getDimension(R.dimen.infobar_text_si
ze)); |
45 prompt.setTextColor( | 47 prompt.setTextColor( |
46 ApiCompatibilityUtils.getColor(layout.getResources(), R.color.de
fault_text_color)); | 48 ApiCompatibilityUtils.getColor(layout.getResources(), R.color.de
fault_text_color)); |
47 prompt.setGravity(Gravity.CENTER_VERTICAL); | 49 prompt.setGravity(Gravity.CENTER_VERTICAL); |
48 | 50 |
49 prompt.setOnClickListener(new View.OnClickListener() { | 51 prompt.setOnClickListener(new View.OnClickListener() { |
50 @Override | 52 @Override |
51 public void onClick(View v) { | 53 public void onClick(View v) { |
52 // TODO(mdjones): Trigger navigation from manager. | 54 sManager.navigateToReaderMode(); |
53 } | 55 } |
54 }); | 56 }); |
55 | 57 |
56 layout.addContent(prompt, 1f); | 58 layout.addContent(prompt, 1f); |
57 } | 59 } |
58 | 60 |
| 61 @Override |
59 public void onCloseButtonClicked() { | 62 public void onCloseButtonClicked() { |
60 super.onCloseButtonClicked(); | 63 super.onCloseButtonClicked(); |
61 | 64 sManager.onClosed(StateChangeReason.CLOSE_BUTTON); |
62 // TODO(mdjones): Notifiy the manager that the infobar was closed. | |
63 } | 65 } |
64 | 66 |
65 /** | 67 /** |
66 * Create and show the Reader Mode {@link InfoBar}. | 68 * Create and show the Reader Mode {@link InfoBar}. |
67 * @param tab The tab that the {@link InfoBar} should be shown in. | 69 * @param tab The tab that the {@link InfoBar} should be shown in. |
68 * @param manager The {@link ReaderModeManager} for this instance of Chrome. | 70 * @param manager The {@link ReaderModeManager} for this instance of Chrome. |
69 */ | 71 */ |
70 public static void showReaderModeInfoBar(Tab tab, ReaderModeManager manager)
{ | 72 public static void showReaderModeInfoBar(Tab tab, ReaderModeManager manager)
{ |
71 sManager = manager; | 73 sManager = manager; |
72 nativeCreate(tab); | 74 nativeCreate(tab); |
73 } | 75 } |
74 | 76 |
75 /** | 77 /** |
76 * @return An instance of the {@link ReaderModeInfoBar}. | 78 * @return An instance of the {@link ReaderModeInfoBar}. |
77 */ | 79 */ |
78 @CalledByNative | 80 @CalledByNative |
79 private static ReaderModeInfoBar create() { | 81 private static ReaderModeInfoBar create() { |
80 return new ReaderModeInfoBar(); | 82 return new ReaderModeInfoBar(); |
81 } | 83 } |
82 | 84 |
83 private static native void nativeCreate(Tab tab); | 85 private static native void nativeCreate(Tab tab); |
84 } | 86 } |
OLD | NEW |