1 /* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License 15 */ 16 17 package com.android.systemui.statusbar; 18 19 import android.content.Context; 20 import android.util.AttributeSet; 21 import android.view.View; 22 import android.widget.ImageView; 23 import android.widget.RelativeLayout; 24 import android.widget.TextView; 25 26 import com.android.systemui.res.R; 27 28 /** 29 * Layout used for displaying keyboard shortcut items inside an alert dialog. 30 * The layout sets the maxWidth of shortcuts keyword textview to 70% of available space. 31 */ 32 public class KeyboardShortcutAppItemLayout extends RelativeLayout { 33 34 private static final double MAX_WIDTH_PERCENT_FOR_KEYWORDS = 0.70; 35 KeyboardShortcutAppItemLayout(Context context)36 public KeyboardShortcutAppItemLayout(Context context) { 37 super(context); 38 } 39 KeyboardShortcutAppItemLayout(Context context, AttributeSet attrs)40 public KeyboardShortcutAppItemLayout(Context context, AttributeSet attrs) { 41 super(context, attrs); 42 } 43 44 @Override onMeasure(int widthMeasureSpec, int heightMeasureSpec)45 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 46 if (MeasureSpec.getMode(widthMeasureSpec) == MeasureSpec.EXACTLY) { 47 ImageView shortcutIcon = findViewById(R.id.keyboard_shortcuts_icon); 48 TextView shortcutKeyword = findViewById(R.id.keyboard_shortcuts_keyword); 49 int totalMeasuredWidth = MeasureSpec.getSize(widthMeasureSpec); 50 int totalPadding = getPaddingLeft() + getPaddingRight(); 51 int availableWidth = totalMeasuredWidth - totalPadding; 52 if (shortcutIcon.getVisibility() == View.VISIBLE) { 53 availableWidth = availableWidth - shortcutIcon.getMeasuredWidth(); 54 } 55 shortcutKeyword.setMaxWidth((int) 56 Math.round(availableWidth * MAX_WIDTH_PERCENT_FOR_KEYWORDS)); 57 } 58 super.onMeasure(widthMeasureSpec, heightMeasureSpec); 59 } 60 } 61