1
0
Fork 0

fixed the automatic height adjustment

This commit is contained in:
sspanak 2025-02-25 17:48:36 +02:00 committed by Dimo Karaivanov
parent c2e2971395
commit aef4ca0139

View file

@ -104,21 +104,26 @@ class MainLayoutNumpad extends BaseMainLayout {
/** /**
* Uses the key height from the settings, but if it takes up too much of the screen, it will * Uses the key height from the settings, but if the keyboard takes up too much screen space, it
* be adjusted so that the entire Main View would take up around 50% of the screen in landscape mode * will be adjusted limited to 60% of the screen height in landscape mode and 75% in portrait mode.
* and 75% in portrait mode. Returns the adjusted height of a single key. * This prevents Android from auto-closing the keyboard in some apps that have a lot of content.
* Returns the adjusted height of a single key.
*/ */
private int calculateKeyHeight() { private int calculateKeyHeight() {
int keyHeight = tt9.getSettings().getNumpadKeyHeight(); int keyHeight = tt9.getSettings().getNumpadKeyHeight();
int screenHeight = DeviceInfo.getScreenHeight(tt9.getApplicationContext());
boolean isLandscape = DeviceInfo.isLandscapeOrientation(tt9.getApplicationContext()); boolean isLandscape = DeviceInfo.isLandscapeOrientation(tt9.getApplicationContext());
double maxScreenHeight = isLandscape ? screenHeight * 0.75 : screenHeight * 0.8;
double maxKeyHeight = isLandscape ? screenHeight * 0.115 : screenHeight * 0.125;
// it's all very approximate but when it comes to screen dimensions, int bottomPadding = 0;
// accuracy is not that important if (DeviceInfo.AT_LEAST_ANDROID_15) {
return keyHeight * 5 > maxScreenHeight ? (int) Math.round(maxKeyHeight) : keyHeight; bottomPadding = isLandscape ? e2ePaddingBottomLandscape : e2ePaddingBottomPortrait;
bottomPadding = bottomPadding < 0 ? DeviceInfo.getNavigationBarHeight(tt9.getApplicationContext(), isLandscape) : bottomPadding;
}
int screenHeight = DeviceInfo.getScreenHeight(tt9.getApplicationContext()) - bottomPadding;
double maxScreenHeight = isLandscape ? screenHeight * 0.6 : screenHeight * 0.75;
int maxKeyHeight = (int) Math.round(maxScreenHeight / 5);
return Math.min(keyHeight, maxKeyHeight);
} }