mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-20 03:08:19 +00:00
While the recents task list is frozen, launcher will continue to listen for touch regions in all orientations of apps it has seen while frozen. Ex. Start w/ portrait app, then quick switch to 90-deg landscape app, touches in the navbars of both those orientations will be treated as valid. Once the task list unfreezes, only the orientation that is currently displayed will have a valid navbar touch region fixes: 140116135 Test: tested manually in all 4 orientations with quickswitch, swipe to recents and swipe to home Attempted to write unit tests, but only basic ones since there are some limitations on the MotionEvent API for mocking Change-Id: I8d3751571a939497b44e0dd249a0248299ba5ceb
58 lines
2.1 KiB
Java
58 lines
2.1 KiB
Java
/*
|
|
* Copyright (C) 2019 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;
|
|
|
|
import android.content.res.Resources;
|
|
import android.util.DisplayMetrics;
|
|
import android.util.TypedValue;
|
|
|
|
public class ResourceUtils {
|
|
public static final int DEFAULT_NAVBAR_VALUE = 48;
|
|
public static final String NAVBAR_LANDSCAPE_LEFT_RIGHT_SIZE = "navigation_bar_width";
|
|
public static final String NAVBAR_BOTTOM_GESTURE_SIZE = "navigation_bar_gesture_height";
|
|
|
|
public static int getNavbarSize(String resName, Resources res) {
|
|
return getDimenByName(resName, res, DEFAULT_NAVBAR_VALUE);
|
|
}
|
|
|
|
public static int getDimenByName(String resName, Resources res, int defaultValue) {
|
|
final int frameSize;
|
|
final int frameSizeResID = res.getIdentifier(resName, "dimen", "android");
|
|
if (frameSizeResID != 0) {
|
|
frameSize = res.getDimensionPixelSize(frameSizeResID);
|
|
} else {
|
|
frameSize = pxFromDp(defaultValue, res.getDisplayMetrics());
|
|
}
|
|
return frameSize;
|
|
}
|
|
|
|
public static boolean getBoolByName(String resName, Resources res, boolean defaultValue) {
|
|
final boolean val;
|
|
final int resId = res.getIdentifier(resName, "bool", "android");
|
|
if (resId != 0) {
|
|
val = res.getBoolean(resId);
|
|
} else {
|
|
val = defaultValue;
|
|
}
|
|
return val;
|
|
}
|
|
|
|
public static int pxFromDp(float size, DisplayMetrics metrics) {
|
|
return Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, size, metrics));
|
|
}
|
|
}
|