From c1671be864759c83389c9b1bc6689671e1612cf4 Mon Sep 17 00:00:00 2001 From: Alex Johnston Date: Thu, 11 Feb 2021 17:51:52 +0000 Subject: Update network logging message * Update QS menu network logging message if the device is a organization owned device with a managed profile or a BYOD device with a managed profile. Bug: 170460270 Test: atest com.android.systemui.qs.QSSecurityFooterTest Change-Id: Ieda889d33d20858d90ae40b24fb78ef3e698677e --- packages/SystemUI/res/values/strings.xml | 3 ++ .../com/android/systemui/qs/QSSecurityFooter.java | 34 +++++++++++++++++++--- .../android/systemui/qs/QSSecurityFooterTest.java | 13 +++++++-- 3 files changed, 44 insertions(+), 6 deletions(-) diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index f8cad7e6f3a7..342c500c6aa6 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -1341,6 +1341,9 @@ Your admin has turned on network logging, which monitors traffic on your device. + + Your admin has turned on network logging, which monitors traffic in your work profile but not in your personal profile. + You\'re connected to %1$s, which can monitor your network activity, including emails, apps, and websites. diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java b/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java index 386638217110..1411fa1ea21f 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java @@ -170,7 +170,8 @@ class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListen // Update visibility of footer mIsVisible = (isDeviceManaged && !isDemoDevice) || hasCACerts || hasCACertsInWorkProfile || vpnName != null || vpnNameWorkProfile != null - || isProfileOwnerOfOrganizationOwnedDevice || isParentalControlsEnabled; + || isProfileOwnerOfOrganizationOwnedDevice || isParentalControlsEnabled + || (hasWorkProfile && isNetworkLoggingEnabled); // Update the string mFooterTextContent = getFooterText(isDeviceManaged, hasWorkProfile, hasCACerts, hasCACertsInWorkProfile, isNetworkLoggingEnabled, vpnName, @@ -275,12 +276,30 @@ class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListen vpnName); } if (isProfileOwnerOfOrganizationOwnedDevice) { + if (isNetworkLoggingEnabled) { + if (organizationName == null) { + return mContext.getString( + R.string.quick_settings_disclosure_management_monitoring); + } + return mContext.getString( + R.string.quick_settings_disclosure_named_management_monitoring, + organizationName); + } if (workProfileOrganizationName == null) { return mContext.getString(R.string.quick_settings_disclosure_management); } return mContext.getString(R.string.quick_settings_disclosure_named_management, workProfileOrganizationName); } + if (hasWorkProfile && isNetworkLoggingEnabled) { + if (workProfileOrganizationName == null) { + return mContext.getString( + R.string.quick_settings_disclosure_managed_profile_monitoring); + } + return mContext.getString( + R.string.quick_settings_disclosure_named_managed_profile_monitoring, + workProfileOrganizationName); + } return null; } @@ -367,7 +386,8 @@ class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListen } // network logging section - CharSequence networkLoggingMessage = getNetworkLoggingMessage(isNetworkLoggingEnabled); + CharSequence networkLoggingMessage = getNetworkLoggingMessage(isDeviceManaged, + isNetworkLoggingEnabled); if (networkLoggingMessage == null) { dialogView.findViewById(R.id.network_logging_disclosures).setVisibility(View.GONE); } else { @@ -492,9 +512,15 @@ class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListen return mContext.getString(R.string.monitoring_description_ca_certificate); } - protected CharSequence getNetworkLoggingMessage(boolean isNetworkLoggingEnabled) { + protected CharSequence getNetworkLoggingMessage(boolean isDeviceManaged, + boolean isNetworkLoggingEnabled) { if (!isNetworkLoggingEnabled) return null; - return mContext.getString(R.string.monitoring_description_management_network_logging); + if (isDeviceManaged) { + return mContext.getString(R.string.monitoring_description_management_network_logging); + } else { + return mContext.getString( + R.string.monitoring_description_managed_profile_network_logging); + } } protected CharSequence getVpnMessage(boolean isDeviceManaged, boolean hasWorkProfile, diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSSecurityFooterTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSSecurityFooterTest.java index fd0715bbca29..862e3747f602 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSSecurityFooterTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSSecurityFooterTest.java @@ -443,9 +443,18 @@ public class QSSecurityFooterTest extends SysuiTestCase { @Test public void testGetNetworkLoggingMessage() { - assertEquals(null, mFooter.getNetworkLoggingMessage(false)); + // Test network logging message on a device with a device owner. + // Network traffic may be monitored on the device. + assertEquals(null, mFooter.getNetworkLoggingMessage(true, false)); assertEquals(mContext.getString(R.string.monitoring_description_management_network_logging), - mFooter.getNetworkLoggingMessage(true)); + mFooter.getNetworkLoggingMessage(true, true)); + + // Test network logging message on a device with a managed profile owner + // Network traffic may be monitored on the work profile. + assertEquals(null, mFooter.getNetworkLoggingMessage(false, false)); + assertEquals( + mContext.getString(R.string.monitoring_description_managed_profile_network_logging), + mFooter.getNetworkLoggingMessage(false, true)); } @Test -- cgit v1.2.3-59-g8ed1b