From ea31ed79bf15299fea791effa3f10d2b52ea451f Mon Sep 17 00:00:00 2001
From: "xiaoyan159@6800H" <xiaoyan159@163.com>
Date: Thu, 12 Dec 2024 10:47:02 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9Android.bp=E4=B8=BAgr?=
 =?UTF-8?q?adle=E7=9A=84=E9=85=8D=E7=BD=AE=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Settings/build.gradle                         | 57 ++++++++++---------
 ...content_protection_preference_fragment.xml | 50 ++++++++++++++++
 Settings/res/values-zh-rCN/strings.xml        |  2 +-
 Settings/res/values/strings.xml               |  2 +-
 .../settings/wifi/WifiConfigController.java   |  2 +-
 .../settings/wifi/WifiConfigController2.java  |  2 +-
 .../details/WifiNetworkDetailsFragment.java   | 15 +++++
 .../WifiDetailPreferenceController2.java      |  4 +-
 gradle/libs.versions.toml                     |  2 +-
 gradle/wrapper/gradle-wrapper.properties      |  2 +-
 settings.gradle                               |  3 +
 11 files changed, 105 insertions(+), 36 deletions(-)
 create mode 100644 Settings/res/layout/content_protection_preference_fragment.xml

diff --git a/Settings/build.gradle b/Settings/build.gradle
index e895afa1..010ad8bb 100644
--- a/Settings/build.gradle
+++ b/Settings/build.gradle
@@ -2,7 +2,7 @@ plugins {
     alias(libs.plugins.android.application)
     alias(libs.plugins.kotlin.android)
     alias(libs.plugins.atomicfu)
-    alias(libs.plugins.protobuf)
+//    alias(libs.plugins.protobuf)
 }
 
 //preBuild {
