From 833f2910e238e4b7cbba20886626b3ef3b6cad2f Mon Sep 17 00:00:00 2001
From: minaripenguin <minaripenguin@users.noreply.github.com>
Date: Thu, 30 Mar 2023 22:33:05 +0800
Subject: [PATCH] SystemUI: QS Header Image [1/2]

* reverse engineered from ancient os with [1] as reference for broken codes from jadx
* Optimized qs banner resources for systemui file size
* all credits goes to ancientOS

[1]: https://github.com/Hikari-no-Tenshi/crdroid_android_frameworks_base/commit/354d981d3f79783e284c8aced755e90496324982

mnri: rewrite and refactored

Co-authored-by: Idc <59904122+IDontCare-05@users.noreply.github.com>
Change-Id: I6200b9dbacf51b920979226653a7e3d68fea854a
Signed-off-by: minaripenguin <minaripenguin@users.noreply.github.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
---

diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 6c613d7..4819742 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -6616,6 +6616,12 @@
          */
         public static final String HIDE_IME_SPACE_ENABLE = "hide_ime_space_enable";
 
+        /**
+         * QS Header
+         * @hide
+         */
+        public static final String QS_HEADER_IMAGE = "qs_header_image";
+
         /***************************
          * AICP System Settings end
          ***************************/
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 2542268..44bf32d 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -56,8 +56,9 @@
     <dimen name="status_bar_height_landscape">@dimen/status_bar_height_portrait</dimen>
     <!-- Height of area above QQS where battery/time go.
          Do not read this dimen directly. Use {@link SystemBarUtils#getQuickQsOffsetHeight} instead.
+         QS HEADERS edit: account display_cutout_touchable_region_size.
          -->
-    <dimen name="quick_qs_offset_height">48dp</dimen>
+    <dimen name="quick_qs_offset_height">60dp</dimen>
     <!-- Height of the bottom navigation / system bar. -->
     <dimen name="navigation_bar_height">48dp</dimen>
     <!-- Height of the bottom navigation bar in portrait; often the same as @dimen/navigation_bar_height -->
diff --git a/packages/SystemUI/res/drawable/qs_header_image_1.webp b/packages/SystemUI/res/drawable/qs_header_image_1.webp
new file mode 100644
index 0000000..c83c453
--- /dev/null
+++ b/packages/SystemUI/res/drawable/qs_header_image_1.webp
Binary files differ
diff --git a/packages/SystemUI/res/drawable/qs_header_image_10.webp b/packages/SystemUI/res/drawable/qs_header_image_10.webp
new file mode 100644
index 0000000..db84b5a1
--- /dev/null
+++ b/packages/SystemUI/res/drawable/qs_header_image_10.webp
Binary files differ
diff --git a/packages/SystemUI/res/drawable/qs_header_image_11.webp b/packages/SystemUI/res/drawable/qs_header_image_11.webp
new file mode 100644
index 0000000..bb2f2d8
--- /dev/null
+++ b/packages/SystemUI/res/drawable/qs_header_image_11.webp
Binary files differ
diff --git a/packages/SystemUI/res/drawable/qs_header_image_2.webp b/packages/SystemUI/res/drawable/qs_header_image_2.webp
new file mode 100644
index 0000000..b429628
--- /dev/null
+++ b/packages/SystemUI/res/drawable/qs_header_image_2.webp
Binary files differ
diff --git a/packages/SystemUI/res/drawable/qs_header_image_3.webp b/packages/SystemUI/res/drawable/qs_header_image_3.webp
new file mode 100644
index 0000000..d31f674
--- /dev/null
+++ b/packages/SystemUI/res/drawable/qs_header_image_3.webp
Binary files differ
diff --git a/packages/SystemUI/res/drawable/qs_header_image_4.webp b/packages/SystemUI/res/drawable/qs_header_image_4.webp
new file mode 100644
index 0000000..0652a85
--- /dev/null
+++ b/packages/SystemUI/res/drawable/qs_header_image_4.webp
Binary files differ
diff --git a/packages/SystemUI/res/drawable/qs_header_image_5.webp b/packages/SystemUI/res/drawable/qs_header_image_5.webp
new file mode 100644
index 0000000..98719cd
--- /dev/null
+++ b/packages/SystemUI/res/drawable/qs_header_image_5.webp
Binary files differ
diff --git a/packages/SystemUI/res/drawable/qs_header_image_6.webp b/packages/SystemUI/res/drawable/qs_header_image_6.webp
new file mode 100644
index 0000000..5b9b7dd
--- /dev/null
+++ b/packages/SystemUI/res/drawable/qs_header_image_6.webp
Binary files differ
diff --git a/packages/SystemUI/res/drawable/qs_header_image_7.webp b/packages/SystemUI/res/drawable/qs_header_image_7.webp
new file mode 100644
index 0000000..e316375
--- /dev/null
+++ b/packages/SystemUI/res/drawable/qs_header_image_7.webp
Binary files differ
diff --git a/packages/SystemUI/res/drawable/qs_header_image_8.webp b/packages/SystemUI/res/drawable/qs_header_image_8.webp
new file mode 100644
index 0000000..cf2c04d
--- /dev/null
+++ b/packages/SystemUI/res/drawable/qs_header_image_8.webp
Binary files differ
diff --git a/packages/SystemUI/res/drawable/qs_header_image_9.webp b/packages/SystemUI/res/drawable/qs_header_image_9.webp
new file mode 100644
index 0000000..b463b7f
--- /dev/null
+++ b/packages/SystemUI/res/drawable/qs_header_image_9.webp
Binary files differ
diff --git a/packages/SystemUI/res/drawable/qs_header_image_view_outline.xml b/packages/SystemUI/res/drawable/qs_header_image_view_outline.xml
new file mode 100644
index 0000000..cd5309a
--- /dev/null
+++ b/packages/SystemUI/res/drawable/qs_header_image_view_outline.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" >
+    <corners android:radius="@*android:dimen/rounded_corner_radius" />
+</shape>
diff --git a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml
index 9fc3f40..cd58315 100644
--- a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml
+++ b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml
@@ -33,6 +33,35 @@
     android:paddingStart="0dp"
     android:elevation="4dp" >
 
+    <!-- header image -->
+    <LinearLayout
+        android:id="@+id/layout_header"
+        android:layout_width="match_parent"
+        android:layout_height="200dp"
+        android:background="#00000000" >
+
+        <LinearLayout
+          android:id="@+id/layout_inner_header"
+          android:layout_width="match_parent"
+          android:layout_height="match_parent"
+          android:layout_marginLeft="0dp"
+          android:layout_marginRight="0dp"
+          android:background="#00000000" >
+
+          <ImageView
+              android:id="@+id/qs_header_image_view"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:layout_marginTop="0dp"
+              android:layout_marginBottom="0dp"
+              android:scaleType="centerCrop"
+              android:visibility="gone"
+              android:background="@drawable/qs_header_image_view_outline" />
+
+        </LinearLayout>
+
+    </LinearLayout>
+
     <!-- Date and privacy. Only visible in QS when not in split shade -->
     <include layout="@layout/quick_status_bar_header_date_privacy"/>
 
diff --git a/packages/SystemUI/res/values/aicp_dimens.xml b/packages/SystemUI/res/values/aicp_dimens.xml
index e2cc05d..361f2869 100644
--- a/packages/SystemUI/res/values/aicp_dimens.xml
+++ b/packages/SystemUI/res/values/aicp_dimens.xml
@@ -78,4 +78,7 @@
 
     <!-- Width of the landscape battery icon in the status bar. -->
     <dimen name="status_bar_battery_icon_width_landscape">20dp</dimen>
+
+    <!-- QS Header height full -->
+    <dimen name="qs_header_height_full">200dp</dimen>
 </resources>
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
index 0f0fba2..04d64c0 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;
 import android.content.res.Resources;
 import android.graphics.Color;
+import android.graphics.PorterDuff;
 import android.graphics.Rect;
 import android.net.Uri;
 import android.os.VibrationEffect;
@@ -37,12 +38,14 @@
 import android.view.ViewGroup;
 import android.view.WindowInsets;
 import android.widget.FrameLayout;
+import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.Space;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
+import com.android.internal.graphics.ColorUtils;
 import com.android.internal.policy.SystemBarUtils;
 import com.android.settingslib.Utils;
 import com.android.systemui.Dependency;
@@ -72,6 +75,8 @@
             "system:" + Settings.System.SHOW_QS_CLOCK;
     private static final String SHOW_QS_DATE =
             "system:" + Settings.System.SHOW_QS_DATE;
+    private static final String QS_HEADER_IMAGE =
+            "system:" + Settings.System.QS_HEADER_IMAGE;
 
     private boolean mExpanded;
     private boolean mQsDisabled;
@@ -107,6 +112,12 @@
     private StatusIconContainer mIconContainer;
     private View mPrivacyChip;
 
+    // QS Header
+    private ImageView mQsHeaderImageView;
+    private View mQsHeaderLayout;
+    private boolean mHeaderImageEnabled;
+    private int mHeaderImageValue;
+
     @Nullable
     private TintedIconManager mTintedIconManager;
     @Nullable
@@ -181,6 +192,10 @@
         mBatteryRemainingIcon.setOnClickListener(this);
         mBatteryRemainingIcon.setOnLongClickListener(this);
 
+        mQsHeaderLayout = findViewById(R.id.layout_header);
+        mQsHeaderImageView = findViewById(R.id.qs_header_image_view);
+        mQsHeaderImageView.setClipToOutline(true);
+
         updateResources();
         Configuration config = mContext.getResources().getConfiguration();
         setDatePrivacyContainersWidth(config.orientation == Configuration.ORIENTATION_LANDSCAPE);
@@ -192,7 +207,8 @@
 
         Dependency.get(TunerService.class).addTunable(this,
                 SHOW_QS_CLOCK,
-                SHOW_QS_DATE);
+                SHOW_QS_DATE,
+                QS_HEADER_IMAGE);
     }
 
     void onAttach(TintedIconManager iconManager,
@@ -228,8 +244,8 @@
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
         if (mDatePrivacyView.getMeasuredHeight() != mTopViewMeasureHeight) {
             mTopViewMeasureHeight = mDatePrivacyView.getMeasuredHeight();
-            updateAnimators();
         }
+        updateAnimators();
     }
 
     @Override
