Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 05061fce authored by Bartosz Fabianowski's avatar Bartosz Fabianowski
Browse files

Add Enterprise Privacy page to Settings

This adds a new page to Settings which tells the user about his/her
privacy in light of enterprise management. The new page is only shown
on devices that have a Device Owner app set.

This CL adds a mostly blank page. Follow-up CLs will populate the page
with information about specific admin actions/policies.

The page's title ("Privacy"), icon and location in the Settings app are
tentative. The page will move to its final location once the new IA
redesign is finished.

Test: make RunSettingsRoboTests
BUG: 32692748

Change-Id: I5b5c08c0025207516b0779f54cf68234a4ba3fe4
parent fc229606
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -1580,6 +1580,20 @@
                android:value="true" />
        </activity>

        <activity android:name="Settings$EnterprisePrivacySettingsActivity"
            android:label="@string/enterprise_privacy_settings_title"
            android:icon="@drawable/ic_settings_about"
            android:taskAffinity="com.android.settings"
            android:parentActivityName="Settings">
            <intent-filter android:priority="-1">
                <action android:name="com.android.settings.action.SETTINGS" />
            </intent-filter>
            <meta-data android:name="com.android.settings.category"
                android:value="com.android.settings.category.device" />
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                android:value="com.android.settings.enterprise.EnterprisePrivacySettings" />
        </activity>

        <!-- Second and third-level settings -->

        <!-- Lock screen settings -->
@@ -3435,6 +3449,18 @@
                       android:value="true"/>
        </activity-alias>

        <!-- Alias for enterprise privacy setting in new IA. Should merge into TargetActivity when launch -->
        <activity-alias android:name="EnterprisePrivacyDashboardAlias"
                        android:targetActivity="Settings$EnterprisePrivacySettingsActivity">
            <intent-filter android:priority="-1">
                <action android:name="com.android.settings.action.SETTINGS" />
            </intent-filter>
            <meta-data android:name="com.android.settings.category"
                android:value="com.android.settings.category.ia.system" />
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                android:value="com.android.settings.enterprise.EnterprisePrivacySettings" />
        </activity-alias>

        <!-- End of information architecture host activities -->

        <service
+8 −0
Original line number Diff line number Diff line
@@ -7974,4 +7974,12 @@
    <!-- Switch label to enable auto sync work account [CHAR LIMIT=30] -->
    <string name="auto_sync_work_account_title">Auto sync work account data</string>
    <!-- Enterprise Privacy --> <skip />
    <!-- Title of setting on main settings screen. This will take the user to a screen with information about his/her privacy on a managed device. Shown on enterprise-managed devices only. -->
    <string name="enterprise_privacy_settings">Privacy</string>
    <!-- Enterprise Privacy settings activity title -->
    <string name="enterprise_privacy_settings_title">Privacy</string>
    <!-- Enterprise Privacy settings activity header, summarizing the powers that the admin has. [CHAR LIMIT=NONE] -->
    <string name="enterprise_privacy_header">To provide access to your work data, your organization may change settings and install software on your device, which could cause some of your personal content to be visible to your admin. Contact your organization\'s admin for more details.</string>
</resources>
+26 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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/com.android.settings"
        android:key="enterprise_privacy_settings"
        android:title="@string/enterprise_privacy_settings_title">

    <!-- Header -->
    <Preference android:key="enterprise_privacy_header"
            android:summary="@string/enterprise_privacy_header"
            android:selectable="false"/>
</PreferenceScreen>
+1 −0
Original line number Diff line number Diff line
@@ -158,6 +158,7 @@ public class Settings extends SettingsActivity {
    public static class TestingSettingsActivity extends SettingsActivity { /* empty */ }
    public static class WifiAPITestActivity extends SettingsActivity { /* empty */ }
    public static class WifiInfoActivity extends SettingsActivity { /* empty */ }
    public static class EnterprisePrivacySettingsActivity extends SettingsActivity { /* empty */ }

    // Categories.
    public static class WirelessSettings extends SettingsActivity { /* empty */ }
+9 −0
Original line number Diff line number Diff line
@@ -94,6 +94,8 @@ import com.android.settings.deviceinfo.Status;
import com.android.settings.deviceinfo.StorageDashboardFragment;
import com.android.settings.deviceinfo.StorageSettings;
import com.android.settings.display.NightDisplaySettings;
import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
import com.android.settings.enterprise.EnterprisePrivacySettings;
import com.android.settings.fuelgauge.BatterySaverSettings;
import com.android.settings.fuelgauge.PowerUsageDetail;
import com.android.settings.fuelgauge.PowerUsageSummary;
@@ -277,6 +279,7 @@ public class SettingsActivity extends SettingsDrawerActivity
            Settings.AccessibilitySettingsActivity.class.getName(),
            Settings.PrintSettingsActivity.class.getName(),
            Settings.PaymentSettingsActivity.class.getName(),
            Settings.EnterprisePrivacySettingsActivity.class.getName(),

            // New IA
            // Home page
@@ -416,6 +419,7 @@ public class SettingsActivity extends SettingsDrawerActivity
            ConnectedDeviceDashboardFragment.class.getName(),
            AppAndNotificationDashboardFragment.class.getName(),
            UserAndAccountDashboardFragment.class.getName(),
            EnterprisePrivacySettings.class.getName(),
    };


@@ -1219,6 +1223,11 @@ public class SettingsActivity extends SettingsDrawerActivity
        setTileEnabled(new ComponentName(packageName,
                BackupSettingsActivity.class.getName()), hasBackupActivity, isAdmin, pm);

        setTileEnabled(new ComponentName(packageName,
                Settings.EnterprisePrivacySettingsActivity.class.getName()),
                FeatureFactory.getFactory(this).getEnterprisePrivacyFeatureProvider(this)
                        .hasDeviceOwner(), isAdmin, pm);

    }

    private void setTileEnabled(ComponentName component, boolean enabled, boolean isAdmin,
Loading