1 // Copyright 2020 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 package org.chromium.chrome.browser.toolbar.menu_button; 6 7 import android.view.View; 8 9 import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonProperties.ShowBadgeProperty; 10 import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonProperties.ThemeProperty; 11 import org.chromium.ui.modelutil.PropertyKey; 12 import org.chromium.ui.modelutil.PropertyModel; 13 import org.chromium.ui.modelutil.PropertyModelChangeProcessor.ViewBinder; 14 15 class MenuButtonViewBinder implements ViewBinder<PropertyModel, MenuButton, PropertyKey> { 16 @Override bind(PropertyModel model, MenuButton view, PropertyKey propertyKey)17 public void bind(PropertyModel model, MenuButton view, PropertyKey propertyKey) { 18 if (propertyKey == MenuButtonProperties.ALPHA) { 19 view.setAlpha(model.get(MenuButtonProperties.ALPHA)); 20 } else if (propertyKey == MenuButtonProperties.APP_MENU_BUTTON_HELPER) { 21 view.setAppMenuButtonHelper(model.get(MenuButtonProperties.APP_MENU_BUTTON_HELPER)); 22 } else if (propertyKey == MenuButtonProperties.CONTENT_DESCRIPTION) { 23 view.updateContentDescription(model.get(MenuButtonProperties.CONTENT_DESCRIPTION)); 24 } else if (propertyKey == MenuButtonProperties.IS_CLICKABLE) { 25 view.setClickable(model.get(MenuButtonProperties.IS_CLICKABLE)); 26 } else if (propertyKey == MenuButtonProperties.IS_HIGHLIGHTING) { 27 view.setMenuButtonHighlight(model.get(MenuButtonProperties.IS_HIGHLIGHTING)); 28 } else if (propertyKey == MenuButtonProperties.IS_VISIBLE) { 29 view.setVisibility( 30 model.get(MenuButtonProperties.IS_VISIBLE) ? View.VISIBLE : View.GONE); 31 } else if (propertyKey == MenuButtonProperties.SHOW_UPDATE_BADGE) { 32 ShowBadgeProperty showBadgeProperty = model.get(MenuButtonProperties.SHOW_UPDATE_BADGE); 33 if (showBadgeProperty.mShowUpdateBadge) { 34 view.showAppMenuUpdateBadge(showBadgeProperty.mShouldAnimate); 35 } else { 36 view.removeAppMenuUpdateBadge(showBadgeProperty.mShouldAnimate); 37 } 38 } else if (propertyKey == MenuButtonProperties.THEME) { 39 ThemeProperty themeProperty = model.get(MenuButtonProperties.THEME); 40 view.onTintChanged(themeProperty.mColorStateList, themeProperty.mUseLightColors); 41 } else if (propertyKey == MenuButtonProperties.TRANSLATION_X) { 42 view.setTranslationX(model.get(MenuButtonProperties.TRANSLATION_X)); 43 } 44 } 45 } 46