Home | History | Annotate | Download | only in enterprise
      1 /*
      2  * Copyright (C) 2016 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.settings.enterprise;
     18 
     19 import java.util.Date;
     20 
     21 public interface EnterprisePrivacyFeatureProvider {
     22 
     23     /**
     24      * Returns whether the device is managed by a Device Owner app.
     25      */
     26     boolean hasDeviceOwner();
     27 
     28     /**
     29      * Returns whether the device is in COMP mode (primary user managed by a Device Owner app and
     30      * work profile managed by a Profile Owner app).
     31      */
     32     boolean isInCompMode();
     33 
     34     /**
     35      * Returns the name of the organization managing the device via a Device Owner app. If the
     36      * device is not managed by a Device Owner app or the name of the managing organization was not
     37      * set, returns {@code null}.
     38      */
     39     String getDeviceOwnerOrganizationName();
     40 
     41     /**
     42      * Returns a message informing the user that the device is managed by a Device Owner app. The
     43      * message includes a Learn More link that takes the user to the enterprise privacy section of
     44      * Settings. If the device is not managed by a Device Owner app, returns {@code null}.
     45      */
     46     CharSequence getDeviceOwnerDisclosure();
     47 
     48     /**
     49      * Returns the time at which the Device Owner last retrieved security logs, or {@code null} if
     50      * logs were never retrieved by the Device Owner on this device.
     51      */
     52     Date getLastSecurityLogRetrievalTime();
     53 
     54     /**
     55      * Returns the time at which the Device Owner last requested a bug report, or {@code null} if no
     56      * bug report was ever requested by the Device Owner on this device.
     57      */
     58     Date getLastBugReportRequestTime();
     59 
     60     /**
     61      * Returns the time at which the Device Owner last retrieved network logs, or {@code null} if
     62      * logs were never retrieved by the Device Owner on this device.
     63      */
     64     Date getLastNetworkLogRetrievalTime();
     65 
     66     /**
     67      * Returns whether security logging is currently enabled.
     68      */
     69     boolean isSecurityLoggingEnabled();
     70 
     71     /**
     72      * Returns whether network logging is currently enabled.
     73      */
     74     boolean isNetworkLoggingEnabled();
     75 
     76     /**
     77      * Returns whether the Device Owner or Profile Owner in the current user set an always-on VPN.
     78      */
     79     boolean isAlwaysOnVpnSetInCurrentUser();
     80 
     81     /**
     82      * Returns whether the Profile Owner in the current user's managed profile (if any) set an
     83      * always-on VPN.
     84      */
     85     boolean isAlwaysOnVpnSetInManagedProfile();
     86 
     87     /**
     88      * Returns whether the Device Owner set a recommended global HTTP proxy.
     89      */
     90     boolean isGlobalHttpProxySet();
     91 
     92     /**
     93      * Returns the number of failed login attempts that the Device Owner or Profile Owner allows
     94      * before the current user is wiped, or zero if no such limit is set.
     95      */
     96     int getMaximumFailedPasswordsBeforeWipeInCurrentUser();
     97 
     98     /**
     99      * Returns the number of failed login attempts that the Profile Owner allows before the current
    100      * user's managed profile (if any) is wiped, or zero if no such limit is set.
    101      */
    102     int getMaximumFailedPasswordsBeforeWipeInManagedProfile();
    103 
    104     /**
    105      * Returns the label of the current user's input method if that input method was set by a Device
    106      * Owner or Profile Owner in that user. Otherwise, returns {@code null}.
    107      */
    108     String getImeLabelIfOwnerSet();
    109 
    110     /**
    111      * Returns the number of CA certificates that the Device Owner or Profile Owner installed in
    112      * current user.
    113      */
    114     int getNumberOfOwnerInstalledCaCertsForCurrentUser();
    115 
    116     /**
    117      * Returns the number of CA certificates that the Device Owner or Profile Owner installed in
    118      * the current user's managed profile  (if any).
    119      */
    120     int getNumberOfOwnerInstalledCaCertsForManagedProfile();
    121 
    122     /**
    123      * Returns the number of Device Admin apps active in the current user and the user's managed
    124      * profile (if any).
    125      */
    126     int getNumberOfActiveDeviceAdminsForCurrentUserAndManagedProfile();
    127 }
    128