@@ -365,6 +381,27 @@
         updateAnimators();
 
         updateClockDatePadding();
+        updateQSHeaderImage();
+    }
+
+    private void updateQSHeaderImage() {
+        boolean mIsNightMode = (mContext.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES;
+        int orientation = getResources().getConfiguration().orientation;
+        if (mHeaderImageEnabled && orientation != Configuration.ORIENTATION_LANDSCAPE) {
+            int fadeFilter = ColorUtils.blendARGB(Color.TRANSPARENT, mIsNightMode ? Color.BLACK : Color.WHITE, 30 / 100f);
+            int resId = getResources().getIdentifier("qs_header_image_" + String.valueOf(mHeaderImageValue), "drawable", "com.android.systemui");
+            mQsHeaderImageView.setImageResource(resId);
+            mQsHeaderImageView.setColorFilter(fadeFilter, PorterDuff.Mode.SRC_ATOP);
+            mQsHeaderImageView.setVisibility(View.VISIBLE);
+        } else {
+            mQsHeaderImageView.setVisibility(View.GONE);
+        }
+
+        ViewGroup.MarginLayoutParams qsHeaderLayout = (ViewGroup.MarginLayoutParams) mQsHeaderLayout.getLayoutParams();
+        qsHeaderLayout.height = mHeaderImageEnabled && orientation != Configuration.ORIENTATION_LANDSCAPE ?
+            mContext.getResources().getDimensionPixelSize(R.dimen.qs_header_height_full) : 0;
+        qsHeaderLayout.setMargins(-50, 0, -50, 0);
+        mQsHeaderLayout.setLayoutParams(qsHeaderLayout);
     }
 
     private void updateClockDatePadding() {
@@ -669,6 +706,12 @@
                 mDateContainer.setVisibility(mShowDate ? View.VISIBLE : View.GONE);
                 mClockDateView.setVisibility(mShowClock && mShowDate ? View.VISIBLE : View.GONE);
                 break;
+            case QS_HEADER_IMAGE:
+                mHeaderImageValue =
+                       TunerService.parseInteger(newValue, 0);
+                mHeaderImageEnabled = mHeaderImageValue != 0;
+                updateResources();
+                break;
             default:
                 break;
         }
