Commit e02cad3a authored by Mei Liang's avatar Mei Liang Committed by Commit Bot

[DragToMergeIphItem] Update incognito style

This CL updates the DragToMerge IPH item to use the dark mode color
palette in incognito GTS.

Change-Id: Ic7daf73870238385a3a4dde9a1e2da6e36a2e761
Bug: 997879
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1772062Reviewed-by: default avatarYue Zhang <yuezhanggg@chromium.org>
Reviewed-by: default avatarWei-Yin Chen (陳威尹) <wychen@chromium.org>
Commit-Queue: Mei Liang <meiliang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#695357}
parent f42fbabd
......@@ -70,10 +70,14 @@ class TabGridIphItemMediator implements TabSwitcherMediator.IphProvider {
}
@Override
public void maybeShowIPH() {
public void maybeShowIPH(boolean isIncognito) {
final Tracker tracker = TrackerFactory.getTrackerForProfile(
Profile.getLastUsedProfile().getOriginalProfile());
mModel.set(TabGridIphItemProperties.IS_IPH_ENTRANCE_VISIBLE,
tracker.wouldTriggerHelpUI(FeatureConstants.TAB_GROUPS_DRAG_AND_DROP_FEATURE));
boolean isVisible =
tracker.wouldTriggerHelpUI(FeatureConstants.TAB_GROUPS_DRAG_AND_DROP_FEATURE);
if (isVisible) mModel.set(TabGridIphItemProperties.IS_INCOGNITO, isIncognito);
mModel.set(TabGridIphItemProperties.IS_IPH_ENTRANCE_VISIBLE, isVisible);
}
}
......@@ -27,8 +27,10 @@ class TabGridIphItemProperties {
new PropertyModel.WritableBooleanPropertyKey();
public static final PropertyModel.WritableBooleanPropertyKey IS_IPH_ENTRANCE_VISIBLE =
new PropertyModel.WritableBooleanPropertyKey();
public static final PropertyKey[] ALL_KEYS =
new PropertyKey[] {IPH_ENTRANCE_CLOSE_BUTTON_LISTENER,
IPH_ENTRANCE_SHOW_BUTTON_LISTENER, IPH_DIALOG_CLOSE_BUTTON_LISTENER,
IPH_SCRIM_VIEW_OBSERVER, IS_IPH_DIALOG_VISIBLE, IS_IPH_ENTRANCE_VISIBLE};
public static final PropertyModel.WritableBooleanPropertyKey IS_INCOGNITO =
new PropertyModel.WritableBooleanPropertyKey();
public static final PropertyKey[] ALL_KEYS = new PropertyKey[] {
IPH_ENTRANCE_CLOSE_BUTTON_LISTENER, IPH_ENTRANCE_SHOW_BUTTON_LISTENER,
IPH_DIALOG_CLOSE_BUTTON_LISTENER, IPH_SCRIM_VIEW_OBSERVER, IS_IPH_DIALOG_VISIBLE,
IS_IPH_ENTRANCE_VISIBLE, IS_INCOGNITO};
}
......@@ -9,9 +9,11 @@ import android.graphics.Bitmap;
import android.graphics.drawable.Animatable;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Handler;
import android.support.graphics.drawable.Animatable2Compat;
import android.support.graphics.drawable.AnimatedVectorDrawableCompat;
import android.support.v4.view.ViewCompat;
import android.support.v7.content.res.AppCompatResources;
import android.util.AttributeSet;
import android.view.Gravity;
......@@ -23,6 +25,7 @@ import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.TextView;
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.chrome.browser.widget.ScrimView;
import org.chromium.chrome.tab_ui.R;
import org.chromium.ui.widget.ChromeImageView;
......@@ -34,6 +37,7 @@ public class TabGridIphItemView extends FrameLayout {
private View mIphDialogView;
private TextView mShowIPHDialogButton;
private TextView mCloseIPHDialogButton;
private TextView mIphIntroduction;
private ChromeImageView mCloseIPHEntranceButton;
private ScrimView mScrimView;
private ScrimView.ScrimParams mScrimParams;
......@@ -56,6 +60,7 @@ public class TabGridIphItemView extends FrameLayout {
.inflate(R.layout.iph_drag_and_drop_dialog_layout, backgroundView, false);
mShowIPHDialogButton = findViewById(R.id.show_me_button);
mCloseIPHEntranceButton = findViewById(R.id.close_iph_button);
mIphIntroduction = findViewById(R.id.iph_description);
Drawable closeButtonDrawable = getScaledCloseImageDrawable();
mCloseIPHEntranceButton.setImageDrawable(closeButtonDrawable);
mCloseIPHDialogButton =
......@@ -144,4 +149,29 @@ public class TabGridIphItemView extends FrameLayout {
return new BitmapDrawable(
getResources(), Bitmap.createScaledBitmap(closeBitmap, size, size, true));
}
/**
* Updates color for inner views based on incognito mode.
* @param isIncognito Whether the color is updated for incognito mode.
*/
void updateColor(boolean isIncognito) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
setBackground(
TabUiColorProvider.getCardViewBackgroundDrawable(getContext(), isIncognito));
} else {
ViewCompat.setBackgroundTintList(
this, TabUiColorProvider.getCardViewTintList(getContext(), isIncognito));
}
mShowIPHDialogButton.setTextAppearance(mShowIPHDialogButton.getContext(),
isIncognito ? R.style.TextAppearance_BlueTitle2Incognito
: R.style.TextAppearance_BlueTitle2);
mIphIntroduction.setTextAppearance(mIphIntroduction.getContext(),
isIncognito ? R.style.TextAppearance_WhiteBody
: R.style.TextAppearance_BlackBodyDefault);
ApiCompatibilityUtils.setImageTintList(mCloseIPHEntranceButton,
TabUiColorProvider.getActionButtonTintList(
mCloseIPHEntranceButton.getContext(), isIncognito));
}
}
......@@ -8,6 +8,7 @@ import static org.chromium.chrome.browser.tasks.tab_management.TabGridIphItemPro
import static org.chromium.chrome.browser.tasks.tab_management.TabGridIphItemProperties.IPH_ENTRANCE_CLOSE_BUTTON_LISTENER;
import static org.chromium.chrome.browser.tasks.tab_management.TabGridIphItemProperties.IPH_ENTRANCE_SHOW_BUTTON_LISTENER;
import static org.chromium.chrome.browser.tasks.tab_management.TabGridIphItemProperties.IPH_SCRIM_VIEW_OBSERVER;
import static org.chromium.chrome.browser.tasks.tab_management.TabGridIphItemProperties.IS_INCOGNITO;
import static org.chromium.chrome.browser.tasks.tab_management.TabGridIphItemProperties.IS_IPH_DIALOG_VISIBLE;
import static org.chromium.chrome.browser.tasks.tab_management.TabGridIphItemProperties.IS_IPH_ENTRANCE_VISIBLE;
......@@ -52,6 +53,9 @@ class TabGridIphItemViewBinder {
} else {
viewHolder.contentView.removeRecyclerViewFooter();
}
} else if (IS_INCOGNITO == propertyKey) {
boolean isIncognito = model.get(TabGridIphItemProperties.IS_INCOGNITO);
viewHolder.iphItemView.updateColor(isIncognito);
}
}
}
......@@ -147,7 +147,13 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
/**
* An interface to control whether to show IPH on grid tab switcher.
*/
public interface IphProvider { void maybeShowIPH(); }
public interface IphProvider {
/**
* Shows IPH on grid tab switcher based on incognito mode.
* @param isIncognito Whether IPH is shown for incognito mode.
*/
void maybeShowIPH(boolean isIncognito);
}
/**
* Basic constructor for the Mediator.
......@@ -184,6 +190,9 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
if (mTabGridDialogResetHandler != null) {
mTabGridDialogResetHandler.hideDialog(false);
}
if (mIphProvider != null) {
mIphProvider.maybeShowIPH(mTabModelSelector.isIncognitoSelected());
}
}
};
mTabModelSelector.addObserver(mTabModelSelectorObserver);
......@@ -431,7 +440,7 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
mTabIdwhenShown = mTabModelSelector.getCurrentTabId();
mContainerViewModel.set(ANIMATE_VISIBILITY_CHANGES, true);
if (mIphProvider != null) {
mIphProvider.maybeShowIPH();
mIphProvider.maybeShowIPH(mTabModelSelector.isIncognitoSelected());
}
recordTabCounts();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment