Merge 24Q3 (ab/11976889) to aosp-main-future
Bug: 347831320
Merged-In: I9cb155e852cab0965550cfb45815c89d96745e30
Change-Id: I5795e535b5a06e569cf9d3e64d07d28c989b8b79
diff --git a/Android.bp b/Android.bp
index 39b80a1..24f41b1 100644
--- a/Android.bp
+++ b/Android.bp
@@ -8,6 +8,7 @@
manifest: "AndroidManifest.xml",
srcs: ["**/*.java"],
exclude_srcs: ["src/com/android/htmlviewer/CarHTMLViewerActivity.java"],
+ static_libs: ["androidx.core_core"],
sdk_version: "current",
}
@@ -17,6 +18,9 @@
overrides: ["HTMLViewer"],
srcs: ["**/*.java"],
libs: ["android.car-stubs"],
- static_libs: ["car-ui-lib"],
+ static_libs: [
+ "androidx.core_core",
+ "car-ui-lib",
+ ],
sdk_version: "current",
}
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f6b8db3..90dcf3e 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -26,7 +26,7 @@
android:supportsRtl="true">
<activity android:name="HTMLViewerActivity"
android:label="@string/app_label"
- android:theme="@android:style/Theme.DeviceDefault.Settings"
+ android:theme="@style/Theme.HTMLViewer"
android:exported="true">
<intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
diff --git a/res/values/themes.xml b/res/values/themes.xml
new file mode 100644
index 0000000..d1ce102
--- /dev/null
+++ b/res/values/themes.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 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.
+ -->
+
+<resources>
+ <style name="Theme.HTMLViewer" parent="@android:style/Theme.DeviceDefault.Settings">
+ <item name="android:windowOptOutEdgeToEdgeEnforcement">true</item>
+ </style>
+</resources>
\ No newline at end of file
diff --git a/src/com/android/htmlviewer/HTMLViewerActivity.java b/src/com/android/htmlviewer/HTMLViewerActivity.java
index 233a87d..ded052c 100644
--- a/src/com/android/htmlviewer/HTMLViewerActivity.java
+++ b/src/com/android/htmlviewer/HTMLViewerActivity.java
@@ -34,6 +34,11 @@
import android.webkit.WebViewClient;
import android.widget.Toast;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowCompat;
+import androidx.core.view.WindowInsetsCompat;
+
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
@@ -84,6 +89,7 @@
}
protected void setContentView() {
+ setupEdgeToEdge();
setContentView(R.layout.main);
}
@@ -187,4 +193,20 @@
return null;
}
}
+
+ private void setupEdgeToEdge() {
+ // Shamelessly copied from SettingsHomepageActivity
+ // https://cs.android.com/android/platform/superproject/main/+/main:packages/apps/Settings/src/com/android/settings/homepage/SettingsHomepageActivity.java;l=355;drc=6b4b7336bc0bdbbdbd144429b8dfb006503d6a7b
+ WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(android.R.id.content),
+ (v, windowInsets) -> {
+ Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
+ // Apply the insets paddings to the view.
+ v.setPadding(insets.left, insets.top, insets.right, insets.bottom);
+
+ // Return CONSUMED if you don't want the window insets to keep being
+ // passed down to descendant views.
+ return WindowInsetsCompat.CONSUMED;
+ });
+ }
}