Files
Lawnchair/src/com/android/launcher3/logging/KeyboardStateManager.java
T
Anushree Ganjam 5730f03c9f Introduce Default Ime height.
Assume IME_DEFAULT_HEIGHT_DP = 300.
When ime is yet to be shown but the UI is ready, then use
IME_DEFAULT_HEIGHT_DP.

For the 2nd time onwards save the actual ime height and use it when the
keyboard is not shown yet.

Bug: 285166099
Test: Manual
Change-Id: I33e38cbd5c2910f4a6dc4cc83c8dc4b6d94fbcff
2023-07-12 17:21:40 +00:00

93 lines
2.5 KiB
Java

/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.launcher3.logging;
import static com.android.launcher3.logging.KeyboardStateManager.KeyboardState.NO_IME_ACTION;
import android.os.SystemClock;
/**
* Class to maintain keyboard states.
*/
public class KeyboardStateManager {
private long mUpdatedTime;
private int mImeHeightPx;
// Height of the keyboard when it's shown.
// mImeShownHeightPx>=mImeHeightPx always.
private int mImeShownHeightPx;
public enum KeyboardState {
NO_IME_ACTION,
SHOW,
HIDE,
}
private KeyboardState mKeyboardState;
public KeyboardStateManager(int defaultImeShownHeightPx) {
mKeyboardState = NO_IME_ACTION;
mImeShownHeightPx = defaultImeShownHeightPx;
}
/**
* Returns time when keyboard state was updated.
*/
public long getLastUpdatedTime() {
return mUpdatedTime;
}
/**
* Returns current keyboard state.
*/
public KeyboardState getKeyboardState() {
return mKeyboardState;
}
/**
* Setter method to set keyboard state.
*/
public void setKeyboardState(KeyboardState keyboardState) {
mUpdatedTime = SystemClock.elapsedRealtime();
mKeyboardState = keyboardState;
}
/**
* Returns keyboard's current height.
*/
public int getImeHeight() {
return mImeHeightPx;
}
/**
* Returns keyboard's height in pixels when shown.
*/
public int getImeShownHeight() {
return mImeShownHeightPx;
}
/**
* Setter method to set keyboard height in pixels.
*/
public void setImeHeight(int imeHeightPx) {
mImeHeightPx = imeHeightPx;
if (mImeHeightPx > 0) {
// Update the mImeShownHeightPx with the actual ime height when shown and store it
// for future sessions.
mImeShownHeightPx = mImeHeightPx;
}
}
}