Merge 25Q1 (ab/BP1A.250305.020) to AOSP main
Bug: 385190204
Merged-In: I4c5ab64cb770c61db1cedc5169a4b8cdf0a4b0bd
Change-Id: I6328301db5f90d2beb2f5f10de673a8b57ebefce
diff --git a/aconfig/root.aconfig b/aconfig/root.aconfig
index d3f3f5f..f82a870 100644
--- a/aconfig/root.aconfig
+++ b/aconfig/root.aconfig
@@ -18,3 +18,10 @@
bug: "347912855"
}
+flag {
+ name: "check_frp_active"
+ namespace: "enterprise"
+ description: "Fix persistent data block check for provisioning"
+ bug: "365473481"
+}
+
diff --git a/res/drawable/empty_icon.xml b/res/drawable/empty_icon.xml
new file mode 100644
index 0000000..e94356f
--- /dev/null
+++ b/res/drawable/empty_icon.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This is an icon with no content taking up the same space as vd_theme_24. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportHeight="24.0"
+ android:viewportWidth="24.0">
+ <path
+ android:fillColor="@android:color/transparent"
+ android:pathData="M0,0" />
+</vector>
diff --git a/res/drawable/gs_work_vd_theme_24.xml b/res/drawable/gs_work_vd_theme_24.xml
new file mode 100644
index 0000000..60d5da3
--- /dev/null
+++ b/res/drawable/gs_work_vd_theme_24.xml
@@ -0,0 +1,3 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="960" android:viewportHeight="960" android:tint="?attr/colorControlNormal">
+<path android:fillColor="@android:color/white" android:pathData="M160,840Q127,840 103.5,816.5Q80,793 80,760L80,320Q80,287 103.5,263.5Q127,240 160,240L320,240L320,160Q320,127 343.5,103.5Q367,80 400,80L560,80Q593,80 616.5,103.5Q640,127 640,160L640,240L800,240Q833,240 856.5,263.5Q880,287 880,320L880,760Q880,793 856.5,816.5Q833,840 800,840L160,840ZM160,760L800,760Q800,760 800,760Q800,760 800,760L800,320Q800,320 800,320Q800,320 800,320L160,320Q160,320 160,320Q160,320 160,320L160,760Q160,760 160,760Q160,760 160,760ZM400,240L560,240L560,160Q560,160 560,160Q560,160 560,160L400,160Q400,160 400,160Q400,160 400,160L400,240ZM160,760Q160,760 160,760Q160,760 160,760L160,320Q160,320 160,320Q160,320 160,320L160,320Q160,320 160,320Q160,320 160,320L160,760Q160,760 160,760Q160,760 160,760Z"/>
+</vector>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index dbe6969..64b752d 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -55,7 +55,7 @@
<string name="encrypt_this_device_question" msgid="8719916619866892601">"להצפין את המכשיר?"</string>
<string name="encrypt" msgid="1749320161747489212">"הצפנה"</string>
<string name="continue_provisioning_notify_title" msgid="5191449100153186648">"ההצפנה הושלמה"</string>
- <string name="continue_provisioning_notify_text" msgid="1066841819786425980">"יש להקיש כדי להמשיך בהגדרת פרופיל העבודה שלך"</string>
+ <string name="continue_provisioning_notify_text" msgid="1066841819786425980">"יש ללחוץ כדי להמשיך בהגדרת פרופיל העבודה שלך"</string>
<string name="managed_provisioning_error_text" msgid="7063621174570680890">"לא ניתן להגדיר את פרופיל העבודה שלך. יש ליצור קשר עם מחלקת ה-IT או לנסות שוב מאוחר יותר."</string>
<string name="cant_add_work_profile" msgid="9217268909964154934">"לא ניתן להוסיף פרופיל עבודה"</string>
<string name="cant_replace_or_remove_work_profile" msgid="7861054306792698290">"לא ניתן להחליף או להסיר את פרופיל העבודה"</string>
@@ -131,7 +131,7 @@
<string name="setup_device" msgid="1679201701102889156">"הגדרת המכשיר <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="setup_device_encryption" msgid="2628196093806001835">"הגדרת המכשיר <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. הצפנה"</string>
<string name="setup_device_progress" msgid="8792474713196537598">"הגדרת המכשיר <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. ההתקדמות מוצגת"</string>
- <string name="learn_more_label" msgid="2723716758654655009">"לחצן \'למידע נוסף\'"</string>
+ <string name="learn_more_label" msgid="2723716758654655009">"כפתור \'למידע נוסף\'"</string>
<string name="mdm_icon_label" msgid="3399134595549660561">"סמל <xliff:g id="ICON_LABEL">%1$s</xliff:g>"</string>
<string name="section_heading" msgid="3924666803774291908">"כותרת הקטע \'<xliff:g id="SECTION_HEADING">%1$s</xliff:g>\'."</string>
<string name="section_content" msgid="8875502515704374394">"תוכן הקטע \'<xliff:g id="SECTION_HEADING">%1$s</xliff:g>\': <xliff:g id="SECTION_CONTENT">%2$s</xliff:g>"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index ca74422..221cd38 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -21,7 +21,7 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="1527793174155125990">"ಕೆಲಸದ ಸೆಟಪ್"</string>
<string name="provisioning_error_title" msgid="6320515739861578118">"ಓಹ್!"</string>
- <string name="setup_work_profile" msgid="1468934631731845267">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಹೊಂದಿಸಿ"</string>
+ <string name="setup_work_profile" msgid="1468934631731845267">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಸೆಟಪ್ ಮಾಡಿ"</string>
<string name="company_controls_workspace" msgid="2808025277267917221">"ಈ ಪ್ರೊಫೈಲ್ ಅನ್ನು ನಿಮ್ಮ ಸಂಸ್ಥೆಯು ನಿಯಂತ್ರಿಸುತ್ತದೆ ಹಾಗೂ ಅದನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಕಾಪಾಡುತ್ತದೆ. ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದನ್ನೂ ನೀವು ನಿಯಂತ್ರಿಸಬಹುದು."</string>
<string name="company_controls_device" msgid="8230957518758871390">"ನಿಮ್ಮ ಸಂಸ್ಥೆಯು ಈ ಸಾಧನವನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ ಹಾಗೂ ಅದನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸುತ್ತದೆ."</string>
<string name="the_following_is_your_mdm" msgid="6613658218262376404">"ಕೆಳಗಿನ ಅಪ್ಲಿಕೇಶನ್ಗೆ ಈ ಪ್ರೊಫೈಲ್ ಪ್ರವೇಶಿಸುವ ಅಗತ್ಯವಿದೆ:"</string>
@@ -116,18 +116,18 @@
<string name="view_terms" msgid="7230493092383341605">"ನಿಯಮಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
<string name="accept_and_continue" msgid="1632679734918410653">"ಸಮ್ಮತಿಸಿ, ಮುಂದುವರಿಸಿ"</string>
<string name="back" msgid="6455622465896147127">"ಹಿಂದೆ"</string>
- <string name="set_up_your_device" msgid="1896651520959894681">"ನಿಮ್ಮ ಸಾಧನ ಹೊಂದಿಸಿ"</string>
+ <string name="set_up_your_device" msgid="1896651520959894681">"ನಿಮ್ಮ ಸಾಧನ ಸೆಟಪ್ ಮಾಡಿ"</string>
<string name="info_anim_title_0" msgid="3285414600215959704">"ನೀವು ಕೆಲಸ ಮಾಡುವ ರೀತಿಯನ್ನು ಬದಲಾಯಿಸಿ"</string>
<string name="info_anim_title_1" msgid="2657512519467714760">"ಕೆಲಸವನ್ನು ವೈಯಕ್ತಿಕದಿಂದ ಪ್ರತ್ಯೇಕಿಸಿ"</string>
<string name="one_place_for_work_apps" msgid="2595597562302953960">"ಉದ್ಯೋಗ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗಾಗಿ ಒಂದೇ ಸ್ಥಳ"</string>
<string name="info_anim_title_2" msgid="4629781398620470204">"ನೀವು ಪೂರ್ಣಗೊಳಿಸಿದಾಗ ಕೆಲಸವನ್ನು ಆಫ್ ಮಾಡಿ"</string>
<string name="provisioning" msgid="4512493827019163451">"ಒದಗಿಸಲಾಗುತ್ತಿದೆ"</string>
<string name="copying_certs" msgid="5697938664953550881">"CA ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ"</string>
- <string name="setup_profile" msgid="5573950582159698549">"ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಹೊಂದಿಸಿ"</string>
+ <string name="setup_profile" msgid="5573950582159698549">"ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಸೆಟಪ್ ಮಾಡಿ"</string>
<string name="profile_benefits_description" msgid="758432985984252636">"ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್ ಬಳಸುವ ಮೂಲಕ, ನೀವು ಉದ್ಯೋಗ ಡೇಟಾವನ್ನು ವೈಯಕ್ತಿಕ ಡೇಟಾದಿಂದ ಪ್ರತ್ಯೇಕಿಸಬಹುದು"</string>
<string name="comp_profile_benefits_description" msgid="379837075456998273">"ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್ ಬಳಸಿಕೊಂಡು, ನಿಮ್ಮ ಉದ್ಯೋಗ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನೀವು ಒಂದೇ ಸ್ಥಳದಲ್ಲಿ ಇರಿಸಿಕೊಳ್ಳಬಹುದು"</string>
- <string name="setup_profile_encryption" msgid="5241291404536277038">"ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಹೊಂದಿಸಿ. ಎನ್ಕ್ರಿಪ್ಶನ್"</string>
- <string name="setup_profile_progress" msgid="7742718527853325656">"ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಹೊಂದಿಸಿ. ಪ್ರಗತಿಯನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ"</string>
+ <string name="setup_profile_encryption" msgid="5241291404536277038">"ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಸೆಟಪ್ ಮಾಡಿ. ಎನ್ಕ್ರಿಪ್ಶನ್"</string>
+ <string name="setup_profile_progress" msgid="7742718527853325656">"ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಸೆಟಪ್ ಮಾಡಿ. ಪ್ರಗತಿಯನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ"</string>
<string name="setup_device" msgid="1679201701102889156">"ನಿಮ್ಮ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಅನ್ನು ಸೆಟ್ ಮಾಡಿ"</string>
<string name="setup_device_encryption" msgid="2628196093806001835">"ನಿಮ್ಮ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿ. ಎನ್ಕ್ರಿಪ್ಷನ್"</string>
<string name="setup_device_progress" msgid="8792474713196537598">"ನಿಮ್ಮ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿ. ಪ್ರಗತಿಯನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index c5d2763..7e0d881 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -155,7 +155,7 @@
<string name="device_owner_description" msgid="168013145812679664">"此设备将由贵单位确保其安全并负责管理"</string>
<string name="setup_provisioning_header" msgid="4282483198266806271">"正在准备设置工作设备…"</string>
<string name="setup_provisioning_header_description" msgid="2567041263563823566">"设置管理应用"</string>
- <string name="brand_screen_header" msgid="8865808542690116648">"此设备归贵单位所有"</string>
+ <string name="brand_screen_header" msgid="8865808542690116648">"此设备归贵组织所有"</string>
<string name="brand_screen_subheader" msgid="7664792208784456436">"以下应用将用于管理和监控此手机"</string>
<string name="account_management_disclaimer_header" msgid="8013083414694316564">"您的账号是受管理的账号"</string>
<string name="account_management_disclaimer_subheader" msgid="8991450067243733878">"您的 IT 管理员会使用移动设备管理服务强制执行安全政策"</string>
diff --git a/src/com/android/managedprovisioning/common/SetupGlifLayoutActivity.java b/src/com/android/managedprovisioning/common/SetupGlifLayoutActivity.java
index 888ea8e..69ca116 100644
--- a/src/com/android/managedprovisioning/common/SetupGlifLayoutActivity.java
+++ b/src/com/android/managedprovisioning/common/SetupGlifLayoutActivity.java
@@ -17,19 +17,18 @@
package com.android.managedprovisioning.common;
import android.annotation.Nullable;
+import android.content.Context;
import android.content.res.Resources;
import android.os.Bundle;
import android.text.Editable;
import android.text.Layout;
import android.text.TextWatcher;
+import android.util.TypedValue;
import android.widget.TextView;
-
import androidx.annotation.VisibleForTesting;
-
import com.android.managedprovisioning.R;
-
import com.google.android.setupdesign.GlifLayout;
-
+import com.google.android.setupdesign.template.IconMixin;
/**
* Base class for setting up the layout.
@@ -89,8 +88,22 @@
increaseMaxLinesIfNecessary(header, mInitialHeaderMaxLines);
}
+ if (ThemeHelper.shouldApplyGlifExpressiveStyle(this)) {
+ layout.setIcon(getDrawable(R.drawable.gs_work_vd_theme_24));
+ IconMixin iconMixin = layout.getMixin(IconMixin.class);
+ iconMixin.setIconTint(resolveColor(layout.getContext(), android.R.attr.colorPrimary));
+ } else {
layout.setIcon(getDrawable(R.drawable.ic_enterprise_blue_24dp));
}
+ }
+
+ private int resolveColor(Context context, int attr) {
+ TypedValue typedValue = new TypedValue();
+ if (context.getTheme().resolveAttribute(attr, typedValue, true)) {
+ return context.getColor(typedValue.resourceId);
+ }
+ return 0;
+ }
/**
* If the text takes more than its {@code textView}'s {@code initialMaxLines}, expand it one
diff --git a/src/com/android/managedprovisioning/common/SetupLayoutActivity.java b/src/com/android/managedprovisioning/common/SetupLayoutActivity.java
index dd228fb..8df6026 100644
--- a/src/com/android/managedprovisioning/common/SetupLayoutActivity.java
+++ b/src/com/android/managedprovisioning/common/SetupLayoutActivity.java
@@ -78,11 +78,16 @@
if (!isWaitingScreen()) {
mTransitionHelper.applyContentScreenTransitions(this);
}
- updateDefaultNightMode();
- setTheme(mThemeHelper.inferThemeResId(this, getIntent()));
- if (shouldSetupDynamicColors()) {
- mThemeHelper.setupDynamicColors(this);
+ boolean themeSet = mThemeHelper.setSuwTheme(this);
+ ProvisionLogger.logd("applyStyles themeSet:" + themeSet);
+ if (!themeSet) {
+ updateDefaultNightMode();
+ setTheme(mThemeHelper.inferThemeResId(this, getIntent()));
+ if (shouldSetupDynamicColors()) {
+ mThemeHelper.setupDynamicColors(this);
+ }
}
+
super.onCreate(savedInstanceState);
getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
@@ -106,7 +111,9 @@
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
- updateDefaultNightMode();
+ if (!mThemeHelper.setSuwTheme(this)) {
+ updateDefaultNightMode();
+ }
}
private void updateDefaultNightMode() {
diff --git a/src/com/android/managedprovisioning/common/ThemeHelper.java b/src/com/android/managedprovisioning/common/ThemeHelper.java
index f26da7f..3534d67 100644
--- a/src/com/android/managedprovisioning/common/ThemeHelper.java
+++ b/src/com/android/managedprovisioning/common/ThemeHelper.java
@@ -40,7 +40,7 @@
import com.google.android.setupcompat.util.WizardManagerHelper;
import com.google.android.setupdesign.R;
import com.google.android.setupdesign.util.ThemeResolver;
-
+import static com.google.android.setupdesign.util.ThemeHelper.trySetSuwTheme;
/**
* Helper with utility methods to manage the ManagedProvisioning theme and night mode.
*/
@@ -73,6 +73,11 @@
.resolveTheme(defaultTheme, themeName, shouldSuppressDayNight(context));
}
+ /** Returns {@code true} if the SUW theme is set. */
+ public boolean setSuwTheme(Context context) {
+ requireNonNull(context);
+ return trySetSuwTheme(context);
+ }
/**
* Sets up theme-specific colors. Must be called after {@link
* #inferThemeResId(Context, Intent)}.
@@ -82,6 +87,13 @@
trySetDynamicColor(context);
}
+ /** Returns {@code true} if this {@code context} should applied Glif expressive style. */
+ public static boolean shouldApplyGlifExpressiveStyle(Context context) {
+ requireNonNull(context);
+ return
+ com.google.android.setupdesign.util.ThemeHelper.shouldApplyGlifExpressiveStyle(context);
+ }
+
/**
* Returns the appropriate day or night mode, depending on the setup wizard flags.
*
diff --git a/src/com/android/managedprovisioning/common/Utils.java b/src/com/android/managedprovisioning/common/Utils.java
index f690f13..50d9901 100644
--- a/src/com/android/managedprovisioning/common/Utils.java
+++ b/src/com/android/managedprovisioning/common/Utils.java
@@ -75,6 +75,7 @@
import com.google.android.setupcompat.template.FooterButton.ButtonType;
import com.google.android.setupdesign.GlifLayout;
import com.google.android.setupdesign.util.DeviceHelper;
+import com.google.android.setupdesign.util.ThemeHelper;
import java.io.FileInputStream;
import java.io.IOException;
@@ -960,4 +961,15 @@
}
});
}
+
+ /**
+ * Hides icon from [GlifLayout]. This is useful when we don't want to show an icon on loading
+ * screen.
+ */
+ public void hideIconIfBc25Enabled(GlifLayout glifLayout) {
+ if (ThemeHelper.shouldApplyGlifExpressiveStyle(glifLayout.getContext())) {
+ ProvisionLogger.logd("Setting icon to empty for loading screens");
+ glifLayout.setIcon(glifLayout.getContext().getDrawable(R.drawable.empty_icon));
+ }
+ }
}
diff --git a/src/com/android/managedprovisioning/preprovisioning/PreProvisioningActivityController.java b/src/com/android/managedprovisioning/preprovisioning/PreProvisioningActivityController.java
index ba21600..bc17243 100644
--- a/src/com/android/managedprovisioning/preprovisioning/PreProvisioningActivityController.java
+++ b/src/com/android/managedprovisioning/preprovisioning/PreProvisioningActivityController.java
@@ -1051,6 +1051,12 @@
ProvisionLogger.logd("Reset protection not supported.");
return false;
}
+
+ if (Flags.checkFrpActive()) {
+ boolean isFrpActive = mPdbManager.isFactoryResetProtectionActive();
+ ProvisionLogger.logd("Is factory reset protection active: " + isFrpActive);
+ return isFrpActive;
+ }
int size = mPdbManager.getDataBlockSize();
ProvisionLogger.logd("Data block size: " + size);
return size > 0;
diff --git a/src/com/android/managedprovisioning/provisioning/AdminIntegratedFlowPrepareActivity.java b/src/com/android/managedprovisioning/provisioning/AdminIntegratedFlowPrepareActivity.java
index c53b4bd..8b0d37e 100644
--- a/src/com/android/managedprovisioning/provisioning/AdminIntegratedFlowPrepareActivity.java
+++ b/src/com/android/managedprovisioning/provisioning/AdminIntegratedFlowPrepareActivity.java
@@ -130,6 +130,7 @@
CharSequence deviceName = DeviceHelper.getDeviceName(getApplicationContext());
final String title = getString(R.string.setup_device_progress, deviceName);
initializeLayoutParams(R.layout.empty_loading_layout, headerResId);
+ getUtils().hideIconIfBc25Enabled(findViewById(R.id.setup_wizard_layout));
setTitle(title);
}
diff --git a/src/com/android/managedprovisioning/provisioning/ProvisioningActivityBridgeImpl.java b/src/com/android/managedprovisioning/provisioning/ProvisioningActivityBridgeImpl.java
index d9e572f..52aa096 100644
--- a/src/com/android/managedprovisioning/provisioning/ProvisioningActivityBridgeImpl.java
+++ b/src/com/android/managedprovisioning/provisioning/ProvisioningActivityBridgeImpl.java
@@ -89,6 +89,7 @@
activity.setTitle(title);
GlifLayout layout = activity.findViewById(R.id.setup_wizard_layout);
+ getUtils().hideIconIfBc25Enabled(layout);
setupEducationViews(layout, activity, getShouldSkipEducationScreens(),
getProgressLabelResId());
if (getUtils().isFinancedDeviceAction(getParams().provisioningAction)) {