Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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.content.Context; | 7 import android.content.Context; |
| 8 import android.content.res.Resources; | 8 import android.content.res.Resources; |
| 9 import android.content.res.TypedArray; | 9 import android.content.res.TypedArray; |
| 10 import android.graphics.Bitmap; | 10 import android.graphics.Bitmap; |
| 11 import android.graphics.drawable.Drawable; | 11 import android.graphics.drawable.Drawable; |
| 12 import android.os.Build; | |
| 12 import android.support.annotation.Nullable; | 13 import android.support.annotation.Nullable; |
| 13 import android.text.SpannableString; | 14 import android.text.SpannableString; |
| 14 import android.text.SpannableStringBuilder; | 15 import android.text.SpannableStringBuilder; |
| 15 import android.text.Spanned; | 16 import android.text.Spanned; |
| 16 import android.text.TextUtils; | 17 import android.text.TextUtils; |
| 17 import android.util.TypedValue; | 18 import android.util.TypedValue; |
| 19 import android.view.PointerIcon; | |
| 18 import android.view.View; | 20 import android.view.View; |
| 19 import android.view.ViewGroup; | 21 import android.view.ViewGroup; |
| 20 import android.widget.Button; | 22 import android.widget.Button; |
| 21 import android.widget.ImageButton; | 23 import android.widget.ImageButton; |
| 22 import android.widget.ImageView; | 24 import android.widget.ImageView; |
| 23 import android.widget.TextView; | 25 import android.widget.TextView; |
| 24 | 26 |
| 25 import org.chromium.base.ApiCompatibilityUtils; | 27 import org.chromium.base.ApiCompatibilityUtils; |
| 26 import org.chromium.chrome.R; | 28 import org.chromium.chrome.R; |
| 27 import org.chromium.chrome.browser.widget.DualControlLayout; | 29 import org.chromium.chrome.browser.widget.DualControlLayout; |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 237 Button primaryButton = DualControlLayout.createButtonForLayout( | 239 Button primaryButton = DualControlLayout.createButtonForLayout( |
| 238 getContext(), true, primaryText, this); | 240 getContext(), true, primaryText, this); |
| 239 | 241 |
| 240 assert mButtonRowLayout == null; | 242 assert mButtonRowLayout == null; |
| 241 mButtonRowLayout = new DualControlLayout(getContext(), null); | 243 mButtonRowLayout = new DualControlLayout(getContext(), null); |
| 242 mButtonRowLayout.setAlignment(alignment); | 244 mButtonRowLayout.setAlignment(alignment); |
| 243 mButtonRowLayout.setStackedMargin(getResources().getDimensionPixelSize( | 245 mButtonRowLayout.setStackedMargin(getResources().getDimensionPixelSize( |
| 244 R.dimen.infobar_margin_between_stacked_buttons)); | 246 R.dimen.infobar_margin_between_stacked_buttons)); |
| 245 | 247 |
| 246 mButtonRowLayout.addView(primaryButton); | 248 mButtonRowLayout.addView(primaryButton); |
| 247 if (secondaryView != null) mButtonRowLayout.addView(secondaryView); | 249 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { |
|
Jinsuk Kim
2017/07/17 04:45:18
Version check is repeated more often than necessar
jaebaek
2017/07/18 07:48:21
This is for PointerIcon.TYPE_HAND, but I will
move
| |
| 250 setPointerIcon(primaryButton, PointerIcon.TYPE_HAND); | |
| 251 } | |
| 252 if (secondaryView != null) { | |
| 253 mButtonRowLayout.addView(secondaryView); | |
| 254 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { | |
| 255 setPointerIcon(secondaryView, PointerIcon.TYPE_HAND); | |
| 256 } | |
| 257 } | |
| 248 } | 258 } |
| 249 | 259 |
| 250 /** | 260 /** |
| 251 * Adjusts styling to account for the big icon layout. | 261 * Adjusts styling to account for the big icon layout. |
| 252 */ | 262 */ |
| 253 public void setIsUsingBigIcon() { | 263 public void setIsUsingBigIcon() { |
| 254 if (mIconView == null) return; | 264 if (mIconView == null) return; |
| 255 | 265 |
| 256 LayoutParams lp = (LayoutParams) mIconView.getLayoutParams(); | 266 LayoutParams lp = (LayoutParams) mIconView.getLayoutParams(); |
| 257 lp.width = mBigIconSize; | 267 lp.width = mBigIconSize; |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 543 Drawable closeButtonBackground = a.getDrawable(0); | 553 Drawable closeButtonBackground = a.getDrawable(0); |
| 544 a.recycle(); | 554 a.recycle(); |
| 545 | 555 |
| 546 ImageButton closeButton = new ImageButton(context); | 556 ImageButton closeButton = new ImageButton(context); |
| 547 closeButton.setId(R.id.infobar_close_button); | 557 closeButton.setId(R.id.infobar_close_button); |
| 548 closeButton.setImageResource(R.drawable.btn_close); | 558 closeButton.setImageResource(R.drawable.btn_close); |
| 549 closeButton.setBackground(closeButtonBackground); | 559 closeButton.setBackground(closeButtonBackground); |
| 550 closeButton.setContentDescription(context.getString(R.string.infobar_clo se)); | 560 closeButton.setContentDescription(context.getString(R.string.infobar_clo se)); |
| 551 closeButton.setScaleType(ImageView.ScaleType.CENTER_INSIDE); | 561 closeButton.setScaleType(ImageView.ScaleType.CENTER_INSIDE); |
| 552 | 562 |
| 563 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { | |
| 564 setPointerIcon(closeButton, PointerIcon.TYPE_HAND); | |
| 565 } | |
| 566 | |
| 553 return closeButton; | 567 return closeButton; |
| 554 } | 568 } |
| 569 | |
| 570 private static void setPointerIcon(View view, int type) { | |
| 571 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { | |
| 572 PointerIcon icon = PointerIcon.getSystemIcon(view.getContext(), type ); | |
| 573 view.setPointerIcon(icon); | |
| 574 } | |
| 575 } | |
| 555 } | 576 } |
| OLD | NEW |