Changes for January 2022, syncing up to v400.h
This commit is contained in:
parent
463b837c1b
commit
d4c58201c8
@ -0,0 +1,128 @@
|
||||
From e37d16ac9d6d84412f64243dee1c48d8b1eb6ed5 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Thu, 13 Jan 2022 14:22:24 +0000
|
||||
Subject: [PATCH 01/21] Add SPenPointerOverlay
|
||||
|
||||
Toggle this overlay with property "persist.ui.spen.pointer"
|
||||
|
||||
Change-Id: I21f7e05cf8ebd74c950dfb20cf7eee99bfe22988
|
||||
---
|
||||
packages/overlays/Android.mk | 3 +-
|
||||
.../overlays/SPenPointerOverlay/Android.bp | 28 ++++++++++++++++++
|
||||
.../SPenPointerOverlay/AndroidManifest.xml | 23 ++++++++++++++
|
||||
.../sem_pointer_spot_hovering_spen.png | Bin 0 -> 411 bytes
|
||||
.../res/drawable/pointer_arrow_icon.xml | 5 ++++
|
||||
5 files changed, 58 insertions(+), 1 deletion(-)
|
||||
create mode 100644 packages/overlays/SPenPointerOverlay/Android.bp
|
||||
create mode 100644 packages/overlays/SPenPointerOverlay/AndroidManifest.xml
|
||||
create mode 100644 packages/overlays/SPenPointerOverlay/res/drawable-xxhdpi/sem_pointer_spot_hovering_spen.png
|
||||
create mode 100644 packages/overlays/SPenPointerOverlay/res/drawable/pointer_arrow_icon.xml
|
||||
|
||||
diff --git a/packages/overlays/Android.mk b/packages/overlays/Android.mk
|
||||
index 928892c60e47..3a114bc8ec79 100644
|
||||
--- a/packages/overlays/Android.mk
|
||||
+++ b/packages/overlays/Android.mk
|
||||
@@ -31,7 +31,8 @@ LOCAL_REQUIRED_MODULES := \
|
||||
NavigationBarModeGesturalOverlayNarrowBack \
|
||||
NavigationBarModeGesturalOverlayWideBack \
|
||||
NavigationBarModeGesturalOverlayExtraWideBack \
|
||||
- OneHandedModeGesturalOverlay \
|
||||
+ OneHandedModeGesturalOverlay \
|
||||
+ SPenPointerOverlay \
|
||||
preinstalled-packages-platform-overlays.xml
|
||||
|
||||
include $(BUILD_PHONY_PACKAGE)
|
||||
diff --git a/packages/overlays/SPenPointerOverlay/Android.bp b/packages/overlays/SPenPointerOverlay/Android.bp
|
||||
new file mode 100644
|
||||
index 000000000000..7632ebd43ef6
|
||||
--- /dev/null
|
||||
+++ b/packages/overlays/SPenPointerOverlay/Android.bp
|
||||
@@ -0,0 +1,28 @@
|
||||
+//
|
||||
+// Copyright 2021, 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 {
|
||||
+ // See: http://go/android-license-faq
|
||||
+ // A large-scale-change added 'default_applicable_licenses' to import
|
||||
+ // all of the 'license_kinds' from "frameworks_base_license"
|
||||
+ // to get the below license kinds:
|
||||
+ // SPDX-license-identifier-Apache-2.0
|
||||
+ default_applicable_licenses: ["frameworks_base_license"],
|
||||
+}
|
||||
+
|
||||
+runtime_resource_overlay {
|
||||
+ name: "SPenPointerOverlay",
|
||||
+ product_specific: true,
|
||||
+}
|
||||
diff --git a/packages/overlays/SPenPointerOverlay/AndroidManifest.xml b/packages/overlays/SPenPointerOverlay/AndroidManifest.xml
|
||||
new file mode 100644
|
||||
index 000000000000..b785214f854b
|
||||
--- /dev/null
|
||||
+++ b/packages/overlays/SPenPointerOverlay/AndroidManifest.xml
|
||||
@@ -0,0 +1,23 @@
|
||||
+<!--
|
||||
+ ~ Copyright (C) 2021 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.
|
||||
+ -->
|
||||
+
|
||||
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
+ package="com.samsung.android.spenpointer.overlay"
|
||||
+ android:versionCode="1"
|
||||
+ android:versionName="1.0">
|
||||
+ <overlay android:targetPackage="android" android:priority="5932" android:isStatic="true"
|
||||
+ android:requiredSystemPropertyName="persist.ui.spen.pointer" android:requiredSystemPropertyValue="true"/>
|
||||
+</manifest>
|
||||
diff --git a/packages/overlays/SPenPointerOverlay/res/drawable-xxhdpi/sem_pointer_spot_hovering_spen.png b/packages/overlays/SPenPointerOverlay/res/drawable-xxhdpi/sem_pointer_spot_hovering_spen.png
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..b73246c80a95e0bceeb8c09aacd2653722fca2d2
|
||||
GIT binary patch
|
||||
literal 411
|
||||
zcmeAS@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z3TG?EyX^u0VPYDww}y>9XB>H{O1*
|
||||
z{q+Z+%%XMcH{QCp_4%7Ek6&zi^&Z52_8N#bKYY6T$G`bYmOylGdHNEl2EyKW`#w-H
|
||||
zMEkav?|=xXa@&iyKv|#(o9;XSGJv*hefA2d9ViRrHpmHroTOV4<QL2kefT?*&XynF
|
||||
zf9jt6d~bTxr(K#H%-fm6)$T^@`96*P!_O$D=#P=#_iokL5u<mvYQ}e<#%Z1|jv*T7
|
||||
z-(HO6Z&DCpO9*-59T;HT8)CHh%)kHdv-@V7U0D0tD*XMooHrlj82&Lg8FU>wkZ<5N
|
||||
zBf!g`Yhiojq)$5MjpwPIIqY#_(VA78COitTt~#=3<I2pBClgEGRn7j@r_s({E14^`
|
||||
zzN)C=(stXhXOBPbPTyLVZ~8%?D9+x@`{Nq(tjK9wr(Jhj*%s6+*nEHflkLxVMFlvw
|
||||
UdB5Fp8R$X=Pgg&ebxsLQ0B%Ow$N&HU
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/packages/overlays/SPenPointerOverlay/res/drawable/pointer_arrow_icon.xml b/packages/overlays/SPenPointerOverlay/res/drawable/pointer_arrow_icon.xml
|
||||
new file mode 100644
|
||||
index 000000000000..6db08716fc62
|
||||
--- /dev/null
|
||||
+++ b/packages/overlays/SPenPointerOverlay/res/drawable/pointer_arrow_icon.xml
|
||||
@@ -0,0 +1,5 @@
|
||||
+<?xml version="1.0" encoding="utf-8"?>
|
||||
+<pointer-icon xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
+ android:bitmap="@drawable/sem_pointer_spot_hovering_spen"
|
||||
+ android:hotSpotX="5dp"
|
||||
+ android:hotSpotY="5dp" />
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 5c49797b6d93903bdfc4a6938eb18657f3525570 Mon Sep 17 00:00:00 2001
|
||||
From 6379c3431defb061fbc793982c1ba88b9d475e99 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Thu, 5 Apr 2018 10:01:19 +0800
|
||||
Subject: [PATCH 01/22] Disable vendor mismatch warning
|
||||
Subject: [PATCH 02/21] Disable vendor mismatch warning
|
||||
|
||||
Change-Id: Ieb8fe91e2f02462f074312ed0f4885d183e9780b
|
||||
---
|
||||
@ -9,10 +9,10 @@ Change-Id: Ieb8fe91e2f02462f074312ed0f4885d183e9780b
|
||||
1 file changed, 2 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
|
||||
index 08f3b1a8c6e0..d0387cc38d3d 100644
|
||||
index 5d0d182230e1..789968e19ab6 100644
|
||||
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
|
||||
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
|
||||
@@ -5499,20 +5499,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
|
||||
@@ -5508,20 +5508,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
|
||||
}
|
||||
|
||||
if (!Build.isBuildConsistent()) {
|
@ -1,7 +1,7 @@
|
||||
From f4af00e6769797999721cbfe4673a7f2f0c76278 Mon Sep 17 00:00:00 2001
|
||||
From f7b8284284e3eb360a2403fc6782ccfff96bb99b Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Sat, 16 Oct 2021 02:23:48 +0000
|
||||
Subject: [PATCH 02/22] UI: Adjust default navbar layouts
|
||||
Subject: [PATCH 03/21] UI: Adjust default navbar layouts
|
||||
|
||||
- Slightly tighten nodpi layout
|
||||
- Remove sw372dp layout - looks terrible, probably meant for legacy phablets, but most modern phones qualify
|
||||
@ -45,7 +45,7 @@ index 07b797a32428..000000000000
|
||||
- <string name="config_navBarLayout" translatable="false">left[.25W],back[.5WC];home;recent[.5WC],right[.25W]</string>
|
||||
-</resources>
|
||||
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
|
||||
index d274c917c26d..14276754e450 100644
|
||||
index d0098b32f384..62e4e27dca2a 100644
|
||||
--- a/packages/SystemUI/res/values/config.xml
|
||||
+++ b/packages/SystemUI/res/values/config.xml
|
||||
@@ -350,7 +350,7 @@
|
@ -1,7 +1,7 @@
|
||||
From 07a09e5d704b6971a5c061ac65bb7d765e368dec Mon Sep 17 00:00:00 2001
|
||||
From b6ee471eb9405c82d26fc2cddc4c1446fa872467 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Fri, 9 Mar 2018 15:41:26 +0800
|
||||
Subject: [PATCH 03/22] UI: Disable left (seascape) navigation bar optionally
|
||||
Subject: [PATCH 04/21] UI: Disable left (seascape) navigation bar optionally
|
||||
|
||||
Toggle this behaviour with property "persist.ui.seascape.disable"
|
||||
|
||||
@ -45,10 +45,10 @@ index f1e1366404a2..f43bef8532b8 100644
|
||||
for (int i = 0; i < group.getChildCount(); i++) {
|
||||
final View child = group.getChildAt(i);
|
||||
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
|
||||
index d0457b08aa34..d165552d5ce8 100644
|
||||
index 21bca6ed6a53..b699c4e4f38d 100644
|
||||
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
|
||||
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
|
||||
@@ -2352,9 +2352,10 @@ public class DisplayPolicy {
|
||||
@@ -2388,9 +2388,10 @@ public class DisplayPolicy {
|
||||
@NavigationBarPosition
|
||||
int navigationBarPosition(int displayWidth, int displayHeight, int displayRotation) {
|
||||
if (navigationBarCanMove() && displayWidth > displayHeight) {
|
@ -1,7 +1,7 @@
|
||||
From 58f4875f7b157bf408bd770a4131d5ee0c98f7da Mon Sep 17 00:00:00 2001
|
||||
From a8f18ce03f513f63f98c14b89918011e8e30ca93 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Sun, 10 Jan 2021 11:44:29 +0000
|
||||
Subject: [PATCH 04/22] UI: Disable wallpaper zoom
|
||||
Subject: [PATCH 05/21] UI: Disable wallpaper zoom
|
||||
|
||||
It does little more than inducing motion sickness
|
||||
|
||||
@ -11,10 +11,10 @@ Change-Id: I78cc5484930b27f172cd8d8a5bd9042dce3478d0
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
|
||||
index b7dfd49b7b78..08940c03b095 100644
|
||||
index 3ce1886fef6d..d8f280ddbf93 100644
|
||||
--- a/core/res/res/values/config.xml
|
||||
+++ b/core/res/res/values/config.xml
|
||||
@@ -4768,7 +4768,7 @@
|
||||
@@ -4770,7 +4770,7 @@
|
||||
<string name="config_customMediaSessionPolicyProvider"></string>
|
||||
|
||||
<!-- The max scale for the wallpaper when it's zoomed in -->
|
@ -1,7 +1,7 @@
|
||||
From 88c071a7385821219dbb90bc8475bece813e84c9 Mon Sep 17 00:00:00 2001
|
||||
From b2a7f77623b07fbea767605ba8ad5bbe6ed94c70 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Wed, 3 Jun 2020 01:31:34 +0000
|
||||
Subject: [PATCH 05/22] UI: Increase default status bar height
|
||||
Subject: [PATCH 06/21] UI: Increase default status bar height
|
||||
|
||||
Change-Id: Ibbcf63159e19bb2bb2b1094ea07ab85917630b07
|
||||
---
|
@ -1,83 +0,0 @@
|
||||
From af017461178d08dcd0999b76d800e1e4f773c09b Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Tue, 6 Oct 2020 01:41:16 +0000
|
||||
Subject: [PATCH 06/22] UI: Revive navbar layout tuning via sysui_nav_bar
|
||||
tunable
|
||||
|
||||
Google keeps fixing what ain't broken.
|
||||
|
||||
Change-Id: Ied7d7859e50fd0fcc346219964e747c5d5f4c352
|
||||
---
|
||||
.../NavigationBarInflaterView.java | 30 ++++++++++++++++++-
|
||||
1 file changed, 29 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java
|
||||
index 4d9175b8db68..293ebb374241 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java
|
||||
@@ -43,12 +43,13 @@ import com.android.systemui.navigationbar.buttons.ReverseLinearLayout;
|
||||
import com.android.systemui.navigationbar.buttons.ReverseLinearLayout.ReverseRelativeLayout;
|
||||
import com.android.systemui.recents.OverviewProxyService;
|
||||
import com.android.systemui.shared.system.QuickStepContract;
|
||||
+import com.android.systemui.tuner.TunerService;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Objects;
|
||||
|
||||
public class NavigationBarInflaterView extends FrameLayout
|
||||
- implements NavigationModeController.ModeChangedListener {
|
||||
+ implements NavigationModeController.ModeChangedListener, TunerService.Tunable {
|
||||
|
||||
private static final String TAG = "NavBarInflater";
|
||||
|
||||
@@ -102,6 +103,8 @@ public class NavigationBarInflaterView extends FrameLayout
|
||||
private OverviewProxyService mOverviewProxyService;
|
||||
private int mNavBarMode = NAV_BAR_MODE_3BUTTON;
|
||||
|
||||
+ private boolean mUsingCustomLayout;
|
||||
+
|
||||
public NavigationBarInflaterView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
createInflaters();
|
||||
@@ -151,13 +154,38 @@ public class NavigationBarInflaterView extends FrameLayout
|
||||
mNavBarMode = mode;
|
||||
}
|
||||
|
||||
+ @Override
|
||||
+ protected void onAttachedToWindow() {
|
||||
+ super.onAttachedToWindow();
|
||||
+ Dependency.get(TunerService.class).addTunable(this, NAV_BAR_VIEWS);
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected void onDetachedFromWindow() {
|
||||
Dependency.get(NavigationModeController.class).removeListener(this);
|
||||
+ Dependency.get(TunerService.class).removeTunable(this);
|
||||
super.onDetachedFromWindow();
|
||||
}
|
||||
|
||||
+ @Override
|
||||
+ public void onTuningChanged(String key, String newValue) {
|
||||
+ if (NAV_BAR_VIEWS.equals(key)) {
|
||||
+ setNavigationBarLayout(newValue);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public void setNavigationBarLayout(String layoutValue) {
|
||||
+ if (!Objects.equals(mCurrentLayout, layoutValue)) {
|
||||
+ mUsingCustomLayout = layoutValue != null;
|
||||
+ clearViews();
|
||||
+ inflateLayout(layoutValue);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
public void onLikelyDefaultLayoutChange() {
|
||||
+ // Don't override custom layouts
|
||||
+ if (mUsingCustomLayout) return;
|
||||
+
|
||||
// Reevaluate new layout
|
||||
final String newValue = getDefaultLayout();
|
||||
if (!Objects.equals(mCurrentLayout, newValue)) {
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,64 @@
|
||||
From a77071568a33266c3f93db359d865eddd2b38313 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Tue, 6 Oct 2020 01:41:16 +0000
|
||||
Subject: [PATCH 07/21] UI: Revive navbar layout tuning via sysui_nav_bar
|
||||
tunable
|
||||
|
||||
Google keeps fixing what ain't broken.
|
||||
|
||||
Change-Id: Ied7d7859e50fd0fcc346219964e747c5d5f4c352
|
||||
---
|
||||
.../navigationbar/NavigationBarInflaterView.java | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java
|
||||
index c8bc143f0bd8..fab079b91608 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java
|
||||
@@ -118,6 +118,7 @@ public class NavigationBarInflaterView extends FrameLayout
|
||||
|
||||
private boolean mInverseLayout;
|
||||
private boolean mIsHintEnabled;
|
||||
+ private boolean mUsingCustomLayout;
|
||||
|
||||
public NavigationBarInflaterView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
@@ -177,6 +178,7 @@ public class NavigationBarInflaterView extends FrameLayout
|
||||
super.onAttachedToWindow();
|
||||
Dependency.get(TunerService.class).addTunable(this, NAV_BAR_INVERSE);
|
||||
Dependency.get(TunerService.class).addTunable(this, KEY_NAVIGATION_HINT);
|
||||
+ Dependency.get(TunerService.class).addTunable(this, NAV_BAR_VIEWS);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -195,6 +197,8 @@ public class NavigationBarInflaterView extends FrameLayout
|
||||
mIsHintEnabled = TunerService.parseIntegerSwitch(newValue, true);
|
||||
updateHint();
|
||||
onLikelyDefaultLayoutChange();
|
||||
+ } else if (NAV_BAR_VIEWS.equals(key)) {
|
||||
+ setNavigationBarLayout(newValue);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -204,7 +208,18 @@ public class NavigationBarInflaterView extends FrameLayout
|
||||
updateLayoutInversion();
|
||||
}
|
||||
|
||||
+ public void setNavigationBarLayout(String layoutValue) {
|
||||
+ if (!Objects.equals(mCurrentLayout, layoutValue)) {
|
||||
+ mUsingCustomLayout = layoutValue != null;
|
||||
+ clearViews();
|
||||
+ inflateLayout(layoutValue);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
public void onLikelyDefaultLayoutChange() {
|
||||
+ // Don't override custom layouts
|
||||
+ if (mUsingCustomLayout) return;
|
||||
+
|
||||
// Reevaluate new layout
|
||||
final String newValue = getDefaultLayout();
|
||||
if (!Objects.equals(mCurrentLayout, newValue)) {
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 3da8e7d5f61c024dd70a311f9b67622f419c07a0 Mon Sep 17 00:00:00 2001
|
||||
From 064121d33cea08c574f5bd80b10bd3b3721241cc Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Sun, 26 Apr 2020 08:56:13 +0000
|
||||
Subject: [PATCH 07/22] UI: Use SNAP_FIXED_RATIO for multi-window globally
|
||||
Subject: [PATCH 08/21] UI: Use SNAP_FIXED_RATIO for multi-window globally
|
||||
|
||||
Enables multiple snap targets under landscape for phone UI
|
||||
|
||||
@ -78,10 +78,10 @@ index 34b6a54be493..3921c9edfeac 100644
|
||||
Only applies if the device display is not square. -->
|
||||
<bool name="config_navBarCanMove">false</bool>
|
||||
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
|
||||
index 08940c03b095..1319c26bb1be 100644
|
||||
index d8f280ddbf93..3a62b51d3cbc 100644
|
||||
--- a/core/res/res/values/config.xml
|
||||
+++ b/core/res/res/values/config.xml
|
||||
@@ -3529,7 +3529,7 @@
|
||||
@@ -3531,7 +3531,7 @@
|
||||
1 - 3 snap targets: fixed ratio, 1:1, (1 - fixed ratio)
|
||||
2 - 1 snap target: 1:1
|
||||
-->
|
@ -1,7 +1,7 @@
|
||||
From 186e9e99567c3961a63535ae2b04aa172cfc1734 Mon Sep 17 00:00:00 2001
|
||||
From 2e11990cb2b10f0fe3c87273d76b3875da3b2e8f Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Thu, 14 Oct 2021 15:45:24 +0000
|
||||
Subject: [PATCH 08/22] UI: Unblock alarm status bar icon
|
||||
Subject: [PATCH 09/21] UI: Unblock alarm status bar icon
|
||||
|
||||
That's very Zen of you, Google...
|
||||
|
||||
@ -12,10 +12,10 @@ Change-Id: I2c9f91f47bb1e324a20c13d588dcdbbca91dc12e
|
||||
2 files changed, 2 deletions(-)
|
||||
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
|
||||
index 6a171ceff1ed..2c1321f1c013 100644
|
||||
index 2e40af4fab2a..f8c79ceabf2e 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
|
||||
@@ -158,7 +158,6 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
@@ -162,7 +162,6 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
}
|
||||
mDarkIconManager = new DarkIconManager(view.findViewById(R.id.statusIcons), mFeatureFlags);
|
||||
mDarkIconManager.setShouldLog(true);
|
||||
@ -24,10 +24,10 @@ index 6a171ceff1ed..2c1321f1c013 100644
|
||||
mDarkIconManager.setBlockList(mBlockedIcons);
|
||||
mStatusBarIconController.addIconGroup(mDarkIconManager);
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
|
||||
index f9c6ebbd26e3..7b4dc47a7b48 100644
|
||||
index a32e7c4765ef..efc02548763a 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
|
||||
@@ -206,7 +206,6 @@ public class KeyguardStatusBarView extends RelativeLayout implements
|
||||
@@ -203,7 +203,6 @@ public class KeyguardStatusBarView extends RelativeLayout implements
|
||||
// Set hidden status bar items
|
||||
private void loadBlockList() {
|
||||
Resources r = getResources();
|
@ -1,60 +0,0 @@
|
||||
From 1ec1cdc8f12227b0612d258ee110432ed954dde1 Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Tue, 3 Nov 2020 22:38:49 -0800
|
||||
Subject: [PATCH 09/22] core: Remove default aspect ratio limit for old apps
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
I have never encountered a single app that this aspect ratio limit is
|
||||
actually helpful for. Most legacy apps are able to cope with longer
|
||||
aspect ratios fine — perhaps not optimally, but it looks better than
|
||||
having a big black box at the bottom of the screen.
|
||||
|
||||
Instead of limiting older apps' screen space unconditionally or exposing
|
||||
it in Settings, remove the limit entirely so the user doesn't have to go
|
||||
through the trouble to begin with. Note that apps explicitly declaring a
|
||||
shorter aspect ratio will still get their constraint satisfied.
|
||||
|
||||
Change-Id: Ic415288b24129a634476b5cc01a6f202588f4b89
|
||||
---
|
||||
core/java/android/content/pm/PackageParser.java | 6 ++----
|
||||
.../android/content/pm/parsing/ParsingPackageUtils.java | 5 ++---
|
||||
2 files changed, 4 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
|
||||
index 9379a634afa8..6bf772b008a7 100644
|
||||
--- a/core/java/android/content/pm/PackageParser.java
|
||||
+++ b/core/java/android/content/pm/PackageParser.java
|
||||
@@ -4672,10 +4672,8 @@ public class PackageParser {
|
||||
* ratio set.
|
||||
*/
|
||||
private void setMaxAspectRatio(Package owner) {
|
||||
- // Default to (1.86) 16.7:9 aspect ratio for pre-O apps and unset for O and greater.
|
||||
- // NOTE: 16.7:9 was the max aspect ratio Android devices can support pre-O per the CDD.
|
||||
- float maxAspectRatio = owner.applicationInfo.targetSdkVersion < O
|
||||
- ? DEFAULT_PRE_O_MAX_ASPECT_RATIO : 0;
|
||||
+ // Start at an unlimited aspect ratio unless we get a more restrictive one
|
||||
+ float maxAspectRatio = 0;
|
||||
|
||||
if (owner.applicationInfo.maxAspectRatio != 0) {
|
||||
// Use the application max aspect ration as default if set.
|
||||
diff --git a/core/java/android/content/pm/parsing/ParsingPackageUtils.java b/core/java/android/content/pm/parsing/ParsingPackageUtils.java
|
||||
index dce242c9d87c..5ea07db54eb7 100644
|
||||
--- a/core/java/android/content/pm/parsing/ParsingPackageUtils.java
|
||||
+++ b/core/java/android/content/pm/parsing/ParsingPackageUtils.java
|
||||
@@ -2584,9 +2584,8 @@ public class ParsingPackageUtils {
|
||||
* ratio set.
|
||||
*/
|
||||
private static void setMaxAspectRatio(ParsingPackage pkg) {
|
||||
- // Default to (1.86) 16.7:9 aspect ratio for pre-O apps and unset for O and greater.
|
||||
- // NOTE: 16.7:9 was the max aspect ratio Android devices can support pre-O per the CDD.
|
||||
- float maxAspectRatio = pkg.getTargetSdkVersion() < O ? DEFAULT_PRE_O_MAX_ASPECT_RATIO : 0;
|
||||
+ // Start at an unlimited aspect ratio unless we get a more restrictive one
|
||||
+ float maxAspectRatio = 0;
|
||||
|
||||
float packageMaxAspectRatio = pkg.getMaxAspectRatio();
|
||||
if (packageMaxAspectRatio != 0) {
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,31 @@
|
||||
From 4247002faaf6768550040aec3132ca2015c6543c Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Tue, 3 Nov 2020 22:43:12 -0800
|
||||
Subject: [PATCH 10/21] core: Remove old app target SDK dialog
|
||||
|
||||
If an app is old, users should already know that, and there's usually no
|
||||
point in warning them about it because they would already be using a
|
||||
newer version if one existed. Sometimes, using an old app is necessary
|
||||
for one reason or another, so remove this annoyance and let the user use
|
||||
their old app in peace.
|
||||
|
||||
Change-Id: I1a3021f0f9bec1ab6ff7641776391e1bd4c3cc49
|
||||
---
|
||||
services/core/java/com/android/server/wm/AppWarnings.java | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/wm/AppWarnings.java b/services/core/java/com/android/server/wm/AppWarnings.java
|
||||
index 994f07959f3b..6749ae78c09c 100644
|
||||
--- a/services/core/java/com/android/server/wm/AppWarnings.java
|
||||
+++ b/services/core/java/com/android/server/wm/AppWarnings.java
|
||||
@@ -168,7 +168,6 @@ class AppWarnings {
|
||||
public void onStartActivity(ActivityRecord r) {
|
||||
showUnsupportedCompileSdkDialogIfNeeded(r);
|
||||
showUnsupportedDisplaySizeDialogIfNeeded(r);
|
||||
- showDeprecatedTargetDialogIfNeeded(r);
|
||||
}
|
||||
|
||||
/**
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From c1d673a010c19018d37ec21c2bbed09480c4dce9 Mon Sep 17 00:00:00 2001
|
||||
From 5403541355fe9d511591a10850d4e141f038a30b Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Tue, 5 Oct 2021 21:01:15 -0700
|
||||
Subject: [PATCH 10/22] SystemUI: Always refresh power menu on UI mode change
|
||||
Subject: [PATCH 11/21] SystemUI: Always refresh power menu on UI mode change
|
||||
|
||||
This is necessary for reliably theming the global actions dialog with
|
||||
dynamic colors and adapting it to light/dark themes.
|
||||
@ -15,10 +15,10 @@ Change-Id: Id6f6623096ed231e841ca3794b47f8a0ab54dae6
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
|
||||
index 9ada54b9ef6f..1ae3b31fd836 100644
|
||||
index 65c520ef2ff4..43a1084540f6 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
|
||||
@@ -703,7 +703,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
@@ -762,7 +762,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
@Override
|
||||
public void onUiModeChanged() {
|
||||
mContext.getTheme().applyStyle(mContext.getThemeResId(), true);
|
@ -1,7 +1,7 @@
|
||||
From 314462d52502de4c850b3e657bdca280679188e1 Mon Sep 17 00:00:00 2001
|
||||
From 19c047cf3be7c3bcd1254c0b62fa3e9d5d0ae733 Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Sat, 9 Oct 2021 14:39:38 -0700
|
||||
Subject: [PATCH 11/22] SystemUI: Use Monet colors for power menu
|
||||
Subject: [PATCH 12/21] SystemUI: Use Monet colors for power menu
|
||||
|
||||
It's odd that the power menu doesn't use Monet colors, unlike most of
|
||||
System UI. This makes it feel more integrated with the rest of the
|
@ -1,7 +1,7 @@
|
||||
From d6a215d67f767fe6a793dd66f5bf8dcd02f48d57 Mon Sep 17 00:00:00 2001
|
||||
From a3d2feb6e711e9a96cec4fa19276be18bdda118c Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Wed, 6 Oct 2021 18:40:30 -0700
|
||||
Subject: [PATCH 12/22] Revert "Make QS always use dark theme colors"
|
||||
Subject: [PATCH 13/21] Revert "Make QS always use dark theme colors"
|
||||
|
||||
This reverts commit d62f7249f9e3222da95ecf6816601c408aac6be5.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 1ed0fb3e67d9d1f41435e7e60b801837a83c2c64 Mon Sep 17 00:00:00 2001
|
||||
From aadd3892d31154fd43307f3ac1293b9a1ed011b6 Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Wed, 6 Oct 2021 18:41:11 -0700
|
||||
Subject: [PATCH 13/22] Revert "Do not re-inflate QS and SB when
|
||||
Subject: [PATCH 14/21] Revert "Do not re-inflate QS and SB when
|
||||
CONFIG_UI_MODE"
|
||||
|
||||
This reverts commit 8a40ff855b86bc86e23367017002289920855a4e.
|
@ -1,7 +1,7 @@
|
||||
From c0aadaca1ab833a13ecacc48cf5c458427f8f6b4 Mon Sep 17 00:00:00 2001
|
||||
From a9bd8968c9baae389fd4e5cc54d2c4403d603690 Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Mon, 11 Oct 2021 19:24:58 -0700
|
||||
Subject: [PATCH 14/22] SystemUI: Follow light/dark theme in quick settings
|
||||
Subject: [PATCH 15/21] SystemUI: Follow light/dark theme in quick settings
|
||||
|
||||
Android 12's dual-tone style where the quick settings panel is always
|
||||
dark makes the light theme look like a second-class citizen. Pure black
|
||||
@ -25,15 +25,15 @@ https://twitter.com/kdrag0n/status/1445922541218922496
|
||||
Change-Id: I3d45b72f0f119e100505409d178ab8f698993881
|
||||
---
|
||||
.../brightness_progress_full_drawable.xml | 2 +-
|
||||
.../qs_footer_action_chip_background.xml | 8 +-------
|
||||
.../qs_security_footer_background.xml | 3 +--
|
||||
packages/SystemUI/res/values-night/styles.xml | 12 +++++++++++
|
||||
packages/SystemUI/res/values/styles.xml | 10 +++++-----
|
||||
.../systemui/privacy/OngoingPrivacyChip.kt | 4 ++--
|
||||
.../qs_footer_action_chip_background.xml | 8 +----
|
||||
.../qs_security_footer_background.xml | 3 +-
|
||||
packages/SystemUI/res/values-night/styles.xml | 12 ++++++++
|
||||
packages/SystemUI/res/values/styles.xml | 10 +++----
|
||||
.../systemui/privacy/OngoingPrivacyChip.kt | 4 +--
|
||||
.../systemui/qs/tileimpl/QSTileViewImpl.kt | 2 +-
|
||||
.../statusbar/phone/ScrimController.java | 2 +-
|
||||
.../systemui/statusbar/phone/ScrimState.java | 20 +++++++++----------
|
||||
9 files changed, 34 insertions(+), 29 deletions(-)
|
||||
.../systemui/statusbar/phone/ScrimState.java | 30 +++++++++----------
|
||||
9 files changed, 39 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/packages/SystemUI/res/drawable/brightness_progress_full_drawable.xml b/packages/SystemUI/res/drawable/brightness_progress_full_drawable.xml
|
||||
index 4d9188c40822..1eae667c6e79 100644
|
||||
@ -176,7 +176,7 @@ index 27c129ad34c5..6bdf82a60e40 100644
|
||||
mBehindAlpha = behindAlpha;
|
||||
if (mState == ScrimState.SHADE_LOCKED) {
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
|
||||
index 15b8c67fd4ba..577e33c3c8d6 100644
|
||||
index 15b8c67fd4ba..e81642f7d491 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
|
||||
@@ -88,7 +88,7 @@ public enum ScrimState {
|
||||
@ -250,6 +250,39 @@ index 15b8c67fd4ba..577e33c3c8d6 100644
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -290,27 +290,27 @@ public enum ScrimState {
|
||||
mAnimateChange = !mLaunchingAffordanceWithPreview;
|
||||
|
||||
mFrontTint = Color.TRANSPARENT;
|
||||
- mBehindTint = Color.BLACK;
|
||||
- mBubbleTint = Color.BLACK;
|
||||
+ mBehindTint = Color.TRANSPARENT;
|
||||
+ mBubbleTint = Color.TRANSPARENT;
|
||||
mBlankScreen = false;
|
||||
|
||||
if (previousState == ScrimState.AOD) {
|
||||
// Set all scrims black, before they fade transparent.
|
||||
updateScrimColor(mScrimInFront, 1f /* alpha */, Color.BLACK /* tint */);
|
||||
- updateScrimColor(mScrimBehind, 1f /* alpha */, Color.BLACK /* tint */);
|
||||
+ updateScrimColor(mScrimBehind, 1f /* alpha */, Color.TRANSPARENT /* tint */);
|
||||
if (mScrimForBubble != null) {
|
||||
updateScrimColor(mScrimForBubble, 1f /* alpha */, Color.BLACK /* tint */);
|
||||
}
|
||||
|
||||
// Scrims should still be black at the end of the transition.
|
||||
mFrontTint = Color.BLACK;
|
||||
- mBehindTint = Color.BLACK;
|
||||
+ mBehindTint = Color.TRANSPARENT;
|
||||
mBubbleTint = Color.BLACK;
|
||||
mBlankScreen = true;
|
||||
}
|
||||
|
||||
if (mClipQsScrim) {
|
||||
- updateScrimColor(mScrimBehind, 1f /* alpha */, Color.BLACK);
|
||||
+ updateScrimColor(mScrimBehind, 1f /* alpha */, Color.TRANSPARENT);
|
||||
}
|
||||
|
||||
mAnimationDuration = ScrimController.ANIMATION_DURATION;
|
||||
@@ -468,4 +468,4 @@ public enum ScrimState {
|
||||
public void setClipQsScrim(boolean clipsQsScrim) {
|
||||
mClipQsScrim = clipsQsScrim;
|
@ -1,7 +1,7 @@
|
||||
From a49d127bf72839cdbeb1bea6e1b7e21612ae91a9 Mon Sep 17 00:00:00 2001
|
||||
From 18493a29e0c14b70e112e2e4f9ced0eca413bad7 Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Mon, 11 Oct 2021 19:25:02 -0700
|
||||
Subject: [PATCH 15/22] SystemUI: Initialize QS tiles in inactive state
|
||||
Subject: [PATCH 16/21] SystemUI: Initialize QS tiles in inactive state
|
||||
|
||||
Now that the QS fragment is recreated when changing the UI mode (so that
|
||||
it follows light/dark themes), all tiles flash with active color briefly
|
@ -1,7 +1,7 @@
|
||||
From 798b251cd278e00d214e99f4d35bdd81140e973b Mon Sep 17 00:00:00 2001
|
||||
From 2d092c73ebc947960e09ba5a1a1a884224206c4b Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Mon, 11 Oct 2021 19:25:08 -0700
|
||||
Subject: [PATCH 16/22] SystemUI: Add dual-tone light and dark themes for QS
|
||||
Subject: [PATCH 17/21] SystemUI: Add dual-tone light and dark themes for QS
|
||||
|
||||
Google's dual-tone QS design where the notification panel has a
|
||||
semantically higher elevation adds depth to the notification+QS shade,
|
@ -1,7 +1,7 @@
|
||||
From 02806d68e92827a0799395338d3b29c055e176ef Mon Sep 17 00:00:00 2001
|
||||
From e9e767ef589530c378b9233ae3d3c5aa37f500ec Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Mon, 11 Oct 2021 19:25:11 -0700
|
||||
Subject: [PATCH 17/22] SystemUI: Remove nav bar background in QS customizer
|
||||
Subject: [PATCH 18/21] SystemUI: Remove nav bar background in QS customizer
|
||||
|
||||
This looks outdated, since most apps are edge-to-edge nowadays.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 22f30f47048335c6a64a35ce68eafc640bfb40af Mon Sep 17 00:00:00 2001
|
||||
From 51ff74ab5ef8bc65f6bb3d6d436995bcbe7b8d89 Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Tue, 5 Oct 2021 21:01:50 -0700
|
||||
Subject: [PATCH 18/22] Paint: Enable subpixel text positioning by default
|
||||
Subject: [PATCH 19/21] Paint: Enable subpixel text positioning by default
|
||||
|
||||
On desktop Linux, subpixel text positioning is necessary to avoid
|
||||
kerning issues, and Android is no different. Even though most phone
|
@ -1,31 +0,0 @@
|
||||
From 7850ab773ef48f6fddb166e1af10fce56ba06648 Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Sat, 16 Oct 2021 03:27:23 -0700
|
||||
Subject: [PATCH 20/22] SystemUI: Expose legacy Wi-Fi and cellular data QS
|
||||
tiles
|
||||
|
||||
We'll still use Android 12's unified internet settings and the Internet
|
||||
tile by default, but expose the legacy Wi-Fi and cellular data tiles so
|
||||
that users can add them with the QS customizer.
|
||||
|
||||
Change-Id: I65902b38c99f61782bd9aa0ea604848fbd068bda
|
||||
---
|
||||
packages/SystemUI/res/values/config.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
|
||||
index 14276754e450..c99ab8bf5e9a 100644
|
||||
--- a/packages/SystemUI/res/values/config.xml
|
||||
+++ b/packages/SystemUI/res/values/config.xml
|
||||
@@ -107,7 +107,7 @@
|
||||
|
||||
<!-- Tiles native to System UI. Order should match "quick_settings_tiles_default" -->
|
||||
<string name="quick_settings_tiles_stock" translatable="false">
|
||||
- internet,bt,flashlight,dnd,alarm,airplane,controls,wallet,rotation,battery,cast,screenrecord,mictoggle,cameratoggle,location,hotspot,inversion,saver,dark,work,night,reverse,reduce_brightness
|
||||
+ internet,wifi,cell,bt,flashlight,dnd,alarm,airplane,controls,wallet,rotation,battery,cast,screenrecord,mictoggle,cameratoggle,location,hotspot,inversion,saver,dark,work,night,reverse,reduce_brightness
|
||||
</string>
|
||||
|
||||
<!-- The tiles to display in QuickSettings -->
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 00373ab57fc28c8f1e5320748879d99b30d49112 Mon Sep 17 00:00:00 2001
|
||||
From 4cafce4750d1834d48d806623d84f9625c0ba3a9 Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Tue, 5 Oct 2021 21:02:12 -0700
|
||||
Subject: [PATCH 19/22] SystemUI: Fix QS status font weight mismatch in dark
|
||||
Subject: [PATCH 20/21] SystemUI: Fix QS status font weight mismatch in dark
|
||||
mode
|
||||
|
||||
Text in the QS status bar is medium in light mode and regular in dark
|
@ -1,13 +1,15 @@
|
||||
From 00463f495ad23afddbf5bc0b4c227e63d09bc8e4 Mon Sep 17 00:00:00 2001
|
||||
From d219b7a9aefd4a744e66ea331dc5ac127c9b3ab3 Mon Sep 17 00:00:00 2001
|
||||
From: SagarMakhar <sagarmakhar@gmail.com>
|
||||
Date: Sat, 6 Nov 2021 13:16:24 +0000
|
||||
Subject: [PATCH 22/22] Fix QS clock being white on light theme
|
||||
Subject: [PATCH 21/21] Fix QS clock being white on light theme
|
||||
|
||||
Steps to reproduce without this commit:
|
||||
- Turn off dark theme
|
||||
- Play a song and wait for media player to show in QS
|
||||
- Confirm clock text color is white
|
||||
|
||||
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
|
||||
Change-Id: I62aeba57e1ce458c73752faa1c9d80d26a63f625
|
||||
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
|
||||
---
|
||||
.../systemui/qs/QuickStatusBarHeaderController.java | 13 -------------
|
@ -1,245 +0,0 @@
|
||||
From 6ec18b7fe383ba54de08df6d6d76b74361491ddd Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Mon, 25 Oct 2021 19:32:33 -0700
|
||||
Subject: [PATCH 21/22] SystemUI: Allow Wi-Fi/cell tiles to co-exist with
|
||||
provider model
|
||||
|
||||
The dedicated Wi-Fi/cellular data QS tiles are partially working now
|
||||
that we've exposed them in the list of tile options, but they're very
|
||||
buggy and somewhat broken when the provider model (unified internet) is
|
||||
enabled.
|
||||
|
||||
Allow the tiles to co-exist with InternetTile and the provider model
|
||||
(including both settings_provider_model and combined signal icons) by
|
||||
always including QS icons in Wi-Fi/data indicator callbacks, and add
|
||||
a new flag to indicate whether they should be shown in the internet
|
||||
tile.
|
||||
|
||||
Change-Id: I10af134b35dfabdb9275f1aca8ca8512e1db6d27
|
||||
---
|
||||
.../systemui/qs/tiles/InternetTile.java | 4 +-
|
||||
.../policy/MobileSignalController.java | 32 ++++--------
|
||||
.../statusbar/policy/NetworkController.java | 10 +++-
|
||||
.../policy/WifiSignalController.java | 49 +++++++------------
|
||||
4 files changed, 37 insertions(+), 58 deletions(-)
|
||||
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java
|
||||
index cc9e7485dcff..4bf8053017f1 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java
|
||||
@@ -255,7 +255,7 @@ public class InternetTile extends QSTileImpl<SignalState> {
|
||||
Log.d(TAG, "setWifiIndicators: " + indicators);
|
||||
}
|
||||
mWifiInfo.mEnabled = indicators.enabled;
|
||||
- if (indicators.qsIcon == null) {
|
||||
+ if (indicators.qsIcon == null || !indicators.isDefault) {
|
||||
return;
|
||||
}
|
||||
mWifiInfo.mConnected = indicators.qsIcon.visible;
|
||||
@@ -275,7 +275,7 @@ public class InternetTile extends QSTileImpl<SignalState> {
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "setMobileDataIndicators: " + indicators);
|
||||
}
|
||||
- if (indicators.qsIcon == null) {
|
||||
+ if (indicators.qsIcon == null || !indicators.isDefault) {
|
||||
// Not data sim, don't display.
|
||||
return;
|
||||
}
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
|
||||
index 43781f3941ba..cf89cabf6ab9 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
|
||||
@@ -397,7 +397,7 @@ public class MobileSignalController extends SignalController<MobileState, Mobile
|
||||
IconState qsIcon = null;
|
||||
CharSequence description = null;
|
||||
// Only send data sim callbacks to QS.
|
||||
- if (mCurrentState.dataSim && mCurrentState.isDefault) {
|
||||
+ if (mCurrentState.dataSim) {
|
||||
qsTypeIcon =
|
||||
(showDataIcon || mConfig.alwaysShowDataRatIcon) ? icons.qsDataType : 0;
|
||||
qsIcon = new IconState(mCurrentState.enabled
|
||||
@@ -420,7 +420,7 @@ public class MobileSignalController extends SignalController<MobileState, Mobile
|
||||
statusIcon, qsIcon, typeIcon, qsTypeIcon,
|
||||
activityIn, activityOut, dataContentDescription, dataContentDescriptionHtml,
|
||||
description, icons.isWide, mSubscriptionInfo.getSubscriptionId(),
|
||||
- mCurrentState.roaming, showTriangle);
|
||||
+ mCurrentState.roaming, showTriangle, mCurrentState.isDefault);
|
||||
callback.setMobileDataIndicators(mobileDataIndicators);
|
||||
} else {
|
||||
boolean showDataIcon = mCurrentState.dataConnected || dataDisabled;
|
||||
@@ -431,25 +431,13 @@ public class MobileSignalController extends SignalController<MobileState, Mobile
|
||||
int qsTypeIcon = 0;
|
||||
IconState qsIcon = null;
|
||||
CharSequence description = null;
|
||||
- // Only send data sim callbacks to QS.
|
||||
- if (mProviderModelSetting) {
|
||||
- if (mCurrentState.dataSim && mCurrentState.isDefault) {
|
||||
- qsTypeIcon =
|
||||
- (showDataIcon || mConfig.alwaysShowDataRatIcon) ? icons.qsDataType : 0;
|
||||
- qsIcon = new IconState(
|
||||
- mCurrentState.enabled && !mCurrentState.isEmergency,
|
||||
- getQsCurrentIconId(), contentDescription);
|
||||
- description = mCurrentState.isEmergency ? null : mCurrentState.networkName;
|
||||
- }
|
||||
- } else {
|
||||
- if (mCurrentState.dataSim) {
|
||||
- qsTypeIcon =
|
||||
- (showDataIcon || mConfig.alwaysShowDataRatIcon) ? icons.qsDataType : 0;
|
||||
- qsIcon = new IconState(
|
||||
- mCurrentState.enabled && !mCurrentState.isEmergency,
|
||||
- getQsCurrentIconId(), contentDescription);
|
||||
- description = mCurrentState.isEmergency ? null : mCurrentState.networkName;
|
||||
- }
|
||||
+ if (mCurrentState.dataSim) {
|
||||
+ qsTypeIcon =
|
||||
+ (showDataIcon || mConfig.alwaysShowDataRatIcon) ? icons.qsDataType : 0;
|
||||
+ qsIcon = new IconState(
|
||||
+ mCurrentState.enabled && !mCurrentState.isEmergency,
|
||||
+ getQsCurrentIconId(), contentDescription);
|
||||
+ description = mCurrentState.isEmergency ? null : mCurrentState.networkName;
|
||||
}
|
||||
|
||||
boolean activityIn = mCurrentState.dataConnected
|
||||
@@ -465,7 +453,7 @@ public class MobileSignalController extends SignalController<MobileState, Mobile
|
||||
statusIcon, qsIcon, typeIcon, qsTypeIcon,
|
||||
activityIn, activityOut, dataContentDescription, dataContentDescriptionHtml,
|
||||
description, icons.isWide, mSubscriptionInfo.getSubscriptionId(),
|
||||
- mCurrentState.roaming, showTriangle);
|
||||
+ mCurrentState.roaming, showTriangle, mCurrentState.isDefault);
|
||||
callback.setMobileDataIndicators(mobileDataIndicators);
|
||||
}
|
||||
}
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
|
||||
index eeea699a0b74..4a25d1bd7661 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
|
||||
@@ -59,10 +59,11 @@ public interface NetworkController extends CallbackController<SignalCallback>, D
|
||||
public String description;
|
||||
public boolean isTransient;
|
||||
public String statusLabel;
|
||||
+ public boolean isDefault;
|
||||
|
||||
public WifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon,
|
||||
boolean activityIn, boolean activityOut, String description,
|
||||
- boolean isTransient, String statusLabel) {
|
||||
+ boolean isTransient, String statusLabel, boolean isDefault) {
|
||||
this.enabled = enabled;
|
||||
this.statusIcon = statusIcon;
|
||||
this.qsIcon = qsIcon;
|
||||
@@ -71,6 +72,7 @@ public interface NetworkController extends CallbackController<SignalCallback>, D
|
||||
this.description = description;
|
||||
this.isTransient = isTransient;
|
||||
this.statusLabel = statusLabel;
|
||||
+ this.isDefault = isDefault;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -84,6 +86,7 @@ public interface NetworkController extends CallbackController<SignalCallback>, D
|
||||
.append(",description=").append(description)
|
||||
.append(",isTransient=").append(isTransient)
|
||||
.append(",statusLabel=").append(statusLabel)
|
||||
+ .append(",isDefault=").append(isDefault)
|
||||
.append(']').toString();
|
||||
}
|
||||
}
|
||||
@@ -105,12 +108,13 @@ public interface NetworkController extends CallbackController<SignalCallback>, D
|
||||
public int subId;
|
||||
public boolean roaming;
|
||||
public boolean showTriangle;
|
||||
+ public boolean isDefault;
|
||||
|
||||
public MobileDataIndicators(IconState statusIcon, IconState qsIcon, int statusType,
|
||||
int qsType, boolean activityIn, boolean activityOut,
|
||||
CharSequence typeContentDescription, CharSequence typeContentDescriptionHtml,
|
||||
CharSequence description, boolean isWide, int subId, boolean roaming,
|
||||
- boolean showTriangle) {
|
||||
+ boolean showTriangle, boolean isDefault) {
|
||||
this.statusIcon = statusIcon;
|
||||
this.qsIcon = qsIcon;
|
||||
this.statusType = statusType;
|
||||
@@ -124,6 +128,7 @@ public interface NetworkController extends CallbackController<SignalCallback>, D
|
||||
this.subId = subId;
|
||||
this.roaming = roaming;
|
||||
this.showTriangle = showTriangle;
|
||||
+ this.isDefault = isDefault;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -142,6 +147,7 @@ public interface NetworkController extends CallbackController<SignalCallback>, D
|
||||
.append(",subId=").append(subId)
|
||||
.append(",roaming=").append(roaming)
|
||||
.append(",showTriangle=").append(showTriangle)
|
||||
+ .append(",isDefault=").append(isDefault)
|
||||
.append(']').toString();
|
||||
}
|
||||
}
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
|
||||
index f8e36476c4a6..1513544eb22b 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
|
||||
@@ -112,37 +112,21 @@ public class WifiSignalController extends
|
||||
if (mCurrentState.inetCondition == 0) {
|
||||
contentDescription += ("," + mContext.getString(R.string.data_connection_no_internet));
|
||||
}
|
||||
- if (mProviderModelSetting) {
|
||||
- IconState statusIcon = new IconState(
|
||||
- wifiVisible, getCurrentIconId(), contentDescription);
|
||||
- IconState qsIcon = null;
|
||||
- if (mCurrentState.isDefault || (!mNetworkController.isRadioOn()
|
||||
- && !mNetworkController.isEthernetDefault())) {
|
||||
- qsIcon = new IconState(mCurrentState.connected,
|
||||
- mWifiTracker.isCaptivePortal ? R.drawable.ic_qs_wifi_disconnected
|
||||
- : getQsCurrentIconId(), contentDescription);
|
||||
- }
|
||||
- WifiIndicators wifiIndicators = new WifiIndicators(
|
||||
- mCurrentState.enabled, statusIcon, qsIcon,
|
||||
- ssidPresent && mCurrentState.activityIn,
|
||||
- ssidPresent && mCurrentState.activityOut,
|
||||
- wifiDesc, mCurrentState.isTransient, mCurrentState.statusLabel
|
||||
- );
|
||||
- callback.setWifiIndicators(wifiIndicators);
|
||||
- } else {
|
||||
- IconState statusIcon = new IconState(
|
||||
- wifiVisible, getCurrentIconId(), contentDescription);
|
||||
- IconState qsIcon = new IconState(mCurrentState.connected,
|
||||
- mWifiTracker.isCaptivePortal ? R.drawable.ic_qs_wifi_disconnected
|
||||
- : getQsCurrentIconId(), contentDescription);
|
||||
- WifiIndicators wifiIndicators = new WifiIndicators(
|
||||
- mCurrentState.enabled, statusIcon, qsIcon,
|
||||
- ssidPresent && mCurrentState.activityIn,
|
||||
- ssidPresent && mCurrentState.activityOut,
|
||||
- wifiDesc, mCurrentState.isTransient, mCurrentState.statusLabel
|
||||
- );
|
||||
- callback.setWifiIndicators(wifiIndicators);
|
||||
- }
|
||||
+ IconState statusIcon = new IconState(
|
||||
+ wifiVisible, getCurrentIconId(), contentDescription);
|
||||
+ IconState qsIcon = new IconState(mCurrentState.connected,
|
||||
+ mWifiTracker.isCaptivePortal ? R.drawable.ic_qs_wifi_disconnected
|
||||
+ : getQsCurrentIconId(), contentDescription);
|
||||
+ boolean isDefault = mCurrentState.isDefault ||
|
||||
+ (!mNetworkController.isRadioOn() && !mNetworkController.isEthernetDefault());
|
||||
+ WifiIndicators wifiIndicators = new WifiIndicators(
|
||||
+ mCurrentState.enabled, statusIcon, qsIcon,
|
||||
+ ssidPresent && mCurrentState.activityIn,
|
||||
+ ssidPresent && mCurrentState.activityOut,
|
||||
+ wifiDesc, mCurrentState.isTransient, mCurrentState.statusLabel,
|
||||
+ isDefault
|
||||
+ );
|
||||
+ callback.setWifiIndicators(wifiIndicators);
|
||||
}
|
||||
|
||||
private void notifyListenersForCarrierWifi(SignalCallback callback) {
|
||||
@@ -173,7 +157,8 @@ public class WifiSignalController extends
|
||||
statusIcon, qsIcon, typeIcon, qsTypeIcon,
|
||||
mCurrentState.activityIn, mCurrentState.activityOut, dataContentDescription,
|
||||
dataContentDescriptionHtml, description, icons.isWide,
|
||||
- mCurrentState.subId, /* roaming= */ false, /* showTriangle= */ true
|
||||
+ mCurrentState.subId, /* roaming= */ false, /* showTriangle= */ true,
|
||||
+ /* isDefault= */ qsIcon != null
|
||||
);
|
||||
callback.setMobileDataIndicators(mobileDataIndicators);
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,26 @@
|
||||
From 95ef97f5aa82c15e47f9313eca4899d89dba5dd0 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Wed, 4 Jul 2018 17:59:14 +0800
|
||||
Subject: [PATCH] sdk: Invert per-app stretch-to-fullscreen implementation
|
||||
|
||||
Change-Id: Idf7dab4e1e0c79953fa672f33ec65fecffb37c83
|
||||
---
|
||||
sdk/src/java/org/lineageos/internal/applications/LongScreen.java | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sdk/src/java/org/lineageos/internal/applications/LongScreen.java b/sdk/src/java/org/lineageos/internal/applications/LongScreen.java
|
||||
index 7fe0d68..26ea349 100644
|
||||
--- a/sdk/src/java/org/lineageos/internal/applications/LongScreen.java
|
||||
+++ b/sdk/src/java/org/lineageos/internal/applications/LongScreen.java
|
||||
@@ -57,7 +57,7 @@ public class LongScreen {
|
||||
}
|
||||
|
||||
public boolean shouldForceLongScreen(String packageName) {
|
||||
- return isSupported() && mApps.contains(packageName);
|
||||
+ return isSupported() && !(mApps.contains(packageName));
|
||||
}
|
||||
|
||||
public Set<String> getApps() {
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,105 @@
|
||||
From 9fd08fb7ecb602afd3a5f1f19ccc1b20d1cbbe9c Mon Sep 17 00:00:00 2001
|
||||
From: AndyCGYan <GeForce8800Ultra@gmail.com>
|
||||
Date: Sun, 13 Jan 2019 21:44:48 +0800
|
||||
Subject: [PATCH] LineageParts: Invert per-app stretch-to-fullscreen
|
||||
|
||||
Change-Id: Icb02c8dfd84882f736e37d6cd92c35e5eb288faa
|
||||
---
|
||||
res/layout/long_screen_layout.xml | 2 +-
|
||||
res/values-zh-rCN/strings.xml | 6 +++---
|
||||
res/values/strings.xml | 6 +++---
|
||||
res/xml/long_screen_prefs.xml | 2 +-
|
||||
res/xml/parts_catalog.xml | 4 ++--
|
||||
.../lineageparts/applications/LongScreenSettings.java | 2 +-
|
||||
6 files changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/res/layout/long_screen_layout.xml b/res/layout/long_screen_layout.xml
|
||||
index 40d0938..1119cef 100644
|
||||
--- a/res/layout/long_screen_layout.xml
|
||||
+++ b/res/layout/long_screen_layout.xml
|
||||
@@ -36,7 +36,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
- android:text="@string/long_screen_settings_no_apps"
|
||||
+ android:text="@string/inverse_long_screen_settings_no_apps"
|
||||
android:textSize="18dp"
|
||||
android:visibility="gone" />
|
||||
|
||||
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
|
||||
index 37d129d..97600b8 100644
|
||||
--- a/res/values-zh-rCN/strings.xml
|
||||
+++ b/res/values-zh-rCN/strings.xml
|
||||
@@ -446,9 +446,9 @@
|
||||
<string name="auto_power_save_summary_on">电量 %s 时自动启用省电</string>
|
||||
<string name="auto_power_save_summary_off">不要自动启用省电</string>
|
||||
<string name="auto_power_save_never">永不</string>
|
||||
- <string name="long_screen_settings_title">全屏应用</string>
|
||||
- <string name="long_screen_settings_summary">强制旧式应用程序使用全屏长宽比</string>
|
||||
- <string name="long_screen_settings_no_apps">无应用</string>
|
||||
+ <string name="inverse_long_screen_settings_title">禁用拉伸全屏</string>
|
||||
+ <string name="inverse_long_screen_settings_summary">对选定的应用禁用拉伸全屏</string>
|
||||
+ <string name="inverse_long_screen_settings_no_apps">无应用</string>
|
||||
<string name="charging_sounds_settings_title">充电提示音</string>
|
||||
<string name="charging_sounds_enable_title">启用充电提示音</string>
|
||||
<string name="charging_sounds_summary">连接或断开电源时发出声音</string>
|
||||
diff --git a/res/values/strings.xml b/res/values/strings.xml
|
||||
index 8421fce..b9f140a 100644
|
||||
--- a/res/values/strings.xml
|
||||
+++ b/res/values/strings.xml
|
||||
@@ -575,9 +575,9 @@
|
||||
<string name="auto_power_save_never">Never</string>
|
||||
|
||||
<!-- Applications: Long screen -->
|
||||
- <string name="long_screen_settings_title">Full screen apps</string>
|
||||
- <string name="long_screen_settings_summary">Force legacy apps to use full screen aspect ratio</string>
|
||||
- <string name="long_screen_settings_no_apps">No apps</string>
|
||||
+ <string name="inverse_long_screen_settings_title">Disable stretch-to-fullscreen</string>
|
||||
+ <string name="inverse_long_screen_settings_summary">Prevent selected apps from utilizing stretch-to-fullscreen</string>
|
||||
+ <string name="inverse_long_screen_settings_no_apps">No apps</string>
|
||||
|
||||
<!-- Sounds: Charging sounds -->
|
||||
<string name="charging_sounds_settings_title">Charging sounds</string>
|
||||
diff --git a/res/xml/long_screen_prefs.xml b/res/xml/long_screen_prefs.xml
|
||||
index ec947fa..20da90a 100644
|
||||
--- a/res/xml/long_screen_prefs.xml
|
||||
+++ b/res/xml/long_screen_prefs.xml
|
||||
@@ -18,6 +18,6 @@
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:lineage="http://schemas.android.com/apk/res/org.lineageos.lineageparts"
|
||||
android:key="long_screen_settings"
|
||||
- android:title="@string/long_screen_settings_title">
|
||||
+ android:title="@string/inverse_long_screen_settings_title">
|
||||
|
||||
</PreferenceScreen>
|
||||
diff --git a/res/xml/parts_catalog.xml b/res/xml/parts_catalog.xml
|
||||
index 2d8dca7..1e6ace4 100644
|
||||
--- a/res/xml/parts_catalog.xml
|
||||
+++ b/res/xml/parts_catalog.xml
|
||||
@@ -87,8 +87,8 @@
|
||||
lineage:xmlRes="@xml/perf_profile_settings" />
|
||||
|
||||
<part android:key="long_screen_settings"
|
||||
- android:title="@string/long_screen_settings_title"
|
||||
- android:summary="@string/long_screen_settings_summary"
|
||||
+ android:title="@string/inverse_long_screen_settings_title"
|
||||
+ android:summary="@string/inverse_long_screen_settings_summary"
|
||||
android:fragment="org.lineageos.lineageparts.applications.LongScreenSettings"
|
||||
lineage:xmlRes="@xml/long_screen_prefs" />
|
||||
|
||||
diff --git a/src/org/lineageos/lineageparts/applications/LongScreenSettings.java b/src/org/lineageos/lineageparts/applications/LongScreenSettings.java
|
||||
index ac04058..50ff8f6 100644
|
||||
--- a/src/org/lineageos/lineageparts/applications/LongScreenSettings.java
|
||||
+++ b/src/org/lineageos/lineageparts/applications/LongScreenSettings.java
|
||||
@@ -246,7 +246,7 @@ public class LongScreenSettings extends SettingsPreferenceFragment
|
||||
mApplicationsState.ensureIcon(entry);
|
||||
holder.icon.setImageDrawable(entry.icon);
|
||||
holder.state.setTag(entry);
|
||||
- holder.state.setChecked(mLongScreen.shouldForceLongScreen(entry.info.packageName));
|
||||
+ holder.state.setChecked(!(mLongScreen.shouldForceLongScreen(entry.info.packageName)));
|
||||
return holder.rootView;
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,36 @@
|
||||
From 5786216ada9a7351acf816b126df7f428f80128b Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Thu, 13 Jan 2022 02:24:07 +0000
|
||||
Subject: [PATCH] [TEMP] LineageParts: Fix DisplayColor dialog
|
||||
|
||||
Change-Id: I5cc300037286d34f03f511d935d26361b029817a
|
||||
---
|
||||
.../lineageparts/livedisplay/DisplayColor.java | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/src/org/lineageos/lineageparts/livedisplay/DisplayColor.java b/src/org/lineageos/lineageparts/livedisplay/DisplayColor.java
|
||||
index a000ba9..334055a 100644
|
||||
--- a/src/org/lineageos/lineageparts/livedisplay/DisplayColor.java
|
||||
+++ b/src/org/lineageos/lineageparts/livedisplay/DisplayColor.java
|
||||
@@ -79,6 +79,18 @@ public class DisplayColor extends CustomDialogPreference<AlertDialog> {
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
}
|
||||
});
|
||||
+ builder.setNegativeButton(R.string.cancel,
|
||||
+ new DialogInterface.OnClickListener() {
|
||||
+ @Override
|
||||
+ public void onClick(DialogInterface dialog, int which) {
|
||||
+ }
|
||||
+ });
|
||||
+ builder.setPositiveButton(R.string.dlg_ok,
|
||||
+ new DialogInterface.OnClickListener() {
|
||||
+ @Override
|
||||
+ public void onClick(DialogInterface dialog, int which) {
|
||||
+ }
|
||||
+ });
|
||||
}
|
||||
|
||||
@Override
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,28 +0,0 @@
|
||||
From 6e0b68e9e9da6bcb33eac9e91402a9479419bb86 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Tue, 26 Oct 2021 08:03:39 +0000
|
||||
Subject: [PATCH] Settings: Hack in LiveDisplay entrypoint
|
||||
|
||||
Change-Id: Icec153e3d9203bba8bb5b000ecf537397058b349
|
||||
---
|
||||
res/xml/display_settings.xml | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
|
||||
index 7bd370816e..9cf7afe0a5 100644
|
||||
--- a/res/xml/display_settings.xml
|
||||
+++ b/res/xml/display_settings.xml
|
||||
@@ -86,6 +86,10 @@
|
||||
<PreferenceCategory
|
||||
android:title="@string/category_name_color">
|
||||
|
||||
+ <org.lineageos.internal.lineageparts.LineagePartsPreference
|
||||
+ android:key="livedisplay"
|
||||
+ lineage:requiresConfig="@*lineageos.platform:bool/config_enableLiveDisplay" />
|
||||
+
|
||||
<com.android.settings.widget.PrimarySwitchPreference
|
||||
android:key="night_display"
|
||||
android:title="@string/night_display_title"
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 72efb86a4e4e42b9d20c8d8ac30beb6471f96ad2 Mon Sep 17 00:00:00 2001
|
||||
From d72fc12143501bfa376db5fd888b9115e0c279e7 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Wed, 27 Oct 2021 14:38:37 +0000
|
||||
Subject: [PATCH 01/16] Add LineageMonetAccentOverlay
|
||||
@ -17,7 +17,7 @@ Change-Id: Ib93b2bc68a08dfe12a7c3f503dcc62cce098b459
|
||||
create mode 100644 packages/overlays/LineageMonetAccentOverlay/res/values/config.xml
|
||||
|
||||
diff --git a/packages/overlays/Android.mk b/packages/overlays/Android.mk
|
||||
index 928892c60e47..d90aae92e1c5 100644
|
||||
index 3a114bc8ec79..15c55d3d588e 100644
|
||||
--- a/packages/overlays/Android.mk
|
||||
+++ b/packages/overlays/Android.mk
|
||||
@@ -26,6 +26,7 @@ LOCAL_REQUIRED_MODULES := \
|
||||
|
@ -1,11 +1,11 @@
|
||||
From 131d58227278ec7d36fe16223335368d4674ce46 Mon Sep 17 00:00:00 2001
|
||||
From 9b99205d455b3628d4ab017c77649e116fff182a Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Sun, 20 Jun 2021 03:39:32 +0000
|
||||
Subject: [PATCH 02/16] Add MiuiNavbarOverlay
|
||||
|
||||
Change-Id: I0e6791abc3c9521d7dc612df2fec2b041affe7e9
|
||||
---
|
||||
packages/overlays/Android.mk | 3 +-
|
||||
packages/overlays/Android.mk | 1 +
|
||||
.../overlays/MiuiNavbarOverlay/Android.bp | 28 ++++++++++++++++++
|
||||
.../MiuiNavbarOverlay/AndroidManifest.xml | 22 ++++++++++++++
|
||||
.../res/drawable-440dpi-v4/ic_sysbar_back.png | Bin 0 -> 2756 bytes
|
||||
@ -16,7 +16,7 @@ Change-Id: I0e6791abc3c9521d7dc612df2fec2b041affe7e9
|
||||
.../ic_sysbar_home_darkmode.png | Bin 0 -> 980 bytes
|
||||
.../drawable-440dpi-v4/ic_sysbar_recent.png | Bin 0 -> 278 bytes
|
||||
.../ic_sysbar_recent_darkmode.png | Bin 0 -> 205 bytes
|
||||
11 files changed, 52 insertions(+), 1 deletion(-)
|
||||
11 files changed, 51 insertions(+)
|
||||
create mode 100644 packages/overlays/MiuiNavbarOverlay/Android.bp
|
||||
create mode 100644 packages/overlays/MiuiNavbarOverlay/AndroidManifest.xml
|
||||
create mode 100644 packages/overlays/MiuiNavbarOverlay/res/drawable-440dpi-v4/ic_sysbar_back.png
|
||||
@ -29,10 +29,10 @@ Change-Id: I0e6791abc3c9521d7dc612df2fec2b041affe7e9
|
||||
create mode 100644 packages/overlays/MiuiNavbarOverlay/res/drawable-440dpi-v4/ic_sysbar_recent_darkmode.png
|
||||
|
||||
diff --git a/packages/overlays/Android.mk b/packages/overlays/Android.mk
|
||||
index d90aae92e1c5..2e53fed86f15 100644
|
||||
index 15c55d3d588e..ff20a7a30092 100644
|
||||
--- a/packages/overlays/Android.mk
|
||||
+++ b/packages/overlays/Android.mk
|
||||
@@ -27,12 +27,13 @@ LOCAL_REQUIRED_MODULES := \
|
||||
@@ -27,6 +27,7 @@ LOCAL_REQUIRED_MODULES := \
|
||||
DisplayCutoutEmulationWaterfallOverlay \
|
||||
FontNotoSerifSourceOverlay \
|
||||
LineageMonetAccentOverlay \
|
||||
@ -40,13 +40,6 @@ index d90aae92e1c5..2e53fed86f15 100644
|
||||
NavigationBarMode3ButtonOverlay \
|
||||
NavigationBarModeGesturalOverlay \
|
||||
NavigationBarModeGesturalOverlayNarrowBack \
|
||||
NavigationBarModeGesturalOverlayWideBack \
|
||||
NavigationBarModeGesturalOverlayExtraWideBack \
|
||||
- OneHandedModeGesturalOverlay \
|
||||
+ OneHandedModeGesturalOverlay \
|
||||
preinstalled-packages-platform-overlays.xml
|
||||
|
||||
include $(BUILD_PHONY_PACKAGE)
|
||||
diff --git a/packages/overlays/MiuiNavbarOverlay/Android.bp b/packages/overlays/MiuiNavbarOverlay/Android.bp
|
||||
new file mode 100644
|
||||
index 000000000000..fc724fb7a686
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 98145d7967512d9e294c9eaf5b4782efd34a1f8d Mon Sep 17 00:00:00 2001
|
||||
From a18c07c4fa6a3a3e776b40b13c1e666958fa0549 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Mon, 27 Sep 2021 16:30:00 +0000
|
||||
Subject: [PATCH 03/16] Disable cursor drag by default for editable TextViews
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 54dcd5497db5593a77aa8c6eacf6b6ed693338cb Mon Sep 17 00:00:00 2001
|
||||
From 6b4d66980ecb2a61e959bf256ae3f72ec448945e Mon Sep 17 00:00:00 2001
|
||||
From: AndyCGYan <GeForce8800Ultra@gmail.com>
|
||||
Date: Fri, 22 Mar 2019 00:41:20 +0800
|
||||
Subject: [PATCH 04/16] Disable FP lockouts
|
||||
|
@ -1,4 +1,4 @@
|
||||
From ae4b40705428d23abf321050a64e7793c591ae2b Mon Sep 17 00:00:00 2001
|
||||
From 80f4784fd42852d15b2bf815e8f068bc5c4977dd Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Thu, 2 Sep 2021 16:15:19 +0000
|
||||
Subject: [PATCH 05/16] Keyguard: Adjust clock style
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 2f8ba4aa72d1c8941f1f6060a0c3a11b179d9447 Mon Sep 17 00:00:00 2001
|
||||
From cd9ff5604ed0420eb6e4317370a22293a40f2800 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Sat, 2 Nov 2019 06:41:03 +0000
|
||||
Subject: [PATCH 06/16] Keyguard: Hide padlock unless UDFPS is in use
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9e81c9791a5c6fae799bf8d916ed70b62ea23f13 Mon Sep 17 00:00:00 2001
|
||||
From 87bc53364912c939e19465304593cf7f03b96b54 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Wed, 1 Sep 2021 14:41:53 +0000
|
||||
Subject: [PATCH 07/16] Keyguard: Never switch to large clock
|
||||
|
@ -1,4 +1,4 @@
|
||||
From adc13dccc4a4a1f0c59f6d53630d8cd48210b7de Mon Sep 17 00:00:00 2001
|
||||
From ce11b93da782f5bd95c0f5c7ce02aa6ace01e6eb Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Sat, 2 Nov 2019 08:31:36 +0000
|
||||
Subject: [PATCH 08/16] Keyguard: Refine indication text
|
||||
@ -39,7 +39,7 @@ index 8dbd59d42ab7..68cba51e07fa 100644
|
||||
android:paddingEnd="@dimen/keyguard_indication_text_padding"
|
||||
android:textAppearance="@style/TextAppearance.Keyguard.BottomArea"
|
||||
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
|
||||
index c231afc41953..1485f3a936ca 100644
|
||||
index 5d4e4a6ad3c4..cd11fb7d81ac 100644
|
||||
--- a/packages/SystemUI/res/values/dimens.xml
|
||||
+++ b/packages/SystemUI/res/values/dimens.xml
|
||||
@@ -920,7 +920,7 @@
|
||||
|
@ -1,4 +1,4 @@
|
||||
From c7a8da0bbddfb96af36f8c62caef774a027ed4a0 Mon Sep 17 00:00:00 2001
|
||||
From 3ead32747cd79901a272ed399e88ce957370f0e0 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Sat, 20 Mar 2021 10:35:14 +0000
|
||||
Subject: [PATCH 09/16] Keyguard/UI: Fix status bar / quick settings margins
|
||||
@ -136,7 +136,7 @@ index 0a34dfd71c7e..3d590d752a7b 100644
|
||||
<dimen name="screen_pinning_request_width">400dp</dimen>
|
||||
<!-- Screen pinning request bottom button circle widths -->
|
||||
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
|
||||
index 1485f3a936ca..b3941ff7f82b 100644
|
||||
index cd11fb7d81ac..786b21f7595a 100644
|
||||
--- a/packages/SystemUI/res/values/dimens.xml
|
||||
+++ b/packages/SystemUI/res/values/dimens.xml
|
||||
@@ -449,7 +449,7 @@
|
||||
@ -167,10 +167,10 @@ index 1485f3a936ca..b3941ff7f82b 100644
|
||||
<!-- Additional translation (downwards) for appearing notifications when going to the full shade
|
||||
from Keyguard. -->
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
|
||||
index a5150000f47c..8ef433c7af17 100644
|
||||
index 3478ec463573..386b4e007a90 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
|
||||
@@ -88,6 +88,10 @@ public class QuickStatusBarHeader extends FrameLayout {
|
||||
@@ -91,6 +91,10 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu
|
||||
private QSExpansionPathInterpolator mQSExpansionPathInterpolator;
|
||||
|
||||
private int mRoundedCornerPadding = 0;
|
||||
@ -181,7 +181,7 @@ index a5150000f47c..8ef433c7af17 100644
|
||||
private int mWaterfallTopInset;
|
||||
private int mCutOutPaddingLeft;
|
||||
private int mCutOutPaddingRight;
|
||||
@@ -99,6 +103,8 @@ public class QuickStatusBarHeader extends FrameLayout {
|
||||
@@ -102,6 +106,8 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu
|
||||
private List<String> mRssiIgnoredSlots;
|
||||
private boolean mIsSingleCarrier;
|
||||
|
||||
@ -190,7 +190,7 @@ index a5150000f47c..8ef433c7af17 100644
|
||||
private boolean mHasCenterCutout;
|
||||
private boolean mConfigShowBatteryEstimate;
|
||||
|
||||
@@ -240,6 +246,11 @@ public class QuickStatusBarHeader extends FrameLayout {
|
||||
@@ -244,6 +250,11 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu
|
||||
mRoundedCornerPadding = resources.getDimensionPixelSize(
|
||||
R.dimen.rounded_corner_content_padding);
|
||||
|
||||
@ -202,7 +202,7 @@ index a5150000f47c..8ef433c7af17 100644
|
||||
int qsOffsetHeight = resources.getDimensionPixelSize(
|
||||
com.android.internal.R.dimen.quick_qs_offset_height);
|
||||
|
||||
@@ -320,6 +331,9 @@ public class QuickStatusBarHeader extends FrameLayout {
|
||||
@@ -324,6 +335,9 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu
|
||||
.addFloat(mDateView, "alpha", 0, 0, 1)
|
||||
.addFloat(mClockDateView, "alpha", 1, 0, 0)
|
||||
.addFloat(mQSCarriers, "alpha", 0, 1)
|
||||
@ -212,7 +212,7 @@ index a5150000f47c..8ef433c7af17 100644
|
||||
.setListener(new TouchAnimator.ListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationAtEnd() {
|
||||
@@ -426,8 +440,6 @@ public class QuickStatusBarHeader extends FrameLayout {
|
||||
@@ -430,8 +444,6 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu
|
||||
Pair<Integer, Integer> padding =
|
||||
StatusBarWindowView.paddingNeededForCutoutAndRoundedCorner(
|
||||
cutout, cornerCutoutPadding, -1);
|
||||
@ -221,7 +221,7 @@ index a5150000f47c..8ef433c7af17 100644
|
||||
LinearLayout.LayoutParams datePrivacySeparatorLayoutParams =
|
||||
(LinearLayout.LayoutParams) mDatePrivacySeparator.getLayoutParams();
|
||||
LinearLayout.LayoutParams mClockIconsSeparatorLayoutParams =
|
||||
@@ -442,6 +454,12 @@ public class QuickStatusBarHeader extends FrameLayout {
|
||||
@@ -446,6 +458,12 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu
|
||||
mClockIconsSeparatorLayoutParams.width = 0;
|
||||
setSeparatorVisibility(false);
|
||||
mShowClockIconsSeparator = false;
|
||||
@ -234,7 +234,7 @@ index a5150000f47c..8ef433c7af17 100644
|
||||
mHasCenterCutout = false;
|
||||
} else {
|
||||
datePrivacySeparatorLayoutParams.width = topCutout.width();
|
||||
@@ -449,6 +467,8 @@ public class QuickStatusBarHeader extends FrameLayout {
|
||||
@@ -453,6 +471,8 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu
|
||||
mClockIconsSeparatorLayoutParams.width = topCutout.width();
|
||||
mShowClockIconsSeparator = true;
|
||||
setSeparatorVisibility(mKeyguardExpansionFraction == 0f);
|
||||
@ -243,7 +243,7 @@ index a5150000f47c..8ef433c7af17 100644
|
||||
mHasCenterCutout = true;
|
||||
}
|
||||
}
|
||||
@@ -493,34 +513,37 @@ public class QuickStatusBarHeader extends FrameLayout {
|
||||
@@ -497,34 +517,37 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu
|
||||
private void updateHeadersPadding() {
|
||||
setContentMargins(mDatePrivacyView, 0, 0);
|
||||
setContentMargins(mClockIconsView, 0, 0);
|
||||
@ -299,10 +299,10 @@ index a5150000f47c..8ef433c7af17 100644
|
||||
}
|
||||
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
|
||||
index 7b4dc47a7b48..f3cd8daf8d03 100644
|
||||
index efc02548763a..ce5719c674dd 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
|
||||
@@ -165,14 +165,7 @@ public class KeyguardStatusBarView extends RelativeLayout implements
|
||||
@@ -164,14 +164,7 @@ public class KeyguardStatusBarView extends RelativeLayout implements
|
||||
mCarrierLabel.setTextSize(TypedValue.COMPLEX_UNIT_PX,
|
||||
getResources().getDimensionPixelSize(
|
||||
com.android.internal.R.dimen.text_size_small_material));
|
||||
|
@ -1,21 +1,76 @@
|
||||
From 083ce1f8d7cd3baa0aa97940b2d53d0b65ced059 Mon Sep 17 00:00:00 2001
|
||||
From 9fa5b43574c485faebf2806584f82311fa220b16 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Tue, 19 Oct 2021 12:11:24 +0000
|
||||
Subject: [PATCH 10/16] Revert "monet: Add support for monet (cam16)"
|
||||
|
||||
This reverts commit f4460c9cb0494ddcc1829b05298d140fa1afc526.
|
||||
|
||||
Change-Id: I94ca83b2c147a32afeb4fbddbc5d6dbcfd804199
|
||||
---
|
||||
packages/SystemUI/Android.bp | 2 -
|
||||
packages/SystemUI/monet/Android.bp | 12 --
|
||||
packages/SystemUI/monet/AndroidManifest.xml | 4 -
|
||||
.../com/android/systemui/monet/ColorScheme.kt | 168 ------------------
|
||||
.../com/android/systemui/monet/Shades.java | 19 --
|
||||
.../theme/ThemeOverlayController.java | 55 ++----
|
||||
3 files changed, 10 insertions(+), 232 deletions(-)
|
||||
delete mode 100644 packages/SystemUI/src/com/android/systemui/monet/ColorScheme.kt
|
||||
delete mode 100644 packages/SystemUI/src/com/android/systemui/monet/Shades.java
|
||||
.../theme/ThemeOverlayController.java | 56 ++----
|
||||
6 files changed, 10 insertions(+), 251 deletions(-)
|
||||
delete mode 100644 packages/SystemUI/monet/Android.bp
|
||||
delete mode 100644 packages/SystemUI/monet/AndroidManifest.xml
|
||||
delete mode 100644 packages/SystemUI/monet/src/com/android/systemui/monet/ColorScheme.kt
|
||||
delete mode 100644 packages/SystemUI/monet/src/com/android/systemui/monet/Shades.java
|
||||
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/monet/ColorScheme.kt b/packages/SystemUI/src/com/android/systemui/monet/ColorScheme.kt
|
||||
diff --git a/packages/SystemUI/Android.bp b/packages/SystemUI/Android.bp
|
||||
index e677b10295f6..e86486dbc6bc 100644
|
||||
--- a/packages/SystemUI/Android.bp
|
||||
+++ b/packages/SystemUI/Android.bp
|
||||
@@ -97,7 +97,6 @@ android_library {
|
||||
"lottie",
|
||||
"org.lineageos.platform.internal",
|
||||
"vendor.lineage.powershare-V1.0-java",
|
||||
- "monet",
|
||||
],
|
||||
manifest: "AndroidManifest.xml",
|
||||
additional_manifests: ["LineageManifest.xml"],
|
||||
@@ -188,7 +187,6 @@ android_library {
|
||||
"WindowManager-Shell",
|
||||
"org.lineageos.platform.internal",
|
||||
"vendor.lineage.powershare-V1.0-java",
|
||||
- "monet",
|
||||
],
|
||||
libs: [
|
||||
"android.test.runner",
|
||||
diff --git a/packages/SystemUI/monet/Android.bp b/packages/SystemUI/monet/Android.bp
|
||||
deleted file mode 100644
|
||||
index 42563765b077..000000000000
|
||||
--- a/packages/SystemUI/monet/Android.bp
|
||||
+++ /dev/null
|
||||
@@ -1,12 +0,0 @@
|
||||
-java_library {
|
||||
- name: "monet",
|
||||
- platform_apis: true,
|
||||
- static_libs: [
|
||||
- "androidx.annotation_annotation",
|
||||
- "androidx.core_core",
|
||||
- ],
|
||||
- srcs: [
|
||||
- "src/**/*.java",
|
||||
- "src/**/*.kt",
|
||||
- ],
|
||||
-}
|
||||
diff --git a/packages/SystemUI/monet/AndroidManifest.xml b/packages/SystemUI/monet/AndroidManifest.xml
|
||||
deleted file mode 100644
|
||||
index 37f0050ee949..000000000000
|
||||
--- a/packages/SystemUI/monet/AndroidManifest.xml
|
||||
+++ /dev/null
|
||||
@@ -1,4 +0,0 @@
|
||||
-<?xml version="1.0" encoding="utf-8"?>
|
||||
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
- package="com.android.systemui.monet">
|
||||
-</manifest>
|
||||
diff --git a/packages/SystemUI/monet/src/com/android/systemui/monet/ColorScheme.kt b/packages/SystemUI/monet/src/com/android/systemui/monet/ColorScheme.kt
|
||||
deleted file mode 100644
|
||||
index 56a9c805ca81..000000000000
|
||||
--- a/packages/SystemUI/src/com/android/systemui/monet/ColorScheme.kt
|
||||
--- a/packages/SystemUI/monet/src/com/android/systemui/monet/ColorScheme.kt
|
||||
+++ /dev/null
|
||||
@@ -1,168 +0,0 @@
|
||||
-package com.android.systemui.monet
|
||||
@ -186,10 +241,10 @@ index 56a9c805ca81..000000000000
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/monet/Shades.java b/packages/SystemUI/src/com/android/systemui/monet/Shades.java
|
||||
diff --git a/packages/SystemUI/monet/src/com/android/systemui/monet/Shades.java b/packages/SystemUI/monet/src/com/android/systemui/monet/Shades.java
|
||||
deleted file mode 100644
|
||||
index 5ab00a1afcb4..000000000000
|
||||
--- a/packages/SystemUI/src/com/android/systemui/monet/Shades.java
|
||||
--- a/packages/SystemUI/monet/src/com/android/systemui/monet/Shades.java
|
||||
+++ /dev/null
|
||||
@@ -1,19 +0,0 @@
|
||||
-package com.android.systemui.monet;
|
||||
@ -212,7 +267,7 @@ index 5ab00a1afcb4..000000000000
|
||||
- }
|
||||
-}
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java b/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java
|
||||
index 7cd3ae1f8062..81999b534046 100644
|
||||
index 1e35c9e51150..81999b534046 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java
|
||||
@@ -37,7 +37,6 @@ import android.content.IntentFilter;
|
||||
@ -235,14 +290,14 @@ index 7cd3ae1f8062..81999b534046 100644
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.SystemUI;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
@@ -62,7 +59,6 @@ import com.android.systemui.dagger.qualifiers.Main;
|
||||
@@ -61,7 +58,6 @@ import com.android.systemui.dagger.qualifiers.Background;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.keyguard.WakefulnessLifecycle;
|
||||
import com.android.systemui.settings.UserTracker;
|
||||
-import com.android.systemui.monet.ColorScheme;
|
||||
import com.android.systemui.settings.UserTracker;
|
||||
import com.android.systemui.statusbar.FeatureFlags;
|
||||
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
|
||||
import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener;
|
||||
@@ -75,7 +71,6 @@ import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Collection;
|
||||
@ -251,7 +306,7 @@ index 7cd3ae1f8062..81999b534046 100644
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.Executor;
|
||||
@@ -408,55 +403,25 @@ public class ThemeOverlayController extends SystemUI implements Dumpable {
|
||||
@@ -408,56 +403,25 @@ public class ThemeOverlayController extends SystemUI implements Dumpable {
|
||||
* Return the main theme color from a given {@link WallpaperColors} instance.
|
||||
*/
|
||||
protected int getNeutralColor(@NonNull WallpaperColors wallpaperColors) {
|
||||
@ -293,19 +348,20 @@ index 7cd3ae1f8062..81999b534046 100644
|
||||
- }
|
||||
-
|
||||
- int size = colorScheme.getAccent1().size();
|
||||
- FabricatedOverlay.Builder builder = new FabricatedOverlay.Builder(mContext.getPackageName(), name, "android");
|
||||
- FabricatedOverlay.Builder builder =
|
||||
- new FabricatedOverlay.Builder(mContext.getPackageName(), name, "android");
|
||||
-
|
||||
- for (int i = 0; i < colors.size(); i++) {
|
||||
- int lightness = i % size;
|
||||
- int shade = i / size + 1;
|
||||
-
|
||||
- String targetResource;
|
||||
- String targetResource = "android:color/system_";
|
||||
- if (lightness == 0) {
|
||||
- targetResource = "android:color/system_" + name + shade + "_10";
|
||||
- targetResource += name + shade + "_10";
|
||||
- } else if (lightness == 1) {
|
||||
- targetResource = "android:color/system_" + name + shade + "_50";
|
||||
- targetResource += name + shade + "_50";
|
||||
- } else {
|
||||
- targetResource = "android:color/system_" + name + shade + "_" + (lightness - 1) + "00";
|
||||
- targetResource += name + shade + "_" + (lightness - 1) + "00";
|
||||
- }
|
||||
-
|
||||
- builder.setResourceValue(targetResource, TypedValue.TYPE_INT_COLOR_ARGB8,
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9acde8c9886310dbbfe63e7cd6f30d4656d66b72 Mon Sep 17 00:00:00 2001
|
||||
From a1a23648cb1a916a9a6da88d68a41a01f6eceb06 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Sun, 5 Sep 2021 01:20:12 +0000
|
||||
Subject: [PATCH 11/16] Revert "Update RAT icons to match Silk design"
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 2377ef0cd6f3fb4abd5038b84c5bf785035ce738 Mon Sep 17 00:00:00 2001
|
||||
From 1d8c1d751b1bb0b5d36a00eceec1308d6e83523d Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Wed, 7 Oct 2020 14:00:35 +0000
|
||||
Subject: [PATCH 12/16] UI: Always render windows into cutouts
|
||||
@ -55,10 +55,10 @@ index 32e43ca4e56c..18c28ae674f9 100644
|
||||
}
|
||||
|
||||
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
|
||||
index 10b36fe67daf..2a1817269446 100644
|
||||
index 41247363146d..554dea8efb33 100644
|
||||
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
|
||||
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
|
||||
@@ -1616,7 +1616,7 @@ public class DisplayPolicy {
|
||||
@@ -1655,7 +1655,7 @@ public class DisplayPolicy {
|
||||
pf.set((fl & FLAG_LAYOUT_IN_SCREEN) == 0 ? attached.getFrame() : df);
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From cb0906eadc39915aae89e82b32905fc1e3925359 Mon Sep 17 00:00:00 2001
|
||||
From e79fe0c08cb680f1c2855caa877acacdf0bdb3dd Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Wed, 1 Sep 2021 14:10:50 +0000
|
||||
Subject: [PATCH 13/16] UI: Kill rounded corners in notification scrim
|
||||
@ -11,7 +11,7 @@ Change-Id: I09ed59e0e658ebd512a9d02a8ef3edfe2c9888da
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
|
||||
index b3941ff7f82b..140043673612 100644
|
||||
index 786b21f7595a..7217156d8972 100644
|
||||
--- a/packages/SystemUI/res/values/dimens.xml
|
||||
+++ b/packages/SystemUI/res/values/dimens.xml
|
||||
@@ -757,7 +757,7 @@
|
||||
|
@ -1,4 +1,4 @@
|
||||
From f81da8f238f0ddf872ce900bade1783482bac0cb Mon Sep 17 00:00:00 2001
|
||||
From f0d1748dc95cb747329c816153d68954255be322 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Mon, 26 Oct 2020 14:06:56 +0000
|
||||
Subject: [PATCH 14/16] UI: Reconfigure power menu items
|
||||
@ -11,10 +11,10 @@ Change-Id: I32cca6e2c6bb64d891efee959127edf7c0802cbc
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
|
||||
index 1319c26bb1be..e294223c9066 100644
|
||||
index 3a62b51d3cbc..5e9c9988e946 100644
|
||||
--- a/core/res/res/values/config.xml
|
||||
+++ b/core/res/res/values/config.xml
|
||||
@@ -2961,13 +2961,8 @@
|
||||
@@ -2963,13 +2963,8 @@
|
||||
"logout" = Logout the current user
|
||||
-->
|
||||
<string-array translatable="false" name="config_globalActionsList">
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 48705c6c69f2f3f6c8e8005b3c9b50883fe178d4 Mon Sep 17 00:00:00 2001
|
||||
From ec1007b99324812eebc112d12f6f56666cd54cae Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Tue, 29 Jun 2021 22:57:01 +0000
|
||||
Subject: [PATCH 15/16] UI: Relax requirement for HINT_SUPPORTS_DARK_TEXT
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 934dfff90102f46f097c5912ab9994d6796d9c63 Mon Sep 17 00:00:00 2001
|
||||
From ac98eee7ee113a71ae05e00c23b14e94c3539f73 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Tue, 19 Oct 2021 12:09:34 +0000
|
||||
Subject: [PATCH 16/16] UI: Remove privacy dot padding
|
||||
@ -9,7 +9,7 @@ Change-Id: I5d2e2b3e36f027b4348a83030d4b4d3c4f0209d1
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
|
||||
index 140043673612..51d4ffbc2d49 100644
|
||||
index 7217156d8972..4354442fb51d 100644
|
||||
--- a/packages/SystemUI/res/values/dimens.xml
|
||||
+++ b/packages/SystemUI/res/values/dimens.xml
|
||||
@@ -1265,7 +1265,7 @@
|
||||
|
@ -0,0 +1,260 @@
|
||||
From 54374a8c7cdb6df7657090ff849cce25d051ee52 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Mon, 10 Jan 2022 04:44:58 +0000
|
||||
Subject: [PATCH] Revert "Implement LocalColorExtractor using monet theme
|
||||
engine"
|
||||
|
||||
This reverts commit 43594af5b025d2223f9eab97e9226541b2851419.
|
||||
---
|
||||
Android.bp | 1 -
|
||||
res/values/config.xml | 2 +-
|
||||
.../widget/LocalWallpaperColorsExtractor.java | 212 ------------------
|
||||
3 files changed, 1 insertion(+), 214 deletions(-)
|
||||
delete mode 100644 src/com/android/launcher3/widget/LocalWallpaperColorsExtractor.java
|
||||
|
||||
diff --git a/Android.bp b/Android.bp
|
||||
index 621eaf0a1e..f700dedf03 100644
|
||||
--- a/Android.bp
|
||||
+++ b/Android.bp
|
||||
@@ -122,7 +122,6 @@ android_library {
|
||||
"com.google.android.material_material",
|
||||
"iconloader_base",
|
||||
"libGoogleFeed",
|
||||
- "monet",
|
||||
],
|
||||
manifest: "AndroidManifest-common.xml",
|
||||
sdk_version: "current",
|
||||
diff --git a/res/values/config.xml b/res/values/config.xml
|
||||
index 95f94af904..0ac0f9c588 100644
|
||||
--- a/res/values/config.xml
|
||||
+++ b/res/values/config.xml
|
||||
@@ -87,7 +87,7 @@
|
||||
|
||||
<!-- Default packages -->
|
||||
<string name="wallpaper_picker_package" translatable="false"></string>
|
||||
- <string name="local_colors_extraction_class" translatable="false">com.android.launcher3.widget.LocalWallpaperColorsExtractor</string>
|
||||
+ <string name="local_colors_extraction_class" translatable="false"></string>
|
||||
|
||||
<!-- Accessibility actions -->
|
||||
<item type="id" name="action_remove" />
|
||||
diff --git a/src/com/android/launcher3/widget/LocalWallpaperColorsExtractor.java b/src/com/android/launcher3/widget/LocalWallpaperColorsExtractor.java
|
||||
deleted file mode 100644
|
||||
index 29d464826e..0000000000
|
||||
--- a/src/com/android/launcher3/widget/LocalWallpaperColorsExtractor.java
|
||||
+++ /dev/null
|
||||
@@ -1,212 +0,0 @@
|
||||
-package com.android.launcher3.widget;
|
||||
-
|
||||
-import android.app.WallpaperColors;
|
||||
-import android.app.WallpaperManager;
|
||||
-import android.content.Context;
|
||||
-import android.content.res.Configuration;
|
||||
-import android.content.res.Resources;
|
||||
-import android.graphics.Rect;
|
||||
-import android.graphics.RectF;
|
||||
-import android.util.SparseIntArray;
|
||||
-import android.view.View;
|
||||
-import android.widget.RemoteViews;
|
||||
-
|
||||
-import com.android.launcher3.DeviceProfile;
|
||||
-import com.android.launcher3.Launcher;
|
||||
-import com.android.launcher3.Utilities;
|
||||
-import com.android.launcher3.widget.LocalColorExtractor;
|
||||
-import com.android.systemui.monet.ColorScheme;
|
||||
-
|
||||
-import java.util.List;
|
||||
-
|
||||
-public class LocalWallpaperColorsExtractor extends LocalColorExtractor implements
|
||||
- WallpaperManager.LocalWallpaperColorConsumer {
|
||||
-
|
||||
- private final WallpaperManager wallpaperManager;
|
||||
- private Listener listener;
|
||||
- private Context mContext;
|
||||
-
|
||||
- // For calculating and returning bounds
|
||||
- private final float[] tempFloatArray = new float[4];
|
||||
- private final Rect tempRect = new Rect();
|
||||
- private final RectF tempRectF = new RectF();
|
||||
-
|
||||
- public static final int[] accent = {
|
||||
- android.R.color.system_accent1_10,
|
||||
- android.R.color.system_accent1_50,
|
||||
- android.R.color.system_accent1_100,
|
||||
- android.R.color.system_accent1_200,
|
||||
- android.R.color.system_accent1_300,
|
||||
- android.R.color.system_accent1_400,
|
||||
- android.R.color.system_accent1_500,
|
||||
- android.R.color.system_accent1_600,
|
||||
- android.R.color.system_accent1_700,
|
||||
- android.R.color.system_accent1_800,
|
||||
- android.R.color.system_accent1_900,
|
||||
- android.R.color.system_accent1_1000,
|
||||
- android.R.color.system_accent2_10,
|
||||
- android.R.color.system_accent2_50,
|
||||
- android.R.color.system_accent2_100,
|
||||
- android.R.color.system_accent2_200,
|
||||
- android.R.color.system_accent2_300,
|
||||
- android.R.color.system_accent2_400,
|
||||
- android.R.color.system_accent2_500,
|
||||
- android.R.color.system_accent2_600,
|
||||
- android.R.color.system_accent2_700,
|
||||
- android.R.color.system_accent2_800,
|
||||
- android.R.color.system_accent2_900,
|
||||
- android.R.color.system_accent2_1000,
|
||||
- android.R.color.system_accent3_10,
|
||||
- android.R.color.system_accent3_50,
|
||||
- android.R.color.system_accent3_100,
|
||||
- android.R.color.system_accent3_200,
|
||||
- android.R.color.system_accent3_300,
|
||||
- android.R.color.system_accent3_400,
|
||||
- android.R.color.system_accent3_500,
|
||||
- android.R.color.system_accent3_600,
|
||||
- android.R.color.system_accent3_700,
|
||||
- android.R.color.system_accent3_800,
|
||||
- android.R.color.system_accent3_900,
|
||||
- android.R.color.system_accent3_1000
|
||||
- };
|
||||
-
|
||||
- public static final int[] neutral = {
|
||||
- android.R.color.system_neutral1_10,
|
||||
- android.R.color.system_neutral1_50,
|
||||
- android.R.color.system_neutral1_100,
|
||||
- android.R.color.system_neutral1_200,
|
||||
- android.R.color.system_neutral1_300,
|
||||
- android.R.color.system_neutral1_400,
|
||||
- android.R.color.system_neutral1_500,
|
||||
- android.R.color.system_neutral1_600,
|
||||
- android.R.color.system_neutral1_700,
|
||||
- android.R.color.system_neutral1_800,
|
||||
- android.R.color.system_neutral1_900,
|
||||
- android.R.color.system_neutral1_1000,
|
||||
- android.R.color.system_neutral2_10,
|
||||
- android.R.color.system_neutral2_50,
|
||||
- android.R.color.system_neutral2_100,
|
||||
- android.R.color.system_neutral2_200,
|
||||
- android.R.color.system_neutral2_300,
|
||||
- android.R.color.system_neutral2_400,
|
||||
- android.R.color.system_neutral2_500,
|
||||
- android.R.color.system_neutral2_600,
|
||||
- android.R.color.system_neutral2_700,
|
||||
- android.R.color.system_neutral2_800,
|
||||
- android.R.color.system_neutral2_900,
|
||||
- android.R.color.system_neutral2_1000
|
||||
- };
|
||||
-
|
||||
- public LocalWallpaperColorsExtractor(Context context) {
|
||||
- mContext = context;
|
||||
- wallpaperManager = (WallpaperManager) context.getSystemService(Context.WALLPAPER_SERVICE);
|
||||
- }
|
||||
-
|
||||
- private static void addColorsToArray(List<Integer> list, int[] resArray, SparseIntArray array) {
|
||||
- for (int i = 0; i < resArray.length; i++) {
|
||||
- array.put(resArray[i], -16777216 | list.get(i));
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void setListener(Listener listener) {
|
||||
- this.listener = listener;
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void addLocation(List<RectF> locations) {
|
||||
- wallpaperManager.addOnColorsChangedListener(this, locations);
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void removeLocations() {
|
||||
- wallpaperManager.removeOnColorsChangedListener(this);
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public SparseIntArray generateColorsOverride(WallpaperColors colors) {
|
||||
- SparseIntArray colorRes = new SparseIntArray(5 * 13);
|
||||
- boolean nightMode = (mContext.getResources().getConfiguration().uiMode
|
||||
- & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES;
|
||||
-
|
||||
- ColorScheme colorScheme = new ColorScheme(ColorScheme.getSeedColor(colors), nightMode);
|
||||
-
|
||||
- addColorsToArray(colorScheme.getAllAccentColors(), accent, colorRes);
|
||||
- addColorsToArray(colorScheme.getAllNeutralColors(), neutral, colorRes);
|
||||
-
|
||||
- return colorRes;
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void applyColorsOverride(Context base, WallpaperColors colors) {
|
||||
- RemoteViews.ColorResources res =
|
||||
- RemoteViews.ColorResources.create(base, generateColorsOverride(colors));
|
||||
- if (res != null) {
|
||||
- res.apply(base);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void getExtractedRectForView(Launcher launcher, int pageId, View v,
|
||||
- RectF colorExtractionRectOut) {
|
||||
- Rect viewRect = tempRect;
|
||||
- viewRect.set(0, 0, v.getWidth(), v.getHeight());
|
||||
- Utilities.getBoundsForViewInDragLayer(launcher.getDragLayer(), v, viewRect, false,
|
||||
- tempFloatArray, tempRectF);
|
||||
- Utilities.setRect(tempRectF, viewRect);
|
||||
- getExtractedRectForViewRect(launcher, pageId, viewRect, colorExtractionRectOut);
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void getExtractedRectForViewRect(Launcher launcher, int pageId, Rect rectInDragLayer,
|
||||
- RectF colorExtractionRectOut) {
|
||||
- // If the view hasn't been measured and laid out, we cannot do this.
|
||||
- if (rectInDragLayer.isEmpty()) {
|
||||
- colorExtractionRectOut.setEmpty();
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- Resources res = launcher.getResources();
|
||||
- DeviceProfile dp = launcher.getDeviceProfile().inv.getDeviceProfile(launcher);
|
||||
- float screenWidth = dp.widthPx;
|
||||
- float screenHeight = dp.heightPx;
|
||||
- int numScreens = launcher.getWorkspace().getNumPagesForWallpaperParallax();
|
||||
- pageId = Utilities.isRtl(res) ? numScreens - pageId - 1 : pageId;
|
||||
- float relativeScreenWidth = 1f / numScreens;
|
||||
-
|
||||
- int[] dragLayerBounds = new int[2];
|
||||
- launcher.getDragLayer().getLocationOnScreen(dragLayerBounds);
|
||||
- // Translate from drag layer coordinates to screen coordinates.
|
||||
- int screenLeft = rectInDragLayer.left + dragLayerBounds[0];
|
||||
- int screenTop = rectInDragLayer.top + dragLayerBounds[1];
|
||||
- int screenRight = rectInDragLayer.right + dragLayerBounds[0];
|
||||
- int screenBottom = rectInDragLayer.bottom + dragLayerBounds[1];
|
||||
-
|
||||
- // This is the position of the view relative to the wallpaper, as expected by the
|
||||
- // local color extraction of the WallpaperManager.
|
||||
- // The coordinate system is such that, on the horizontal axis, each screen has a
|
||||
- // distinct range on the [0,1] segment. So if there are 3 screens, they will have the
|
||||
- // ranges [0, 1/3], [1/3, 2/3] and [2/3, 1]. The position on the subrange should be
|
||||
- // the position of the view relative to the screen. For the vertical axis, this is
|
||||
- // simply the location of the view relative to the screen.
|
||||
- // Translate from drag layer coordinates to screen coordinates
|
||||
- colorExtractionRectOut.left = (screenLeft / screenWidth + pageId) * relativeScreenWidth;
|
||||
- colorExtractionRectOut.right = (screenRight / screenWidth + pageId) * relativeScreenWidth;
|
||||
- colorExtractionRectOut.top = screenTop / screenHeight;
|
||||
- colorExtractionRectOut.bottom = screenBottom / screenHeight;
|
||||
-
|
||||
- if (colorExtractionRectOut.left < 0
|
||||
- || colorExtractionRectOut.right > 1
|
||||
- || colorExtractionRectOut.top < 0
|
||||
- || colorExtractionRectOut.bottom > 1) {
|
||||
- colorExtractionRectOut.setEmpty();
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void onColorsChanged(RectF area, WallpaperColors colors) {
|
||||
- if (listener != null) {
|
||||
- listener.onColorsChanged(area, generateColorsOverride(colors));
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 52882c890900516ce50dcd09d8f5de9d672191df Mon Sep 17 00:00:00 2001
|
||||
From d18f52a69d550666acab021aa3d6261c83cf9299 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Tue, 22 Jun 2021 13:38:31 +0000
|
||||
Subject: [PATCH 1/4] Add Meizu 18 vibrator support
|
||||
@ -27,12 +27,12 @@ Change-Id: Iecf12cd814e8773abfd78a19f98e31125a73761a
|
||||
create mode 100644 hal/meizu-vibrator/service.cpp
|
||||
|
||||
diff --git a/base.mk b/base.mk
|
||||
index 0bd6bf0..409bb1d 100644
|
||||
index a372603..a537411 100644
|
||||
--- a/base.mk
|
||||
+++ b/base.mk
|
||||
@@ -209,4 +209,7 @@ PRODUCT_PACKAGES += \
|
||||
PRODUCT_PACKAGES += \
|
||||
oplus-alert-slider
|
||||
@@ -218,4 +218,7 @@ PRODUCT_COPY_FILES += \
|
||||
device/phh/treble/proprietary-files/gome/fs16xx_01s_right.preset:system/phh/gome/fs16xx_01s_right.preset \
|
||||
device/phh/treble/proprietary-files/umidigi/fs16xx_01s_mono.preset:system/phh/umidigi/fs16xx_01s_mono.preset
|
||||
|
||||
+PRODUCT_PACKAGES += \
|
||||
+ android.hardware.vibrator@1.3-service.meizu
|
||||
|
@ -1,4 +1,4 @@
|
||||
From fd5e5139356c792a17328692a90abc6b2c40677e Mon Sep 17 00:00:00 2001
|
||||
From 0cca559de53a92eac0e6810ebed31967d70d4ca0 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Sun, 27 Jun 2021 05:21:38 +0000
|
||||
Subject: [PATCH 2/4] Only use meizu-vibrator on Meizu 18
|
||||
@ -76,10 +76,10 @@ index 0000000..b34a10b
|
||||
+<manifest version="1.0" type="framework">
|
||||
+</manifest>
|
||||
diff --git a/rw-system.sh b/rw-system.sh
|
||||
index a49e8f5..434be7c 100644
|
||||
index ee4df70..3ed1cdd 100644
|
||||
--- a/rw-system.sh
|
||||
+++ b/rw-system.sh
|
||||
@@ -325,6 +325,12 @@ if [ "$foundFingerprint" = false ];then
|
||||
@@ -356,6 +356,12 @@ if [ "$foundFingerprint" = false ];then
|
||||
mount -o bind system/phh/empty /system/etc/permissions/android.hardware.fingerprint.xml
|
||||
fi
|
||||
|
||||
@ -92,7 +92,7 @@ index a49e8f5..434be7c 100644
|
||||
if ! grep android.hardware.bluetooth /vendor/manifest.xml && ! grep android.hardware.bluetooth /vendor/etc/vintf/manifest.xml; then
|
||||
mount -o bind system/phh/empty /system/etc/permissions/android.hardware.bluetooth.xml
|
||||
mount -o bind system/phh/empty /system/etc/permissions/android.hardware.bluetooth_le.xml
|
||||
@@ -396,7 +402,7 @@ if getprop ro.build.overlay.deviceid |grep -q -e CPH1859 -e CPH1861 -e RMX1811 -
|
||||
@@ -427,7 +433,7 @@ if getprop ro.build.overlay.deviceid |grep -q -e CPH1859 -e CPH1861 -e RMX1811 -
|
||||
setprop persist.sys.qcom-brightness "$(cat /sys/class/leds/lcd-backlight/max_brightness)"
|
||||
fi
|
||||
|
||||
@ -101,7 +101,7 @@ index a49e8f5..434be7c 100644
|
||||
setprop persist.sys.qcom-brightness 2047
|
||||
setprop persist.sys.overlay.devinputjack true
|
||||
setprop persist.sys.phh.fingerprint.nocleanup true
|
||||
@@ -891,7 +897,7 @@ if getprop ro.build.overlay.deviceid |grep -qiE -e '^RMX' -e '^CPH';then
|
||||
@@ -940,7 +946,7 @@ if (getprop ro.vendor.build.fingerprint;getprop ro.odm.build.fingerprint) |grep
|
||||
setprop persist.sys.phh.fod.bbk true
|
||||
fi
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From dd31f491d59f77fe6451de89882d17d432cacdaf Mon Sep 17 00:00:00 2001
|
||||
From 0ff36ed6acdc7addbc61fff048b6f2b028f615c0 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Thu, 28 Oct 2021 01:51:27 +0000
|
||||
Subject: [PATCH 3/4] Revert "Include sim toolkit app"
|
||||
@ -11,10 +11,10 @@ Change-Id: I1eb7f4bb070eea649b4cea6280299e629d1edb3d
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/base.mk b/base.mk
|
||||
index 409bb1d..b8b078e 100644
|
||||
index a537411..bc5ba37 100644
|
||||
--- a/base.mk
|
||||
+++ b/base.mk
|
||||
@@ -156,9 +156,6 @@ PRODUCT_PACKAGES += \
|
||||
@@ -157,9 +157,6 @@ PRODUCT_PACKAGES += \
|
||||
xiaomi-motor \
|
||||
oneplus-motor
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 45739cc78ffe6af2124211ef108fef17bdc56baa Mon Sep 17 00:00:00 2001
|
||||
From dfb80c5cb89c33b2be845fec1cca084399a7f71f Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Sun, 8 Aug 2021 09:31:01 +0000
|
||||
Subject: [PATCH 4/4] Revert "treble: Set BOARD_EXT4_SHARE_DUP_BLOCKS
|
||||
|
@ -1,7 +1,7 @@
|
||||
From ed69eff0e245bc8a8b7c3334b5c30323a09dbfc3 Mon Sep 17 00:00:00 2001
|
||||
From 6a586c8d51eddc005f1215e73327321296c047fd Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Tue, 5 Oct 2021 17:59:16 -0400
|
||||
Subject: [PATCH 01/24] Fallback to stupid autobrightness if brightness values
|
||||
Subject: [PATCH 01/28] Fallback to stupid autobrightness if brightness values
|
||||
are broken
|
||||
|
||||
This is needed because of:
|
||||
|
@ -1,7 +1,7 @@
|
||||
From c3bc53d43b9c4789bab8c532c44cc6f423810801 Mon Sep 17 00:00:00 2001
|
||||
From 19e1c2ec405a3a378fd80b86716d65692da7a1cd Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Tue, 28 Nov 2017 18:28:04 +0100
|
||||
Subject: [PATCH 02/24] Relax requirement for visible flag to sdcards
|
||||
Subject: [PATCH 02/28] Relax requirement for visible flag to sdcards
|
||||
|
||||
The vast majority of sdcard readers are stable enough to be declared by
|
||||
the API. (I see no counter-example)
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 9dda80f5f617988755425931377956386d70a703 Mon Sep 17 00:00:00 2001
|
||||
From 52c14e64a80eede9b3e82afd54fd4e6cf5862cf1 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Thu, 17 May 2018 20:28:35 +0200
|
||||
Subject: [PATCH 03/24] Don't crash if there is IR HAL is not declared
|
||||
Subject: [PATCH 03/28] Don't crash if there is IR HAL is not declared
|
||||
|
||||
Change-Id: I3afded27441bbee8244d5fda544b3e6d1238dc1b
|
||||
---
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 639661b3368671a56a3a2b114d6ffb5c1e6ee95f Mon Sep 17 00:00:00 2001
|
||||
From 33fb74d694502c95ee26f331ea308114f8506b90 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Mon, 6 Aug 2018 12:49:00 +0200
|
||||
Subject: [PATCH 04/24] Show APN Settings for CDMA carriers
|
||||
Subject: [PATCH 04/28] Show APN Settings for CDMA carriers
|
||||
|
||||
---
|
||||
telephony/java/android/telephony/CarrierConfigManager.java | 2 +-
|
||||
|
@ -1,7 +1,7 @@
|
||||
From a80899cb43a7a0876e2484807dea69c7ddb0b3be Mon Sep 17 00:00:00 2001
|
||||
From b9d12e89208f1b10efbf6d64b9c1b8613b6b336c Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Thu, 8 Nov 2018 23:04:03 +0100
|
||||
Subject: [PATCH 05/24] Re-order services so that it works even without qtaguid
|
||||
Subject: [PATCH 05/28] Re-order services so that it works even without qtaguid
|
||||
|
||||
Change-Id: I0c0f527b3ae151d45c68f7ac6c205da3f34e74df
|
||||
---
|
||||
@ -9,10 +9,10 @@ Change-Id: I0c0f527b3ae151d45c68f7ac6c205da3f34e74df
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
|
||||
index cfefffcdd2e8..197fed7c8834 100644
|
||||
index 9c664b6da4f2..8ebcfb667161 100644
|
||||
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
|
||||
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
|
||||
@@ -845,6 +845,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
||||
@@ -878,6 +878,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
||||
Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "systemReady");
|
||||
final int oldPriority = Process.getThreadPriority(Process.myTid());
|
||||
try {
|
||||
@ -23,7 +23,7 @@ index cfefffcdd2e8..197fed7c8834 100644
|
||||
// Boost thread's priority during system server init
|
||||
Process.setThreadPriority(Process.THREAD_PRIORITY_FOREGROUND);
|
||||
if (!isBandwidthControlEnabled()) {
|
||||
@@ -852,10 +856,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
||||
@@ -885,10 +889,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From b16ff9568fb76c327e71d32878c6b182a3d8acd4 Mon Sep 17 00:00:00 2001
|
||||
From 073b07985a88b4ab54a9451503d58070de0f0721 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sun, 24 Mar 2019 23:05:14 +0100
|
||||
Subject: [PATCH 06/24] Support samsung Pie and Q light hal
|
||||
Subject: [PATCH 06/28] Support samsung Pie and Q light hal
|
||||
|
||||
Change-Id: I01f94acd7d0672733e48854d80368f9ac6f861c6
|
||||
---
|
||||
@ -23,10 +23,10 @@ index 81532bcba0ae..8ddc16aae3d7 100644
|
||||
|
||||
static_libs: [
|
||||
diff --git a/services/core/jni/com_android_server_lights_LightsService.cpp b/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||
index 26f6d7428fcc..268b59a58010 100644
|
||||
index 35d8219651d7..b45b2137d0e6 100644
|
||||
--- a/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||
+++ b/services/core/jni/com_android_server_lights_LightsService.cpp
|
||||
@@ -22,6 +22,10 @@
|
||||
@@ -23,6 +23,10 @@
|
||||
|
||||
#include <android/hardware/light/2.0/ILight.h>
|
||||
#include <android/hardware/light/2.0/types.h>
|
||||
@ -37,7 +37,7 @@ index 26f6d7428fcc..268b59a58010 100644
|
||||
#include <android-base/chrono_utils.h>
|
||||
#include <utils/misc.h>
|
||||
#include <utils/Log.h>
|
||||
@@ -39,8 +43,17 @@ using Type = ::android::hardware::light::V2_0::Type;
|
||||
@@ -40,8 +44,17 @@ using Type = ::android::hardware::light::V2_0::Type;
|
||||
template<typename T>
|
||||
using Return = ::android::hardware::Return<T>;
|
||||
|
||||
@ -55,8 +55,8 @@ index 26f6d7428fcc..268b59a58010 100644
|
||||
static bool validate(jint light, jint flash, jint brightness) {
|
||||
bool valid = true;
|
||||
|
||||
@@ -141,6 +154,44 @@ static void setLight_native(
|
||||
return;
|
||||
@@ -152,6 +165,44 @@ static void setLight_native(
|
||||
colorARGB = (colorAlpha << 24) + (colorARGB & 0x00FFFFFF);
|
||||
}
|
||||
|
||||
+ if(!sSecTried) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 14f642d18be9bb7de7ea4409021880d8ae0c279b Mon Sep 17 00:00:00 2001
|
||||
From 489e8a00a23c0dd6fbef5f1e69b2f7ed3fbc04d7 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Mon, 12 Aug 2019 23:08:26 +0200
|
||||
Subject: [PATCH 07/24] Add support for samsung touch, physical and hover
|
||||
Subject: [PATCH 07/28] Add support for samsung touch, physical and hover
|
||||
proximity sensor as fallback to real proximity sensor
|
||||
|
||||
Change-Id: I7a0f8b4665c802140d19197d850b77b2a7ac1865
|
||||
@ -10,10 +10,10 @@ Change-Id: I7a0f8b4665c802140d19197d850b77b2a7ac1865
|
||||
1 file changed, 35 insertions(+)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||
index 1224902aa7be..00fab25350dc 100644
|
||||
index f543a562687c..82b1260e79dc 100644
|
||||
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||
@@ -1700,6 +1700,27 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
@@ -1726,6 +1726,27 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
? Sensor.TYPE_PROXIMITY : SensorUtils.NO_FALLBACK;
|
||||
mProximitySensor = SensorUtils.findSensor(mSensorManager, proxSensor.type, proxSensor.name,
|
||||
fallbackType);
|
||||
@ -41,7 +41,7 @@ index 1224902aa7be..00fab25350dc 100644
|
||||
if (mProximitySensor != null) {
|
||||
mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
|
||||
TYPICAL_PROXIMITY_THRESHOLD);
|
||||
@@ -2465,6 +2486,20 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
@@ -2491,6 +2512,20 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
public void onSensorChanged(SensorEvent event) {
|
||||
if (mProximitySensorEnabled) {
|
||||
final long time = SystemClock.uptimeMillis();
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 433f76bd4145480f67496d409e01a0f8b235879f Mon Sep 17 00:00:00 2001
|
||||
From e69df4088c108effd45e8741047ee1afd8ca2ce5 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sun, 5 Apr 2020 16:32:46 +0200
|
||||
Subject: [PATCH 08/24] Always allow overriding the number of work profiles
|
||||
Subject: [PATCH 08/28] Always allow overriding the number of work profiles
|
||||
|
||||
Change-Id: I6eb09aa71663c6fbe7563e3038bffcabdba0ff6a
|
||||
---
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 2e867d814f8f7675058085aea23b5cb95f8588f9 Mon Sep 17 00:00:00 2001
|
||||
From 901baaf78da74754054309406fb5211170a38552 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sat, 6 Jun 2020 18:21:56 +0200
|
||||
Subject: [PATCH 09/24] HOME deserves to wake-up devices just as well as back
|
||||
Subject: [PATCH 09/28] HOME deserves to wake-up devices just as well as back
|
||||
and menu
|
||||
|
||||
Change-Id: Ia562bafd8c620d00c17e8eb338e4701c6c4a3c3a
|
||||
@ -10,12 +10,12 @@ Change-Id: Ia562bafd8c620d00c17e8eb338e4701c6c4a3c3a
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java
|
||||
index cda9b233576c..bb35e3172165 100644
|
||||
index 63fa3323b5b5..b1a845990df3 100644
|
||||
--- a/core/java/android/view/KeyEvent.java
|
||||
+++ b/core/java/android/view/KeyEvent.java
|
||||
@@ -1988,6 +1988,7 @@ public class KeyEvent extends InputEvent implements Parcelable {
|
||||
switch (keyCode) {
|
||||
@@ -1995,6 +1995,7 @@ public class KeyEvent extends InputEvent implements Parcelable {
|
||||
case KeyEvent.KEYCODE_CAMERA:
|
||||
case KeyEvent.KEYCODE_FOCUS:
|
||||
case KeyEvent.KEYCODE_MENU:
|
||||
+ case KeyEvent.KEYCODE_HOME:
|
||||
case KeyEvent.KEYCODE_PAIRING:
|
||||
|
@ -1,7 +1,7 @@
|
||||
From acf92f0e0d9efaf2453aacb16b58eccb914094c4 Mon Sep 17 00:00:00 2001
|
||||
From 14e1ced9fe14016d081618bb41a451227cd538d8 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Tue, 29 Sep 2020 22:39:47 +0200
|
||||
Subject: [PATCH 10/24] Some devices have proximity sensor reporting NaN as max
|
||||
Subject: [PATCH 10/28] Some devices have proximity sensor reporting NaN as max
|
||||
range for some reason. Make them behave standard way by setting 5 cm
|
||||
|
||||
Change-Id: I3c39e3e914a05903c140235702e0480d2d58a612
|
||||
@ -10,10 +10,10 @@ Change-Id: I3c39e3e914a05903c140235702e0480d2d58a612
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||
index 00fab25350dc..3c49a01e00b4 100644
|
||||
index 82b1260e79dc..a9de9e1ff19a 100644
|
||||
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
|
||||
@@ -1724,6 +1724,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
@@ -1750,6 +1750,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
if (mProximitySensor != null) {
|
||||
mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
|
||||
TYPICAL_PROXIMITY_THRESHOLD);
|
||||
|
@ -1,7 +1,7 @@
|
||||
From cc5cb64f17283c81d884e75ee38ef6c292d3ca46 Mon Sep 17 00:00:00 2001
|
||||
From f8fb9e614a976c475edc26770347f9eee623d85c Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Tue, 29 Sep 2020 22:40:10 +0200
|
||||
Subject: [PATCH 11/24] Fix brightness range not being complete on Samsung
|
||||
Subject: [PATCH 11/28] Fix brightness range not being complete on Samsung
|
||||
devices
|
||||
|
||||
On some devices, minimum brightness is 0, which totally messes with
|
||||
@ -15,10 +15,10 @@ Change-Id: I4d97cbc32490949e83272b81ec6320a5483310b1
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
|
||||
index f0ebe290c837..76af7630819c 100644
|
||||
index 62d9991254bd..24932bd4d201 100644
|
||||
--- a/services/core/java/com/android/server/power/PowerManagerService.java
|
||||
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
|
||||
@@ -993,9 +993,11 @@ public final class PowerManagerService extends SystemService
|
||||
@@ -1040,9 +1040,11 @@ public final class PowerManagerService extends SystemService
|
||||
|
||||
if (min == INVALID_BRIGHTNESS_IN_CONFIG || max == INVALID_BRIGHTNESS_IN_CONFIG
|
||||
|| def == INVALID_BRIGHTNESS_IN_CONFIG) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 42ab9d35ed55b576d7e7257a18fd984c79d63b9b Mon Sep 17 00:00:00 2001
|
||||
From ccb4d4cf65dcb79d237caa9192bb863ef5809edd Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sun, 25 Oct 2020 23:57:26 +0100
|
||||
Subject: [PATCH 12/24] Re-implement fnmatch-like behaviour for RRO java-side
|
||||
Subject: [PATCH 12/28] Re-implement fnmatch-like behaviour for RRO java-side
|
||||
|
||||
Change-Id: Id38292a9a1453aa87b8401c1fdb390fa4e63c7d1
|
||||
---
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 2319811d1b5e5055c236807ce0ff8be759056741 Mon Sep 17 00:00:00 2001
|
||||
From 924e19514d9bc0c67c64560fba9d7fc3432e8981 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sun, 6 Dec 2020 12:20:08 +0100
|
||||
Subject: [PATCH 13/24] Make rounded corners padding overridable with
|
||||
Subject: [PATCH 13/28] Make rounded corners padding overridable with
|
||||
persist.sys.phh.rounded_corners_padding
|
||||
|
||||
Change-Id: I481c1c8849b2f22a7cdfb2896a6d3c2e7e3b44d9
|
||||
@ -12,7 +12,7 @@ Change-Id: I481c1c8849b2f22a7cdfb2896a6d3c2e7e3b44d9
|
||||
3 files changed, 14 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
|
||||
index 84b961e7c48a..a5150000f47c 100644
|
||||
index d2af6f88915f..3478ec463573 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
|
||||
@@ -22,6 +22,7 @@ import android.content.res.Configuration;
|
||||
@ -23,7 +23,7 @@ index 84b961e7c48a..a5150000f47c 100644
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Pair;
|
||||
import android.view.DisplayCutout;
|
||||
@@ -234,8 +235,10 @@ public class QuickStatusBarHeader extends FrameLayout {
|
||||
@@ -238,8 +239,10 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu
|
||||
|
||||
mConfigShowBatteryEstimate = resources.getBoolean(R.bool.config_showBatteryEstimateQSBH);
|
||||
|
||||
@ -37,7 +37,7 @@ index 84b961e7c48a..a5150000f47c 100644
|
||||
int qsOffsetHeight = resources.getDimensionPixelSize(
|
||||
com.android.internal.R.dimen.quick_qs_offset_height);
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
|
||||
index 788665269edb..f9c6ebbd26e3 100644
|
||||
index c1191aa71ef4..a32e7c4765ef 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
|
||||
@@ -30,6 +30,7 @@ import android.graphics.Color;
|
||||
@ -48,10 +48,10 @@ index 788665269edb..f9c6ebbd26e3 100644
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Pair;
|
||||
import android.util.TypedValue;
|
||||
@@ -196,8 +197,10 @@ public class KeyguardStatusBarView extends RelativeLayout implements
|
||||
@@ -193,8 +194,10 @@ public class KeyguardStatusBarView extends RelativeLayout implements
|
||||
R.dimen.ongoing_appops_dot_min_padding);
|
||||
mCutoutSideNudge = getResources().getDimensionPixelSize(
|
||||
R.dimen.display_cutout_margin_consumption);
|
||||
mShowPercentAvailable = getContext().getResources().getBoolean(
|
||||
com.android.internal.R.bool.config_battery_percentage_setting_available);
|
||||
- mRoundedCornerPadding = res.getDimensionPixelSize(
|
||||
- R.dimen.rounded_corner_content_padding);
|
||||
+ mRoundedCornerPadding = SystemProperties.getInt("persist.sys.phh.rounded_corners_padding", -1);
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 3e636d6cf6d3f10c5578ba79f8246278b5b1205f Mon Sep 17 00:00:00 2001
|
||||
From dd87ec1187b8be38995b734dbdfe3598dfd59cdb Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Fri, 11 Dec 2020 14:41:09 +0100
|
||||
Subject: [PATCH 14/24] Remove useless notification about "console" service
|
||||
Subject: [PATCH 14/28] Remove useless notification about "console" service
|
||||
being running
|
||||
|
||||
---
|
||||
|
@ -1,7 +1,7 @@
|
||||
From b78db2908f199c2ecdbb2c9e8f08cc96c399d986 Mon Sep 17 00:00:00 2001
|
||||
From bdffa8303310e05d4fba777d5f1e00b62d20db19 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Cai <peter@typeblog.net>
|
||||
Date: Wed, 16 Dec 2020 21:24:12 +0800
|
||||
Subject: [PATCH 15/24] Revert "Remove unused SystemProperties.set"
|
||||
Subject: [PATCH 15/28] Revert "Remove unused SystemProperties.set"
|
||||
|
||||
This reverts commit debb4616ef67f9ed5054eca51ec58592358ff55f.
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 557bd0cca4cee3c3137cba9035eb254772436eae Mon Sep 17 00:00:00 2001
|
||||
From 6384008d3e04db21fe384cba9879b915cded98ab Mon Sep 17 00:00:00 2001
|
||||
From: Peter Cai <peter@typeblog.net>
|
||||
Date: Wed, 16 Dec 2020 13:46:15 +0800
|
||||
Subject: [PATCH 16/24] TelephonyManager: bring back getNetworkClass()
|
||||
Subject: [PATCH 16/28] TelephonyManager: bring back getNetworkClass()
|
||||
|
||||
This partially reverts commit c058cac051ab083dc7fb7ea6aa85699110b2e9bf.
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From b51669eff63818a15122ee274e50792b2772ecba Mon Sep 17 00:00:00 2001
|
||||
From 3026abf6ca577e885c2481c39826b16104a49ac2 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Cai <peter@typeblog.net>
|
||||
Date: Wed, 16 Dec 2020 21:26:45 +0800
|
||||
Subject: [PATCH 17/24] TelephonyManager: add API annotations for
|
||||
Subject: [PATCH 17/28] TelephonyManager: add API annotations for
|
||||
setTelephonyProperty
|
||||
|
||||
* This method was added back by reverting commit
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 9b926fe1972bf2f8139a8a00b2f452d4e3cabdea Mon Sep 17 00:00:00 2001
|
||||
From 78a5652a8d86f51f479ced7b08864fe71f630905 Mon Sep 17 00:00:00 2001
|
||||
From: Alberto Ponces <ponces26@gmail.com>
|
||||
Date: Tue, 2 Feb 2021 10:20:51 +0000
|
||||
Subject: [PATCH 18/24] Fix Wakelock issue
|
||||
Subject: [PATCH 18/28] Fix Wakelock issue
|
||||
|
||||
Prevent SystemUI crash due to "WakeLock under-locked Doze" (issue #12) by only releasing a wakelock that was not already released
|
||||
---
|
||||
|
@ -1,7 +1,7 @@
|
||||
From ec9c979cb9c2399380292d775d068ce596ba855d Mon Sep 17 00:00:00 2001
|
||||
From 2cb4389377b69c5e53101536333838c6aa63d4fa Mon Sep 17 00:00:00 2001
|
||||
From: Arne Coucheron <arco68@gmail.com>
|
||||
Date: Thu, 5 Nov 2020 05:38:44 +0100
|
||||
Subject: [PATCH 19/24] SystemUI: Use AVCProfileMain for screen recorder
|
||||
Subject: [PATCH 19/28] SystemUI: Use AVCProfileMain for screen recorder
|
||||
|
||||
Some devices don't support the High profile very well.
|
||||
Use Main profile, which is more compatible, so they
|
||||
|
@ -1,7 +1,7 @@
|
||||
From e63f6286978d095c26a24253b503c3964db6ab68 Mon Sep 17 00:00:00 2001
|
||||
From 357f0fac32fc59b8f6349febd3a65f2ffb820279 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sat, 20 Mar 2021 14:31:01 +0100
|
||||
Subject: [PATCH 20/24] Automatically detect pick up sensor, so that an overlay
|
||||
Subject: [PATCH 20/28] Automatically detect pick up sensor, so that an overlay
|
||||
is required for the sole purpose of enabling pulse doze on pick up sensor
|
||||
|
||||
---
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 69a948909ec0ac6d2fb89fdfeadee0df09437df0 Mon Sep 17 00:00:00 2001
|
||||
From f4f5e6173024f2057f4d4ffcdc77028d03b004e2 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Tue, 23 Mar 2021 19:43:26 +0100
|
||||
Subject: [PATCH 21/24] Catch broken mainBuiltInDisplayCutoutRectApproximation
|
||||
Subject: [PATCH 21/28] Catch broken mainBuiltInDisplayCutoutRectApproximation
|
||||
|
||||
Some devices (Redmi Note 9T) have:
|
||||
mainBuiltInDisplayCutoutRectApproximation = @android:mainBuiltInDisplayCutout
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 97d62e3f56c39729d3756166599999216fbc2639 Mon Sep 17 00:00:00 2001
|
||||
From 0935d80aa90b9575b77bd55a37432a5f4a6c3747 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sat, 24 Mar 2018 08:01:48 +0100
|
||||
Subject: [PATCH 22/24] backlight: Fix backlight control on Galaxy S9(+)
|
||||
Subject: [PATCH 22/28] backlight: Fix backlight control on Galaxy S9(+)
|
||||
|
||||
Change-Id: I1fbbb47939c377597ef8ad6b88b2acea5f4acaa6
|
||||
|
||||
@ -53,10 +53,10 @@ Change-Id: I4e85178327d2bb63d5d0a37786058843662a89ba
|
||||
1 file changed, 46 insertions(+)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
|
||||
index 91f14de040fe..8fa9c4f3a698 100644
|
||||
index fea6b29d9260..caf9eba7d9a8 100644
|
||||
--- a/services/core/java/com/android/server/lights/LightsService.java
|
||||
+++ b/services/core/java/com/android/server/lights/LightsService.java
|
||||
@@ -31,6 +31,7 @@ import android.os.IBinder;
|
||||
@@ -32,6 +32,7 @@ import android.os.IBinder;
|
||||
import android.os.Looper;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
@ -64,7 +64,7 @@ index 91f14de040fe..8fa9c4f3a698 100644
|
||||
import android.os.Trace;
|
||||
import android.provider.Settings;
|
||||
import android.util.Slog;
|
||||
@@ -294,6 +295,51 @@ public class LightsService extends SystemService {
|
||||
@@ -295,6 +296,51 @@ public class LightsService extends SystemService {
|
||||
return;
|
||||
}
|
||||
int brightnessInt = BrightnessSynchronizer.brightnessFloatToInt(brightness);
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 38da0b29efb2577ebd9295a45617160e3caec696 Mon Sep 17 00:00:00 2001
|
||||
From 7b0c25ae3dfe6af5d9d9a2b2518964f7c5f034bf Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Sat, 16 Oct 2021 05:27:57 -0700
|
||||
Subject: [PATCH 23/24] Add support for app signature spoofing
|
||||
Subject: [PATCH 23/28] Add support for app signature spoofing
|
||||
|
||||
This is needed by microG GmsCore to pretend to be the official Google
|
||||
Play Services package, because client apps check the package signature
|
||||
@ -56,10 +56,10 @@ index 1de47b548a5c..52c7ea2e1321 100644
|
||||
field public static final String MICROPHONE = "android.permission-group.MICROPHONE";
|
||||
field public static final String NEARBY_DEVICES = "android.permission-group.NEARBY_DEVICES";
|
||||
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
|
||||
index cd6af189a04a..318a7f06494e 100644
|
||||
index 76b8547cea2a..8bd3206d1e3a 100644
|
||||
--- a/core/res/AndroidManifest.xml
|
||||
+++ b/core/res/AndroidManifest.xml
|
||||
@@ -3189,6 +3189,21 @@
|
||||
@@ -3199,6 +3199,21 @@
|
||||
android:description="@string/permdesc_getPackageSize"
|
||||
android:protectionLevel="normal" />
|
||||
|
||||
@ -105,7 +105,7 @@ index b58638cc3ade..8cf98fa56bf6 100644
|
||||
<string name="permlab_statusBar">disable or modify status bar</string>
|
||||
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
||||
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||
index b77483012ee8..04f55ae83ef0 100644
|
||||
index f69922f64787..7d0ba265ff7e 100644
|
||||
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||
@@ -3325,6 +3325,29 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 4881811426c4f2f28d1f053ef73441c53d1238a5 Mon Sep 17 00:00:00 2001
|
||||
From 7003808f45a75893726d4073da9132c314091e98 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Sat, 4 Sep 2021 08:26:30 +0000
|
||||
Subject: [PATCH 24/24] Revert "Switch long-press power behavior in AOSP."
|
||||
Subject: [PATCH 24/28] Revert "Switch long-press power behavior in AOSP."
|
||||
|
||||
This reverts commit 803c77a0a24624111944832098c6f65158051dc4.
|
||||
---
|
||||
@ -9,19 +9,19 @@ This reverts commit 803c77a0a24624111944832098c6f65158051dc4.
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
|
||||
index 0abeff91e511..b7dfd49b7b78 100644
|
||||
index 380f2b362668..3ce1886fef6d 100644
|
||||
--- a/core/res/res/values/config.xml
|
||||
+++ b/core/res/res/values/config.xml
|
||||
@@ -955,7 +955,7 @@
|
||||
4 - Go to voice assist
|
||||
@@ -956,7 +956,7 @@
|
||||
5 - Go to assistant (Settings.Secure.ASSISTANT)
|
||||
6 - Toggle torch on / off (if screen is off)
|
||||
-->
|
||||
- <integer name="config_longPressOnPowerBehavior">5</integer>
|
||||
+ <integer name="config_longPressOnPowerBehavior">1</integer>
|
||||
|
||||
<!-- The time in milliseconds after which a press on power button is considered "long". -->
|
||||
<integer name="config_longPressOnPowerDurationMs">500</integer>
|
||||
@@ -987,7 +987,7 @@
|
||||
@@ -988,7 +988,7 @@
|
||||
1 - Mute toggle
|
||||
2 - Global actions menu
|
||||
-->
|
||||
|
@ -0,0 +1,28 @@
|
||||
From 72faf5ce1446d48e39961177519c92359e066312 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Fri, 17 Dec 2021 17:16:14 -0500
|
||||
Subject: [PATCH 25/28] Reduce the size of udfps enroll progress bar. Some
|
||||
devices have their udfps pretty low, and the progress bar would make the icon
|
||||
at the wrong place
|
||||
|
||||
Change-Id: I1609ad9ca316293dcaaf07f7e681d11aadfcd29c
|
||||
---
|
||||
packages/SystemUI/res/values/config.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
|
||||
index dbbb54f7ad6e..d0098b32f384 100644
|
||||
--- a/packages/SystemUI/res/values/config.xml
|
||||
+++ b/packages/SystemUI/res/values/config.xml
|
||||
@@ -637,7 +637,7 @@
|
||||
|
||||
<!-- The radius of the enrollment progress bar, in dp -->
|
||||
<integer name="config_udfpsEnrollProgressBar" translatable="false">
|
||||
- 280
|
||||
+ 70
|
||||
</integer>
|
||||
|
||||
<!-- package name of a built-in camera app to use to restrict implicit intent resolution
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,592 @@
|
||||
From 380896691e59acbc1af203a2433adaba68c1b5ee Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sun, 19 Dec 2021 17:08:22 -0500
|
||||
Subject: [PATCH 26/28] Add UDFPS support for various devices
|
||||
|
||||
Successfully tested on Galaxy A51, Xiaomi Mi 9, and OnePlus Nord 2
|
||||
|
||||
- Detect UDFPS properties (udfps support and x/y/r) based on
|
||||
OEM-specific methods
|
||||
- Hardcode UDFPS properties for some devices
|
||||
- Call OEM-specific functions on touchDown/touchUp
|
||||
|
||||
Change-Id: I9448f06a46c178652f5b216717d914b8db55c993
|
||||
---
|
||||
.../systemui/biometrics/UdfpsSurfaceView.java | 2 +-
|
||||
.../systemui/biometrics/UdfpsView.java | 53 +++-
|
||||
services/core/Android.bp | 4 +
|
||||
.../server/biometrics/AuthService.java | 262 +++++++++++++++++-
|
||||
.../sensors/fingerprint/UdfpsHelper.java | 115 +++++++-
|
||||
5 files changed, 418 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsSurfaceView.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsSurfaceView.java
|
||||
index 77fad35d32d4..51409b9c533a 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsSurfaceView.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsSurfaceView.java
|
||||
@@ -69,7 +69,7 @@ public class UdfpsSurfaceView extends SurfaceView implements SurfaceHolder.Callb
|
||||
|
||||
mSensorPaint = new Paint(0 /* flags */);
|
||||
mSensorPaint.setAntiAlias(true);
|
||||
- mSensorPaint.setARGB(255, 255, 255, 255);
|
||||
+ mSensorPaint.setARGB(255, 0, 255, 0);
|
||||
mSensorPaint.setStyle(Paint.Style.FILL);
|
||||
}
|
||||
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.java
|
||||
index 8a213ec502e4..335edf4819de 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.java
|
||||
@@ -41,6 +41,12 @@ import com.android.systemui.R;
|
||||
import com.android.systemui.biometrics.UdfpsHbmTypes.HbmType;
|
||||
import com.android.systemui.doze.DozeReceiver;
|
||||
|
||||
+import java.io.BufferedReader;
|
||||
+import java.io.File;
|
||||
+import java.io.FileReader;
|
||||
+import java.io.PrintWriter;
|
||||
+
|
||||
+
|
||||
/**
|
||||
* A view containing 1) A SurfaceView for HBM, and 2) A normal drawable view for all other
|
||||
* animations.
|
||||
@@ -50,7 +56,7 @@ public class UdfpsView extends FrameLayout implements DozeReceiver, UdfpsIllumin
|
||||
|
||||
private static final String SETTING_HBM_TYPE =
|
||||
"com.android.systemui.biometrics.UdfpsSurfaceView.hbmType";
|
||||
- private static final @HbmType int DEFAULT_HBM_TYPE = UdfpsHbmTypes.LOCAL_HBM;
|
||||
+ private static final @HbmType int DEFAULT_HBM_TYPE = UdfpsHbmTypes.GLOBAL_HBM;
|
||||
|
||||
private static final int DEBUG_TEXT_SIZE_PX = 32;
|
||||
|
||||
@@ -70,6 +76,49 @@ public class UdfpsView extends FrameLayout implements DozeReceiver, UdfpsIllumin
|
||||
@Nullable private String mDebugMessage;
|
||||
private boolean mIlluminationRequested;
|
||||
|
||||
+ public static void samsungCmd(String cmd) {
|
||||
+ try {
|
||||
+ writeFile("/sys/devices/virtual/sec/tsp/cmd", cmd);
|
||||
+
|
||||
+ String status = readFile("/sys/devices/virtual/sec/tsp/cmd_status");
|
||||
+ String ret = readFile("/sys/devices/virtual/sec/tsp/cmd_result");
|
||||
+
|
||||
+ android.util.Log.d("PHH", "Sending command " + cmd + " returned " + ret + ":" + status);
|
||||
+ } catch(Exception e) {
|
||||
+ android.util.Log.d("PHH", "Failed sending command " + cmd, e);
|
||||
+ }
|
||||
+ }
|
||||
+ private static void writeFile(String path, String value) {
|
||||
+ try {
|
||||
+ PrintWriter writer = new PrintWriter(path, "UTF-8");
|
||||
+ writer.println(value);
|
||||
+ writer.close();
|
||||
+ } catch(Exception e) {
|
||||
+ android.util.Log.d("PHH", "Failed writing to " + path + ": " + value);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static void writeFile(File file, String value) {
|
||||
+ try {
|
||||
+ PrintWriter writer = new PrintWriter(file, "UTF-8");
|
||||
+ writer.println(value);
|
||||
+ writer.close();
|
||||
+ } catch(Exception e) {
|
||||
+ android.util.Log.d("PHH", "Failed writing to " + file + ": " + value);
|
||||
+ }
|
||||
+ }
|
||||
+ private static String readFile(String path) {
|
||||
+ try {
|
||||
+ File f = new File(path);
|
||||
+
|
||||
+ BufferedReader b = new BufferedReader(new FileReader(f));
|
||||
+ return b.readLine();
|
||||
+ } catch(Exception e) {
|
||||
+ return null;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+
|
||||
public UdfpsView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
|
||||
@@ -252,6 +301,8 @@ public class UdfpsView extends FrameLayout implements DozeReceiver, UdfpsIllumin
|
||||
Log.w(TAG, "doIlluminate | onIlluminatedRunnable is null");
|
||||
}
|
||||
});
|
||||
+ } else if (mGhbmView != null) {
|
||||
+ mGhbmView.drawIlluminationDot(mSensorRect);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/services/core/Android.bp b/services/core/Android.bp
|
||||
index 89e4b02e7944..9270e81cb4b5 100644
|
||||
--- a/services/core/Android.bp
|
||||
+++ b/services/core/Android.bp
|
||||
@@ -157,6 +157,10 @@ java_library_static {
|
||||
"android.hardware.soundtrigger-V2.3-java",
|
||||
"android.hardware.power.stats-V1-java",
|
||||
"android.hidl.manager-V1.2-java",
|
||||
+ "vendor.goodix.hardware.biometrics.fingerprint-V2.1-java",
|
||||
+ "vendor.samsung.hardware.biometrics.fingerprint-V3.0-java",
|
||||
+ "vendor.oplus.hardware.biometrics.fingerprint-V2.1-java",
|
||||
+ "vendor.oppo.hardware.biometrics.fingerprint-V2.1-java",
|
||||
"capture_state_listener-aidl-java",
|
||||
"icu4j_calendar_astronomer",
|
||||
"netd-client",
|
||||
diff --git a/services/core/java/com/android/server/biometrics/AuthService.java b/services/core/java/com/android/server/biometrics/AuthService.java
|
||||
index b42f8980d1c0..41a04b8b5056 100644
|
||||
--- a/services/core/java/com/android/server/biometrics/AuthService.java
|
||||
+++ b/services/core/java/com/android/server/biometrics/AuthService.java
|
||||
@@ -72,6 +72,21 @@ import com.android.server.SystemService;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
+import android.hardware.display.DisplayManager;
|
||||
+
|
||||
+import android.graphics.Point;
|
||||
+import android.util.DisplayMetrics;
|
||||
+import java.io.BufferedReader;
|
||||
+import java.io.File;
|
||||
+import java.io.FileReader;
|
||||
+import java.io.PrintWriter;
|
||||
+
|
||||
+import android.os.FileObserver;
|
||||
+import android.os.Build;
|
||||
+
|
||||
+import vendor.samsung.hardware.biometrics.fingerprint.V3_0.ISehBiometricsFingerprint;
|
||||
+import vendor.goodix.hardware.biometrics.fingerprint.V2_1.IGoodixFingerprintDaemon;
|
||||
+
|
||||
/**
|
||||
* System service that provides an interface for authenticating with biometrics and
|
||||
* PIN/pattern/password to BiometricPrompt and lock screen.
|
||||
@@ -88,6 +103,9 @@ public class AuthService extends SystemService {
|
||||
@VisibleForTesting
|
||||
final IAuthService.Stub mImpl;
|
||||
|
||||
+ private FileObserver fodFileObserver = null;
|
||||
+ private ISehBiometricsFingerprint mSamsungFingerprint = null;
|
||||
+
|
||||
/**
|
||||
* Class for injecting dependencies into AuthService.
|
||||
* TODO(b/141025588): Replace with a dependency injection framework (e.g. Guice, Dagger).
|
||||
@@ -636,6 +654,68 @@ public class AuthService extends SystemService {
|
||||
registerAuthenticators(hidlConfigs);
|
||||
|
||||
mInjector.publishBinderService(this, mImpl);
|
||||
+ try {
|
||||
+ mSamsungFingerprint = ISehBiometricsFingerprint.getService();
|
||||
+ android.util.Log.e("PHH", "Got samsung fingerprint HAL");
|
||||
+ } catch(Exception e) {
|
||||
+ android.util.Log.e("PHH", "Failed getting Samsung fingerprint HAL", e);
|
||||
+ }
|
||||
+ if(samsungHasCmd("fod_enable") && mSamsungFingerprint != null) {
|
||||
+ samsungCmd("fod_enable,1,1,0");
|
||||
+ String actualMaskBrightnessPath = "/sys/class/lcd/panel/actual_mask_brightness";
|
||||
+ android.util.Log.e("PHH-Enroll", "Reading actual brightness file gives " + readFile(actualMaskBrightnessPath));
|
||||
+ fodFileObserver = new FileObserver(actualMaskBrightnessPath, FileObserver.MODIFY) {
|
||||
+ @Override
|
||||
+ public void onEvent(int event, String path) {
|
||||
+ String actualMask = readFile(actualMaskBrightnessPath);
|
||||
+ try {
|
||||
+ mSamsungFingerprint = ISehBiometricsFingerprint.getService();
|
||||
+ } catch(Exception e) {}
|
||||
+ Slog.d("PHH-Enroll", "New actual mask brightness is " + actualMask);
|
||||
+ try {
|
||||
+ int eventReq = 0;
|
||||
+ if("0".equals(actualMask)) {
|
||||
+ eventReq = 1; //released
|
||||
+ } else {
|
||||
+ eventReq = 2; //pressed
|
||||
+ }
|
||||
+ if(mSamsungFingerprint != null) {
|
||||
+ mSamsungFingerprint.sehRequest(22 /* SEM_FINGER_STATE */, eventReq, new java.util.ArrayList<Byte>(),
|
||||
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
|
||||
+ }
|
||||
+ } catch(Exception e) {
|
||||
+ Slog.d("PHH-Enroll", "Failed setting samsung event for mask observer", e);
|
||||
+ }
|
||||
+ }
|
||||
+ };
|
||||
+ fodFileObserver.startWatching();
|
||||
+ }
|
||||
+ String asusSpotOnAchieved = "/sys/class/drm/spot_on_achieved";
|
||||
+ if( (new File(asusSpotOnAchieved)).exists()) {
|
||||
+ fodFileObserver = new FileObserver(asusSpotOnAchieved, FileObserver.MODIFY) {
|
||||
+ boolean wasOn = false;
|
||||
+ @Override
|
||||
+ public void onEvent(int event, String path) {
|
||||
+ String spotOn = readFile(asusSpotOnAchieved);
|
||||
+ if("1".equals(spotOn)) {
|
||||
+ if(!wasOn) {
|
||||
+ try {
|
||||
+ IGoodixFingerprintDaemon goodixDaemon = IGoodixFingerprintDaemon.getService();
|
||||
+ goodixDaemon.sendCommand(200002, new java.util.ArrayList<Byte>(), (returnCode, resultData) -> {
|
||||
+ Slog.e(TAG, "Goodix send command returned code "+ returnCode);
|
||||
+ });
|
||||
+ } catch(Throwable t) {
|
||||
+ Slog.d("PHH-Enroll", "Failed sending goodix command", t);
|
||||
+ }
|
||||
+ }
|
||||
+ wasOn = true;
|
||||
+ } else {
|
||||
+ wasOn = false;
|
||||
+ }
|
||||
+ }
|
||||
+ };
|
||||
+ fodFileObserver.startWatching();
|
||||
+ }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -734,19 +814,197 @@ public class AuthService extends SystemService {
|
||||
? modality : (modality & ~BiometricAuthenticator.TYPE_CREDENTIAL);
|
||||
}
|
||||
|
||||
+ private static String readFile(String path) {
|
||||
+ try {
|
||||
+ File f = new File(path);
|
||||
+
|
||||
+ BufferedReader b = new BufferedReader(new FileReader(f));
|
||||
+ return b.readLine();
|
||||
+ } catch(Exception e) {
|
||||
+ return null;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static boolean samsungHasCmd(String cmd) {
|
||||
+ try {
|
||||
+ File f = new File("/sys/devices/virtual/sec/tsp/cmd_list");
|
||||
+ if(!f.exists()) return false;
|
||||
+
|
||||
+ android.util.Log.d("PHH", "Managed to grab cmd list, checking...");
|
||||
+ BufferedReader b = new BufferedReader(new FileReader(f));
|
||||
+ String line = null;
|
||||
+ while( (line = b.readLine()) != null) {
|
||||
+ if(line.equals(cmd)) return true;
|
||||
+ }
|
||||
+ android.util.Log.d("PHH", "... nope");
|
||||
+ return false;
|
||||
+ } catch(Exception e) {
|
||||
+ android.util.Log.d("PHH", "Failed reading cmd_list", e);
|
||||
+ return false;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public static void samsungCmd(String cmd) {
|
||||
+ try {
|
||||
+ writeFile("/sys/devices/virtual/sec/tsp/cmd", cmd);
|
||||
+
|
||||
+ String status = readFile("/sys/devices/virtual/sec/tsp/cmd_status");
|
||||
+ String ret = readFile("/sys/devices/virtual/sec/tsp/cmd_result");
|
||||
+
|
||||
+ android.util.Log.d("PHH", "Sending command " + cmd + " returned " + ret + ":" + status);
|
||||
+ } catch(Exception e) {
|
||||
+ android.util.Log.d("PHH", "Failed sending command " + cmd, e);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static void writeFile(String path, String value) {
|
||||
+ try {
|
||||
+ PrintWriter writer = new PrintWriter(path, "UTF-8");
|
||||
+ writer.println(value);
|
||||
+ writer.close();
|
||||
+ } catch(Exception e) {
|
||||
+ android.util.Log.d("PHH", "Failed writing to " + path + ": " + value);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static void writeFile(File file, String value) {
|
||||
+ try {
|
||||
+ PrintWriter writer = new PrintWriter(file, "UTF-8");
|
||||
+ writer.println(value);
|
||||
+ writer.close();
|
||||
+ } catch(Exception e) {
|
||||
+ android.util.Log.d("PHH", "Failed writing to " + file + ": " + value);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
private FingerprintSensorPropertiesInternal getHidlFingerprintSensorProps(int sensorId,
|
||||
@BiometricManager.Authenticators.Types int strength) {
|
||||
// The existence of config_udfps_sensor_props indicates that the sensor is UDFPS.
|
||||
- final int[] udfpsProps = getContext().getResources().getIntArray(
|
||||
+ int[] udfpsProps = getContext().getResources().getIntArray(
|
||||
com.android.internal.R.array.config_udfps_sensor_props);
|
||||
|
||||
- final boolean isUdfps = !ArrayUtils.isEmpty(udfpsProps);
|
||||
+ boolean isUdfps = !ArrayUtils.isEmpty(udfpsProps);
|
||||
|
||||
// config_is_powerbutton_fps indicates whether device has a power button fingerprint sensor.
|
||||
final boolean isPowerbuttonFps = getContext().getResources().getBoolean(
|
||||
R.bool.config_is_powerbutton_fps);
|
||||
|
||||
+ DisplayManager mDM = (DisplayManager) getContext().getSystemService(Context.DISPLAY_SERVICE);
|
||||
+ Point displayRealSize = new Point();
|
||||
+ DisplayMetrics displayMetrics = new DisplayMetrics();
|
||||
+ mDM.getDisplay(0).getRealSize(displayRealSize);
|
||||
+ mDM.getDisplay(0).getMetrics(displayMetrics);
|
||||
+
|
||||
+ String[] xiaomiLocation = android.os.SystemProperties.get("persist.vendor.sys.fp.fod.location.X_Y", "").split(",");
|
||||
+ if(xiaomiLocation.length != 2)
|
||||
+ xiaomiLocation = android.os.SystemProperties.get("persist.sys.fp.fod.location.X_Y", "").split(",");
|
||||
+ String[] xiaomiSize = android.os.SystemProperties.get("persist.vendor.sys.fp.fod.size.width_height", "").split(",");
|
||||
+ if(xiaomiSize.length != 2)
|
||||
+ xiaomiSize = android.os.SystemProperties.get("persist.sys.fp.fod.size.width_height", "").split(",");
|
||||
+ if(xiaomiSize.length == 2 && xiaomiLocation.length == 2) {
|
||||
+ udfpsProps = new int[3];
|
||||
+ udfpsProps[0] = (int)displayRealSize.x/2;
|
||||
+ udfpsProps[1] = Integer.parseInt(xiaomiLocation[1]);
|
||||
+ udfpsProps[2] = Integer.parseInt(xiaomiSize[0])/2;
|
||||
+ udfpsProps[1] += udfpsProps[2];
|
||||
+ isUdfps = true;
|
||||
+ }
|
||||
+
|
||||
+ if(readFile("/sys/class/fingerprint/fingerprint/position") != null) {
|
||||
+ android.util.Log.d("PHH", "Samsung fingerprint");
|
||||
+ String[] fodPositionArray = readFile("/sys/class/fingerprint/fingerprint/position").split(",");
|
||||
+ float bottomMM = Float.parseFloat(fodPositionArray[0]);
|
||||
+ float areaSizeMM = Float.parseFloat(fodPositionArray[5]);
|
||||
+ float bottomInch = bottomMM * 0.0393700787f;
|
||||
+ float areaSizeInch = areaSizeMM * 0.0393700787f;
|
||||
+ int bottomPx = (int)(bottomInch * displayMetrics.ydpi);
|
||||
+ int areaSizePx = (int)(areaSizeInch * displayMetrics.ydpi);
|
||||
+ float mW = areaSizePx/2;
|
||||
+ float mH = areaSizePx/2;
|
||||
+ float mX = displayRealSize.x/2;
|
||||
+ float mY = displayRealSize.y - bottomPx - mH;
|
||||
+
|
||||
+ samsungCmd(String.format("fod_rect,%d,%d,%d,%d", (int)(mX - mW/2), (int)(mY - mW/2), (int)(mX + mW/2), (int)(mY + mW/2)));
|
||||
+
|
||||
+ udfpsProps = new int[3];
|
||||
+ udfpsProps[0] = (int)mX;
|
||||
+ udfpsProps[1] = (int)mY;
|
||||
+ udfpsProps[2] = (int)mW;
|
||||
+ isUdfps = true;
|
||||
+
|
||||
+ try {
|
||||
+ mSamsungFingerprint = ISehBiometricsFingerprint.getService();
|
||||
+ Slog.d("PHH-Enroll", "Samsung ask for sensor status");
|
||||
+ mSamsungFingerprint.sehRequest(6, 0, new java.util.ArrayList(), (int retval, java.util.ArrayList<Byte> out) -> {
|
||||
+ Slog.d("PHH-Enroll", "Result is " + retval);
|
||||
+ for(int i=0; i<out.size(); i++) {
|
||||
+ Slog.d("PHH-Enroll", "\t" + i + ":" + out.get(i));
|
||||
+ }
|
||||
+ } );
|
||||
+ Slog.d("PHH-Enroll", "Samsung ask for sensor brightness value");
|
||||
+ mSamsungFingerprint.sehRequest(32, 0, new java.util.ArrayList(), (int retval, java.util.ArrayList<Byte> out) -> {
|
||||
+ Slog.d("PHH-Enroll", "Result is " + retval);
|
||||
+ for(int i=0; i<out.size(); i++) {
|
||||
+ Slog.d("PHH-Enroll", "\t" + i + ":" + out.get(i));
|
||||
+ }
|
||||
+ } );
|
||||
+
|
||||
+ } catch(Exception e) {
|
||||
+ Slog.d("PHH-Enroll", "Failed setting samsung3.0 fingerprint recognition", e);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ int oppoSize = android.os.SystemProperties.getInt("persist.vendor.fingerprint.optical.iconsize", 0);
|
||||
+ int oppoLocation = android.os.SystemProperties.getInt("persist.vendor.fingerprint.optical.iconlocation", 0);
|
||||
+ if(oppoLocation > 0 && oppoSize > 0) {
|
||||
+ int mW = oppoSize/2;
|
||||
+ int mH = oppoSize/2;
|
||||
+
|
||||
+ Slog.d("PHH-Enroll", "Got Oppo icon location " + oppoLocation);
|
||||
+ Slog.d("PHH-Enroll", "\tscreen size " + displayRealSize.x + ", " + displayRealSize.y);
|
||||
+ int mX = displayRealSize.x/2;
|
||||
+ //int mY = displayRealSize.y - oppoLocation + mW;
|
||||
+ int mY = displayRealSize.y - oppoLocation;
|
||||
+
|
||||
+ Slog.d("PHH-Enroll", "\tfacola at " + mX + ", " + mY);
|
||||
+ udfpsProps = new int[3];
|
||||
+ udfpsProps[0] = (int)mX;
|
||||
+ udfpsProps[1] = (int)mY;
|
||||
+ udfpsProps[2] = (int)mW;
|
||||
+ isUdfps = true;
|
||||
+ }
|
||||
+
|
||||
+ // Asus ZF8
|
||||
+ if(android.os.SystemProperties.get("ro.vendor.build.fingerprint").contains("ASUS_I006D")) {
|
||||
+ udfpsProps = new int[3];
|
||||
+ udfpsProps[0] = displayRealSize.x/2;;
|
||||
+ udfpsProps[1] = 1741;
|
||||
+ udfpsProps[2] = 110;
|
||||
+ isUdfps = true;
|
||||
+ }
|
||||
+
|
||||
+ // ROG Phone 3
|
||||
+ if(android.os.SystemProperties.get("ro.vendor.build.fingerprint").contains("ASUS_I003")) {
|
||||
+ udfpsProps = new int[3];
|
||||
+ udfpsProps[0] = displayRealSize.x/2;;
|
||||
+ udfpsProps[1] = 1752;
|
||||
+ udfpsProps[2] = 110;
|
||||
+ isUdfps = true;
|
||||
+ }
|
||||
+
|
||||
+ // Redmagic 5g
|
||||
+ if("NX659J".equals(android.os.SystemProperties.get("ro.product.vendor.model"))) {
|
||||
+ udfpsProps = new int[3];
|
||||
+ udfpsProps[0] = displayRealSize.x/2;;
|
||||
+ udfpsProps[1] = 1984;
|
||||
+ udfpsProps[2] = 95;
|
||||
+ isUdfps = true;
|
||||
+ }
|
||||
+
|
||||
+ if(udfpsProps.length > 0) {
|
||||
+ Slog.d("PHH-Enroll", "Samsung got udfps infos " + udfpsProps[0] + ", " + udfpsProps[1] + ", " + udfpsProps[2]);
|
||||
+ }
|
||||
+
|
||||
final @FingerprintSensorProperties.SensorType int sensorType;
|
||||
if (isUdfps) {
|
||||
sensorType = FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
|
||||
diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/UdfpsHelper.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/UdfpsHelper.java
|
||||
index 879c8a0317d7..d288acdc2ef5 100644
|
||||
--- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/UdfpsHelper.java
|
||||
+++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/UdfpsHelper.java
|
||||
@@ -28,6 +28,10 @@ import android.util.Slog;
|
||||
|
||||
import com.android.server.biometrics.sensors.AcquisitionClient;
|
||||
|
||||
+import vendor.goodix.hardware.biometrics.fingerprint.V2_1.IGoodixFingerprintDaemon;
|
||||
+
|
||||
+import java.io.PrintWriter;
|
||||
+
|
||||
/**
|
||||
* Contains helper methods for under-display fingerprint HIDL.
|
||||
*/
|
||||
@@ -35,37 +39,120 @@ public class UdfpsHelper {
|
||||
|
||||
private static final String TAG = "UdfpsHelper";
|
||||
|
||||
+ private static void writeFile(String path, String value) {
|
||||
+ try {
|
||||
+ PrintWriter writer = new PrintWriter(path, "UTF-8");
|
||||
+ writer.println(value);
|
||||
+ writer.close();
|
||||
+ } catch(Exception e) {
|
||||
+ android.util.Log.d("PHH", "Failed writing to " + path + ": " + value);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+
|
||||
public static void onFingerDown(IBiometricsFingerprint daemon, int x, int y, float minor,
|
||||
float major) {
|
||||
android.hardware.biometrics.fingerprint.V2_3.IBiometricsFingerprint extension =
|
||||
- android.hardware.biometrics.fingerprint.V2_3.IBiometricsFingerprint.castFrom(
|
||||
- daemon);
|
||||
- if (extension == null) {
|
||||
- Slog.v(TAG, "onFingerDown | failed to cast the HIDL to V2_3");
|
||||
+ android.hardware.biometrics.fingerprint.V2_3.IBiometricsFingerprint.castFrom(
|
||||
+ daemon);
|
||||
+ if (extension != null) {
|
||||
+ try {
|
||||
+ extension.onFingerDown(x, y, minor, major);
|
||||
+ return;
|
||||
+ } catch (RemoteException e) {
|
||||
+ Slog.e(TAG, "onFingerDown | RemoteException: ", e);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ try {
|
||||
+ // Asus goodix commands
|
||||
+ IGoodixFingerprintDaemon goodixDaemon = IGoodixFingerprintDaemon.getService();
|
||||
+ if(android.os.SystemProperties.get("ro.vendor.build.fingerprint").contains("ASUS")) {
|
||||
+ goodixDaemon.sendCommand(200001, new java.util.ArrayList<Byte>(), (returnCode, resultData) -> {
|
||||
+ Slog.e(TAG, "Goodix send command returned code "+ returnCode);
|
||||
+ });
|
||||
+ } else {
|
||||
+ //UI READY
|
||||
+ goodixDaemon.sendCommand(0x600, new java.util.ArrayList<Byte>(), (returnCode, resultData) -> {
|
||||
+ Slog.e(TAG, "Goodix send command returned code "+ returnCode);
|
||||
+ });
|
||||
+ goodixDaemon.sendCommand(1607, new java.util.ArrayList<Byte>(), (returnCode, resultData) -> {
|
||||
+ Slog.e(TAG, "Goodix send command returned code "+ returnCode);
|
||||
+ });
|
||||
+ }
|
||||
return;
|
||||
+ } catch(Throwable t) {
|
||||
+ Slog.e(TAG, "Tried sending goodix daemon cmd failed", t);
|
||||
}
|
||||
|
||||
try {
|
||||
- extension.onFingerDown(x, y, minor, major);
|
||||
- } catch (RemoteException e) {
|
||||
- Slog.e(TAG, "onFingerDown | RemoteException: ", e);
|
||||
+ vendor.oplus.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint fp = vendor.oplus.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint.getService();
|
||||
+ writeFile("/sys/kernel/oppo_display/notify_fppress", "1");
|
||||
+ writeFile("/sys/kernel/oplus_display/oplus_notify_fppress", "1");
|
||||
+ fp.touchDown();
|
||||
+ } catch(Throwable t) {
|
||||
+ Slog.e(TAG, "Tried sending oplus daemon cmd failed", t);
|
||||
}
|
||||
+
|
||||
+ try {
|
||||
+ vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint fp = vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint.getService();
|
||||
+ writeFile("/sys/kernel/oppo_display/notify_fppress", "1");
|
||||
+ writeFile("/sys/kernel/oplus_display/oplus_notify_fppress", "1");
|
||||
+ fp.touchDown();
|
||||
+ } catch(Throwable t) {
|
||||
+ Slog.e(TAG, "Tried sending oplus daemon cmd failed", t);
|
||||
+ }
|
||||
+
|
||||
+ Slog.v(TAG, "onFingerDown | failed to cast the HIDL to V2_3");
|
||||
}
|
||||
|
||||
public static void onFingerUp(IBiometricsFingerprint daemon) {
|
||||
android.hardware.biometrics.fingerprint.V2_3.IBiometricsFingerprint extension =
|
||||
- android.hardware.biometrics.fingerprint.V2_3.IBiometricsFingerprint.castFrom(
|
||||
- daemon);
|
||||
- if (extension == null) {
|
||||
- Slog.v(TAG, "onFingerUp | failed to cast the HIDL to V2_3");
|
||||
+ android.hardware.biometrics.fingerprint.V2_3.IBiometricsFingerprint.castFrom(
|
||||
+ daemon);
|
||||
+ if (extension != null) {
|
||||
+ try {
|
||||
+ extension.onFingerUp();
|
||||
+ return;
|
||||
+ } catch (RemoteException e) {
|
||||
+ Slog.e(TAG, "onFingerUp | RemoteException: ", e);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ try {
|
||||
+ IGoodixFingerprintDaemon goodixDaemon = IGoodixFingerprintDaemon.getService();
|
||||
+ if(android.os.SystemProperties.get("ro.vendor.build.fingerprint").contains("ASUS")) {
|
||||
+ goodixDaemon.sendCommand(200003, new java.util.ArrayList<Byte>(), (returnCode, resultData) -> {
|
||||
+ Slog.e(TAG, "Goodix send command returned code " + returnCode);
|
||||
+ });
|
||||
+ } else {
|
||||
+ goodixDaemon.sendCommand(0x601, new java.util.ArrayList<Byte>(), (returnCode, resultData) -> {
|
||||
+ Slog.e(TAG, "Goodix send command returned code "+ returnCode);
|
||||
+ });
|
||||
+ }
|
||||
return;
|
||||
+ } catch(Throwable t) {
|
||||
+ Slog.e(TAG, "Tried sending goodix daemon cmd failed", t);
|
||||
}
|
||||
|
||||
try {
|
||||
- extension.onFingerUp();
|
||||
- } catch (RemoteException e) {
|
||||
- Slog.e(TAG, "onFingerUp | RemoteException: ", e);
|
||||
+ vendor.oplus.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint fp = vendor.oplus.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint.getService();
|
||||
+ writeFile("/sys/kernel/oppo_display/notify_fppress", "0");
|
||||
+ writeFile("/sys/kernel/oplus_display/oplus_notify_fppress", "0");
|
||||
+ fp.touchUp();
|
||||
+ } catch(Throwable t) {
|
||||
+ Slog.e(TAG, "Tried sending oplus daemon cmd failed", t);
|
||||
+ }
|
||||
+
|
||||
+ try {
|
||||
+ vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint fp = vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint.getService();
|
||||
+ writeFile("/sys/kernel/oppo_display/notify_fppress", "0");
|
||||
+ writeFile("/sys/kernel/oplus_display/oplus_notify_fppress", "0");
|
||||
+ fp.touchUp();
|
||||
+ } catch(Throwable t) {
|
||||
+ Slog.e(TAG, "Tried sending oplus daemon cmd failed", t);
|
||||
}
|
||||
+ Slog.v(TAG, "onFingerUp | failed to cast the HIDL to V2_3");
|
||||
}
|
||||
|
||||
public static int getReasonFromEnrollReason(@FingerprintManager.EnrollReason int reason) {
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,44 @@
|
||||
From 8bee76c6e7f4524183ea134f59fd0254f958e07e Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Mon, 20 Dec 2021 15:01:41 -0500
|
||||
Subject: [PATCH 27/28] Dynamically resize boot animation to match screen size
|
||||
|
||||
Change-Id: I54e49fc6b8c670103852e212d1416e27ff976205
|
||||
---
|
||||
cmds/bootanimation/BootAnimation.cpp | 20 ++++++++++++++++++++
|
||||
1 file changed, 20 insertions(+)
|
||||
|
||||
diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp
|
||||
index 6c8cab7783b6..e4335cc03c23 100644
|
||||
--- a/cmds/bootanimation/BootAnimation.cpp
|
||||
+++ b/cmds/bootanimation/BootAnimation.cpp
|
||||
@@ -583,6 +583,26 @@ status_t BootAnimation::readyToRun() {
|
||||
mFlingerSurface = s;
|
||||
mTargetInset = -1;
|
||||
|
||||
+ SLOGE("Got screen size %d, animation size %d", mWidth, mAnimation->width);
|
||||
+ int origWidth = mAnimation->width;
|
||||
+ if ( mAnimation->width*2 < mWidth ) {
|
||||
+ SLOGE("Making animation bigger");
|
||||
+ mAnimation->width *= 2;
|
||||
+ mAnimation->height *= 2;
|
||||
+ } else if ( mWidth < mAnimation->width ) {
|
||||
+ SLOGE("Making animation smaller");
|
||||
+ mAnimation->width /= 2;
|
||||
+ mAnimation->height /= 2;
|
||||
+ }
|
||||
+ for (Animation::Part& part : mAnimation->parts) {
|
||||
+ for(auto& frame: part.frames) {
|
||||
+ if(frame.trimWidth == origWidth && frame.trimX == 0 && frame.trimY == 0) {
|
||||
+ frame.trimWidth = mAnimation->width;
|
||||
+ frame.trimHeight = mAnimation->height;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
projectSceneToWindow();
|
||||
|
||||
// Register a display event receiver
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,27 @@
|
||||
From 16f900d9c0342636db048c22685d2a104a2a4e1f Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Mon, 27 Dec 2021 17:57:11 -0500
|
||||
Subject: [PATCH 28/28] Once we integrate Samsung Power hal in libpowermanager,
|
||||
libpowermanager and its deps require linking against
|
||||
vendor.samsung.hardware.miscpower@2.0
|
||||
|
||||
Change-Id: I9084f64e505009abe9420d28b44199605cee52d8
|
||||
---
|
||||
services/core/jni/Android.bp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp
|
||||
index 8ddc16aae3d7..806b92bcbdab 100644
|
||||
--- a/services/core/jni/Android.bp
|
||||
+++ b/services/core/jni/Android.bp
|
||||
@@ -186,6 +186,7 @@ cc_defaults {
|
||||
"vendor.lineage.power-V1-cpp",
|
||||
"vendor.samsung.hardware.light@2.0",
|
||||
"vendor.samsung.hardware.light@3.0",
|
||||
+ "vendor.samsung.hardware.miscpower@2.0",
|
||||
],
|
||||
|
||||
static_libs: [
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,8 +1,8 @@
|
||||
From 0153bec21c46eab87c37fb0f5c3139567460f546 Mon Sep 17 00:00:00 2001
|
||||
From 8a382e0be8155b21e0e99d03311476b8f0194736 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Wed, 14 Aug 2019 23:37:10 +0200
|
||||
Subject: [PATCH 1/7] On Samsung, we need to send a hack-message to HAL to get
|
||||
all Sensors
|
||||
Subject: [PATCH 01/13] On Samsung, we need to send a hack-message to HAL to
|
||||
get all Sensors
|
||||
|
||||
Change-Id: Id6a1fa48340de61c418493668e9abd22c2599376
|
||||
---
|
||||
@ -33,5 +33,5 @@ index c233bf06cf..623ba66364 100644
|
||||
[&](const auto &list) {
|
||||
const size_t count = list.size();
|
||||
--
|
||||
2.29.2
|
||||
2.25.1
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
From d206a6984ac2d40d182a2b89abbb263d022cdf93 Mon Sep 17 00:00:00 2001
|
||||
From dbad169717d4780128085b04ca5a6d39a2f0c5f0 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Tue, 10 Mar 2020 23:26:55 +0100
|
||||
Subject: [PATCH 2/7] Use BKK's hwcomposer hacks to properly display FOD layers
|
||||
Subject: [PATCH 02/13] Use BKK's hwcomposer hacks to properly display FOD
|
||||
layers
|
||||
|
||||
Insecure hack: Set FOD layers to magical Z values to trigger
|
||||
OPPO/Realme/Oneplus' whole blitter behaviours:
|
||||
@ -35,5 +36,5 @@ index 56e9d27f14..f804383fed 100644
|
||||
ALOGE("[%s] Failed to set Z %u: %s (%d)", getLayerFE().getDebugName(), z,
|
||||
to_string(error).c_str(), static_cast<int32_t>(error));
|
||||
--
|
||||
2.29.2
|
||||
2.25.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 2579f0a4d5f45d8f6d4edcaa1727c06649b26c5a Mon Sep 17 00:00:00 2001
|
||||
From dfc8b5d9b4b9011de99a6b61dc2469a0fe71fe7f Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Wed, 20 May 2020 21:16:56 +0200
|
||||
Subject: [PATCH 3/7] Samsung + Xiaomi new FOD HBM controls
|
||||
Subject: [PATCH 03/13] Samsung + Xiaomi new FOD HBM controls
|
||||
|
||||
Change-Id: I5ab27fa70882efa85f0c917bf31bb32adaa09bb1
|
||||
---
|
||||
@ -117,5 +117,5 @@ index f804383fed..2b7bf25dc7 100644
|
||||
|
||||
if (auto error = hwcLayer->setZOrder(z); error != hal::Error::NONE) {
|
||||
--
|
||||
2.29.2
|
||||
2.25.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 1cc2bcbb73c4664c9731260ebe39a776fab9e46e Mon Sep 17 00:00:00 2001
|
||||
From 3da3fd1c7f9302110cf747e717d2d60307c023bf Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Thu, 22 Oct 2020 23:22:46 +0200
|
||||
Subject: [PATCH 4/7] Matching an input with a display uses uniqueId
|
||||
Subject: [PATCH 04/13] Matching an input with a display uses uniqueId
|
||||
|
||||
Not all devices have a `location`, notably bluetooth devices.
|
||||
However, we might still want to associate them with a screen,
|
||||
@ -31,5 +31,5 @@ index 7af014cb34..53ef86f1c9 100644
|
||||
const std::unordered_map<std::string, uint8_t>& ports = config->portAssociations;
|
||||
const auto& displayPort = ports.find(inputPort);
|
||||
--
|
||||
2.29.2
|
||||
2.25.1
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
From 53d1d85b857bc668da93b6b264c3fa3093eb1e58 Mon Sep 17 00:00:00 2001
|
||||
From 5f8dd3a2351d262cea42d7b17746349d20649271 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Tue, 5 Jan 2021 23:44:00 +0100
|
||||
Subject: [PATCH 5/7] unshared_oob didn't exist in O/P, so detect its supported
|
||||
based on vndk version
|
||||
Subject: [PATCH 05/13] unshared_oob didn't exist in O/P, so detect its
|
||||
supported based on vndk version
|
||||
|
||||
---
|
||||
cmds/installd/migrate_legacy_obb_data.sh | 2 +-
|
||||
@ -22,5 +22,5 @@ index 7399681c3e..9d5b73eae2 100644
|
||||
rm -rf /data/media/0/Android/obb/test_probe
|
||||
exit 0
|
||||
--
|
||||
2.29.2
|
||||
2.25.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 9c752c1b718a7f027da3cd647b88d1dc3af202f7 Mon Sep 17 00:00:00 2001
|
||||
From dfd43b7f2773b8e413b41fac4d3b916658a55f6e Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Wed, 31 Mar 2021 23:36:03 +0200
|
||||
Subject: [PATCH 6/7] Remove Samsung system permission on sensors
|
||||
Subject: [PATCH 06/13] Remove Samsung system permission on sensors
|
||||
|
||||
---
|
||||
libs/sensor/Sensor.cpp | 1 +
|
||||
@ -33,5 +33,5 @@ index 374b68fab5..ffc715fc07 100644
|
||||
int32_t mRequiredAppOp;
|
||||
int32_t mMaxDelay;
|
||||
--
|
||||
2.29.2
|
||||
2.25.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 9b3166a5bdba49f210b1a9dac1c7a27f5e2cfdd2 Mon Sep 17 00:00:00 2001
|
||||
From 3f8be28fc09a5d3dba6528be7f6144cecc804b17 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Wed, 20 Oct 2021 09:39:47 -0400
|
||||
Subject: [PATCH 7/7] Try to fallback mCallingSid to getpidcon
|
||||
Subject: [PATCH 07/13] Try to fallback mCallingSid to getpidcon
|
||||
|
||||
This is needed because old vendors (before April 2019 ~) don't support
|
||||
reporting SELinux context of the caller.
|
||||
@ -14,7 +14,7 @@ Change-Id: I3b6c4dac9d0e20a3d66f931b283e3a535ab499cd
|
||||
1 file changed, 21 insertions(+)
|
||||
|
||||
diff --git a/libs/binder/IPCThreadState.cpp b/libs/binder/IPCThreadState.cpp
|
||||
index 445df9eeff..a5c4a7e106 100644
|
||||
index c415ea02e2..66d790af4b 100644
|
||||
--- a/libs/binder/IPCThreadState.cpp
|
||||
+++ b/libs/binder/IPCThreadState.cpp
|
||||
@@ -36,6 +36,7 @@
|
||||
@ -60,5 +60,5 @@ index 445df9eeff..a5c4a7e106 100644
|
||||
mCallingUid = origUid;
|
||||
mStrictModePolicy = origStrictModePolicy;
|
||||
--
|
||||
2.29.2
|
||||
2.25.1
|
||||
|
||||
|
@ -0,0 +1,38 @@
|
||||
From bcef77e6159b832ff4fccd6968b3f8c1fd9f24e1 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sun, 12 Dec 2021 08:45:36 -0500
|
||||
Subject: [PATCH 08/13] Mark accelerometer input as sensor exclusively if there
|
||||
are ABS axis
|
||||
|
||||
The reason this is needed is that on -fucked up- Xiami Mi A2 Lite and
|
||||
Galaxy J8, the input device reporting power button/vol- reports ACCELEROMETER
|
||||
input prop.
|
||||
This leads to wrong timestamping ioctl, leading to crashes and broken UI
|
||||
|
||||
Change-Id: I491ab89724c908ef09a23a6427d24a8889bf806a
|
||||
---
|
||||
services/inputflinger/reader/EventHub.cpp | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/services/inputflinger/reader/EventHub.cpp b/services/inputflinger/reader/EventHub.cpp
|
||||
index b19b4195d1..7dd8eecdaf 100644
|
||||
--- a/services/inputflinger/reader/EventHub.cpp
|
||||
+++ b/services/inputflinger/reader/EventHub.cpp
|
||||
@@ -2042,7 +2042,13 @@ void EventHub::openDeviceLocked(const std::string& devicePath) {
|
||||
|
||||
// Check whether this device is an accelerometer.
|
||||
if (device->propBitmask.test(INPUT_PROP_ACCELEROMETER)) {
|
||||
- device->classes |= InputDeviceClass::SENSOR;
|
||||
+ bool hasAxis = false;
|
||||
+ for (int i = 0; i <= ABS_MAX; i++) {
|
||||
+ if (device->absBitmask.test(i)) hasAxis = true;
|
||||
+ }
|
||||
+ if(hasAxis) {
|
||||
+ device->classes |= InputDeviceClass::SENSOR;
|
||||
+ }
|
||||
}
|
||||
|
||||
// Check whether this device has switches.
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,96 @@
|
||||
From 16f193c5d1d5a358a4d08432254477bdb69724ea Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Fri, 17 Dec 2021 17:18:20 -0500
|
||||
Subject: [PATCH 09/13] On Samsung devices for FOD HBM, set specific usage bits
|
||||
|
||||
Change-Id: Ibe71e291c6fba9ce48e83a5fd93f1beae3a63bc7
|
||||
---
|
||||
libs/gui/BLASTBufferQueue.cpp | 19 +++++++++++++++++--
|
||||
libs/ui/Gralloc2.cpp | 2 +-
|
||||
libs/ui/Gralloc3.cpp | 2 +-
|
||||
libs/ui/Gralloc4.cpp | 2 +-
|
||||
4 files changed, 20 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/libs/gui/BLASTBufferQueue.cpp b/libs/gui/BLASTBufferQueue.cpp
|
||||
index 94e1ae1c74..d23fb53703 100644
|
||||
--- a/libs/gui/BLASTBufferQueue.cpp
|
||||
+++ b/libs/gui/BLASTBufferQueue.cpp
|
||||
@@ -32,9 +32,19 @@
|
||||
#include <utils/Trace.h>
|
||||
|
||||
#include <private/gui/ComposerService.h>
|
||||
+#include <cutils/properties.h>
|
||||
|
||||
#include <chrono>
|
||||
|
||||
+
|
||||
+static bool sCheckedProps = false;
|
||||
+static bool sSamsungFod = false;
|
||||
+static void init_fod_props() {
|
||||
+ if(sCheckedProps) return;
|
||||
+ sCheckedProps = true;
|
||||
+ sSamsungFod = property_get_bool("persist.sys.phh.fod.samsung", false);
|
||||
+}
|
||||
+
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
namespace {
|
||||
@@ -144,9 +154,14 @@ BLASTBufferQueue::BLASTBufferQueue(const std::string& name, const sp<SurfaceCont
|
||||
|
||||
// safe default, most producers are expected to override this
|
||||
mProducer->setMaxDequeuedBufferCount(2);
|
||||
+ uint64_t usage = GraphicBuffer::USAGE_HW_COMPOSER |
|
||||
+ GraphicBuffer::USAGE_HW_TEXTURE;
|
||||
+ init_fod_props();
|
||||
+ if(sSamsungFod && name.find("SurfaceView[UdfpsController]") != std::string::npos) {
|
||||
+ usage |= 0x400000000LL;
|
||||
+ }
|
||||
mBufferItemConsumer = new BLASTBufferItemConsumer(mConsumer,
|
||||
- GraphicBuffer::USAGE_HW_COMPOSER |
|
||||
- GraphicBuffer::USAGE_HW_TEXTURE,
|
||||
+ usage,
|
||||
1, false);
|
||||
static int32_t id = 0;
|
||||
mName = name + "#" + std::to_string(id);
|
||||
diff --git a/libs/ui/Gralloc2.cpp b/libs/ui/Gralloc2.cpp
|
||||
index 224caf7216..c543b4e60e 100644
|
||||
--- a/libs/ui/Gralloc2.cpp
|
||||
+++ b/libs/ui/Gralloc2.cpp
|
||||
@@ -115,7 +115,7 @@ status_t Gralloc2Mapper::validateBufferDescriptorInfo(
|
||||
if (descriptorInfo->usage & ~validUsageBits) {
|
||||
ALOGE("buffer descriptor contains invalid usage bits 0x%" PRIx64,
|
||||
descriptorInfo->usage & ~validUsageBits);
|
||||
- return BAD_VALUE;
|
||||
+ return NO_ERROR;;
|
||||
}
|
||||
return NO_ERROR;
|
||||
}
|
||||
diff --git a/libs/ui/Gralloc3.cpp b/libs/ui/Gralloc3.cpp
|
||||
index 4a8a4d09d3..4b1c974db1 100644
|
||||
--- a/libs/ui/Gralloc3.cpp
|
||||
+++ b/libs/ui/Gralloc3.cpp
|
||||
@@ -106,7 +106,7 @@ status_t Gralloc3Mapper::validateBufferDescriptorInfo(
|
||||
if (descriptorInfo->usage & ~validUsageBits) {
|
||||
ALOGE("buffer descriptor contains invalid usage bits 0x%" PRIx64,
|
||||
descriptorInfo->usage & ~validUsageBits);
|
||||
- return BAD_VALUE;
|
||||
+ return NO_ERROR;
|
||||
}
|
||||
return NO_ERROR;
|
||||
}
|
||||
diff --git a/libs/ui/Gralloc4.cpp b/libs/ui/Gralloc4.cpp
|
||||
index 4f5e098988..baf557bad8 100644
|
||||
--- a/libs/ui/Gralloc4.cpp
|
||||
+++ b/libs/ui/Gralloc4.cpp
|
||||
@@ -116,7 +116,7 @@ status_t Gralloc4Mapper::validateBufferDescriptorInfo(
|
||||
if (descriptorInfo->usage & ~validUsageBits) {
|
||||
ALOGE("buffer descriptor contains invalid usage bits 0x%" PRIx64,
|
||||
descriptorInfo->usage & ~validUsageBits);
|
||||
- return BAD_VALUE;
|
||||
+ return NO_ERROR;
|
||||
}
|
||||
return NO_ERROR;
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,54 @@
|
||||
From 215af0d1a309c8bf2f6e8b474fa5f99c4c09ef15 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sun, 19 Dec 2021 16:54:31 -0500
|
||||
Subject: [PATCH 10/13] Update FOD/HBM method Xiaomi/Oplus
|
||||
|
||||
Change-Id: If99362db18d8eace487e52716a138e15d1dcfab4
|
||||
---
|
||||
.../CompositionEngine/src/OutputLayer.cpp | 12 ++++++++----
|
||||
1 file changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp b/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp
|
||||
index 2b7bf25dc7..f605b0271b 100644
|
||||
--- a/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp
|
||||
+++ b/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp
|
||||
@@ -38,6 +38,7 @@
|
||||
static bool sCheckedProps = false;
|
||||
static bool sBBKFod = false;
|
||||
static bool sXiaomiFod = false;
|
||||
+static bool sAsusFod = false;
|
||||
|
||||
namespace android::compositionengine {
|
||||
|
||||
@@ -414,11 +415,15 @@ void OutputLayer::writeOutputDependentGeometryStateToHWC(HWC2::Layer* hwcLayer,
|
||||
sCheckedProps = true;
|
||||
sBBKFod = property_get_bool("persist.sys.phh.fod.bbk", false);
|
||||
sXiaomiFod = property_get_bool("persist.sys.phh.fod.xiaomi", false);
|
||||
+ sAsusFod = property_get_bool("persist.sys.phh.fod.asus", false);
|
||||
}
|
||||
|
||||
- if(strstr(getLayerFE().getDebugName(), "Fingerprint on display") != nullptr) {
|
||||
+#define UDFPS_BIOMETRIC_PROMPT_LAYER_NAME "BiometricPrompt#0"
|
||||
+#define UDFPS_LAYER_NAME "UdfpsController#0"
|
||||
+#define UDFPS_TOUCHED_LAYER_NAME "SurfaceView[UdfpsController](BLAST)#0"
|
||||
+ if ((strcmp(getLayerFE().getDebugName(), UDFPS_LAYER_NAME) == 0)
|
||||
+ || (strcmp(getLayerFE().getDebugName(), UDFPS_BIOMETRIC_PROMPT_LAYER_NAME) == 0)) {
|
||||
ALOGE("Found fingerprint on display!");
|
||||
- z = 0x41000031;
|
||||
if(sBBKFod) {
|
||||
z = 0x41000031;
|
||||
} else if(sXiaomiFod) {
|
||||
@@ -426,9 +431,8 @@ void OutputLayer::writeOutputDependentGeometryStateToHWC(HWC2::Layer* hwcLayer,
|
||||
}
|
||||
}
|
||||
|
||||
- if(strstr(getLayerFE().getDebugName(), "Fingerprint on display.touched") != nullptr) {
|
||||
+ if (strcmp(getLayerFE().getDebugName(), UDFPS_TOUCHED_LAYER_NAME) == 0) {
|
||||
ALOGE("Found fingerprint on display touched!");
|
||||
- z = 0x41000033;
|
||||
if(sBBKFod) {
|
||||
z = 0x41000033;
|
||||
} else if(sXiaomiFod) {
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,129 @@
|
||||
From 1636cbb066d3a7f835588dad5aee9c2e764117d1 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sun, 19 Dec 2021 17:04:51 -0500
|
||||
Subject: [PATCH 11/13] For FOD/HBM on Asus devices, call the HWC extended call
|
||||
setLayerClass
|
||||
|
||||
Change-Id: Id8773fc3d2fb6d2bd228503b1ee0d77864b2eb05
|
||||
---
|
||||
.../CompositionEngine/src/OutputLayer.cpp | 4 ++++
|
||||
.../surfaceflinger/DisplayHardware/ComposerHal.cpp | 7 +++++++
|
||||
services/surfaceflinger/DisplayHardware/ComposerHal.h | 6 ++++++
|
||||
services/surfaceflinger/DisplayHardware/HWC2.cpp | 10 ++++++++++
|
||||
services/surfaceflinger/DisplayHardware/HWC2.h | 4 ++++
|
||||
5 files changed, 31 insertions(+)
|
||||
|
||||
diff --git a/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp b/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp
|
||||
index f605b0271b..cd81a5e5d0 100644
|
||||
--- a/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp
|
||||
+++ b/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp
|
||||
@@ -428,6 +428,8 @@ void OutputLayer::writeOutputDependentGeometryStateToHWC(HWC2::Layer* hwcLayer,
|
||||
z = 0x41000031;
|
||||
} else if(sXiaomiFod) {
|
||||
z |= 0x1000000;
|
||||
+ } else if(sAsusFod) {
|
||||
+ hwcLayer->setLayerClass(4);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -437,6 +439,8 @@ void OutputLayer::writeOutputDependentGeometryStateToHWC(HWC2::Layer* hwcLayer,
|
||||
z = 0x41000033;
|
||||
} else if(sXiaomiFod) {
|
||||
z |= 0x2000000;
|
||||
+ } else if(sAsusFod) {
|
||||
+ hwcLayer->setLayerClass(5);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/services/surfaceflinger/DisplayHardware/ComposerHal.cpp b/services/surfaceflinger/DisplayHardware/ComposerHal.cpp
|
||||
index caf0294a56..ff5039f75b 100644
|
||||
--- a/services/surfaceflinger/DisplayHardware/ComposerHal.cpp
|
||||
+++ b/services/surfaceflinger/DisplayHardware/ComposerHal.cpp
|
||||
@@ -1220,6 +1220,13 @@ V2_4::Error Composer::setLayerGenericMetadata(Display display, Layer layer, cons
|
||||
return Error::NONE;
|
||||
}
|
||||
|
||||
+Error Composer::setLayerClass(Display display, Layer layer, uint32_t layerClass) {
|
||||
+ mWriter.selectDisplay(display);
|
||||
+ mWriter.selectLayer(layer);
|
||||
+ mWriter.vendor800_1(layerClass);
|
||||
+ return Error::NONE;
|
||||
+}
|
||||
+
|
||||
V2_4::Error Composer::getLayerGenericMetadataKeys(
|
||||
std::vector<IComposerClient::LayerGenericMetadataKey>* outKeys) {
|
||||
using Error = V2_4::Error;
|
||||
diff --git a/services/surfaceflinger/DisplayHardware/ComposerHal.h b/services/surfaceflinger/DisplayHardware/ComposerHal.h
|
||||
index b525e63c66..2eb63f3c2e 100644
|
||||
--- a/services/surfaceflinger/DisplayHardware/ComposerHal.h
|
||||
+++ b/services/surfaceflinger/DisplayHardware/ComposerHal.h
|
||||
@@ -231,6 +231,9 @@ public:
|
||||
std::vector<IComposerClient::LayerGenericMetadataKey>* outKeys) = 0;
|
||||
virtual Error getClientTargetProperty(
|
||||
Display display, IComposerClient::ClientTargetProperty* outClientTargetProperty) = 0;
|
||||
+
|
||||
+ // Asus proprietary
|
||||
+ virtual Error setLayerClass(Display display, Layer layer, uint32_t layerClass);
|
||||
};
|
||||
|
||||
namespace impl {
|
||||
@@ -467,10 +470,13 @@ public:
|
||||
bool mandatory, const std::vector<uint8_t>& value) override;
|
||||
V2_4::Error getLayerGenericMetadataKeys(
|
||||
std::vector<IComposerClient::LayerGenericMetadataKey>* outKeys) override;
|
||||
+
|
||||
Error getClientTargetProperty(
|
||||
Display display,
|
||||
IComposerClient::ClientTargetProperty* outClientTargetProperty) override;
|
||||
|
||||
+ // Asus proprietary
|
||||
+ Error setLayerClass(Display display, Layer layer, uint32_t layerClass);
|
||||
private:
|
||||
class CommandWriter : public CommandWriterBase {
|
||||
public:
|
||||
diff --git a/services/surfaceflinger/DisplayHardware/HWC2.cpp b/services/surfaceflinger/DisplayHardware/HWC2.cpp
|
||||
index 27146ab79c..474c3eade5 100644
|
||||
--- a/services/surfaceflinger/DisplayHardware/HWC2.cpp
|
||||
+++ b/services/surfaceflinger/DisplayHardware/HWC2.cpp
|
||||
@@ -872,6 +872,16 @@ Error Layer::setZOrder(uint32_t z)
|
||||
return static_cast<Error>(intError);
|
||||
}
|
||||
|
||||
+Error Layer::setLayerClass(uint32_t val)
|
||||
+{
|
||||
+ if (CC_UNLIKELY(!mDisplay)) {
|
||||
+ return Error::BAD_DISPLAY;
|
||||
+ }
|
||||
+
|
||||
+ auto intError = mComposer.setLayerClass(mDisplay->getId(), mId, val);
|
||||
+ return static_cast<Error>(intError);
|
||||
+}
|
||||
+
|
||||
// Composer HAL 2.3
|
||||
Error Layer::setColorTransform(const android::mat4& matrix) {
|
||||
if (CC_UNLIKELY(!mDisplay)) {
|
||||
diff --git a/services/surfaceflinger/DisplayHardware/HWC2.h b/services/surfaceflinger/DisplayHardware/HWC2.h
|
||||
index 871465d717..7a04047407 100644
|
||||
--- a/services/surfaceflinger/DisplayHardware/HWC2.h
|
||||
+++ b/services/surfaceflinger/DisplayHardware/HWC2.h
|
||||
@@ -287,6 +287,8 @@ public:
|
||||
// Composer HAL 2.4
|
||||
[[clang::warn_unused_result]] virtual hal::Error setLayerGenericMetadata(
|
||||
const std::string& name, bool mandatory, const std::vector<uint8_t>& value) = 0;
|
||||
+
|
||||
+ virtual hal::Error setLayerClass(uint32_t layerClass) = 0;
|
||||
};
|
||||
|
||||
namespace impl {
|
||||
@@ -330,6 +332,8 @@ public:
|
||||
hal::Error setLayerGenericMetadata(const std::string& name, bool mandatory,
|
||||
const std::vector<uint8_t>& value) override;
|
||||
|
||||
+ hal::Error setLayerClass(uint32_t layerClass);
|
||||
+
|
||||
private:
|
||||
// These are references to data owned by HWC2::Device, which will outlive
|
||||
// this HWC2::Layer, so these references are guaranteed to be valid for
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,303 @@
|
||||
From e33af0dcd960fdbcc14b31ce22e21ce8297fad69 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Mon, 27 Dec 2021 18:00:43 -0500
|
||||
Subject: [PATCH 12/13] powermanager: Add support Samsung miscpower HAL
|
||||
|
||||
Several various configurations need to be supported:
|
||||
- Android Pie vendors have a android.hardware.power HIDL default + "miscpower"
|
||||
- Android Q vendors have default HIDL android.hardware.power +
|
||||
ISehMiscPower
|
||||
- Android R vendors have default AIDL android.hardware.power +
|
||||
ISehMiscPower
|
||||
|
||||
ISehMiscPower is always in addition to android.hardware.power, not as a
|
||||
substituion
|
||||
|
||||
Only tested configuration ATM is the latest one
|
||||
|
||||
Change-Id: I182a91ccb0a89f9d0d7d41f36eccab218b553bbc
|
||||
---
|
||||
include/powermanager/PowerHalLoader.h | 3 +
|
||||
include/powermanager/PowerHalWrapper.h | 35 ++++++++-
|
||||
services/powermanager/Android.bp | 1 +
|
||||
services/powermanager/PowerHalController.cpp | 7 +-
|
||||
services/powermanager/PowerHalLoader.cpp | 16 ++++-
|
||||
services/powermanager/PowerHalWrapper.cpp | 75 ++++++++++++++++++++
|
||||
6 files changed, 134 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/include/powermanager/PowerHalLoader.h b/include/powermanager/PowerHalLoader.h
|
||||
index 18dfb50cb4..8822658706 100644
|
||||
--- a/include/powermanager/PowerHalLoader.h
|
||||
+++ b/include/powermanager/PowerHalLoader.h
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <android/hardware/power/1.1/IPower.h>
|
||||
#include <android/hardware/power/IPower.h>
|
||||
#include <vendor/lineage/power/IPower.h>
|
||||
+#include <vendor/samsung/hardware/miscpower/2.0/ISehMiscPower.h>
|
||||
|
||||
namespace android {
|
||||
|
||||
@@ -35,6 +36,7 @@ public:
|
||||
static sp<hardware::power::V1_0::IPower> loadHidlV1_0();
|
||||
static sp<hardware::power::V1_1::IPower> loadHidlV1_1();
|
||||
static sp<vendor::lineage::power::IPower> loadLineageAidl();
|
||||
+ static sp<vendor::samsung::hardware::miscpower::V2_0::ISehMiscPower> loadHidlSeh();
|
||||
|
||||
private:
|
||||
static std::mutex gHalMutex;
|
||||
@@ -43,6 +45,7 @@ private:
|
||||
static sp<hardware::power::V1_0::IPower> gHalHidlV1_0 GUARDED_BY(gHalMutex);
|
||||
static sp<hardware::power::V1_1::IPower> gHalHidlV1_1 GUARDED_BY(gHalMutex);
|
||||
static sp<vendor::lineage::power::IPower> gHalLineageAidl GUARDED_BY(gLineageHalMutex);
|
||||
+ static sp<vendor::samsung::hardware::miscpower::V2_0::ISehMiscPower> gHalHidlSeh GUARDED_BY(gHalMutex);
|
||||
|
||||
static sp<hardware::power::V1_0::IPower> loadHidlV1_0Locked()
|
||||
EXCLUSIVE_LOCKS_REQUIRED(gHalMutex);
|
||||
diff --git a/include/powermanager/PowerHalWrapper.h b/include/powermanager/PowerHalWrapper.h
|
||||
index d455b74564..8a0623f588 100644
|
||||
--- a/include/powermanager/PowerHalWrapper.h
|
||||
+++ b/include/powermanager/PowerHalWrapper.h
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <android/hardware/power/IPowerHintSession.h>
|
||||
#include <android/hardware/power/Mode.h>
|
||||
#include <vendor/lineage/power/IPower.h>
|
||||
+#include <vendor/samsung/hardware/miscpower/2.0/ISehMiscPower.h>
|
||||
|
||||
namespace android {
|
||||
|
||||
@@ -185,7 +186,10 @@ private:
|
||||
// Wrapper for the AIDL Power HAL.
|
||||
class AidlHalWrapper : public HalWrapper {
|
||||
public:
|
||||
- explicit AidlHalWrapper(sp<hardware::power::IPower> handle) : mHandle(std::move(handle)) {}
|
||||
+ explicit AidlHalWrapper(sp<hardware::power::IPower> handle,
|
||||
+ sp<vendor::samsung::hardware::miscpower::V2_0::ISehMiscPower> sehHandle)
|
||||
+ : mHandle(std::move(handle)),
|
||||
+ mHandleSeh(std::move(sehHandle)) {}
|
||||
virtual ~AidlHalWrapper() = default;
|
||||
|
||||
virtual HalResult<void> setBoost(hardware::power::Boost boost, int32_t durationMs) override;
|
||||
@@ -201,6 +205,7 @@ private:
|
||||
std::mutex mBoostMutex;
|
||||
std::mutex mModeMutex;
|
||||
sp<hardware::power::IPower> mHandle;
|
||||
+ sp<vendor::samsung::hardware::miscpower::V2_0::ISehMiscPower> mHandleSeh;
|
||||
// Android framework only sends boost upto DISPLAY_UPDATE_IMMINENT.
|
||||
// Need to increase the array size if more boost supported.
|
||||
std::array<std::atomic<HalSupport>,
|
||||
@@ -231,6 +236,34 @@ private:
|
||||
sp<vendor::lineage::power::IPower> mHandle;
|
||||
};
|
||||
|
||||
+class HidlHalWrapperSeh : public HalWrapper {
|
||||
+public:
|
||||
+ explicit HidlHalWrapperSeh(sp<vendor::samsung::hardware::miscpower::V2_0::ISehMiscPower> hal1,
|
||||
+ sp<android::hardware::power::V1_1::IPower> hal2,
|
||||
+ sp<android::hardware::power::V1_0::IPower> hal3)
|
||||
+ : mHandleSeh(std::move(hal1)),
|
||||
+ mHandle11(std::move(hal2)),
|
||||
+ mHandle10(std::move(hal3)) {}
|
||||
+ virtual ~HidlHalWrapperSeh() = default;
|
||||
+
|
||||
+ virtual HalResult<void> setBoost(hardware::power::Boost boost, int32_t durationMs) override;
|
||||
+ virtual HalResult<void> setMode(hardware::power::Mode mode, bool enabled) override;
|
||||
+ virtual HalResult<sp<hardware::power::IPowerHintSession>> createHintSession(
|
||||
+ int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds,
|
||||
+ int64_t durationNanos) override;
|
||||
+ virtual HalResult<int64_t> getHintSessionPreferredRate() override;
|
||||
+ virtual HalResult<int> getFeature(vendor::lineage::power::Feature feature) override;
|
||||
+
|
||||
+protected:
|
||||
+ virtual HalResult<void> sendPowerHint(hardware::power::V1_0::PowerHint hintId, uint32_t data);
|
||||
+
|
||||
+private:
|
||||
+ sp<vendor::samsung::hardware::miscpower::V2_0::ISehMiscPower> mHandleSeh;
|
||||
+ sp<android::hardware::power::V1_1::IPower> mHandle11;
|
||||
+ sp<android::hardware::power::V1_0::IPower> mHandle10;
|
||||
+ HalResult<void> setInteractive(bool enabled);
|
||||
+ HalResult<void> setFeature(hardware::power::V1_0::Feature feature, bool enabled);
|
||||
+};
|
||||
|
||||
}; // namespace power
|
||||
|
||||
diff --git a/services/powermanager/Android.bp b/services/powermanager/Android.bp
|
||||
index e27e620729..e77cdc32b2 100644
|
||||
--- a/services/powermanager/Android.bp
|
||||
+++ b/services/powermanager/Android.bp
|
||||
@@ -40,6 +40,7 @@ cc_library_shared {
|
||||
"android.hardware.power@1.1",
|
||||
"android.hardware.power-V2-cpp",
|
||||
"vendor.lineage.power-V1-cpp",
|
||||
+ "vendor.samsung.hardware.miscpower@2.0",
|
||||
],
|
||||
|
||||
cflags: [
|
||||
diff --git a/services/powermanager/PowerHalController.cpp b/services/powermanager/PowerHalController.cpp
|
||||
index 7a1b5f7c0a..8577c3b931 100644
|
||||
--- a/services/powermanager/PowerHalController.cpp
|
||||
+++ b/services/powermanager/PowerHalController.cpp
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <android/hardware/power/IPower.h>
|
||||
#include <android/hardware/power/IPowerHintSession.h>
|
||||
#include <android/hardware/power/Mode.h>
|
||||
+#include <vendor/samsung/hardware/miscpower/2.0/ISehMiscPower.h>
|
||||
#include <powermanager/PowerHalController.h>
|
||||
#include <powermanager/PowerHalLoader.h>
|
||||
#include <utils/Log.h>
|
||||
@@ -35,11 +36,15 @@ namespace power {
|
||||
|
||||
std::unique_ptr<HalWrapper> HalConnector::connect() {
|
||||
sp<IPower> halAidl = PowerHalLoader::loadAidl();
|
||||
+ sp<vendor::samsung::hardware::miscpower::V2_0::ISehMiscPower> halHidlSeh = PowerHalLoader::loadHidlSeh();
|
||||
if (halAidl) {
|
||||
- return std::make_unique<AidlHalWrapper>(halAidl);
|
||||
+ return std::make_unique<AidlHalWrapper>(halAidl, halHidlSeh);
|
||||
}
|
||||
sp<V1_0::IPower> halHidlV1_0 = PowerHalLoader::loadHidlV1_0();
|
||||
sp<V1_1::IPower> halHidlV1_1 = PowerHalLoader::loadHidlV1_1();
|
||||
+ if (halHidlSeh) {
|
||||
+ return std::make_unique<HidlHalWrapperSeh>(halHidlSeh, halHidlV1_1, halHidlV1_0);
|
||||
+ }
|
||||
if (halHidlV1_1) {
|
||||
return std::make_unique<HidlHalWrapperV1_1>(halHidlV1_0, halHidlV1_1);
|
||||
}
|
||||
diff --git a/services/powermanager/PowerHalLoader.cpp b/services/powermanager/PowerHalLoader.cpp
|
||||
index e5c636344d..803888dabb 100644
|
||||
--- a/services/powermanager/PowerHalLoader.cpp
|
||||
+++ b/services/powermanager/PowerHalLoader.cpp
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
#include <android/hardware/power/1.1/IPower.h>
|
||||
#include <android/hardware/power/IPower.h>
|
||||
+#include <vendor/samsung/hardware/miscpower/2.0/ISehMiscPower.h>
|
||||
#include <binder/IServiceManager.h>
|
||||
#include <hardware/power.h>
|
||||
#include <hardware_legacy/power.h>
|
||||
@@ -59,6 +60,7 @@ sp<IPower> PowerHalLoader::gHalAidl = nullptr;
|
||||
sp<V1_0::IPower> PowerHalLoader::gHalHidlV1_0 = nullptr;
|
||||
sp<V1_1::IPower> PowerHalLoader::gHalHidlV1_1 = nullptr;
|
||||
sp<LineageAidl::IPower> PowerHalLoader::gHalLineageAidl = nullptr;
|
||||
+sp<vendor::samsung::hardware::miscpower::V2_0::ISehMiscPower> PowerHalLoader::gHalHidlSeh = nullptr;
|
||||
|
||||
void PowerHalLoader::unloadAll() {
|
||||
std::lock_guard<std::mutex> lock(gHalMutex);
|
||||
@@ -98,10 +100,22 @@ sp<LineageAidl::IPower> PowerHalLoader::loadLineageAidl() {
|
||||
return loadHal<LineageAidl::IPower>(gHalExists, gHalLineageAidl, loadFn, "Lineage AIDL");
|
||||
}
|
||||
|
||||
+sp<vendor::samsung::hardware::miscpower::V2_0::ISehMiscPower> PowerHalLoader::loadHidlSeh() {
|
||||
+ std::lock_guard<std::mutex> lock(gHalMutex);
|
||||
+ static bool gHalExists = true;
|
||||
+ static auto loadFn = []() { return vendor::samsung::hardware::miscpower::V2_0::ISehMiscPower::getService(); };
|
||||
+ return loadHal<vendor::samsung::hardware::miscpower::V2_0::ISehMiscPower>(gHalExists, gHalHidlSeh, loadFn, "HIDL SEH v1.1");
|
||||
+}
|
||||
+
|
||||
sp<V1_0::IPower> PowerHalLoader::loadHidlV1_0Locked() {
|
||||
static bool gHalExists = true;
|
||||
+ static auto loadFnSec = []() { return V1_0::IPower::getService("power"); };
|
||||
+ auto hal = loadHal<V1_0::IPower>(gHalExists, gHalHidlV1_0, loadFnSec, "HIDL v1.0");
|
||||
+
|
||||
static auto loadFn = []() { return V1_0::IPower::getService(); };
|
||||
- return loadHal<V1_0::IPower>(gHalExists, gHalHidlV1_0, loadFn, "HIDL v1.0");
|
||||
+ if(hal == nullptr)
|
||||
+ hal = loadHal<V1_0::IPower>(gHalExists, gHalHidlV1_0, loadFn, "HIDL v1.0");
|
||||
+ return hal;
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------------------------------
|
||||
diff --git a/services/powermanager/PowerHalWrapper.cpp b/services/powermanager/PowerHalWrapper.cpp
|
||||
index 49659e796e..775cdcf800 100644
|
||||
--- a/services/powermanager/PowerHalWrapper.cpp
|
||||
+++ b/services/powermanager/PowerHalWrapper.cpp
|
||||
@@ -220,6 +220,10 @@ HalResult<void> AidlHalWrapper::setMode(Mode mode, bool enabled) {
|
||||
std::unique_lock<std::mutex> lock(mModeMutex);
|
||||
size_t idx = static_cast<size_t>(mode);
|
||||
|
||||
+ if (mHandleSeh != nullptr && mode == Mode::INTERACTIVE) {
|
||||
+ mHandleSeh->setInteractiveAsync(enabled, false);
|
||||
+ }
|
||||
+
|
||||
// Quick return if mode is not supported by HAL
|
||||
if (idx >= mModeSupportedArray.size() || mModeSupportedArray[idx] == HalSupport::OFF) {
|
||||
ALOGV("Skipped setMode %s because Power HAL doesn't support it", toString(mode).c_str());
|
||||
@@ -296,6 +300,77 @@ HalResult<int> LineageAidlHalWrapper::getFeature(LineageAidl::Feature feature) {
|
||||
return HalResult<int>::fromStatus(ret, value);
|
||||
}
|
||||
|
||||
+HalResult<void> HidlHalWrapperSeh::setBoost(Boost boost, int32_t durationMs) {
|
||||
+ if (boost == Boost::INTERACTION) {
|
||||
+ return sendPowerHint(V1_0::PowerHint::INTERACTION, durationMs);
|
||||
+ } else {
|
||||
+ ALOGV("Skipped setBoost %s because Power HAL AIDL not available", toString(boost).c_str());
|
||||
+ return HalResult<void>::unsupported();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+HalResult<void> HidlHalWrapperSeh::setMode(Mode mode, bool enabled) {
|
||||
+ uint32_t data = enabled ? 1 : 0;
|
||||
+ switch (mode) {
|
||||
+ case Mode::LAUNCH:
|
||||
+ return sendPowerHint(V1_0::PowerHint::LAUNCH, data);
|
||||
+ case Mode::LOW_POWER:
|
||||
+ return sendPowerHint(V1_0::PowerHint::LOW_POWER, data);
|
||||
+ case Mode::SUSTAINED_PERFORMANCE:
|
||||
+ return sendPowerHint(V1_0::PowerHint::SUSTAINED_PERFORMANCE, data);
|
||||
+ case Mode::VR:
|
||||
+ return sendPowerHint(V1_0::PowerHint::VR_MODE, data);
|
||||
+ case Mode::INTERACTIVE:
|
||||
+ return setInteractive(enabled);
|
||||
+ case Mode::DOUBLE_TAP_TO_WAKE:
|
||||
+ return setFeature(V1_0::Feature::POWER_FEATURE_DOUBLE_TAP_TO_WAKE, enabled);
|
||||
+ default:
|
||||
+ ALOGV("Skipped setMode %s because Power HAL AIDL not available",
|
||||
+ toString(mode).c_str());
|
||||
+ return HalResult<void>::unsupported();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+HalResult<void> HidlHalWrapperSeh::sendPowerHint(V1_0::PowerHint hintId, uint32_t data) {
|
||||
+ if(mHandle11 != nullptr) {
|
||||
+ auto ret = mHandle11->powerHintAsync(hintId, data);
|
||||
+ return HalResult<void>::fromReturn(ret);
|
||||
+ } else {
|
||||
+ auto ret = mHandle10->powerHint(hintId, data);
|
||||
+ return HalResult<void>::fromReturn(ret);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+HalResult<void> HidlHalWrapperSeh::setInteractive(bool enabled) {
|
||||
+ if(mHandleSeh != nullptr) {
|
||||
+ mHandleSeh->setInteractiveAsync(enabled, false);
|
||||
+ }
|
||||
+ auto ret = mHandle10->setInteractive(enabled);
|
||||
+ return HalResult<void>::fromReturn(ret);
|
||||
+}
|
||||
+
|
||||
+HalResult<void> HidlHalWrapperSeh::setFeature(V1_0::Feature feature, bool enabled) {
|
||||
+ auto ret = mHandle10->setFeature(feature, enabled);
|
||||
+ return HalResult<void>::fromReturn(ret);
|
||||
+}
|
||||
+
|
||||
+HalResult<sp<Aidl::IPowerHintSession>> HidlHalWrapperSeh::createHintSession(
|
||||
+ int32_t, int32_t, const std::vector<int32_t>& threadIds, int64_t) {
|
||||
+ ALOGV("Skipped createHintSession(task num=%zu) because Power HAL not available",
|
||||
+ threadIds.size());
|
||||
+ return HalResult<sp<Aidl::IPowerHintSession>>::unsupported();
|
||||
+}
|
||||
+
|
||||
+HalResult<int64_t> HidlHalWrapperSeh::getHintSessionPreferredRate() {
|
||||
+ ALOGV("Skipped getHintSessionPreferredRate because Power HAL not available");
|
||||
+ return HalResult<int64_t>::unsupported();
|
||||
+}
|
||||
+
|
||||
+HalResult<int> HidlHalWrapperSeh::getFeature(LineageAidl::Feature) {
|
||||
+ ALOGV("Skipped getFeature because Power HAL not available");
|
||||
+ return HalResult<int>::unsupported();
|
||||
+}
|
||||
+
|
||||
// -------------------------------------------------------------------------------------------------
|
||||
|
||||
} // namespace power
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,31 @@
|
||||
From 184f59f82b11e4180a12586ab01b926b9187c418 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Wed, 12 Jan 2022 04:07:34 -0500
|
||||
Subject: [PATCH 13/13] Fix loading power hidl v1.0
|
||||
|
||||
Change-Id: Ife20a98d2a11c79c7b42f359f30c28e2dede1f25
|
||||
---
|
||||
services/powermanager/PowerHalLoader.cpp | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/services/powermanager/PowerHalLoader.cpp b/services/powermanager/PowerHalLoader.cpp
|
||||
index 803888dabb..f04abdcbd0 100644
|
||||
--- a/services/powermanager/PowerHalLoader.cpp
|
||||
+++ b/services/powermanager/PowerHalLoader.cpp
|
||||
@@ -108,10 +108,11 @@ sp<vendor::samsung::hardware::miscpower::V2_0::ISehMiscPower> PowerHalLoader::lo
|
||||
}
|
||||
|
||||
sp<V1_0::IPower> PowerHalLoader::loadHidlV1_0Locked() {
|
||||
- static bool gHalExists = true;
|
||||
+ static bool gSecHalExists = true;
|
||||
static auto loadFnSec = []() { return V1_0::IPower::getService("power"); };
|
||||
- auto hal = loadHal<V1_0::IPower>(gHalExists, gHalHidlV1_0, loadFnSec, "HIDL v1.0");
|
||||
+ auto hal = loadHal<V1_0::IPower>(gSecHalExists, gHalHidlV1_0, loadFnSec, "HIDL v1.0");
|
||||
|
||||
+ static bool gHalExists = true;
|
||||
static auto loadFn = []() { return V1_0::IPower::getService(); };
|
||||
if(hal == nullptr)
|
||||
hal = loadHal<V1_0::IPower>(gHalExists, gHalHidlV1_0, loadFn, "HIDL v1.0");
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 2b520b6933e681f69925b6c974742cff29cf47df Mon Sep 17 00:00:00 2001
|
||||
From cc24a7e886eff42a0e2f160cabb2c11d87c1a384 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sun, 13 Oct 2019 17:21:31 +0800
|
||||
Subject: [PATCH 1/3] telephony: forward-port support for forceCognitive
|
||||
Subject: [PATCH 1/4] telephony: forward-port support for forceCognitive
|
||||
|
||||
* This is needed on some MTK devices. Android 10 refactored some code,
|
||||
so now the "non-persistent/cognitive" filter is relocated to RIL and
|
||||
|
@ -1,7 +1,7 @@
|
||||
From d230672d53c64266bcf699d27c8951975f918d3f Mon Sep 17 00:00:00 2001
|
||||
From fcfb842f7f35b38c07062f40a344412323317c2e Mon Sep 17 00:00:00 2001
|
||||
From: Artem Borisov <dedsa2002@gmail.com>
|
||||
Date: Sat, 10 Nov 2018 17:19:17 +0000
|
||||
Subject: [PATCH 2/3] Telephony: Don not call onUssdRelease for Huawei RIL
|
||||
Subject: [PATCH 2/4] Telephony: Don not call onUssdRelease for Huawei RIL
|
||||
|
||||
Huawei RIL doesn't seem to work properly with USSD_MODE_NW_RELEASE,
|
||||
always releasing USSD when it should be finished instead.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From cc77f6e8d407e9aa7c178c014ce7fb2faf23092a Mon Sep 17 00:00:00 2001
|
||||
From 467090b06364a3c7874406eac519ef92c425bc82 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Mon, 6 Dec 2021 16:28:22 -0500
|
||||
Subject: [PATCH 3/3] Fix baseband being too long to fit into a 91 chars
|
||||
Subject: [PATCH 3/4] Fix baseband being too long to fit into a 91 chars
|
||||
property, preventing telephony subsystem from starting
|
||||
|
||||
Change-Id: I1762e4a8cc137626be89f350229d6be162bdaf57
|
||||
|
@ -0,0 +1,47 @@
|
||||
From fdf6b444ee616a00e8f2c96817fc94913015ab7d Mon Sep 17 00:00:00 2001
|
||||
From: ironydelerium <42721860+ironydelerium@users.noreply.github.com>
|
||||
Date: Fri, 31 Dec 2021 02:20:28 -0800
|
||||
Subject: [PATCH 4/4] Reintroduce 'public void
|
||||
TelephonyMetrics.writeRilSendSms(int, int, int, int)'. (#8)
|
||||
|
||||
The MediaTek IMS package for Android Q, at the very least (likely for the rest, too)
|
||||
invoke this method in their `sendSms` method; Google, in their infinite wisdom,
|
||||
decided that this method needed a message ID passed in as well, changing the signature
|
||||
to 'public void TelephonyMetrics.writeRilSendSms(int, int, int, int, long)' and resulting
|
||||
in a MethodNotFoundException being raised in com.mediatek.ims, crashing it.
|
||||
|
||||
Fixes https://github.com/phhusson/treble_experimentations/issues/2125.
|
||||
|
||||
Co-authored-by: Sarah Vandomelen <sarah@sightworks.com>
|
||||
Change-Id: Ib7a3a41e049cb9c9f937e8c6f771a29495738223
|
||||
---
|
||||
.../telephony/metrics/TelephonyMetrics.java | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
|
||||
diff --git a/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java b/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
|
||||
index 5e43876df8..c375d9c8b6 100644
|
||||
--- a/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
|
||||
+++ b/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
|
||||
@@ -2311,6 +2311,19 @@ public class TelephonyMetrics {
|
||||
smsSession.increaseExpectedResponse();
|
||||
}
|
||||
|
||||
+ /**
|
||||
+ * Write Send SMS event (backwards-compatible method for R and earlier IMS implementations)
|
||||
+ *
|
||||
+ * @param phoneId Phone id
|
||||
+ * @param rilSerial RIL request serial number
|
||||
+ * @param tech SMS RAT
|
||||
+ * @param format SMS format. Either {@link SmsMessage#FORMAT_3GPP} or
|
||||
+ * {@link SmsMessage#FORMAT_3GPP2}.
|
||||
+ */
|
||||
+ public void writeRilSendSms(int phoneId, int rilSerial, int tech, int format) {
|
||||
+ writeRilSendSms(phoneId, rilSerial, tech, format, 0);
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* Write Send SMS event using ImsService. Expecting response from
|
||||
* {@link #writeOnSmsSolicitedResponse}.
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,31 @@
|
||||
From eadaea9b045787edb3d2be27fa2cdb1bf29f6763 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Sun, 19 Dec 2021 17:03:15 -0500
|
||||
Subject: [PATCH] Add a vendor800 command, to be able to call vendor-specific
|
||||
hwc functions
|
||||
|
||||
Change-Id: Icbef1e9e3a331ae3bd5a05687d545851d94d88a8
|
||||
---
|
||||
.../composer-command-buffer/2.1/ComposerCommandBuffer.h | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/graphics/composer/2.1/utils/command-buffer/include/composer-command-buffer/2.1/ComposerCommandBuffer.h b/graphics/composer/2.1/utils/command-buffer/include/composer-command-buffer/2.1/ComposerCommandBuffer.h
|
||||
index 499d3b96e..489578468 100644
|
||||
--- a/graphics/composer/2.1/utils/command-buffer/include/composer-command-buffer/2.1/ComposerCommandBuffer.h
|
||||
+++ b/graphics/composer/2.1/utils/command-buffer/include/composer-command-buffer/2.1/ComposerCommandBuffer.h
|
||||
@@ -402,6 +402,12 @@ class CommandWriterBase {
|
||||
endCommand();
|
||||
}
|
||||
|
||||
+ void vendor800_1(uint32_t val) {
|
||||
+ beginCommand(0x800 << 16, 1);
|
||||
+ write(val);
|
||||
+ endCommand();
|
||||
+ }
|
||||
+
|
||||
protected:
|
||||
template <typename T>
|
||||
void beginCommand(T command, uint16_t length) {
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,54 +0,0 @@
|
||||
From e408adb5e9f3cf907392b7af9080df588e4e5b26 Mon Sep 17 00:00:00 2001
|
||||
From: Andreas Schneider <asn@cryptomilk.org>
|
||||
Date: Mon, 7 Jun 2021 13:23:02 -0400
|
||||
Subject: [PATCH] On Samsung devices, we need to tell Audio HAL if we're
|
||||
running narrow band or wide band
|
||||
|
||||
Change-Id: Ibfa0f632d9acbb920a85a613ce4e2f1d26556bd1
|
||||
---
|
||||
.../android/bluetooth/hfp/HeadsetStateMachine.java | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/src/com/android/bluetooth/hfp/HeadsetStateMachine.java b/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
|
||||
index 03ba99ac2..20267d08a 100644
|
||||
--- a/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
|
||||
+++ b/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
|
||||
@@ -87,6 +87,9 @@ public class HeadsetStateMachine extends StateMachine {
|
||||
private static final String HEADSET_WBS = "bt_wbs";
|
||||
private static final String HEADSET_AUDIO_FEATURE_ON = "on";
|
||||
private static final String HEADSET_AUDIO_FEATURE_OFF = "off";
|
||||
+ private static final String HEADSET_G_SCO_SAMPLERATE = "g_sco_samplerate";
|
||||
+ private static final String HEADSET_G_WB_SAMPLERATE = "16000";
|
||||
+ private static final String HEADSET_G_NB_SAMPLERATE = "8000";
|
||||
|
||||
static final int CONNECT = 1;
|
||||
static final int DISCONNECT = 2;
|
||||
@@ -1549,6 +1552,12 @@ public class HeadsetStateMachine extends StateMachine {
|
||||
HEADSET_WBS + "=" + mAudioParams.getOrDefault(HEADSET_WBS,
|
||||
HEADSET_AUDIO_FEATURE_OFF)
|
||||
});
|
||||
+ keyValuePairs = keyValuePairs.concat(";"
|
||||
+ + HEADSET_G_SCO_SAMPLERATE
|
||||
+ + "="
|
||||
+ + mAudioParams.getOrDefault(
|
||||
+ HEADSET_G_SCO_SAMPLERATE,
|
||||
+ HEADSET_G_NB_SAMPLERATE));
|
||||
Log.i(TAG, "setAudioParameters for " + mDevice + ": " + keyValuePairs);
|
||||
mSystemInterface.getAudioManager().setParameters(keyValuePairs);
|
||||
}
|
||||
@@ -1689,10 +1698,12 @@ public class HeadsetStateMachine extends StateMachine {
|
||||
String prevWbs = mAudioParams.getOrDefault(HEADSET_WBS, HEADSET_AUDIO_FEATURE_OFF);
|
||||
switch (wbsConfig) {
|
||||
case HeadsetHalConstants.BTHF_WBS_YES:
|
||||
+ mAudioParams.put(HEADSET_G_SCO_SAMPLERATE, HEADSET_G_WB_SAMPLERATE);
|
||||
mAudioParams.put(HEADSET_WBS, HEADSET_AUDIO_FEATURE_ON);
|
||||
break;
|
||||
case HeadsetHalConstants.BTHF_WBS_NO:
|
||||
case HeadsetHalConstants.BTHF_WBS_NONE:
|
||||
+ mAudioParams.put(HEADSET_G_SCO_SAMPLERATE, HEADSET_G_NB_SAMPLERATE);
|
||||
mAudioParams.put(HEADSET_WBS, HEADSET_AUDIO_FEATURE_OFF);
|
||||
break;
|
||||
default:
|
||||
--
|
||||
2.29.2
|
||||
|
@ -0,0 +1,24 @@
|
||||
From e3aaba55ee98ad1914f46590292bb0f017bc3149 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Mon, 10 Jan 2022 03:31:18 +0000
|
||||
Subject: [PATCH] Report SCO sample rate by default
|
||||
|
||||
Change-Id: I12c14e2206f5dc20fefe30a2197798773a894988
|
||||
---
|
||||
res/values/config.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/res/values/config.xml b/res/values/config.xml
|
||||
index 42ecca47f..952b96510 100644
|
||||
--- a/res/values/config.xml
|
||||
+++ b/res/values/config.xml
|
||||
@@ -136,5 +136,5 @@
|
||||
<bool name="enable_gd_up_to_scanning_layer">false</bool>
|
||||
|
||||
<!-- If true, SCO sample rate will be reported via g_sco_samplerate audio parameter -->
|
||||
- <bool name="sco_report_samplerate">false</bool>
|
||||
+ <bool name="sco_report_samplerate">true</bool>
|
||||
</resources>
|
||||
--
|
||||
2.25.1
|
||||
|
Loading…
x
Reference in New Issue
Block a user