OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 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.compositor.bottombar.contextualsearch; | 5 package org.chromium.chrome.browser.compositor.bottombar.contextualsearch; |
6 | 6 |
7 import android.content.Context; | 7 import android.content.Context; |
8 import android.text.method.LinkMovementMethod; | 8 import android.text.method.LinkMovementMethod; |
9 import android.text.style.ClickableSpan; | |
10 import android.util.AttributeSet; | 9 import android.util.AttributeSet; |
11 import android.view.View; | 10 import android.view.View; |
12 import android.widget.Button; | 11 import android.widget.Button; |
13 import android.widget.RelativeLayout; | 12 import android.widget.RelativeLayout; |
14 import android.widget.TextView; | 13 import android.widget.TextView; |
15 | 14 |
16 import org.chromium.chrome.R; | 15 import org.chromium.chrome.R; |
17 import org.chromium.ui.resources.dynamics.ViewResourceAdapter; | 16 import org.chromium.ui.resources.dynamics.ViewResourceAdapter; |
| 17 import org.chromium.ui.text.NoUnderlineClickableSpan; |
18 import org.chromium.ui.text.SpanApplier; | 18 import org.chromium.ui.text.SpanApplier; |
19 import org.chromium.ui.text.SpanApplier.SpanInfo; | 19 import org.chromium.ui.text.SpanApplier.SpanInfo; |
20 | 20 |
21 /** | 21 /** |
22 */ | 22 */ |
23 public class ContextualSearchOptOutPromo extends RelativeLayout { | 23 public class ContextualSearchOptOutPromo extends RelativeLayout { |
24 /** | 24 /** |
25 * The {@link ViewResourceAdapter} instance. | 25 * The {@link ViewResourceAdapter} instance. |
26 */ | 26 */ |
27 private ViewResourceAdapter mResourceAdapter; | 27 private ViewResourceAdapter mResourceAdapter; |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 @Override | 78 @Override |
79 public void onFinishInflate() { | 79 public void onFinishInflate() { |
80 super.onFinishInflate(); | 80 super.onFinishInflate(); |
81 | 81 |
82 mResourceAdapter = | 82 mResourceAdapter = |
83 new ViewResourceAdapter(findViewById(R.id.contextual_search_opt_
out_promo)); | 83 new ViewResourceAdapter(findViewById(R.id.contextual_search_opt_
out_promo)); |
84 | 84 |
85 // Fill in text with link to Settings. | 85 // Fill in text with link to Settings. |
86 TextView optOutText = (TextView) findViewById(R.id.contextual_search_opt
_out_text); | 86 TextView optOutText = (TextView) findViewById(R.id.contextual_search_opt
_out_text); |
87 | 87 |
88 ClickableSpan settingsLink = new ClickableSpan() { | 88 NoUnderlineClickableSpan settingsLink = new NoUnderlineClickableSpan() { |
89 @Override | 89 @Override |
90 public void onClick(View view) { | 90 public void onClick(View view) { |
91 mHost.onPromoPreferenceClick(); | 91 mHost.onPromoPreferenceClick(); |
92 } | 92 } |
93 | |
94 // Disable underline on the link text. | |
95 @Override | |
96 public void updateDrawState(android.text.TextPaint textPaint) { | |
97 super.updateDrawState(textPaint); | |
98 textPaint.setUnderlineText(false); | |
99 } | |
100 }; | 93 }; |
101 | 94 |
102 optOutText.setText(SpanApplier.applySpans( | 95 optOutText.setText(SpanApplier.applySpans( |
103 getResources().getString(R.string.contextual_search_short_descri
ption), | 96 getResources().getString(R.string.contextual_search_short_descri
ption), |
104 new SpanInfo("<link>", "</link>", settingsLink))); | 97 new SpanInfo("<link>", "</link>", settingsLink))); |
105 optOutText.setMovementMethod(LinkMovementMethod.getInstance()); | 98 optOutText.setMovementMethod(LinkMovementMethod.getInstance()); |
106 | 99 |
107 // "No thanks" button. | 100 // "No thanks" button. |
108 Button noThanksButton = (Button) findViewById(R.id.contextual_search_no_
thanks_button); | 101 Button noThanksButton = (Button) findViewById(R.id.contextual_search_no_
thanks_button); |
109 noThanksButton.setOnClickListener(new View.OnClickListener() { | 102 noThanksButton.setOnClickListener(new View.OnClickListener() { |
(...skipping 25 matching lines...) Expand all Loading... |
135 // The Promo will be as wide as possible (same width as the Panel). | 128 // The Promo will be as wide as possible (same width as the Panel). |
136 int widthMeasureSpec = MeasureSpec.makeMeasureSpec(width, MeasureSpec.EX
ACTLY); | 129 int widthMeasureSpec = MeasureSpec.makeMeasureSpec(width, MeasureSpec.EX
ACTLY); |
137 // But the height will depend on how big is the Promo text. | 130 // But the height will depend on how big is the Promo text. |
138 int heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPE
CIFIED); | 131 int heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPE
CIFIED); |
139 // Calculates the height. | 132 // Calculates the height. |
140 measure(widthMeasureSpec, heightMeasureSpec); | 133 measure(widthMeasureSpec, heightMeasureSpec); |
141 | 134 |
142 return getMeasuredHeight(); | 135 return getMeasuredHeight(); |
143 } | 136 } |
144 } | 137 } |
OLD | NEW |