• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2013 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.inputmethod.keyboard.emoji;
18 
19 import android.content.Context;
20 import android.content.res.Resources;
21 import androidx.viewpager.widget.ViewPager;
22 import android.view.View;
23 import android.widget.LinearLayout;
24 
25 import com.android.inputmethod.latin.R;
26 import com.android.inputmethod.latin.utils.ResourceUtils;
27 
28 final class EmojiLayoutParams {
29     private static final int DEFAULT_KEYBOARD_ROWS = 4;
30 
31     public final int mEmojiPagerHeight;
32     private final int mEmojiPagerBottomMargin;
33     public final int mEmojiKeyboardHeight;
34     private final int mEmojiCategoryPageIdViewHeight;
35     public final int mEmojiActionBarHeight;
36     public final int mKeyVerticalGap;
37     private final int mKeyHorizontalGap;
38     private final int mBottomPadding;
39     private final int mTopPadding;
40 
EmojiLayoutParams(final Context context)41     public EmojiLayoutParams(final Context context) {
42         final Resources res = context.getResources();
43         final int defaultKeyboardHeight = ResourceUtils.getDefaultKeyboardHeight(res);
44         final int defaultKeyboardWidth = ResourceUtils.getDefaultKeyboardWidth(context);
45         mKeyVerticalGap = (int) res.getFraction(R.fraction.config_key_vertical_gap_holo,
46                 defaultKeyboardHeight, defaultKeyboardHeight);
47         mBottomPadding = (int) res.getFraction(R.fraction.config_keyboard_bottom_padding_holo,
48                 defaultKeyboardHeight, defaultKeyboardHeight);
49         mTopPadding = (int) res.getFraction(R.fraction.config_keyboard_top_padding_holo,
50                 defaultKeyboardHeight, defaultKeyboardHeight);
51         mKeyHorizontalGap = (int) (res.getFraction(R.fraction.config_key_horizontal_gap_holo,
52                 defaultKeyboardWidth, defaultKeyboardWidth));
53         mEmojiCategoryPageIdViewHeight =
54                 (int) (res.getDimension(R.dimen.config_emoji_category_page_id_height));
55         final int baseheight = defaultKeyboardHeight - mBottomPadding - mTopPadding
56                 + mKeyVerticalGap;
57         mEmojiActionBarHeight = baseheight / DEFAULT_KEYBOARD_ROWS
58                 - (mKeyVerticalGap - mBottomPadding) / 2;
59         mEmojiPagerHeight = defaultKeyboardHeight - mEmojiActionBarHeight
60                 - mEmojiCategoryPageIdViewHeight;
61         mEmojiPagerBottomMargin = 0;
62         mEmojiKeyboardHeight = mEmojiPagerHeight - mEmojiPagerBottomMargin - 1;
63     }
64 
setPagerProperties(final ViewPager vp)65     public void setPagerProperties(final ViewPager vp) {
66         final LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) vp.getLayoutParams();
67         lp.height = mEmojiKeyboardHeight;
68         lp.bottomMargin = mEmojiPagerBottomMargin;
69         vp.setLayoutParams(lp);
70     }
71 
setCategoryPageIdViewProperties(final View v)72     public void setCategoryPageIdViewProperties(final View v) {
73         final LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) v.getLayoutParams();
74         lp.height = mEmojiCategoryPageIdViewHeight;
75         v.setLayoutParams(lp);
76     }
77 
getActionBarHeight()78     public int getActionBarHeight() {
79         return mEmojiActionBarHeight - mBottomPadding;
80     }
81 
setActionBarProperties(final LinearLayout ll)82     public void setActionBarProperties(final LinearLayout ll) {
83         final LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) ll.getLayoutParams();
84         lp.height = getActionBarHeight();
85         ll.setLayoutParams(lp);
86     }
87 
setKeyProperties(final View v)88     public void setKeyProperties(final View v) {
89         final LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) v.getLayoutParams();
90         lp.leftMargin = mKeyHorizontalGap / 2;
91         lp.rightMargin = mKeyHorizontalGap / 2;
92         v.setLayoutParams(lp);
93     }
94 }
95