@@ -34,7 +34,7 @@ android {
     compileSdk 34
 
     defaultConfig {
-        applicationId "com.android.car.settings"
+        applicationId "com.cariad.cea.settings"
         minSdk 31
         targetSdk 34
         versionCode 1
@@ -47,7 +47,7 @@ android {
         manifest.srcFile 'AndroidManifest.xml'
         java.srcDirs = ['src']
         res.srcDirs = ['res', 'res-export', 'res-product']
-        proto.srcDirs = ['protos']
+//        proto.srcDirs = ['protos']
     }
 
     buildTypes {
@@ -79,7 +79,7 @@ android {
 
     signingConfigs {
         platform {
-            storeFile file("platform.jks")
+            storeFile file("../platform.jks")
             storePassword 'android'
             keyAlias 'androidkey'
             keyPassword 'android'
@@ -101,7 +101,7 @@ android {
 
         applicationVariants.all { variant ->
             variant.outputs.all {
-                outputFileName = "BSettings.apk"
+                outputFileName = "CariadSettings.apk"
             }
         }
     }
@@ -125,9 +125,9 @@ dependencies {
     implementation files('../libs/notification_flags_lib.jar')
     implementation files('../libs/securebox.jar')
 
-    implementation files('../libs/FingerprintManagerInteractor.jar')
+//    implementation files('../libs/FingerprintManagerInteractor.jar')
     implementation files('../libs/MediaDrmSettingsFlagsLib.jar')
-    implementation files('../libs/Settings-change-ids.jar')
+//    implementation files('../libs/Settings-change-ids.jar')
     // SettingsLib的依赖在后面整体配置
     implementation files('../libs/aconfig_settings_flags_lib.jar')
     implementation files('../libs/accessibility_settings_flags_lib.jar')
@@ -144,7 +144,8 @@ dependencies {
     implementation files('../libs/settings-log-bridge-protos-lite.jar')
     implementation files('../libs/settings-logtags.jar')
     implementation files('../libs/settings-telephony-protos-lite.jar')
-    implementation files('../libs/setupdesign-lottie-loading-layout.jar')
+//    implementation files('../libs/setupdesign-lottie-loading-layout.jar')
+    implementation project(':lottie_loading_layout')
 
     implementation files('../libs/statslog-settings.jar')
     implementation files('../libs/settingslib_flags_lib.jar')
@@ -221,23 +222,23 @@ dependencies {
     implementation libs.dagger
     annotationProcessor libs.dagger.compiler
 }
-protobuf {
-    protoc {
-        // 通用 artifact
-        artifact = 'com.google.protobuf:protoc:3.8.0'
-        // MacOS
-        if (org.gradle.internal.os.OperatingSystem.current().isMacOsX()) {
-            artifact = 'com.google.protobuf:protoc:3.8.0:osx-x86_64'
-        }
-    }
-    generateProtoTasks {
-        all().each { task ->
-            task.builtins {
-                remove java
-                java {
-                    option "lite"
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
+//protobuf {
+//    protoc {
+//        // 通用 artifact
+//        artifact = 'com.google.protobuf:protoc:3.8.0'
+//        // MacOS
+//        if (org.gradle.internal.os.OperatingSystem.current().isMacOsX()) {
+//            artifact = 'com.google.protobuf:protoc:3.8.0:osx-x86_64'
+//        }
+//    }
+//    generateProtoTasks {
+//        all().each { task ->
+//            task.builtins {
+//                remove java
+//                java {
+//                    option "lite"
+//                }
+//            }
+//        }
+//    }
+//}
\ No newline at end of file
diff --git a/Settings/res/layout/content_protection_preference_fragment.xml b/Settings/res/layout/content_protection_preference_fragment.xml
new file mode 100644
index 00000000..f85f2d1f
--- /dev/null
+++ b/Settings/res/layout/content_protection_preference_fragment.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2023 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.
+-->
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:key="content_protection_preference_subpage"
+    android:title="@string/content_protection_preference_title">
+
+    <com.android.settingslib.widget.TopIntroPreference
+        android:key="content_protection_preference_top_intro"
+        android:title="@string/content_protection_preference_subpage_summary"
+        settings:searchable="false"/>
+
+    <com.android.settings.widget.SettingsMainSwitchPreference
+        android:key="content_protection_preference_user_consent_switch"
+        android:title="@string/content_protection_preference_user_consent_switch_title"
+        settings:controller=
+              "com.android.settings.security.ContentProtectionTogglePreferenceController"/>
+
+    <com.android.settingslib.widget.IllustrationPreference
+        android:key="content_protection_preference_subpage_illustration"
+        android:selectable="false"
+        settings:lottie_rawRes="@drawable/content_protection_preference_illustration"
+        settings:searchable="false" />
+
+    <com.android.settingslib.RestrictedSwitchPreference
+        android:key="content_protection_preference_user_consent_work_profile_switch"
+        android:title="@string/content_protection_preference_user_consent_work_profile_switch_title"
+        settings:controller="com.android.settings.security.ContentProtectionWorkSwitchController"
+        settings:restrictedSwitchSummary="@string/summary_placeholder"
+        settings:useAdditionalSummary="true"/>
+
+    <com.android.settingslib.widget.FooterPreference
+        android:key="content_protection_preference_subpage_footer"
+        android:title="@string/content_protection_preference_subpage_info" />
+</PreferenceScreen>
diff --git a/Settings/res/values-zh-rCN/strings.xml b/Settings/res/values-zh-rCN/strings.xml
index a6da14c7..62d83edd 100644
--- a/Settings/res/values-zh-rCN/strings.xml
+++ b/Settings/res/values-zh-rCN/strings.xml
@@ -235,7 +235,7 @@
     <string name="share" msgid="8502235338607613795">"分享"</string>
     <string name="add" msgid="8335206931421683426">"添加"</string>
     <string name="remove" msgid="1028414219245072102">"移除"</string>
-    <string name="settings_label" msgid="943294133671632976">"设置"</string>
+    <string name="settings_label" msgid="943294133671632976">"Cariad设置"</string>
     <string name="settings_label_launcher" msgid="820982375501978609">"设置"</string>
     <string name="settings_shortcut" msgid="8548239727871847171">"设置快捷方式"</string>
     <string name="airplane_mode" msgid="3196085857882526817">"飞行模式"</string>
diff --git a/Settings/res/values/strings.xml b/Settings/res/values/strings.xml
index 7a6195cd..3e2481c7 100644
--- a/Settings/res/values/strings.xml
+++ b/Settings/res/values/strings.xml
@@ -549,7 +549,7 @@
     <string name="remove">Remove</string>
 
     <!-- Title of the Settings activity shown within the application itself. -->
-    <string name="settings_label">Settings</string>
+    <string name="settings_label">Cariad Settings</string>
     <!-- Title of the Settings activity shown in the Launcher. [CHAR LIMIT=20] -->
     <string name="settings_label_launcher">Settings</string>
     <!-- Label for option to select a settings panel as a shortcut -->
diff --git a/Settings/src/com/android/settings/wifi/WifiConfigController.java b/Settings/src/com/android/settings/wifi/WifiConfigController.java
index 5d45cb23..94e66bfc 100644
--- a/Settings/src/com/android/settings/wifi/WifiConfigController.java
+++ b/Settings/src/com/android/settings/wifi/WifiConfigController.java
@@ -911,7 +911,7 @@ public class WifiConfigController implements TextWatcher,
         if (TextUtils.isEmpty(ipAddr)) return R.string.wifi_ip_settings_invalid_ip_address;
 
         Inet4Address inetAddr = getIPv4Address(ipAddr);
-        if (inetAddr == null || inetAddr.equals(Inet4Address.ANY)) {
+        if (inetAddr == null /*|| inetAddr.equals(Inet4Address.ANY)*/) {
             return R.string.wifi_ip_settings_invalid_ip_address;
         }
         // Copy all fields into the builder first and set desired value later with builder.
diff --git a/Settings/src/com/android/settings/wifi/WifiConfigController2.java b/Settings/src/com/android/settings/wifi/WifiConfigController2.java
index 7c9b1d1b..92ab9e82 100644
--- a/Settings/src/com/android/settings/wifi/WifiConfigController2.java
+++ b/Settings/src/com/android/settings/wifi/WifiConfigController2.java
@@ -924,7 +924,7 @@ public class WifiConfigController2 implements TextWatcher,
         if (TextUtils.isEmpty(ipAddr)) return R.string.wifi_ip_settings_invalid_ip_address;
 
         Inet4Address inetAddr = getIPv4Address(ipAddr);
-        if (inetAddr == null || inetAddr.equals(Inet4Address.ANY)) {
+        if (inetAddr == null /*|| inetAddr.equals(Inet4Address.ANY)*/) {
             return R.string.wifi_ip_settings_invalid_ip_address;
         }
 
diff --git a/Settings/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java b/Settings/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
index e1774e3f..343d82e8 100644
--- a/Settings/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
+++ b/Settings/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
@@ -451,4 +451,19 @@ public class WifiNetworkDetailsFragment extends RestrictedDashboardFragment impl
                 ? getString(R.string.hotspot_battery_charging_summary, formatPercentage(percentage))
                 : formatPercentage(percentage));
     }
+
+    @Override
+    public int getHelpResource() {
+        return super.getHelpResource();
+    }
+
+    @Override
+    public void onForget(@NonNull WifiDialog2 dialog) {
+//        WifiDialog2.WifiDialog2Listener.super.onForget(dialog);
+    }
+
+    @Override
+    public void onScan(@NonNull WifiDialog2 dialog, @NonNull String ssid) {
+//        WifiDialog2.WifiDialog2Listener.super.onScan(dialog, ssid);
+    }
 }
diff --git a/Settings/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/Settings/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
index d681fef3..a4b123df 100644
--- a/Settings/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
+++ b/Settings/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
@@ -213,12 +213,12 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
 
     @Override
     public void onForget(@NonNull WifiDialog2 dialog) {
-        WifiDialog2Listener.super.onForget(dialog);
+//        WifiDialog2Listener.super.onForget(dialog);
     }
 
     @Override
     public void onScan(@NonNull WifiDialog2 dialog, @NonNull String ssid) {
-        WifiDialog2Listener.super.onScan(dialog, ssid);
+//        WifiDialog2Listener.super.onScan(dialog, ssid);
     }
 
     private class CarrierIdAsyncQueryHandler extends AsyncQueryHandler {
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 7718e762..1ce7fca9 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -1,5 +1,5 @@
 [versions]
-agp = "8.2.2"
+agp = "8.6.0"
 kotlin = "1.9.0"
 coreKtx = "1.13.0-beta01"
 junit = "4.13.2"
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 0183b481..014615d6 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
 #Thu Dec 05 10:28:28 HKT 2024
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/settings.gradle b/settings.gradle
index d31faaf3..3f695ee3 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -18,6 +18,9 @@ dependencyResolutionManagement {
         google()
         mavenCentral()
         maven { url 'https://jitpack.io' }
+        flatDir {
+            dirs "libs"
+        }
     }
 }