正在查看: Loan Locker v1.5 应用的 PolicyManagementFragment.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Loan Locker v1.5 应用的 PolicyManagementFragment.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.user.a4keygen.policy;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AccountManagerCallback;
import android.accounts.AccountManagerFuture;
import android.accounts.AuthenticatorException;
import android.accounts.OperationCanceledException;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityOptions;
import android.app.AlertDialog;
import android.app.Fragment;
import android.app.admin.DevicePolicyManager;
import android.app.admin.SystemUpdateInfo;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.location.LocationManager;
import android.net.ProxyInfo;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
import android.security.AppUriAuthenticationPolicy;
import android.security.KeyChain;
import android.security.KeyChainAliasCallback;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Base64;
import android.util.Log;
import android.util.SparseIntArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityManager;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import androidx.core.content.FileProvider;
import androidx.preference.EditTextPreference;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceManager;
import androidx.preference.SwitchPreference;
import com.user.a4keygen.DeviceAdminReceiver;
import com.user.a4keygen.DevicePolicyManagerGateway;
import com.user.a4keygen.DevicePolicyManagerGatewayImpl;
import com.user.a4keygen.R;
import com.user.a4keygen.SetupManagementActivity;
import com.user.a4keygen.common.AccountArrayAdapter;
import com.user.a4keygen.common.AppInfoArrayAdapter;
import com.user.a4keygen.common.BaseSearchablePolicyPreferenceFragment;
import com.user.a4keygen.common.CertificateUtil;
import com.user.a4keygen.common.Dumpable;
import com.user.a4keygen.common.MediaDisplayFragment;
import com.user.a4keygen.common.PackageInstallationUtils;
import com.user.a4keygen.common.ReflectionUtil;
import com.user.a4keygen.common.UserArrayAdapter;
import com.user.a4keygen.common.Util;
import com.user.a4keygen.common.preference.CustomConstraint;
import com.user.a4keygen.common.preference.DpcEditTextPreference;
import com.user.a4keygen.common.preference.DpcPreference;
import com.user.a4keygen.common.preference.DpcSwitchPreference;
import com.user.a4keygen.policy.PolicyManagementFragment;
import com.user.a4keygen.policy.blockuninstallation.BlockUninstallationInfoArrayAdapter;
import com.user.a4keygen.policy.keymanagement.GenerateKeyAndCertificateTask;
import com.user.a4keygen.policy.keymanagement.KeyGenerationParameters;
import com.user.a4keygen.policy.keymanagement.ShowToastCallback;
import com.user.a4keygen.policy.keymanagement.SignAndVerifyTask;
import com.user.a4keygen.policy.locktask.KioskModeActivity;
import com.user.a4keygen.policy.locktask.LockTaskAppInfoArrayAdapter;
import com.user.a4keygen.policy.wifimanagement.WifiConfigCreationDialog;
import com.user.a4keygen.policy.wifimanagement.WifiEapTlsCreateDialogFragment;
import com.user.a4keygen.util.MainThreadExecutor;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.UnrecoverableKeyException;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.TimeZone;
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
import org.bouncycastle.asn1.cmp.PKIFailureInfo;
public class PolicyManagementFragment extends BaseSearchablePolicyPreferenceFragment implements Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener, Dumpable {
private static final String ADD_ACCOUNT_KEY = "add_account";
private static final String AFFILIATED_USER_KEY = "affiliated_user";
private static final String APP_FEEDBACK_NOTIFICATIONS = "app_feedback_notifications";
private static final String APP_RESTRICTIONS_MANAGING_PACKAGE_KEY = "app_restrictions_managing_package";
private static final String APP_STATUS_KEY = "app_status";
private static final String AUTO_BRIGHTNESS_KEY = "auto_brightness";
private static final String BIND_DEVICE_ADMIN_POLICIES = "bind_device_admin_policies";
private static final String BLOCK_UNINSTALLATION_BY_PKG_KEY = "block_uninstallation_by_pkg";
private static final String BLOCK_UNINSTALLATION_LIST_KEY = "block_uninstallation_list";
private static final String CAPTURE_IMAGE_KEY = "capture_image";
private static final int CAPTURE_IMAGE_REQUEST_CODE = 7691;
private static final String CAPTURE_VIDEO_KEY = "capture_video";
private static final int CAPTURE_VIDEO_REQUEST_CODE = 7692;
private static final String CHECK_LOCK_TASK_PERMITTED_KEY = "check_lock_task_permitted";
private static final String CLEAR_APP_DATA_KEY = "clear_app_data";
private static final String CLEAR_GLOBAL_HTTP_PROXY_KEY = "clear_global_http_proxy";
private static final String COMMON_CRITERIA_MODE_KEY = "common_criteria_mode";
private static final String CREATE_AND_MANAGE_USER_KEY = "create_and_manage_user";
private static final String CREATE_EAP_TLS_WIFI_CONFIGURATION_KEY = "create_eap_tls_wifi_configuration";
private static final String CREATE_MANAGED_PROFILE_KEY = "create_managed_profile";
private static final String CREATE_WIFI_CONFIGURATION_KEY = "create_wifi_configuration";
private static final String CROSS_PROFILE_APPS = "cross_profile_apps";
private static final String CROSS_PROFILE_APPS_ALLOWLIST = "cross_profile_apps_allowlist";
private static final String CROSS_PROFILE_CALENDAR_KEY = "cross_profile_calendar";
private static final String DELEGATED_CERT_INSTALLER_KEY = "manage_cert_installer";
private static final String DISABLE_CAMERA_KEY = "disable_camera";
private static final String DISABLE_CAMERA_ON_PARENT_KEY = "disable_camera_on_parent";
private static final String DISABLE_KEYGUARD = "disable_keyguard";
private static final String DISABLE_METERED_DATA_KEY = "disable_metered_data";
private static final String DISABLE_SCREEN_CAPTURE_KEY = "disable_screen_capture";
private static final String DISABLE_SCREEN_CAPTURE_ON_PARENT_KEY = "disable_screen_capture_on_parent";
private static final String DISABLE_STATUS_BAR = "disable_status_bar";
private static final String DONT_STAY_ON = "0";
private static final String ENABLE_BACKUP_SERVICE = "enable_backup_service";
private static final String ENABLE_LOGOUT_KEY = "enable_logout";
private static final String ENABLE_NETWORK_LOGGING = "enable_network_logging";
private static final String ENABLE_SECURITY_LOGGING = "enable_security_logging";
private static final String ENABLE_SYSTEM_APPS_BY_INTENT_KEY = "enable_system_apps_by_intent";
private static final String ENABLE_SYSTEM_APPS_BY_PACKAGE_NAME_KEY = "enable_system_apps_by_package_name";
private static final String ENABLE_SYSTEM_APPS_KEY = "enable_system_apps";
private static final String ENABLE_USB_DATA_SIGNALING_KEY = "enable_usb_data_signaling";
private static final String ENROLLMENT_SPECIFIC_ID_KEY = "enrollment_specific_id";
private static final String EPHEMERAL_USER_KEY = "ephemeral_user";
private static final String FACTORY_RESET_ORG_OWNED_DEVICE = "factory_reset_org_owned_device";
public static final String FRAGMENT_TAG = "PolicyManagementFragment";
private static final String GENERATE_KEY_CERTIFICATE_KEY = "generate_key_and_certificate";
private static final String GENERIC_DELEGATION_KEY = "generic_delegation";
private static final String GET_CA_CERTIFICATES_KEY = "get_ca_certificates";
private static final String GET_DISABLE_ACCOUNT_MANAGEMENT_KEY = "get_disable_account_management";
private static final String HIDE_APPS_KEY = "hide_apps";
private static final String HIDE_APPS_PARENT_KEY = "hide_apps_parent";
private static final String INSTALL_APK_PACKAGE_KEY = "install_apk_package";
private static final int INSTALL_APK_PACKAGE_REQUEST_CODE = 7693;
private static final String INSTALL_CA_CERTIFICATE_KEY = "install_ca_certificate";
private static final int INSTALL_CA_CERTIFICATE_REQUEST_CODE = 7690;
private static final String INSTALL_EXISTING_PACKAGE_KEY = "install_existing_packages";
private static final String INSTALL_KEY_CERTIFICATE_KEY = "install_key_certificate";
private static final int INSTALL_KEY_CERTIFICATE_REQUEST_CODE = 7689;
private static final String INSTALL_NONMARKET_APPS_KEY = "install_nonmarket_apps";
private static final String KEEP_UNINSTALLED_PACKAGES = "keep_uninstalled_packages";
private static final String LOCK_NOW_KEY = "lock_now";
private static final String LOCK_SCREEN_POLICY_KEY = "lock_screen_policy";
private static final String LOGOUT_USER_KEY = "logout_user";
public static final String LOG_TAG = "EMISAFE";
private static final String MANAGED_CONFIGURATIONS_KEY = "managed_configurations";
private static final String MANAGED_PROFILE_SPECIFIC_POLICIES_KEY = "managed_profile_policies";
private static final String MANAGED_SYSTEM_UPDATES_KEY = "managed_system_updates";
private static final String MANAGE_APP_PERMISSIONS_KEY = "manage_app_permissions";
private static final String MANAGE_LOCK_TASK_LIST_KEY = "manage_lock_task";
private static final String MANAGE_OVERRIDE_APN_KEY = "manage_override_apn";
private static final String MODIFY_OWNED_WIFI_CONFIGURATION_KEY = "modify_owned_wifi_configuration";
private static final String MODIFY_WIFI_CONFIGURATION_KEY = "modify_wifi_configuration";
private static final String MUTE_AUDIO_KEY = "mute_audio";
private static final String NETWORK_STATS_KEY = "network_stats";
public static final String OVERRIDE_KEY_SELECTION_KEY = "override_key_selection";
private static final String PASSWORD_COMPLEXITY_KEY = "password_complexity";
private static final String PASSWORD_COMPLIANT_KEY = "password_compliant";
private static final String PASSWORD_CONSTRAINTS_KEY = "password_constraints";
private static final String PROFILE_MAX_TIME_OFF_KEY = "profile_max_time_off";
private static final String REBOOT_KEY = "reboot";
private static final String REENABLE_KEYGUARD = "reenable_keyguard";
private static final String REENABLE_STATUS_BAR = "reenable_status_bar";
private static final String RELAUNCH_IN_LOCK_TASK = "relaunch_in_lock_task";
private static final String REMOVE_ACCOUNT_KEY = "remove_account";
private static final String REMOVE_ALL_CERTIFICATES_KEY = "remove_all_ca_certificates";
private static final String REMOVE_DEVICE_OWNER_KEY = "remove_device_owner";
private static final String REMOVE_KEY_CERTIFICATE_KEY = "remove_key_certificate";
private static final String REMOVE_NOT_OWNED_WIFI_CONFIGURATION_KEY = "remove_not_owned_wifi_configurations";
private static final String REMOVE_USER_KEY = "remove_user";
private static final String REQUEST_BUGREPORT_KEY = "request_bugreport";
private static final String REQUEST_MANAGE_CREDENTIALS_KEY = "request_manage_credentials";
private static final int REQUEST_MANAGE_CREDENTIALS_REQUEST_CODE = 7694;
private static final String REQUEST_NETWORK_LOGS = "request_network_logs";
private static final String REQUEST_PRE_REBOOT_SECURITY_LOGS = "request_pre_reboot_security_logs";
private static final String REQUEST_SECURITY_LOGS = "request_security_logs";
private static final String REQUIRED_PASSWORD_COMPLEXITY_KEY = "required_password_complexity";
private static final String REQUIRED_PASSWORD_COMPLEXITY_ON_PARENT_KEY = "required_password_complexity_on_parent";
private static final String RESET_PASSWORD_KEY = "reset_password";
private static final String SECURITY_PATCH_FORMAT = "yyyy-MM-dd";
private static final String SECURITY_PATCH_KEY = "security_patch";
private static final String SEPARATE_CHALLENGE_KEY = "separate_challenge";
private static final String SET_ACCESSIBILITY_SERVICES_KEY = "set_accessibility_services";
private static final String SET_AFFILIATION_IDS_KEY = "set_affiliation_ids";
private static final String SET_ALWAYS_ON_VPN_KEY = "set_always_on_vpn";
private static final String SET_AUTO_TIME_KEY = "set_auto_time";
private static final String SET_AUTO_TIME_REQUIRED_KEY = "set_auto_time_required";
private static final String SET_AUTO_TIME_ZONE_KEY = "set_auto_time_zone";
private static final String SET_DEVICE_ORGANIZATION_NAME_KEY = "set_device_organization_name";
private static final String SET_DISABLE_ACCOUNT_MANAGEMENT_KEY = "set_disable_account_management";
private static final String SET_FACTORY_RESET_PROTECTION_POLICY_KEY = "set_factory_reset_protection_policy";
private static final String SET_GET_PREFERENTIAL_NETWORK_SERVICE_STATUS = "set_get_preferential_network_service_status";
private static final String SET_GLOBAL_HTTP_PROXY_KEY = "set_global_http_proxy";
private static final String SET_INPUT_METHODS_KEY = "set_input_methods";
private static final String SET_INPUT_METHODS_ON_PARENT_KEY = "set_input_methods_on_parent";
private static final String SET_LOCATION_ENABLED_KEY = "set_location_enabled";
private static final String SET_LOCATION_MODE_KEY = "set_location_mode";
private static final String SET_LOCK_TASK_FEATURES_KEY = "set_lock_task_features";
private static final String SET_LONG_SUPPORT_MESSAGE_KEY = "set_long_support_message";
private static final String SET_NEW_PASSWORD = "set_new_password";
private static final String SET_NEW_PASSWORD_WITH_COMPLEXITY = "set_new_password_with_complexity";
private static final String SET_NOTIFICATION_LISTENERS_KEY = "set_notification_listeners";
private static final String SET_NOTIFICATION_LISTENERS_TEXT_KEY = "set_notification_listeners_text";
private static final String SET_ORGANIZATION_ID_KEY = "set_organization_id";
private static final String SET_PERMISSION_POLICY_KEY = "set_permission_policy";
private static final String SET_PRIVATE_DNS_MODE_KEY = "set_private_dns_mode";
private static final String SET_PROFILE_NAME_KEY = "set_profile_name";
private static final String SET_PROFILE_PARENT_NEW_PASSWORD = "set_profile_parent_new_password";
private static final String SET_PROFILE_PARENT_NEW_PASSWORD_DEVICE_REQUIREMENT = "set_profile_parent_new_password_device_requirement";
private static final String SET_REQUIRED_PASSWORD_COMPLEXITY = "set_required_password_complexity";
private static final String SET_REQUIRED_PASSWORD_COMPLEXITY_ON_PARENT = "set_required_password_complexity_on_parent";
private static final String SET_SCREEN_BRIGHTNESS_KEY = "set_screen_brightness";
private static final String SET_SCREEN_OFF_TIMEOUT_KEY = "set_screen_off_timeout";
private static final String SET_SHORT_SUPPORT_MESSAGE_KEY = "set_short_support_message";
private static final String SET_TIME_KEY = "set_time";
private static final String SET_TIME_ZONE_KEY = "set_time_zone";
private static final String SET_USER_RESTRICTIONS_KEY = "set_user_restrictions";
private static final String SET_USER_RESTRICTIONS_PARENT_KEY = "set_user_restrictions_parent";
private static final String SET_USER_SESSION_MESSAGE_KEY = "set_user_session_message";
private static final String SHOW_WIFI_MAC_ADDRESS_KEY = "show_wifi_mac_address";
private static final String START_KIOSK_MODE = "start_kiosk_mode";
private static final String START_LOCK_TASK = "start_lock_task";
private static final String START_USER_IN_BACKGROUND_KEY = "start_user_in_background";
private static final String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in";
private static final String STOP_LOCK_TASK = "stop_lock_task";
private static final String STOP_USER_KEY = "stop_user";
private static final String SUSPEND_APPS_KEY = "suspend_apps";
private static final String SUSPEND_PERSONAL_APPS_KEY = "suspend_personal_apps";
private static final String SWITCH_USER_KEY = "switch_user";
private static final String SYSTEM_UPDATE_PENDING_KEY = "system_update_pending";
private static final String SYSTEM_UPDATE_POLICY_KEY = "system_update_policy";
public static final String TAG = "PolicyManagement";
private static final String TAG_WIFI_CONFIG_CREATION = "wifi_config_creation";
private static final String TEST_KEY_USABILITY_KEY = "test_key_usability";
private static final String TRANSFER_OWNERSHIP_KEY = "transfer_ownership_to_component";
private static final String UNHIDE_APPS_KEY = "unhide_apps";
private static final String UNHIDE_APPS_PARENT_KEY = "unhide_apps_parent";
private static final String UNINSTALL_PACKAGE_KEY = "uninstall_package";
private static final String UNSUSPEND_APPS_KEY = "unsuspend_apps";
private static final int USER_OPERATION_ERROR_UNKNOWN = 1;
private static final int USER_OPERATION_SUCCESS = 0;
private static final String WIFI_CONFIG_LOCKDOWN_ENABLE_KEY = "enable_wifi_config_lockdown";
private static final String WIPE_DATA_KEY = "wipe_data";
public static final String X509_CERT_TYPE = "X.509";
private AccountManager mAccountManager;
private ComponentName mAdminComponentName;
private Preference mAffiliatedUserPreference;
private DpcSwitchPreference mAutoBrightnessPreference;
private DpcSwitchPreference mCommonCriteriaModePreference;
private DevicePolicyManager mDevicePolicyManager;
private DevicePolicyManagerGateway mDevicePolicyManagerGateway;
private DpcSwitchPreference mDisableCameraOnParentSwitchPreference;
private SwitchPreference mDisableCameraSwitchPreference;
private DpcPreference mDisableKeyguardPreference;
private DpcSwitchPreference mDisableScreenCaptureOnParentSwitchPreference;
private SwitchPreference mDisableScreenCaptureSwitchPreference;
private DpcPreference mDisableStatusBarPreference;
private DpcSwitchPreference mEnableAppFeedbackNotificationsPreference;
private DpcSwitchPreference mEnableBackupServicePreference;
private DpcSwitchPreference mEnableLogoutPreference;
private DpcSwitchPreference mEnableNetworkLoggingPreference;
private SwitchPreference mEnableSecurityLoggingPreference;
private DpcSwitchPreference mEnableUsbDataSignalingPreference;
private Preference mEphemeralUserPreference;
private DpcPreference mHideAppsParentPreference;
private Uri mImageUri;
private DpcPreference mInstallExistingPackagePreference;
private DpcSwitchPreference mInstallNonMarketAppsPreference;
private boolean mIsProfileOwner;
private DpcSwitchPreference mLockdownAdminConfiguredNetworksPreference;
private DpcPreference mLogoutUserPreference;
private DpcPreference mManageLockTaskListPreference;
private SwitchPreference mMuteAudioSwitchPreference;
private PackageManager mPackageManager;
private String mPackageName;
private SwitchPreference mPreferentialNetworkServiceSwitchPreference;
private DpcEditTextPreference mProfileMaxTimeOff;
private DpcPreference mReenableKeyguardPreference;
private DpcPreference mReenableStatusBarPreference;
private DpcPreference mRequestNetworkLogsPreference;
private DpcPreference mRequestPreRebootSecurityLogsPreference;
private DpcPreference mRequestSecurityLogsPreference;
private DpcSwitchPreference mSetAutoTimePreference;
private DpcSwitchPreference mSetAutoTimeRequiredPreference;
private DpcSwitchPreference mSetAutoTimeZonePreference;
private Preference mSetDeviceOrganizationNamePreference;
private DpcSwitchPreference mSetLocationEnabledPreference;
private DpcSwitchPreference mSetLocationModePreference;
private DpcPreference mSetLockTaskFeaturesPreference;
private SwitchPreference mStayOnWhilePluggedInSwitchPreference;
private DpcSwitchPreference mSuspendPersonalApps;
private TelephonyManager mTelephonyManager;
private DpcPreference mUnhideAppsParentPreference;
private UserManager mUserManager;
private DpcPreference mUserRestrictionsParentPreference;
private Uri mVideoUri;
private static final String BATTERY_PLUGGED_ANY = Integer.toString(7);
private static final SparseIntArray PASSWORD_COMPLEXITY = new SparseIntArray(4);
private GetAccessibilityServicesTask mGetAccessibilityServicesTask = null;
private GetInputMethodsTask mGetInputMethodsTask = null;
private GetNotificationListenersTask mGetNotificationListenersTask = null;
private ShowCaCertificateListTask mShowCaCertificateListTask = null;
interface ManageLockTaskListCallback {
void onPositiveButtonClicked(String[] strArr);
}
interface UserCallback {
void onUserChosen(UserHandle userHandle);
}
static void lambda$promptInstallUpdate$5(DialogInterface dialogInterface, int i) {
}
@Override
public boolean isAvailable(Context context) {
return true;
}
public boolean onPreferenceClick(Preference preference) {
return false;
}
static {
if (Util.SDK_INT >= 29) {
int[] iArr = {0, PKIFailureInfo.notAuthorized, 196608, 327680};
int[] iArr2 = {R.string.password_complexity_none, R.string.password_complexity_low, R.string.password_complexity_medium, R.string.password_complexity_high};
for (int i = 0; i < 4; i++) {
PASSWORD_COMPLEXITY.put(iArr[i], iArr2[i]);
}
}
}
@Override
public void onCreate(Bundle bundle) {
Activity activity = getActivity();
if (isDelegatedApp() || isCredentialManagerApp()) {
this.mAdminComponentName = null;
} else {
this.mAdminComponentName = DeviceAdminReceiver.getComponentName(activity);
}
this.mDevicePolicyManager = (DevicePolicyManager) activity.getSystemService(DevicePolicyManager.class);
this.mUserManager = (UserManager) activity.getSystemService(UserManager.class);
this.mPackageManager = activity.getPackageManager();
DevicePolicyManagerGatewayImpl devicePolicyManagerGatewayImpl = new DevicePolicyManagerGatewayImpl(this.mDevicePolicyManager, this.mUserManager, this.mPackageManager, (LocationManager) activity.getSystemService(LocationManager.class), this.mAdminComponentName);
this.mDevicePolicyManagerGateway = devicePolicyManagerGatewayImpl;
this.mIsProfileOwner = devicePolicyManagerGatewayImpl.isProfileOwnerApp();
this.mTelephonyManager = (TelephonyManager) activity.getSystemService(TelephonyManager.class);
this.mAccountManager = AccountManager.get(activity);
this.mPackageName = activity.getPackageName();
this.mImageUri = getStorageUri("image.jpg");
this.mVideoUri = getStorageUri("video.mp4");
super.onCreate(bundle);
}
public void onCreatePreferences(Bundle bundle, String str) {
addPreferencesFromResource(R.xml.device_policy_header);
EditTextPreference findPreference = findPreference(OVERRIDE_KEY_SELECTION_KEY);
findPreference.setOnPreferenceChangeListener(this);
findPreference.setSummary(findPreference.getText());
DpcPreference dpcPreference = (DpcPreference) findPreference(MANAGE_LOCK_TASK_LIST_KEY);
this.mManageLockTaskListPreference = dpcPreference;
dpcPreference.setOnPreferenceClickListener(this);
this.mManageLockTaskListPreference.setCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateAffiliatedUserAfterP;
validateAffiliatedUserAfterP = PolicyManagementFragment.this.validateAffiliatedUserAfterP();
return validateAffiliatedUserAfterP;
}
});
findPreference(CHECK_LOCK_TASK_PERMITTED_KEY).setOnPreferenceClickListener(this);
DpcPreference dpcPreference2 = (DpcPreference) findPreference(SET_LOCK_TASK_FEATURES_KEY);
this.mSetLockTaskFeaturesPreference = dpcPreference2;
dpcPreference2.setOnPreferenceClickListener(this);
this.mSetLockTaskFeaturesPreference.setCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateAffiliatedUserAfterP;
validateAffiliatedUserAfterP = PolicyManagementFragment.this.validateAffiliatedUserAfterP();
return validateAffiliatedUserAfterP;
}
});
findPreference(START_LOCK_TASK).setOnPreferenceClickListener(this);
findPreference(RELAUNCH_IN_LOCK_TASK).setOnPreferenceClickListener(this);
findPreference(STOP_LOCK_TASK).setOnPreferenceClickListener(this);
findPreference(CREATE_MANAGED_PROFILE_KEY).setOnPreferenceClickListener(this);
findPreference(CREATE_AND_MANAGE_USER_KEY).setOnPreferenceClickListener(this);
findPreference(REMOVE_USER_KEY).setOnPreferenceClickListener(this);
findPreference(SWITCH_USER_KEY).setOnPreferenceClickListener(this);
findPreference(START_USER_IN_BACKGROUND_KEY).setOnPreferenceClickListener(this);
findPreference(STOP_USER_KEY).setOnPreferenceClickListener(this);
DpcSwitchPreference findPreference2 = findPreference(ENABLE_LOGOUT_KEY);
this.mEnableLogoutPreference = findPreference2;
findPreference2.setOnPreferenceChangeListener(this);
findPreference(SET_USER_SESSION_MESSAGE_KEY).setOnPreferenceClickListener(this);
DpcPreference dpcPreference3 = (DpcPreference) findPreference(LOGOUT_USER_KEY);
this.mLogoutUserPreference = dpcPreference3;
dpcPreference3.setOnPreferenceClickListener(this);
this.mLogoutUserPreference.setCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateAffiliatedUserAfterP;
validateAffiliatedUserAfterP = PolicyManagementFragment.this.validateAffiliatedUserAfterP();
return validateAffiliatedUserAfterP;
}
});
findPreference(SET_AFFILIATION_IDS_KEY).setOnPreferenceClickListener(this);
this.mAffiliatedUserPreference = findPreference(AFFILIATED_USER_KEY);
this.mEphemeralUserPreference = findPreference(EPHEMERAL_USER_KEY);
SwitchPreference findPreference3 = findPreference(DISABLE_CAMERA_KEY);
this.mDisableCameraSwitchPreference = findPreference3;
findPreference3.setOnPreferenceChangeListener(this);
DpcSwitchPreference findPreference4 = findPreference(DISABLE_CAMERA_ON_PARENT_KEY);
this.mDisableCameraOnParentSwitchPreference = findPreference4;
findPreference4.setOnPreferenceChangeListener(this);
findPreference(CAPTURE_IMAGE_KEY).setOnPreferenceClickListener(this);
findPreference(CAPTURE_VIDEO_KEY).setOnPreferenceClickListener(this);
SwitchPreference findPreference5 = findPreference(DISABLE_SCREEN_CAPTURE_KEY);
this.mDisableScreenCaptureSwitchPreference = findPreference5;
findPreference5.setOnPreferenceChangeListener(this);
DpcSwitchPreference findPreference6 = findPreference(DISABLE_SCREEN_CAPTURE_ON_PARENT_KEY);
this.mDisableScreenCaptureOnParentSwitchPreference = findPreference6;
findPreference6.setOnPreferenceChangeListener(this);
SwitchPreference findPreference7 = findPreference(MUTE_AUDIO_KEY);
this.mMuteAudioSwitchPreference = findPreference7;
findPreference7.setOnPreferenceChangeListener(this);
SwitchPreference findPreference8 = findPreference(SET_GET_PREFERENTIAL_NETWORK_SERVICE_STATUS);
this.mPreferentialNetworkServiceSwitchPreference = findPreference8;
findPreference8.setOnPreferenceChangeListener(this);
if (this.mIsProfileOwner) {
this.mPreferentialNetworkServiceSwitchPreference.setChecked(this.mDevicePolicyManagerGateway.isPreferentialNetworkServiceEnabled());
}
findPreference(LOCK_SCREEN_POLICY_KEY).setOnPreferenceClickListener(this);
findPreference(PASSWORD_CONSTRAINTS_KEY).setOnPreferenceClickListener(this);
findPreference(RESET_PASSWORD_KEY).setOnPreferenceClickListener(this);
findPreference(LOCK_NOW_KEY).setOnPreferenceClickListener(this);
findPreference(SYSTEM_UPDATE_POLICY_KEY).setOnPreferenceClickListener(this);
findPreference(SYSTEM_UPDATE_PENDING_KEY).setOnPreferenceClickListener(this);
findPreference(SET_ALWAYS_ON_VPN_KEY).setOnPreferenceClickListener(this);
findPreference(SET_GLOBAL_HTTP_PROXY_KEY).setOnPreferenceClickListener(this);
findPreference(CLEAR_GLOBAL_HTTP_PROXY_KEY).setOnPreferenceClickListener(this);
findPreference(SET_PRIVATE_DNS_MODE_KEY).setOnPreferenceClickListener(this);
findPreference(NETWORK_STATS_KEY).setOnPreferenceClickListener(this);
findPreference(DELEGATED_CERT_INSTALLER_KEY).setOnPreferenceClickListener(this);
DpcPreference dpcPreference4 = (DpcPreference) findPreference(DISABLE_STATUS_BAR);
this.mDisableStatusBarPreference = dpcPreference4;
dpcPreference4.setOnPreferenceClickListener(this);
this.mDisableStatusBarPreference.setCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateAffiliatedUserAfterP;
validateAffiliatedUserAfterP = PolicyManagementFragment.this.validateAffiliatedUserAfterP();
return validateAffiliatedUserAfterP;
}
});
this.mDisableStatusBarPreference.addCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateDeviceOwnerBeforeP;
validateDeviceOwnerBeforeP = PolicyManagementFragment.this.validateDeviceOwnerBeforeP();
return validateDeviceOwnerBeforeP;
}
});
DpcPreference dpcPreference5 = (DpcPreference) findPreference(REENABLE_STATUS_BAR);
this.mReenableStatusBarPreference = dpcPreference5;
dpcPreference5.setOnPreferenceClickListener(this);
this.mReenableStatusBarPreference.setCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateAffiliatedUserAfterP;
validateAffiliatedUserAfterP = PolicyManagementFragment.this.validateAffiliatedUserAfterP();
return validateAffiliatedUserAfterP;
}
});
this.mReenableStatusBarPreference.addCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateDeviceOwnerBeforeP;
validateDeviceOwnerBeforeP = PolicyManagementFragment.this.validateDeviceOwnerBeforeP();
return validateDeviceOwnerBeforeP;
}
});
DpcPreference dpcPreference6 = (DpcPreference) findPreference(DISABLE_KEYGUARD);
this.mDisableKeyguardPreference = dpcPreference6;
dpcPreference6.setOnPreferenceClickListener(this);
this.mDisableKeyguardPreference.setCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateAffiliatedUserAfterP;
validateAffiliatedUserAfterP = PolicyManagementFragment.this.validateAffiliatedUserAfterP();
return validateAffiliatedUserAfterP;
}
});
this.mDisableKeyguardPreference.addCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateDeviceOwnerBeforeP;
validateDeviceOwnerBeforeP = PolicyManagementFragment.this.validateDeviceOwnerBeforeP();
return validateDeviceOwnerBeforeP;
}
});
DpcPreference dpcPreference7 = (DpcPreference) findPreference(REENABLE_KEYGUARD);
this.mReenableKeyguardPreference = dpcPreference7;
dpcPreference7.setOnPreferenceClickListener(this);
this.mReenableKeyguardPreference.setCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateAffiliatedUserAfterP;
validateAffiliatedUserAfterP = PolicyManagementFragment.this.validateAffiliatedUserAfterP();
return validateAffiliatedUserAfterP;
}
});
this.mReenableKeyguardPreference.addCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateDeviceOwnerBeforeP;
validateDeviceOwnerBeforeP = PolicyManagementFragment.this.validateDeviceOwnerBeforeP();
return validateDeviceOwnerBeforeP;
}
});
findPreference(START_KIOSK_MODE).setOnPreferenceClickListener(this);
SwitchPreference findPreference9 = findPreference(STAY_ON_WHILE_PLUGGED_IN);
this.mStayOnWhilePluggedInSwitchPreference = findPreference9;
findPreference9.setOnPreferenceChangeListener(this);
findPreference(WIPE_DATA_KEY).setOnPreferenceClickListener(this);
findPreference(REMOVE_DEVICE_OWNER_KEY).setOnPreferenceClickListener(this);
DpcSwitchPreference findPreference10 = findPreference(ENABLE_BACKUP_SERVICE);
this.mEnableBackupServicePreference = findPreference10;
findPreference10.setOnPreferenceChangeListener(this);
this.mEnableBackupServicePreference.setCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateDeviceOwnerBeforeQ;
validateDeviceOwnerBeforeQ = PolicyManagementFragment.this.validateDeviceOwnerBeforeQ();
return validateDeviceOwnerBeforeQ;
}
});
DpcSwitchPreference findPreference11 = findPreference(COMMON_CRITERIA_MODE_KEY);
this.mCommonCriteriaModePreference = findPreference11;
findPreference11.setOnPreferenceChangeListener(this);
DpcSwitchPreference findPreference12 = findPreference(ENABLE_USB_DATA_SIGNALING_KEY);
this.mEnableUsbDataSignalingPreference = findPreference12;
findPreference12.setOnPreferenceChangeListener(this);
findPreference(REQUEST_BUGREPORT_KEY).setOnPreferenceClickListener(this);
SwitchPreference findPreference13 = findPreference(ENABLE_SECURITY_LOGGING);
this.mEnableSecurityLoggingPreference = findPreference13;
findPreference13.setOnPreferenceChangeListener(this);
DpcPreference dpcPreference8 = (DpcPreference) findPreference(REQUEST_SECURITY_LOGS);
this.mRequestSecurityLogsPreference = dpcPreference8;
dpcPreference8.setOnPreferenceClickListener(this);
CustomConstraint customConstraint = new CustomConstraint() {
@Override
public final int validateConstraint() {
return PolicyManagementFragment.this.m221x222d4f95();
}
};
this.mRequestSecurityLogsPreference.setCustomConstraint(customConstraint);
DpcPreference dpcPreference9 = (DpcPreference) findPreference(REQUEST_PRE_REBOOT_SECURITY_LOGS);
this.mRequestPreRebootSecurityLogsPreference = dpcPreference9;
dpcPreference9.setOnPreferenceClickListener(this);
this.mRequestPreRebootSecurityLogsPreference.setCustomConstraint(customConstraint);
DpcSwitchPreference findPreference14 = findPreference(ENABLE_NETWORK_LOGGING);
this.mEnableNetworkLoggingPreference = findPreference14;
findPreference14.setOnPreferenceChangeListener(this);
this.mEnableNetworkLoggingPreference.addCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateDeviceOwnerOrDelegationNetworkLoggingBeforeS;
validateDeviceOwnerOrDelegationNetworkLoggingBeforeS = PolicyManagementFragment.this.validateDeviceOwnerOrDelegationNetworkLoggingBeforeS();
return validateDeviceOwnerOrDelegationNetworkLoggingBeforeS;
}
});
DpcPreference dpcPreference10 = (DpcPreference) findPreference(REQUEST_NETWORK_LOGS);
this.mRequestNetworkLogsPreference = dpcPreference10;
dpcPreference10.setOnPreferenceClickListener(this);
this.mRequestNetworkLogsPreference.setCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
return PolicyManagementFragment.this.m222x65b86d56();
}
});
findPreference(SET_ACCESSIBILITY_SERVICES_KEY).setOnPreferenceClickListener(this);
findPreference(SET_INPUT_METHODS_KEY).setOnPreferenceClickListener(this);
findPreference(SET_INPUT_METHODS_ON_PARENT_KEY).setOnPreferenceClickListener(this);
findPreference(SET_NOTIFICATION_LISTENERS_KEY).setOnPreferenceClickListener(this);
findPreference(SET_NOTIFICATION_LISTENERS_TEXT_KEY).setOnPreferenceClickListener(this);
findPreference(SET_DISABLE_ACCOUNT_MANAGEMENT_KEY).setOnPreferenceClickListener(this);
findPreference(GET_DISABLE_ACCOUNT_MANAGEMENT_KEY).setOnPreferenceClickListener(this);
findPreference(ADD_ACCOUNT_KEY).setOnPreferenceClickListener(this);
findPreference(REMOVE_ACCOUNT_KEY).setOnPreferenceClickListener(this);
findPreference(BLOCK_UNINSTALLATION_BY_PKG_KEY).setOnPreferenceClickListener(this);
findPreference(BLOCK_UNINSTALLATION_LIST_KEY).setOnPreferenceClickListener(this);
findPreference(APP_FEEDBACK_NOTIFICATIONS).setOnPreferenceChangeListener(this);
this.mEnableAppFeedbackNotificationsPreference = findPreference(APP_FEEDBACK_NOTIFICATIONS);
findPreference(ENABLE_SYSTEM_APPS_KEY).setOnPreferenceClickListener(this);
findPreference(ENABLE_SYSTEM_APPS_BY_PACKAGE_NAME_KEY).setOnPreferenceClickListener(this);
findPreference(ENABLE_SYSTEM_APPS_BY_INTENT_KEY).setOnPreferenceClickListener(this);
DpcPreference dpcPreference11 = (DpcPreference) findPreference(INSTALL_EXISTING_PACKAGE_KEY);
this.mInstallExistingPackagePreference = dpcPreference11;
dpcPreference11.setOnPreferenceClickListener(this);
this.mInstallExistingPackagePreference.setCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateAffiliatedUserAfterP;
validateAffiliatedUserAfterP = PolicyManagementFragment.this.validateAffiliatedUserAfterP();
return validateAffiliatedUserAfterP;
}
});
findPreference(INSTALL_APK_PACKAGE_KEY).setOnPreferenceClickListener(this);
findPreference(UNINSTALL_PACKAGE_KEY).setOnPreferenceClickListener(this);
findPreference(HIDE_APPS_KEY).setOnPreferenceClickListener(this);
DpcPreference dpcPreference12 = (DpcPreference) findPreference(HIDE_APPS_PARENT_KEY);
this.mHideAppsParentPreference = dpcPreference12;
dpcPreference12.setOnPreferenceClickListener(this);
findPreference(UNHIDE_APPS_KEY).setOnPreferenceClickListener(this);
DpcPreference dpcPreference13 = (DpcPreference) findPreference(UNHIDE_APPS_PARENT_KEY);
this.mUnhideAppsParentPreference = dpcPreference13;
dpcPreference13.setOnPreferenceClickListener(this);
findPreference(SUSPEND_APPS_KEY).setOnPreferenceClickListener(this);
findPreference(UNSUSPEND_APPS_KEY).setOnPreferenceClickListener(this);
findPreference(CLEAR_APP_DATA_KEY).setOnPreferenceClickListener(this);
findPreference(KEEP_UNINSTALLED_PACKAGES).setOnPreferenceClickListener(this);
findPreference(MANAGED_CONFIGURATIONS_KEY).setOnPreferenceClickListener(this);
findPreference(DISABLE_METERED_DATA_KEY).setOnPreferenceClickListener(this);
findPreference(GENERIC_DELEGATION_KEY).setOnPreferenceClickListener(this);
findPreference(APP_RESTRICTIONS_MANAGING_PACKAGE_KEY).setOnPreferenceClickListener(this);
findPreference(REQUEST_MANAGE_CREDENTIALS_KEY).setOnPreferenceClickListener(this);
findPreference(INSTALL_KEY_CERTIFICATE_KEY).setOnPreferenceClickListener(this);
findPreference(GENERATE_KEY_CERTIFICATE_KEY).setOnPreferenceClickListener(this);
findPreference(REMOVE_KEY_CERTIFICATE_KEY).setOnPreferenceClickListener(this);
findPreference(TEST_KEY_USABILITY_KEY).setOnPreferenceClickListener(this);
findPreference(INSTALL_CA_CERTIFICATE_KEY).setOnPreferenceClickListener(this);
findPreference(GET_CA_CERTIFICATES_KEY).setOnPreferenceClickListener(this);
findPreference(REMOVE_ALL_CERTIFICATES_KEY).setOnPreferenceClickListener(this);
findPreference(MANAGED_PROFILE_SPECIFIC_POLICIES_KEY).setOnPreferenceClickListener(this);
findPreference(SET_PERMISSION_POLICY_KEY).setOnPreferenceClickListener(this);
findPreference(MANAGE_APP_PERMISSIONS_KEY).setOnPreferenceClickListener(this);
findPreference(CREATE_WIFI_CONFIGURATION_KEY).setOnPreferenceClickListener(this);
findPreference(CREATE_EAP_TLS_WIFI_CONFIGURATION_KEY).setOnPreferenceClickListener(this);
DpcSwitchPreference findPreference15 = findPreference(WIFI_CONFIG_LOCKDOWN_ENABLE_KEY);
this.mLockdownAdminConfiguredNetworksPreference = findPreference15;
findPreference15.setOnPreferenceChangeListener(this);
findPreference(MODIFY_WIFI_CONFIGURATION_KEY).setOnPreferenceClickListener(this);
findPreference(MODIFY_OWNED_WIFI_CONFIGURATION_KEY).setOnPreferenceClickListener(this);
findPreference(REMOVE_NOT_OWNED_WIFI_CONFIGURATION_KEY).setOnPreferenceClickListener(this);
findPreference(TRANSFER_OWNERSHIP_KEY).setOnPreferenceClickListener(this);
findPreference(SHOW_WIFI_MAC_ADDRESS_KEY).setOnPreferenceClickListener(this);
DpcSwitchPreference findPreference16 = findPreference(INSTALL_NONMARKET_APPS_KEY);
this.mInstallNonMarketAppsPreference = findPreference16;
findPreference16.setCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
return PolicyManagementFragment.this.m223xa9438b17();
}
});
this.mInstallNonMarketAppsPreference.setOnPreferenceChangeListener(this);
findPreference(SET_USER_RESTRICTIONS_KEY).setOnPreferenceClickListener(this);
DpcPreference dpcPreference14 = (DpcPreference) findPreference(SET_USER_RESTRICTIONS_PARENT_KEY);
this.mUserRestrictionsParentPreference = dpcPreference14;
dpcPreference14.setOnPreferenceClickListener(this);
findPreference(REBOOT_KEY).setOnPreferenceClickListener(this);
findPreference(SET_SHORT_SUPPORT_MESSAGE_KEY).setOnPreferenceClickListener(this);
findPreference(SET_LONG_SUPPORT_MESSAGE_KEY).setOnPreferenceClickListener(this);
findPreference(SET_NEW_PASSWORD).setOnPreferenceClickListener(this);
findPreference(SET_PROFILE_PARENT_NEW_PASSWORD).setOnPreferenceClickListener(this);
findPreference(SET_PROFILE_PARENT_NEW_PASSWORD_DEVICE_REQUIREMENT).setOnPreferenceClickListener(this);
findPreference(CROSS_PROFILE_APPS).setOnPreferenceClickListener(this);
findPreference(CROSS_PROFILE_APPS_ALLOWLIST).setOnPreferenceClickListener(this);
findPreference(SET_SCREEN_BRIGHTNESS_KEY).setOnPreferenceClickListener(this);
DpcSwitchPreference findPreference17 = findPreference(AUTO_BRIGHTNESS_KEY);
this.mAutoBrightnessPreference = findPreference17;
findPreference17.setOnPreferenceChangeListener(this);
findPreference(SET_SCREEN_OFF_TIMEOUT_KEY).setOnPreferenceClickListener(this);
findPreference(SET_TIME_KEY).setOnPreferenceClickListener(this);
findPreference(SET_TIME_ZONE_KEY).setOnPreferenceClickListener(this);
findPreference(SET_PROFILE_NAME_KEY).setOnPreferenceClickListener(this);
findPreference(MANAGE_OVERRIDE_APN_KEY).setOnPreferenceClickListener(this);
findPreference(MANAGED_SYSTEM_UPDATES_KEY).setOnPreferenceClickListener(this);
findPreference(CROSS_PROFILE_CALENDAR_KEY).setOnPreferenceClickListener(this);
findPreference(FACTORY_RESET_ORG_OWNED_DEVICE).setOnPreferenceClickListener(this);
findPreference(SET_FACTORY_RESET_PROTECTION_POLICY_KEY).setOnPreferenceClickListener(this);
findPreference(SET_ORGANIZATION_ID_KEY).setOnPreferenceClickListener(this);
DpcPreference dpcPreference15 = (DpcPreference) findPreference(BIND_DEVICE_ADMIN_POLICIES);
dpcPreference15.setCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
return PolicyManagementFragment.this.m224xeccea8d8();
}
});
dpcPreference15.setOnPreferenceClickListener(this);
DpcSwitchPreference findPreference18 = findPreference(SET_AUTO_TIME_REQUIRED_KEY);
this.mSetAutoTimeRequiredPreference = findPreference18;
findPreference18.addCustomConstraint(new CustomConstraint() {
@Override
public final int validateConstraint() {
int validateDeviceOwnerBeforeO;
validateDeviceOwnerBeforeO = PolicyManagementFragment.this.validateDeviceOwnerBeforeO();
return validateDeviceOwnerBeforeO;
}
});
this.mSetAutoTimeRequiredPreference.setOnPreferenceChangeListener(this);
DpcSwitchPreference findPreference19 = findPreference(SET_AUTO_TIME_KEY);
this.mSetAutoTimePreference = findPreference19;
findPreference19.setOnPreferenceChangeListener(this);
DpcSwitchPreference findPreference20 = findPreference(SET_AUTO_TIME_ZONE_KEY);
this.mSetAutoTimeZonePreference = findPreference20;
findPreference20.setOnPreferenceChangeListener(this);
EditTextPreference findPreference21 = findPreference(SET_DEVICE_ORGANIZATION_NAME_KEY);
this.mSetDeviceOrganizationNamePreference = findPreference21;
findPreference21.setOnPreferenceChangeListener(this);
DpcSwitchPreference findPreference22 = findPreference(SET_LOCATION_ENABLED_KEY);
this.mSetLocationEnabledPreference = findPreference22;
findPreference22.setOnPreferenceChangeListener(this);
DpcSwitchPreference findPreference23 = findPreference(SET_LOCATION_MODE_KEY);
this.mSetLocationModePreference = findPreference23;
findPreference23.setOnPreferenceChangeListener(this);
DpcSwitchPreference findPreference24 = findPreference(SUSPEND_PERSONAL_APPS_KEY);
this.mSuspendPersonalApps = findPreference24;
findPreference24.setOnPreferenceChangeListener(this);
DpcEditTextPreference findPreference25 = findPreference(PROFILE_MAX_TIME_OFF_KEY);
this.mProfileMaxTimeOff = findPreference25;
findPreference25.setOnPreferenceChangeListener(this);
maybeUpdateProfileMaxTimeOff();
onCreateSetNewPasswordWithComplexityPreference();
onCreateSetRequiredPasswordComplexityPreference();
onCreateSetRequiredPasswordComplexityOnParentPreference();
constrainSpecialCasePreferences();
maybeDisableLockTaskPreferences();
loadAppFeedbackNotifications();
loadAppStatus();
loadSecurityPatch();
loadEnrollmentSpecificId();
loadIsEphemeralUserUi();
reloadCameraDisableUi();
reloadScreenCaptureDisableUi();
reloadMuteAudioUi();
reloadEnableBackupServiceUi();
reloadCommonCriteriaModeUi();
reloadEnableUsbDataSignalingUi();
reloadEnableSecurityLoggingUi();
reloadEnableNetworkLoggingUi();
reloadSetAutoTimeRequiredUi();
reloadSetAutoTimeUi();
reloadSetAutoTimeZoneUi();
reloadEnableLogoutUi();
reloadAutoBrightnessUi();
reloadPersonalAppsSuspendedUi();
}
public int m221x222d4f95() {
if (isSecurityLoggingEnabled()) {
return 0;
}
return R.string.requires_security_logs;
}
public int m222x65b86d56() {
if (isNetworkLoggingEnabled()) {
return 0;
}
return R.string.requires_network_logs;
}
public int m223xa9438b17() {
if (this.mUserManager.hasUserRestriction("no_install_unknown_sources") || this.mUserManager.hasUserRestriction("no_install_unknown_sources_globally")) {
return R.string.user_restricted;
}
return 0;
}
public int m224xeccea8d8() {
if (Util.getBindDeviceAdminTargetUsers(getActivity()).size() == 1) {
return 0;
}
return R.string.require_one_po_to_bind;
}
@Override
public void dump(String str, PrintWriter printWriter, String[] strArr) {
printWriter.printf("%smAdminComponentName: %s\n", str, this.mAdminComponentName);
printWriter.printf("%smImageUri: %s\n", str, this.mImageUri);
printWriter.printf("%smmVideoUri: %s\n", str, this.mVideoUri);
printWriter.printf("%smmVideoUri: %s\n", str, this.mVideoUri);
printWriter.printf("%sisManagedProfileOwner(): %s\n", str, Boolean.valueOf(isManagedProfileOwner()));
printWriter.printf("%sisDeviceOwner(): %s\n", str, Boolean.valueOf(Util.isDeviceOwner(getActivity())));
printWriter.printf("%sisSystemUser(): %s\n", str, Boolean.valueOf(this.mUserManager.isSystemUser()));
printWriter.printf("%sisPrimaryUser(): %s\n", str, Boolean.valueOf(Util.isPrimaryUser(getActivity())));
printWriter.printf("%sisRunningOnTvDevice(): %s\n", str, Boolean.valueOf(Util.isRunningOnTvDevice(getActivity())));
printWriter.printf("%sisRunningOnAutomotiveDevice(): %s\n", str, Boolean.valueOf(Util.isRunningOnAutomotiveDevice(getActivity())));
}
private void maybeUpdateProfileMaxTimeOff() {
if (this.mProfileMaxTimeOff.isEnabled()) {
String l = Long.toString(TimeUnit.MILLISECONDS.toSeconds(this.mDevicePolicyManager.getManagedProfileMaximumTimeOff(this.mAdminComponentName)));
this.mProfileMaxTimeOff.setText(l);
this.mProfileMaxTimeOff.setSummary(l);
}
}
private void reloadPersonalAppsSuspendedUi() {
if (this.mSuspendPersonalApps.isEnabled()) {
this.mSuspendPersonalApps.setChecked(this.mDevicePolicyManager.getPersonalAppsSuspendedReasons(this.mAdminComponentName) != 0);
}
}
private void logAndShowToast(String str, Exception exc) {
Log.e("PolicyManagement", str, exc);
showToast(str + ": " + exc.getMessage());
}
private void addPasswordComplexityListToPreference(ListPreference listPreference) {
ArrayList arrayList = new ArrayList();
ArrayList arrayList2 = new ArrayList();
int size = PASSWORD_COMPLEXITY.size();
for (int i = 0; i < size; i++) {
SparseIntArray sparseIntArray = PASSWORD_COMPLEXITY;
arrayList.add(getString(sparseIntArray.valueAt(i)));
arrayList2.add(Integer.toString(sparseIntArray.keyAt(i)));
}
listPreference.setEntries((CharSequence[]) arrayList.toArray(new CharSequence[size]));
listPreference.setEntryValues((CharSequence[]) arrayList2.toArray(new CharSequence[size]));
}
private void onCreateSetNewPasswordWithComplexityPreference() {
ListPreference listPreference = (ListPreference) findPreference(SET_NEW_PASSWORD_WITH_COMPLEXITY);
addPasswordComplexityListToPreference(listPreference);
listPreference.setOnPreferenceChangeListener(this);
}
private void onCreateSetRequiredPasswordComplexityPreference() {
ListPreference listPreference = (ListPreference) findPreference(SET_REQUIRED_PASSWORD_COMPLEXITY);
addPasswordComplexityListToPreference(listPreference);
listPreference.setOnPreferenceChangeListener(this);
}
private void onCreateSetRequiredPasswordComplexityOnParentPreference() {
ListPreference listPreference = (ListPreference) findPreference(SET_REQUIRED_PASSWORD_COMPLEXITY_ON_PARENT);
addPasswordComplexityListToPreference(listPreference);
listPreference.setOnPreferenceChangeListener(this);
}
private void constrainSpecialCasePreferences() {
if (Util.SDK_INT >= 24) {
((DpcPreference) findPreference(RESET_PASSWORD_KEY)).clearNonCustomConstraints();
}
}
private void maybeDisableLockTaskPreferences() {
if (Util.SDK_INT < 26) {
String[] strArr = {MANAGE_LOCK_TASK_LIST_KEY, CHECK_LOCK_TASK_PERMITTED_KEY, START_LOCK_TASK, STOP_LOCK_TASK};
for (int i = 0; i < 4; i++) {
findPreference(strArr[i]).setAdminConstraint(2);
}
}
}
private boolean isDelegatedApp() {
if (Util.SDK_INT < 26) {
return false;
}
return !((DevicePolicyManager) getActivity().getSystemService(DevicePolicyManager.class)).getDelegatedScopes(null, getActivity().getPackageName()).isEmpty();
}
private boolean isCredentialManagerApp() {
if (Util.SDK_INT < 31) {
return false;
}
DevicePolicyManager devicePolicyManager = (DevicePolicyManager) getActivity().getSystemService(DevicePolicyManager.class);
String packageName = getActivity().getPackageName();
return (devicePolicyManager.isDeviceOwnerApp(packageName) || devicePolicyManager.isProfileOwnerApp(packageName)) ? false : true;
}
@Override
public void onResume() {
super.onResume();
updateStayOnWhilePluggedInPreference();
updateInstallNonMarketAppsPreference();
loadPasswordCompliant();
loadPasswordComplexity();
loadRequiredPasswordComplexity();
loadSeparateChallenge();
reloadAffiliatedApis();
}
private void promptInstallUpdate() {
new AlertDialog.Builder(getActivity()).setMessage(R.string.install_update_prompt).setTitle(R.string.install_update).setPositiveButton(R.string.install_update_prompt_yes, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m229x5271821c(dialogInterface, i);
}
}).setNegativeButton(R.string.install_update_prompt_no, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.lambda$promptInstallUpdate$5(dialogInterface, i);
}
}).create().show();
}
public void m229x5271821c(DialogInterface dialogInterface, int i) {
installUpdate();
}
private void installUpdate() {
this.mDevicePolicyManager.installSystemUpdate(this.mAdminComponentName, FileProvider.getUriForFile(getActivity(), "com.user.a4keygen.fileprovider", new File(getContext().getFilesDir(), "ota.zip")), new MainThreadExecutor(), new DevicePolicyManager.InstallSystemUpdateCallback() {
@Override
public void onInstallUpdateError(int i, String str) {
PolicyManagementFragment.this.showToast("Error code: " + i);
}
});
}
class AnonymousClass2 implements KeyChainAliasCallback {
AnonymousClass2() {
}
@Override
public void alias(String str) {
if (str == null) {
PolicyManagementFragment.this.showToast("No key chosen.");
} else {
new SignAndVerifyTask(PolicyManagementFragment.this.getContext(), new ShowToastCallback() {
@Override
public final void showToast(int i, Object[] objArr) {
PolicyManagementFragment.AnonymousClass2.this.m275x161e09f6(i, objArr);
}
}).execute(str);
}
}
public void m275x161e09f6(int i, Object[] objArr) {
PolicyManagementFragment.this.showToast(i, objArr);
}
}
private void testKeyCanBeUsedForSigning() {
KeyChain.choosePrivateKeyAlias(getActivity(), new AnonymousClass2(), null, null, null, null);
}
private void showPendingSystemUpdate() {
String string;
SystemUpdateInfo pendingSystemUpdate = this.mDevicePolicyManager.getPendingSystemUpdate(this.mAdminComponentName);
if (pendingSystemUpdate == null) {
showToast(getString(R.string.update_info_no_update_toast));
return;
}
String format = DateFormat.getDateTimeInstance().format(new Date(pendingSystemUpdate.getReceivedTime()));
int securityPatchState = pendingSystemUpdate.getSecurityPatchState();
if (securityPatchState == 1) {
string = getString(R.string.update_info_security_false);
} else if (securityPatchState == 2) {
string = getString(R.string.update_info_security_true);
} else {
string = getString(R.string.update_info_security_unknown);
}
new AlertDialog.Builder(getActivity()).setTitle(R.string.update_info_title).setMessage(getString(R.string.update_info_received, new Object[]{format, string})).setPositiveButton(android.R.string.ok, (DialogInterface.OnClickListener) null).show();
}
private boolean isManagedProfileOwner() {
return Util.isManagedProfileOwner(getActivity());
}
private void lockNow() {
if (Util.SDK_INT >= 26 && isManagedProfileOwner()) {
showLockNowPrompt();
return;
}
DevicePolicyManagerGateway devicePolicyManagerGateway = this.mDevicePolicyManagerGateway;
if (Util.SDK_INT >= 24 && isManagedProfileOwner()) {
devicePolicyManagerGateway = DevicePolicyManagerGatewayImpl.forParentProfile(getActivity());
}
devicePolicyManagerGateway.lockNow(new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m219xa210109((Void) obj);
}
}, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m220x4dac1eca((Exception) obj);
}
});
}
public void m219xa210109(Void r1) {
onSuccessLog("lockNow");
}
public void m220x4dac1eca(Exception exc) {
onErrorLog("lockNow", exc);
}
private void showLockNowPrompt() {
View inflate = getActivity().getLayoutInflater().inflate(R.layout.lock_now_dialog_prompt, (ViewGroup) null);
final CheckBox checkBox = (CheckBox) inflate.findViewById(R.id.lock_parent_checkbox);
final CheckBox checkBox2 = (CheckBox) inflate.findViewById(R.id.evict_ce_key_checkbox);
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public final void onCheckedChanged(CompoundButton compoundButton, boolean z) {
checkBox2.setEnabled(!z);
}
});
checkBox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public final void onCheckedChanged(CompoundButton compoundButton, boolean z) {
checkBox.setEnabled(!z);
}
});
new AlertDialog.Builder(getActivity()).setTitle(R.string.lock_now).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m252x44f67ff9(checkBox2, checkBox, dialogInterface, i);
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
public void m252x44f67ff9(CheckBox checkBox, CheckBox checkBox2, DialogInterface dialogInterface, int i) {
DevicePolicyManagerGateway devicePolicyManagerGateway;
boolean isChecked = checkBox.isChecked();
if (checkBox2.isChecked()) {
devicePolicyManagerGateway = DevicePolicyManagerGatewayImpl.forParentProfile(getActivity());
} else {
devicePolicyManagerGateway = this.mDevicePolicyManagerGateway;
}
devicePolicyManagerGateway.lockNow(isChecked ? 1 : 0, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m250xbde04477((Void) obj);
}
}, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m251x16b6238((Exception) obj);
}
});
}
public void m250xbde04477(Void r1) {
onSuccessLog("lockNow");
}
public void m251x16b6238(Exception exc) {
onErrorLog("lockNow", exc);
}
public boolean onPreferenceChange(Preference preference, Object obj) {
String key = preference.getKey();
key.hashCode();
char c = 65535;
switch (key.hashCode()) {
case -1841325265:
if (key.equals(COMMON_CRITERIA_MODE_KEY)) {
c = 0;
break;
}
break;
case -1829820353:
if (key.equals(SET_REQUIRED_PASSWORD_COMPLEXITY)) {
c = 1;
break;
}
break;
case -1642581132:
if (key.equals(ENABLE_BACKUP_SERVICE)) {
c = 2;
break;
}
break;
case -1344698432:
if (key.equals(SET_AUTO_TIME_KEY)) {
c = 3;
break;
}
break;
case -1311918388:
if (key.equals(INSTALL_NONMARKET_APPS_KEY)) {
c = 4;
break;
}
break;
case -1235509682:
if (key.equals(SUSPEND_PERSONAL_APPS_KEY)) {
c = 5;
break;
}
break;
case -1025322094:
if (key.equals(ENABLE_NETWORK_LOGGING)) {
c = 6;
break;
}
break;
case -844677988:
if (key.equals(ENABLE_SECURITY_LOGGING)) {
c = 7;
break;
}
break;
case -713343563:
if (key.equals(DISABLE_SCREEN_CAPTURE_ON_PARENT_KEY)) {
c = '\b';
break;
}
break;
case -602604049:
if (key.equals(SET_NEW_PASSWORD_WITH_COMPLEXITY)) {
c = '\t';
break;
}
break;
case -214228822:
if (key.equals(DISABLE_SCREEN_CAPTURE_KEY)) {
c = '\n';
break;
}
break;
case -201749186:
if (key.equals(SET_AUTO_TIME_REQUIRED_KEY)) {
c = 11;
break;
}
break;
case -82236213:
if (key.equals(SET_AUTO_TIME_ZONE_KEY)) {
c = '\f';
break;
}
break;
case 151262635:
if (key.equals(SET_DEVICE_ORGANIZATION_NAME_KEY)) {
c = '\r';
break;
}
break;
case 239266573:
if (key.equals(SET_GET_PREFERENTIAL_NETWORK_SERVICE_STATUS)) {
c = 14;
break;
}
break;
case 359790670:
if (key.equals(PROFILE_MAX_TIME_OFF_KEY)) {
c = 15;
break;
}
break;
case 368913684:
if (key.equals(STAY_ON_WHILE_PLUGGED_IN)) {
c = 16;
break;
}
break;
case 392597729:
if (key.equals(AUTO_BRIGHTNESS_KEY)) {
c = 17;
break;
}
break;
case 913138876:
if (key.equals(WIFI_CONFIG_LOCKDOWN_ENABLE_KEY)) {
c = 18;
break;
}
break;
case 1060751932:
if (key.equals(ENABLE_USB_DATA_SIGNALING_KEY)) {
c = 19;
break;
}
break;
case 1065960390:
if (key.equals(ENABLE_LOGOUT_KEY)) {
c = 20;
break;
}
break;
case 1251084380:
if (key.equals(DISABLE_CAMERA_KEY)) {
c = 21;
break;
}
break;
case 1311674122:
if (key.equals(SET_REQUIRED_PASSWORD_COMPLEXITY_ON_PARENT)) {
c = 22;
break;
}
break;
case 1410454924:
if (key.equals(APP_FEEDBACK_NOTIFICATIONS)) {
c = 23;
break;
}
break;
case 1484527312:
if (key.equals(SET_LOCATION_MODE_KEY)) {
c = 24;
break;
}
break;
case 1570877159:
if (key.equals(DISABLE_CAMERA_ON_PARENT_KEY)) {
c = 25;
break;
}
break;
case 1595120176:
if (key.equals(MUTE_AUDIO_KEY)) {
c = 26;
break;
}
break;
case 1733427956:
if (key.equals(SET_LOCATION_ENABLED_KEY)) {
c = 27;
break;
}
break;
case 1990080633:
if (key.equals(OVERRIDE_KEY_SELECTION_KEY)) {
c = 28;
break;
}
break;
}
String str = DONT_STAY_ON;
switch (c) {
case 0:
setCommonCriteriaModeEnabled(((Boolean) obj).booleanValue());
reloadCommonCriteriaModeUi();
return true;
case 1:
setRequiredPasswordComplexity(Integer.parseInt((String) obj));
return true;
case 2:
setBackupServiceEnabled(((Boolean) obj).booleanValue());
reloadEnableBackupServiceUi();
return true;
case 3:
setAutoTimeEnabled(obj.equals(true));
reloadSetAutoTimeUi();
return true;
case 4:
this.mDevicePolicyManager.setSecureSetting(this.mAdminComponentName, "install_non_market_apps", obj.equals(true) ? "1" : DONT_STAY_ON);
updateInstallNonMarketAppsPreference();
return true;
case 5:
this.mDevicePolicyManager.setPersonalAppsSuspended(this.mAdminComponentName, ((Boolean) obj).booleanValue());
reloadPersonalAppsSuspendedUi();
return true;
case 6:
this.mDevicePolicyManagerGateway.setNetworkLogging(((Boolean) obj).booleanValue());
reloadEnableNetworkLoggingUi();
return true;
case 7:
setSecurityLoggingEnabled(((Boolean) obj).booleanValue());
reloadEnableSecurityLoggingUi();
return true;
case '\b':
setScreenCaptureDisabledOnParent(((Boolean) obj).booleanValue());
reloadScreenCaptureDisableOnParentUi();
return true;
case '\t':
Intent intent = new Intent("android.app.action.SET_NEW_PASSWORD");
intent.putExtra("android.app.extra.PASSWORD_COMPLEXITY", Integer.parseInt((String) obj));
startActivity(intent);
return true;
case '\n':
setScreenCaptureDisabled(((Boolean) obj).booleanValue());
reloadScreenCaptureDisableUi();
return true;
case 11:
this.mDevicePolicyManager.setAutoTimeRequired(this.mAdminComponentName, obj.equals(true));
reloadSetAutoTimeRequiredUi();
return true;
case '\f':
setAutoTimeZoneEnabled(obj.equals(true));
reloadSetAutoTimeZoneUi();
return true;
case '\r':
String str2 = (String) obj;
this.mDevicePolicyManagerGateway.setOrganizationName(str2, new Consumer() {
@Override
public final void accept(Object obj2) {
PolicyManagementFragment.this.m227xe805376a((Void) obj2);
}
}, new Consumer() {
@Override
public final void accept(Object obj2) {
PolicyManagementFragment.this.m228x2b90552b((Exception) obj2);
}
});
this.mSetDeviceOrganizationNamePreference.setSummary(str2);
return true;
case 14:
this.mDevicePolicyManagerGateway.setPreferentialNetworkServiceEnabled(((Boolean) obj).booleanValue(), new Consumer() {
@Override
public final void accept(Object obj2) {
PolicyManagementFragment.this.m225x60eefbe8((Void) obj2);
}
}, new Consumer() {
@Override
public final void accept(Object obj2) {
PolicyManagementFragment.this.m226xa47a19a9((Exception) obj2);
}
});
return true;
case 15:
this.mDevicePolicyManager.setManagedProfileMaximumTimeOff(this.mAdminComponentName, TimeUnit.SECONDS.toMillis(Long.parseLong((String) obj)));
maybeUpdateProfileMaxTimeOff();
return true;
case 16:
DevicePolicyManager devicePolicyManager = this.mDevicePolicyManager;
ComponentName componentName = this.mAdminComponentName;
if (obj.equals(true)) {
str = BATTERY_PLUGGED_ANY;
}
devicePolicyManager.setGlobalSetting(componentName, STAY_ON_WHILE_PLUGGED_IN, str);
updateStayOnWhilePluggedInPreference();
return true;
case 17:
this.mDevicePolicyManager.setSystemSetting(this.mAdminComponentName, "screen_brightness_mode", obj.equals(true) ? "1" : DONT_STAY_ON);
reloadAutoBrightnessUi();
return true;
case 18:
this.mDevicePolicyManager.setConfiguredNetworksLockdownState(this.mAdminComponentName, obj.equals(true));
reloadLockdownAdminConfiguredNetworksUi();
return true;
case 19:
setUsbDataSignalingEnabled(((Boolean) obj).booleanValue());
reloadEnableUsbDataSignalingUi();
return true;
case 20:
this.mDevicePolicyManager.setLogoutEnabled(this.mAdminComponentName, ((Boolean) obj).booleanValue());
reloadEnableLogoutUi();
return true;
case 21:
setCameraDisabled(((Boolean) obj).booleanValue());
reloadCameraDisableUi();
return true;
case 22:
setRequiredPasswordComplexityOnParent(Integer.parseInt((String) obj));
return true;
case 23:
SharedPreferences.Editor edit = PreferenceManager.getDefaultSharedPreferences(getContext()).edit();
edit.putBoolean(getString(R.string.app_feedback_notifications), obj.equals(true));
edit.commit();
return true;
case 24:
this.mDevicePolicyManager.setSecureSetting(this.mAdminComponentName, "location_mode", String.format("%d", Integer.valueOf(obj.equals(true) ? 3 : 0)));
reloadLocationEnabledUi();
reloadLocationModeUi();
return true;
case 25:
setCameraDisabledOnParent(((Boolean) obj).booleanValue());
reloadCameraDisableOnParentUi();
return true;
case 26:
this.mDevicePolicyManager.setMasterVolumeMuted(this.mAdminComponentName, ((Boolean) obj).booleanValue());
reloadMuteAudioUi();
return true;
case 27:
this.mDevicePolicyManager.setLocationEnabled(this.mAdminComponentName, obj.equals(true));
reloadLocationEnabledUi();
reloadLocationModeUi();
return true;
case 28:
preference.setSummary((String) obj);
return true;
default:
return false;
}
}
public void m225x60eefbe8(Void r3) {
onSuccessShowToastWithHardcodedMessage("setPreferentialNetworkServiceEnabled(%b)", Boolean.valueOf(this.mDevicePolicyManagerGateway.isPreferentialNetworkServiceEnabled()));
}
public void m226xa47a19a9(Exception exc) {
onErrorLog("setPreferentialNetworkServiceEnabled", exc);
}
public void m227xe805376a(Void r1) {
onSuccessLog("setOrganizationName");
}
public void m228x2b90552b(Exception exc) {
onErrorLog("setOrganizationName", exc);
}
private void setCameraDisabled(boolean z) {
this.mDevicePolicyManager.setCameraDisabled(this.mAdminComponentName, z);
}
private void setCameraDisabledOnParent(boolean z) {
this.mDevicePolicyManager.getParentProfileInstance(this.mAdminComponentName).setCameraDisabled(this.mAdminComponentName, z);
}
private void setSecurityLoggingEnabled(boolean z) {
this.mDevicePolicyManager.setSecurityLoggingEnabled(this.mAdminComponentName, z);
}
private void setBackupServiceEnabled(boolean z) {
this.mDevicePolicyManager.setBackupServiceEnabled(this.mAdminComponentName, z);
}
private void setCommonCriteriaModeEnabled(boolean z) {
this.mDevicePolicyManager.setCommonCriteriaModeEnabled(this.mAdminComponentName, z);
}
private void setUsbDataSignalingEnabled(boolean z) {
this.mDevicePolicyManagerGateway.setUsbDataSignalingEnabled(z);
}
private void setKeyGuardDisabled(final boolean z) {
this.mDevicePolicyManagerGateway.setKeyguardDisabled(z, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m237x1d26b70c(z, (Void) obj);
}
}, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m238x60b1d4cd(z, (Exception) obj);
}
});
if (this.mDevicePolicyManager.setKeyguardDisabled(this.mAdminComponentName, z)) {
return;
}
if (z) {
showToast(R.string.unable_disable_keyguard, new Object[0]);
} else {
showToast(R.string.unable_enable_keyguard, new Object[0]);
}
}
public void m237x1d26b70c(boolean z, Void r3) {
onSuccessLog("setKeyGuardDisabled(%b)", Boolean.valueOf(z));
}
public void m238x60b1d4cd(boolean z, Exception exc) {
showToast(z ? R.string.unable_disable_keyguard : R.string.unable_enable_keyguard, new Object[0]);
}
private void setScreenCaptureDisabled(boolean z) {
this.mDevicePolicyManager.setScreenCaptureDisabled(this.mAdminComponentName, z);
}
private void setScreenCaptureDisabledOnParent(boolean z) {
this.mDevicePolicyManager.getParentProfileInstance(this.mAdminComponentName).setScreenCaptureDisabled(this.mAdminComponentName, z);
}
private boolean isDeviceOwner() {
return this.mDevicePolicyManager.isDeviceOwnerApp(this.mPackageName);
}
private boolean isNetworkLoggingEnabled() {
if (Util.SDK_INT < 31) {
if (!isDeviceOwner() && !hasNetworkLoggingDelegation()) {
return false;
}
} else if (!isDeviceOwner() && !isManagedProfileOwner() && !hasNetworkLoggingDelegation()) {
return false;
}
return this.mDevicePolicyManager.isNetworkLoggingEnabled(this.mAdminComponentName);
}
private boolean hasNetworkLoggingDelegation() {
return Util.hasDelegation(getActivity(), "delegation-network-logging");
}
private boolean isSecurityLoggingEnabled() {
return this.mDevicePolicyManager.isSecurityLoggingEnabled(this.mAdminComponentName);
}
private void requestBugReport() {
this.mDevicePolicyManagerGateway.requestBugreport(new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m235xf9863fff((Void) obj);
}
}, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m236xc77ace95((Exception) obj);
}
});
}
public void m235xf9863fff(Void r1) {
onSuccessLog("requestBugreport");
}
public void m236xc77ace95(Exception exc) {
onErrorOrFailureShowToast("requestBugreport", exc, R.string.bugreport_failure_throttled, R.string.bugreport_failure_exception);
}
private void setStatusBarDisabled(boolean z) {
if (this.mDevicePolicyManager.setStatusBarDisabled(this.mAdminComponentName, z) || !z) {
return;
}
showToast("Unable to disable status bar when lock password is set.");
}
public boolean installKeyPair(PrivateKey privateKey, Certificate certificate, String str, boolean z) {
try {
if (Util.SDK_INT >= 28) {
return this.mDevicePolicyManager.installKeyPair(this.mAdminComponentName, privateKey, new Certificate[]{certificate}, str, z ? 2 : 0);
}
if (!z) {
throw new IllegalArgumentException("Cannot set key as non-user-selectable prior to P");
}
return this.mDevicePolicyManager.installKeyPair(this.mAdminComponentName, privateKey, certificate, str);
} catch (SecurityException e) {
Log.w("PolicyManagement", "Not allowed to install keys", e);
return false;
}
}
public void generateKeyPair(KeyGenerationParameters keyGenerationParameters) {
new GenerateKeyAndCertificateTask(keyGenerationParameters, getActivity(), this.mAdminComponentName).execute(new Void[0]);
}
private void dispatchCaptureIntent(String str, int i, Uri uri) {
Intent intent = new Intent(str);
if (intent.resolveActivity(this.mPackageManager) != null) {
intent.putExtra("output", uri);
startActivityForResult(intent, i);
} else {
showToast(R.string.camera_app_not_found, new Object[0]);
}
}
private Uri getStorageUri(String str) {
File file = new File(getActivity().getFilesDir() + File.separator + "media" + File.separator + str);
file.getParentFile().mkdirs();
return FileProvider.getUriForFile(getActivity(), "com.user.a4keygen.fileprovider", file);
}
private void showManageLockTaskListPrompt(int i, final ManageLockTaskListCallback manageLockTaskListCallback) {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
List<ResolveInfo> queryIntentActivities = this.mPackageManager.queryIntentActivities(Util.getLauncherIntent(getActivity()), 0);
Intent intent = new Intent("android.intent.action.MAIN");
intent.addCategory("android.intent.category.HOME");
queryIntentActivities.add(this.mPackageManager.resolveActivity(intent, 0));
if (queryIntentActivities.isEmpty()) {
showToast(R.string.no_primary_app_available, new Object[0]);
return;
}
Collections.sort(queryIntentActivities, new ResolveInfo.DisplayNameComparator(this.mPackageManager));
final LockTaskAppInfoArrayAdapter lockTaskAppInfoArrayAdapter = new LockTaskAppInfoArrayAdapter(getActivity(), R.id.pkg_name, queryIntentActivities);
ListView listView = new ListView(getActivity());
listView.setAdapter((ListAdapter) lockTaskAppInfoArrayAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i2, long j) {
lockTaskAppInfoArrayAdapter.onItemClick(adapterView, view, i2, j);
}
});
new AlertDialog.Builder(getActivity()).setTitle(getString(i)).setView(listView).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i2) {
manageLockTaskListCallback.onPositiveButtonClicked(lockTaskAppInfoArrayAdapter.getLockTaskList());
}
}).setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i2) {
dialogInterface.dismiss();
}
}).show();
}
private void showCheckLockTaskPermittedPrompt() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = getActivity().getLayoutInflater().inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.input);
editText.setHint(getString(R.string.input_package_name_hints));
new AlertDialog.Builder(getActivity()).setTitle(getString(R.string.check_lock_task_permitted)).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.showToast(PolicyManagementFragment.this.mDevicePolicyManagerGateway.isLockTaskPermitted(editText.getText().toString()) ? R.string.check_lock_task_permitted_result_permitted : R.string.check_lock_task_permitted_result_not_permitted, new Object[0]);
dialogInterface.dismiss();
}
}).setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
}).show();
}
private void showResetPasswordPrompt() {
View inflate = getActivity().getLayoutInflater().inflate(R.layout.reset_password_dialog, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.password);
final CheckBox checkBox = (CheckBox) inflate.findViewById(R.id.require_password_entry_checkbox);
final CheckBox checkBox2 = (CheckBox) inflate.findViewById(R.id.dont_require_password_on_boot_checkbox);
new AlertDialog.Builder(getActivity()).setTitle(R.string.reset_password).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
boolean z;
String obj = editText.getText().toString();
if (TextUtils.isEmpty(obj)) {
obj = null;
}
try {
z = PolicyManagementFragment.this.mDevicePolicyManager.resetPassword(obj, (checkBox.isChecked() ? 1 : 0) | 0 | (checkBox2.isChecked() ? 2 : 0));
} catch (IllegalArgumentException | IllegalStateException | SecurityException e) {
Log.w("PolicyManagement", "Failed to reset password", e);
z = false;
}
PolicyManagementFragment.this.showToast(z ? R.string.password_reset_success : R.string.password_reset_failed, new Object[0]);
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
private void showWipeDataPrompt() {
View inflate = getActivity().getLayoutInflater().inflate(R.layout.wipe_data_dialog_prompt, (ViewGroup) null);
new AlertDialog.Builder(getActivity()).setTitle(R.string.wipe_data_title).setView(inflate).setPositiveButton(android.R.string.ok, new AnonymousClass9((CheckBox) inflate.findViewById(R.id.external_storage_checkbox), (CheckBox) inflate.findViewById(R.id.reset_protection_checkbox))).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
class AnonymousClass9 implements DialogInterface.OnClickListener {
final CheckBox val$externalStorageCheckBox;
final CheckBox val$resetProtectionCheckBox;
AnonymousClass9(CheckBox checkBox, CheckBox checkBox2) {
this.val$externalStorageCheckBox = checkBox;
this.val$resetProtectionCheckBox = checkBox2;
}
@Override
public void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.mDevicePolicyManagerGateway.wipeData((this.val$externalStorageCheckBox.isChecked() ? 1 : 0) | 0 | (this.val$resetProtectionCheckBox.isChecked() ? 2 : 0), new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.AnonymousClass9.this.m278x4e326516((Void) obj);
}
}, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.AnonymousClass9.this.m279xdb6d1697((Exception) obj);
}
});
}
public void m278x4e326516(Void r2) {
PolicyManagementFragment.this.onSuccessLog("wipeData");
}
public void m279xdb6d1697(Exception exc) {
PolicyManagementFragment.this.onErrorLog("wipeData", exc);
}
}
private void showRemoveDeviceOwnerPrompt() {
new AlertDialog.Builder(getActivity()).setTitle(R.string.remove_device_owner_title).setMessage(R.string.remove_device_owner_confirmation).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m255x810f35ab(dialogInterface, i);
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
public void m255x810f35ab(DialogInterface dialogInterface, int i) {
this.mDevicePolicyManagerGateway.clearDeviceOwnerApp(new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m253xf9f8fa29((Void) obj);
}
}, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m254x3d8417ea((Exception) obj);
}
});
}
public void m253xf9f8fa29(Void r2) {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
showToast(R.string.device_owner_removed, new Object[0]);
getActivity().finish();
}
public void m254x3d8417ea(Exception exc) {
onErrorLog("clearDeviceOwnerApp", exc);
}
private void showWifiMacAddress() {
String wifiMacAddress = this.mDevicePolicyManager.getWifiMacAddress(this.mAdminComponentName);
if (wifiMacAddress == null) {
wifiMacAddress = getString(R.string.show_wifi_mac_address_not_available_msg);
}
new AlertDialog.Builder(getActivity()).setTitle(R.string.show_wifi_mac_address_title).setMessage(wifiMacAddress).setPositiveButton(android.R.string.ok, (DialogInterface.OnClickListener) null).show();
}
private void setPreferenceChangeListeners(String[] strArr) {
for (String str : strArr) {
findPreference(str).setOnPreferenceChangeListener(this);
}
}
private void updateStayOnWhilePluggedInPreference() {
if (this.mStayOnWhilePluggedInSwitchPreference.isEnabled()) {
boolean z = (Settings.Global.getInt(getActivity().getContentResolver(), STAY_ON_WHILE_PLUGGED_IN, 0) & 7) != 0;
this.mDevicePolicyManager.setGlobalSetting(this.mAdminComponentName, STAY_ON_WHILE_PLUGGED_IN, z ? BATTERY_PLUGGED_ANY : DONT_STAY_ON);
this.mStayOnWhilePluggedInSwitchPreference.setChecked(z);
}
}
public void updateInstallNonMarketAppsPreference() {
this.mInstallNonMarketAppsPreference.setChecked(Settings.Secure.getInt(getActivity().getContentResolver(), "install_non_market_apps", 0) != 0);
}
private void showSetPermissionPolicyDialog() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = getActivity().getLayoutInflater().inflate(R.layout.set_permission_policy, (ViewGroup) null);
final RadioGroup radioGroup = (RadioGroup) inflate.findViewById(R.id.set_permission_group);
int permissionPolicy = this.mDevicePolicyManager.getPermissionPolicy(this.mAdminComponentName);
if (permissionPolicy == 0) {
((RadioButton) radioGroup.findViewById(R.id.prompt)).toggle();
} else if (permissionPolicy == 1) {
((RadioButton) radioGroup.findViewById(R.id.accept)).toggle();
} else if (permissionPolicy == 2) {
((RadioButton) radioGroup.findViewById(R.id.deny)).toggle();
}
new AlertDialog.Builder(getActivity()).setTitle(getString(R.string.set_default_permission_policy)).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
int checkedRadioButtonId = radioGroup.getCheckedRadioButtonId();
int i2 = 0;
if (checkedRadioButtonId == 2131361817) {
i2 = 1;
} else if (checkedRadioButtonId == 2131362102) {
i2 = 2;
}
PolicyManagementFragment.this.mDevicePolicyManager.setPermissionPolicy(PolicyManagementFragment.this.mAdminComponentName, i2);
dialogInterface.dismiss();
}
}).show();
}
private void showSetDisableAccountManagementPrompt() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = LayoutInflater.from(getActivity()).inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.input);
editText.setHint(R.string.account_type_hint);
new AlertDialog.Builder(getActivity()).setTitle(R.string.set_disable_account_management).setView(inflate).setPositiveButton(R.string.disable, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.setDisableAccountManagement(editText.getText().toString(), true);
}
}).setNeutralButton(R.string.enable, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.setDisableAccountManagement(editText.getText().toString(), false);
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
public void setDisableAccountManagement(String str, boolean z) {
if (!TextUtils.isEmpty(str)) {
this.mDevicePolicyManager.setAccountManagementDisabled(this.mAdminComponentName, str, z);
showToast(z ? R.string.account_management_disabled : R.string.account_management_enabled, str);
} else {
showToast(R.string.fail_to_set_account_management, new Object[0]);
}
}
private void showDisableAccountTypeList() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
String[] accountTypesWithManagementDisabled = this.mDevicePolicyManager.getAccountTypesWithManagementDisabled();
Arrays.sort(accountTypesWithManagementDisabled, String.CASE_INSENSITIVE_ORDER);
if (accountTypesWithManagementDisabled == null || accountTypesWithManagementDisabled.length == 0) {
showToast(R.string.no_disabled_account, new Object[0]);
} else {
new AlertDialog.Builder(getActivity()).setTitle(R.string.list_of_disabled_account_types).setAdapter(new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, accountTypesWithManagementDisabled), null).setPositiveButton(android.R.string.ok, (DialogInterface.OnClickListener) null).show();
}
}
private void showCreateAndManageUserPrompt() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = getActivity().getLayoutInflater().inflate(R.layout.create_and_manage_user_dialog_prompt, (ViewGroup) null);
EditText editText = (EditText) inflate.findViewById(R.id.user_name);
editText.setHint(R.string.enter_username_hint);
CheckBox checkBox = (CheckBox) inflate.findViewById(R.id.skip_setup_wizard_checkbox);
CheckBox checkBox2 = (CheckBox) inflate.findViewById(R.id.make_user_ephemeral_checkbox);
CheckBox checkBox3 = (CheckBox) inflate.findViewById(R.id.leave_all_system_apps_enabled_checkbox);
if (Util.SDK_INT < 28) {
checkBox2.setEnabled(false);
checkBox3.setEnabled(false);
}
new AlertDialog.Builder(getActivity()).setTitle(R.string.create_and_manage_user).setView(inflate).setPositiveButton(android.R.string.ok, new AnonymousClass13(editText, checkBox, checkBox2, checkBox3)).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
class AnonymousClass13 implements DialogInterface.OnClickListener {
final CheckBox val$leaveAllSystemAppsEnabled;
final CheckBox val$makeUserEphemeralCheckBox;
final CheckBox val$skipSetupWizardCheckBox;
final EditText val$userNameEditText;
AnonymousClass13(EditText editText, CheckBox checkBox, CheckBox checkBox2, CheckBox checkBox3) {
this.val$userNameEditText = editText;
this.val$skipSetupWizardCheckBox = checkBox;
this.val$makeUserEphemeralCheckBox = checkBox2;
this.val$leaveAllSystemAppsEnabled = checkBox3;
}
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String obj = this.val$userNameEditText.getText().toString();
if (TextUtils.isEmpty(obj)) {
return;
}
boolean isChecked = this.val$skipSetupWizardCheckBox.isChecked();
boolean z = isChecked;
if (this.val$makeUserEphemeralCheckBox.isChecked()) {
z = (isChecked ? 1 : 0) | 2;
}
int i2 = z;
if (this.val$leaveAllSystemAppsEnabled.isChecked()) {
i2 = (z ? 1 : 0) | 16;
}
PolicyManagementFragment.this.mDevicePolicyManagerGateway.createAndManageUser(obj, i2, new Consumer() {
@Override
public final void accept(Object obj2) {
PolicyManagementFragment.AnonymousClass13.this.m273x781a3ce5((UserHandle) obj2);
}
}, new Consumer() {
@Override
public final void accept(Object obj2) {
PolicyManagementFragment.AnonymousClass13.this.m274x9235bb84((Exception) obj2);
}
});
}
public void m273x781a3ce5(UserHandle userHandle) {
PolicyManagementFragment policyManagementFragment = PolicyManagementFragment.this;
policyManagementFragment.showToast(R.string.user_created, Long.valueOf(policyManagementFragment.mUserManager.getSerialNumberForUser(userHandle)));
}
public void m274x9235bb84(Exception exc) {
PolicyManagementFragment.this.showToast(R.string.failed_to_create_user, new Object[0]);
}
}
private void showRemoveUserPromptLegacy() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = LayoutInflater.from(getActivity()).inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.input);
editText.setHint(R.string.enter_user_id);
editText.setRawInputType(4098);
new AlertDialog.Builder(getActivity()).setTitle(R.string.remove_user).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
try {
long parseLong = Long.parseLong(editText.getText().toString());
PolicyManagementFragment policyManagementFragment = PolicyManagementFragment.this;
policyManagementFragment.m256x60193524(policyManagementFragment.mDevicePolicyManagerGateway.getUserHandle(parseLong));
} catch (NumberFormatException unused) {
}
}
}).show();
}
public void m256x60193524(UserHandle userHandle) {
this.mDevicePolicyManagerGateway.removeUser(userHandle, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m233x7d596a23((Void) obj);
}
}, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m234xc0e487e4((Exception) obj);
}
});
}
public void m233x7d596a23(Void r3) {
onSuccessShowToast("removeUser()", R.string.user_removed, new Object[0]);
}
public void m234xc0e487e4(Exception exc) {
onErrorShowToast("removeUser()", exc, R.string.failed_to_remove_user, new Object[0]);
}
private void showRemoveUserPrompt() {
if (Util.SDK_INT >= 28) {
showChooseUserPrompt(R.string.remove_user, new UserCallback() {
@Override
public final void onUserChosen(UserHandle userHandle) {
PolicyManagementFragment.this.m256x60193524(userHandle);
}
});
} else {
showRemoveUserPromptLegacy();
}
}
private void showSwitchUserPrompt() {
showChooseUserPrompt(R.string.switch_user, new UserCallback() {
@Override
public final void onUserChosen(UserHandle userHandle) {
PolicyManagementFragment.this.m272x759cb9b7(userHandle);
}
});
}
public void m272x759cb9b7(UserHandle userHandle) {
this.mDevicePolicyManagerGateway.switchUser(userHandle, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m270xee867e35((Void) obj);
}
}, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m271x32119bf6((Exception) obj);
}
});
}
public void m270xee867e35(Void r3) {
onSuccessShowToast("switchUser", R.string.user_switched, new Object[0]);
}
public void m271x32119bf6(Exception exc) {
onErrorShowToast("switchUser", exc, R.string.failed_to_switch_user, new Object[0]);
}
private void showStartUserInBackgroundPrompt() {
showChooseUserPrompt(R.string.start_user_in_background, new UserCallback() {
@Override
public final void onUserChosen(UserHandle userHandle) {
PolicyManagementFragment.this.m266xdd5b1ba2(userHandle);
}
});
}
public void m266xdd5b1ba2(UserHandle userHandle) {
this.mDevicePolicyManagerGateway.startUserInBackground(userHandle, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m264x5644e020((Integer) obj);
}
}, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m265x99cffde1((Exception) obj);
}
});
}
public void m264x5644e020(Integer num) {
onSuccessShowToast("startUserInBackground", R.string.user_started_in_background, new Object[0]);
}
public void m265x99cffde1(Exception exc) {
onErrorShowToast("startUserInBackground", exc, R.string.failed_to_start_user_in_background, new Object[0]);
}
private void showStopUserPrompt() {
showChooseUserPrompt(R.string.stop_user, new UserCallback() {
@Override
public final void onUserChosen(UserHandle userHandle) {
PolicyManagementFragment.this.m269xfc310c04(userHandle);
}
});
}
public void m269xfc310c04(UserHandle userHandle) {
this.mDevicePolicyManagerGateway.startUserInBackground(userHandle, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m267x751ad082((Integer) obj);
}
}, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m268xb8a5ee43((Exception) obj);
}
});
}
public void m267x751ad082(Integer num) {
onSuccessShowToast("stopUser", R.string.user_stopped, new Object[0]);
}
public void m268xb8a5ee43(Exception exc) {
onErrorShowToast("stopUser", exc, R.string.failed_to_stop_user, new Object[0]);
}
private void showChooseUserPrompt(int i, final UserCallback userCallback) {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
final List<UserHandle> secondaryUsers = this.mDevicePolicyManager.getSecondaryUsers(this.mAdminComponentName);
if (secondaryUsers.isEmpty()) {
showToast(R.string.no_secondary_users_available, new Object[0]);
} else {
new AlertDialog.Builder(getActivity()).setTitle(i).setAdapter(new UserArrayAdapter(getActivity(), R.id.user_name, secondaryUsers), new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i2) {
PolicyManagementFragment.UserCallback.this.onUserChosen((UserHandle) secondaryUsers.get(i2));
}
}).show();
}
}
private void logoutUser() {
showToast(this.mDevicePolicyManager.logoutUser(this.mAdminComponentName) == 0 ? R.string.user_logouted : R.string.failed_to_logout_user, new Object[0]);
}
private void showBlockUninstallationByPackageNamePrompt() {
Activity activity = getActivity();
if (activity == null || activity.isFinishing()) {
return;
}
View inflate = LayoutInflater.from(activity).inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.input);
editText.setHint(getString(R.string.input_package_name_hints));
new AlertDialog.Builder(activity).setTitle(R.string.block_uninstallation_title).setView(inflate).setPositiveButton(R.string.block, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String obj = editText.getText().toString();
if (!TextUtils.isEmpty(obj)) {
PolicyManagementFragment.this.mDevicePolicyManager.setUninstallBlocked(PolicyManagementFragment.this.mAdminComponentName, obj, true);
PolicyManagementFragment.this.showToast(R.string.uninstallation_blocked, obj);
} else {
PolicyManagementFragment.this.showToast(R.string.block_uninstallation_failed_invalid_pkgname, new Object[0]);
}
}
}).setNeutralButton(R.string.unblock, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String obj = editText.getText().toString();
if (!TextUtils.isEmpty(obj)) {
PolicyManagementFragment.this.mDevicePolicyManager.setUninstallBlocked(PolicyManagementFragment.this.mAdminComponentName, obj, false);
PolicyManagementFragment.this.showToast(R.string.uninstallation_allowed, obj);
} else {
PolicyManagementFragment.this.showToast(R.string.block_uninstallation_failed_invalid_pkgname, new Object[0]);
}
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
private void loadAppFeedbackNotifications() {
if (Util.SDK_INT < 24) {
return;
}
this.mEnableAppFeedbackNotificationsPreference.setChecked(PreferenceManager.getDefaultSharedPreferences(getContext()).getBoolean(getString(R.string.app_feedback_notifications), false));
}
private void loadAppStatus() {
int i;
boolean z = Util.SDK_INT >= 30 && this.mDevicePolicyManagerGateway.isOrganizationOwnedDeviceWithManagedProfile();
if (this.mDevicePolicyManager.isProfileOwnerApp(this.mPackageName)) {
i = z ? R.string.this_is_an_org_owned_profile_owner : R.string.this_is_a_profile_owner;
} else if (this.mDevicePolicyManager.isDeviceOwnerApp(this.mPackageName)) {
i = R.string.this_is_a_device_owner;
} else {
i = isDelegatedApp() ? R.string.this_is_a_delegated_app : R.string.this_is_not_an_admin;
}
findPreference(APP_STATUS_KEY).setSummary(i);
}
private void loadSecurityPatch() {
Preference findPreference = findPreference(SECURITY_PATCH_KEY);
if (findPreference.isEnabled()) {
String str = Build.VERSION.SECURITY_PATCH;
try {
findPreference.setSummary(DateFormat.getDateInstance(2).format(new SimpleDateFormat("yyyy-MM-dd").parse(str)));
} catch (ParseException unused) {
findPreference.setSummary(getString(R.string.invalid_security_patch, new Object[]{str}));
}
}
}
private void loadEnrollmentSpecificId() {
Preference findPreference = findPreference(ENROLLMENT_SPECIFIC_ID_KEY);
if (findPreference.isEnabled()) {
findPreference.setSummary(this.mDevicePolicyManager.getEnrollmentSpecificId());
}
}
private void loadSeparateChallenge() {
Preference findPreference = findPreference(SEPARATE_CHALLENGE_KEY);
if (findPreference.isEnabled()) {
findPreference.setSummary(String.format(getString(R.string.separate_challenge_summary), Boolean.toString(Boolean.valueOf(!this.mDevicePolicyManager.isUsingUnifiedPassword(this.mAdminComponentName)).booleanValue())));
}
}
private void loadPasswordComplexity() {
String string;
Preference findPreference = findPreference(PASSWORD_COMPLEXITY_KEY);
if (findPreference.isEnabled()) {
SparseIntArray sparseIntArray = PASSWORD_COMPLEXITY;
int i = sparseIntArray.get(this.mDevicePolicyManager.getPasswordComplexity());
if (isManagedProfileOwner() && Util.SDK_INT >= 30) {
string = String.format(getString(R.string.password_complexity_profile_summary), getString(sparseIntArray.get(this.mDevicePolicyManager.getParentProfileInstance(this.mAdminComponentName).getPasswordComplexity())), getString(i));
} else {
string = getString(i);
}
findPreference.setSummary(string);
}
}
private int getRequiredComplexity(DevicePolicyManager devicePolicyManager) {
return devicePolicyManager.getRequiredPasswordComplexity();
}
private void loadRequiredPasswordComplexity() {
String string;
Preference findPreference = findPreference(REQUIRED_PASSWORD_COMPLEXITY_KEY);
if (findPreference.isEnabled()) {
SparseIntArray sparseIntArray = PASSWORD_COMPLEXITY;
int i = sparseIntArray.get(getRequiredComplexity(this.mDevicePolicyManager));
if (isManagedProfileOwner() && Util.SDK_INT >= 31) {
string = String.format(getString(R.string.password_complexity_profile_summary), getString(sparseIntArray.get(getRequiredComplexity(this.mDevicePolicyManager.getParentProfileInstance(this.mAdminComponentName)))), getString(i));
} else {
string = getString(i);
}
findPreference.setSummary(string);
}
}
private void setRequiredPasswordComplexity(int i) {
setRequiredPasswordComplexity(this.mDevicePolicyManager, i);
}
private void setRequiredPasswordComplexityOnParent(int i) {
setRequiredPasswordComplexity(this.mDevicePolicyManager.getParentProfileInstance(this.mAdminComponentName), i);
}
private void setRequiredPasswordComplexity(DevicePolicyManager devicePolicyManager, int i) {
devicePolicyManager.setRequiredPasswordComplexity(i);
loadPasswordCompliant();
loadPasswordComplexity();
loadRequiredPasswordComplexity();
}
private void loadPasswordCompliant() {
String format;
Preference findPreference = findPreference(PASSWORD_COMPLIANT_KEY);
if (findPreference.isEnabled()) {
boolean isActivePasswordSufficient = this.mDevicePolicyManager.isActivePasswordSufficient();
if (isManagedProfileOwner()) {
DevicePolicyManager parentProfileInstance = this.mDevicePolicyManager.getParentProfileInstance(this.mAdminComponentName);
format = String.format(getString(R.string.password_compliant_profile_summary), Boolean.toString(parentProfileInstance.isActivePasswordSufficient()), Util.SDK_INT < 31 ? "N/A" : Boolean.toString(parentProfileInstance.isActivePasswordSufficientForDeviceRequirement()), Boolean.toString(isActivePasswordSufficient));
} else {
format = String.format(getString(R.string.password_compliant_summary), Boolean.toString(isActivePasswordSufficient));
}
findPreference.setSummary(format);
}
}
private void reloadEnableLogoutUi() {
if (this.mEnableLogoutPreference.isEnabled()) {
this.mEnableLogoutPreference.setChecked(this.mDevicePolicyManager.isLogoutEnabled());
}
}
private void reloadAutoBrightnessUi() {
if (this.mAutoBrightnessPreference.isEnabled()) {
this.mAutoBrightnessPreference.setChecked(parseInt(Settings.System.getString(getActivity().getContentResolver(), "screen_brightness_mode"), 0) == 1);
}
}
private void reloadLocationModeUi() {
this.mSetLocationModePreference.setChecked(parseInt(Settings.System.getString(getActivity().getContentResolver(), "location_mode"), 0) != 0);
}
private void reloadLocationEnabledUi() {
this.mSetLocationEnabledPreference.setChecked(((LocationManager) getActivity().getSystemService(LocationManager.class)).isLocationEnabled());
}
private void reloadLockdownAdminConfiguredNetworksUi() {
this.mLockdownAdminConfiguredNetworksPreference.setChecked(this.mDevicePolicyManager.hasLockdownAdminConfiguredNetworks(this.mAdminComponentName));
}
private static int parseInt(String str, int i) {
try {
return Integer.parseInt(str);
} catch (NumberFormatException unused) {
return i;
}
}
private void reloadAffiliatedApis() {
if (this.mAffiliatedUserPreference.isEnabled()) {
this.mAffiliatedUserPreference.setSummary(this.mDevicePolicyManager.isAffiliatedUser() ? R.string.yes : R.string.no);
}
this.mInstallExistingPackagePreference.refreshEnabledState();
this.mManageLockTaskListPreference.refreshEnabledState();
this.mSetLockTaskFeaturesPreference.refreshEnabledState();
this.mLogoutUserPreference.refreshEnabledState();
this.mDisableStatusBarPreference.refreshEnabledState();
this.mReenableStatusBarPreference.refreshEnabledState();
this.mDisableKeyguardPreference.refreshEnabledState();
this.mReenableKeyguardPreference.refreshEnabledState();
}
private void loadIsEphemeralUserUi() {
if (this.mEphemeralUserPreference.isEnabled()) {
this.mEphemeralUserPreference.setSummary(this.mDevicePolicyManager.isEphemeralUser(this.mAdminComponentName) ? R.string.yes : R.string.no);
}
}
private void reloadCameraDisableUi() {
this.mDisableCameraSwitchPreference.setChecked(this.mDevicePolicyManager.getCameraDisabled(this.mAdminComponentName));
}
private void reloadCameraDisableOnParentUi() {
this.mDisableCameraOnParentSwitchPreference.setChecked(this.mDevicePolicyManager.getParentProfileInstance(this.mAdminComponentName).getCameraDisabled(this.mAdminComponentName));
}
private void reloadEnableNetworkLoggingUi() {
if (this.mEnableNetworkLoggingPreference.isEnabled()) {
this.mEnableNetworkLoggingPreference.setChecked(isNetworkLoggingEnabled());
this.mRequestNetworkLogsPreference.refreshEnabledState();
}
}
private void reloadEnableSecurityLoggingUi() {
if (this.mEnableSecurityLoggingPreference.isEnabled()) {
this.mEnableSecurityLoggingPreference.setChecked(this.mDevicePolicyManager.isSecurityLoggingEnabled(this.mAdminComponentName));
this.mRequestSecurityLogsPreference.refreshEnabledState();
this.mRequestPreRebootSecurityLogsPreference.refreshEnabledState();
}
}
private void reloadEnableBackupServiceUi() {
if (this.mEnableBackupServicePreference.isEnabled()) {
this.mEnableBackupServicePreference.setChecked(this.mDevicePolicyManager.isBackupServiceEnabled(this.mAdminComponentName));
}
}
private void reloadCommonCriteriaModeUi() {
if (this.mCommonCriteriaModePreference.isEnabled()) {
this.mCommonCriteriaModePreference.setChecked(this.mDevicePolicyManager.isCommonCriteriaModeEnabled(this.mAdminComponentName));
}
}
private void reloadEnableUsbDataSignalingUi() {
isOrganizationOwnedDevice();
}
private void reloadScreenCaptureDisableUi() {
this.mDisableScreenCaptureSwitchPreference.setChecked(this.mDevicePolicyManager.getScreenCaptureDisabled(this.mAdminComponentName));
}
private void reloadScreenCaptureDisableOnParentUi() {
this.mDisableScreenCaptureOnParentSwitchPreference.setChecked(this.mDevicePolicyManager.getParentProfileInstance(this.mAdminComponentName).getScreenCaptureDisabled(this.mAdminComponentName));
}
private void reloadSetAutoTimeRequiredUi() {
this.mSetAutoTimeRequiredPreference.setChecked(this.mDevicePolicyManager.getAutoTimeRequired());
}
private void reloadSetAutoTimeUi() {
if (Util.SDK_INT >= 30 && isOrganizationOwnedDevice()) {
this.mSetAutoTimePreference.setChecked(this.mDevicePolicyManager.getAutoTimeEnabled(this.mAdminComponentName));
}
}
private void reloadSetAutoTimeZoneUi() {
if (Util.SDK_INT >= 30 && isOrganizationOwnedDevice()) {
this.mSetAutoTimeZonePreference.setChecked(this.mDevicePolicyManager.getAutoTimeZoneEnabled(this.mAdminComponentName));
}
}
private void reloadMuteAudioUi() {
if (this.mMuteAudioSwitchPreference.isEnabled()) {
this.mMuteAudioSwitchPreference.setChecked(this.mDevicePolicyManager.isMasterVolumeMuted(this.mAdminComponentName));
}
}
private void showEnableSystemAppByPackageNamePrompt() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
LinearLayout linearLayout = (LinearLayout) getActivity().getLayoutInflater().inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) linearLayout.findViewById(R.id.input);
editText.setHint(getString(R.string.package_name_hints));
new AlertDialog.Builder(getActivity()).setTitle(getString(R.string.enable_system_apps_title)).setView(linearLayout).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m245xd725040a(editText, dialogInterface, i);
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
public void m245xd725040a(EditText editText, DialogInterface dialogInterface, int i) {
final String obj = editText.getText().toString();
this.mDevicePolicyManagerGateway.enableSystemApp(obj, new Consumer() {
@Override
public final void accept(Object obj2) {
PolicyManagementFragment.this.m243x500ec888(obj, (Void) obj2);
}
}, new Consumer() {
@Override
public final void accept(Object obj2) {
PolicyManagementFragment.this.m244x9399e649(obj, (Exception) obj2);
}
});
}
public void m243x500ec888(String str, Void r3) {
onSuccessShowToast("enableSystemApp", R.string.enable_system_apps_by_package_name_success_msg, str);
}
public void m244x9399e649(String str, Exception exc) {
onErrorShowToast("enableSystemApp", exc, R.string.package_name_error, str);
}
private void showConfigurePolicyAndManageCredentialsPrompt() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
LinearLayout linearLayout = (LinearLayout) getActivity().getLayoutInflater().inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) linearLayout.findViewById(R.id.input);
editText.setSingleLine(false);
editText.setHint("com.android.chrome#client.badssl.com:443#testAlias\ncom.android.chrome#prod.idrix.eu/secure#testAlias\nde.blinkt.openvpn#192.168.0.1#vpnAlias");
editText.setText(PreferenceManager.getDefaultSharedPreferences(getActivity()).getString("appUriPolicy", "com.android.chrome#client.badssl.com:443#testAlias\ncom.android.chrome#prod.idrix.eu/secure#testAlias\nde.blinkt.openvpn#192.168.0.1#vpnAlias"));
new AlertDialog.Builder(getActivity()).setTitle(getString(R.string.request_manage_credentials)).setView(linearLayout).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String obj = editText.getText().toString();
if (TextUtils.isEmpty(obj)) {
obj = "com.android.chrome#client.badssl.com:443#testAlias\ncom.android.chrome#prod.idrix.eu/secure#testAlias\nde.blinkt.openvpn#192.168.0.1#vpnAlias";
}
try {
PolicyManagementFragment.this.requestToManageCredentials(obj);
SharedPreferences.Editor edit = PreferenceManager.getDefaultSharedPreferences(PolicyManagementFragment.this.getActivity()).edit();
edit.putString("appUriPolicy", obj);
edit.commit();
} finally {
dialogInterface.dismiss();
}
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
public void requestToManageCredentials(String str) {
AppUriAuthenticationPolicy.Builder builder = new AppUriAuthenticationPolicy.Builder();
String[] split = str.split("\n");
for (int i = 0; i < split.length; i++) {
String[] split2 = split[i].split("#");
if (split2.length != 3) {
showToast(String.format(getString(R.string.invalid_app_uri_policy), split[i]));
return;
}
builder.addAppAndUriMapping(split2[0], new Uri.Builder().authority(split2[1]).build(), split2[2]);
}
startActivityForResult(KeyChain.createManageCredentialsIntent(builder.build()), REQUEST_MANAGE_CREDENTIALS_REQUEST_CODE);
}
private void importKeyCertificateFromIntent(Intent intent, String str) {
importKeyCertificateFromIntent(intent, str, 0);
}
public void importKeyCertificateFromIntent(Intent intent, String str, int i) {
Uri data;
if (getActivity() == null || getActivity().isFinishing() || intent == null || (data = intent.getData()) == null) {
return;
}
if (str == null) {
str = "";
}
try {
CertificateUtil.PKCS12ParseInfo parsePKCS12Certificate = CertificateUtil.parsePKCS12Certificate(getActivity().getContentResolver(), data, str);
showPromptForKeyCertificateAlias(parsePKCS12Certificate.privateKey, parsePKCS12Certificate.certificate, parsePKCS12Certificate.alias);
} catch (FileNotFoundException e) {
e = e;
Log.e("PolicyManagement", "Unable to load key", e);
} catch (IOException unused) {
showPromptForCertificatePassword(intent, i + 1);
} catch (ClassCastException unused2) {
showToast(R.string.not_a_key_certificate, new Object[0]);
} catch (KeyStoreException e2) {
e = e2;
Log.e("PolicyManagement", "Unable to load key", e);
} catch (NoSuchAlgorithmException e3) {
e = e3;
Log.e("PolicyManagement", "Unable to load key", e);
} catch (UnrecoverableKeyException e4) {
e = e4;
Log.e("PolicyManagement", "Unable to load key", e);
} catch (CertificateException e5) {
e = e5;
Log.e("PolicyManagement", "Unable to load key", e);
}
}
private void showPromptForCertificatePassword(final Intent intent, final int i) {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = getActivity().getLayoutInflater().inflate(R.layout.certificate_password_prompt, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.password_input);
if (i > 1) {
inflate.findViewById(R.id.incorrect_password).setVisibility(0);
}
new AlertDialog.Builder(getActivity()).setTitle(getString(R.string.certificate_password_prompt_title)).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i2) {
PolicyManagementFragment.this.importKeyCertificateFromIntent(intent, editText.getText().toString(), i);
dialogInterface.dismiss();
}
}).setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i2) {
dialogInterface.cancel();
}
}).show();
}
private void showPromptForKeyCertificateAlias(final PrivateKey privateKey, final Certificate certificate, String str) {
if (getActivity() == null || getActivity().isFinishing() || privateKey == null || certificate == null) {
return;
}
View inflate = getActivity().getLayoutInflater().inflate(R.layout.certificate_alias_prompt, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.alias_input);
if (!TextUtils.isEmpty(str)) {
editText.setText(str);
editText.selectAll();
}
final CheckBox checkBox = (CheckBox) inflate.findViewById(R.id.alias_user_selectable);
checkBox.setEnabled(Util.SDK_INT >= 28);
checkBox.setChecked(Util.SDK_INT < 28);
new AlertDialog.Builder(getActivity()).setTitle(getString(R.string.certificate_alias_prompt_title)).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String obj = editText.getText().toString();
if (PolicyManagementFragment.this.installKeyPair(privateKey, certificate, obj, checkBox.isChecked())) {
PolicyManagementFragment.this.showToast(R.string.certificate_added, obj);
} else {
PolicyManagementFragment.this.showToast(R.string.certificate_add_failed, obj);
}
dialogInterface.dismiss();
}
}).setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.cancel();
}
}).show();
}
private void showPromptForGeneratedKeyAlias(String str) {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = getActivity().getLayoutInflater().inflate(R.layout.key_generation_prompt, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.alias_input);
if (!TextUtils.isEmpty(str)) {
editText.setText(str);
editText.selectAll();
}
final CheckBox checkBox = (CheckBox) inflate.findViewById(R.id.alias_user_selectable);
checkBox.setChecked(Util.SDK_INT < 28);
final CheckBox checkBox2 = (CheckBox) inflate.findViewById(R.id.generate_ec_key);
final CheckBox checkBox3 = (CheckBox) inflate.findViewById(R.id.include_key_attestation_challenge);
final CheckBox checkBox4 = (CheckBox) inflate.findViewById(R.id.include_device_brand_attestation);
final CheckBox checkBox5 = (CheckBox) inflate.findViewById(R.id.include_device_serial_in_attestation);
final CheckBox checkBox6 = (CheckBox) inflate.findViewById(R.id.include_device_imei_in_attestation);
final CheckBox checkBox7 = (CheckBox) inflate.findViewById(R.id.include_device_meid_in_attestation);
final CheckBox checkBox8 = (CheckBox) inflate.findViewById(R.id.use_strongbox);
final CheckBox checkBox9 = (CheckBox) inflate.findViewById(R.id.use_individual_attestation);
checkBox9.setEnabled(Util.SDK_INT >= 30);
final EditText editText2 = (EditText) inflate.findViewById(R.id.custom_challenge_input);
new AlertDialog.Builder(getActivity()).setTitle(getString(R.string.certificate_alias_prompt_title)).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
KeyGenerationParameters.Builder builder = new KeyGenerationParameters.Builder();
builder.setAlias(editText.getText().toString());
builder.setIsUserSelectable(checkBox.isChecked());
if (checkBox3.isChecked()) {
builder.setAttestationChallenge(Base64.decode(editText2.getText().toString().trim(), 0));
}
boolean isChecked = checkBox4.isChecked();
int i2 = isChecked;
if (checkBox5.isChecked()) {
i2 = (isChecked ? 1 : 0) | 2;
}
int i3 = i2;
if (checkBox6.isChecked()) {
i3 = (i2 == true ? 1 : 0) | 4;
}
int i4 = i3;
if (checkBox7.isChecked()) {
i4 = (i3 == true ? 1 : 0) | 8;
}
int i5 = i4;
if (checkBox9.isChecked()) {
i5 = (i4 == true ? 1 : 0) | 16;
}
builder.setIdAttestationFlags(i5);
builder.setUseStrongBox(checkBox8.isChecked());
builder.setGenerateEcKey(checkBox2.isChecked());
PolicyManagementFragment.this.generateKeyPair(builder.build());
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
private void choosePrivateKeyForRemoval() {
KeyChain.choosePrivateKeyAlias(getActivity(), new KeyChainAliasCallback() {
@Override
public void alias(String str) {
if (str == null) {
return;
}
final boolean removeKeyPair = PolicyManagementFragment.this.mDevicePolicyManager.removeKeyPair(PolicyManagementFragment.this.mAdminComponentName, str);
PolicyManagementFragment.this.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
if (removeKeyPair) {
PolicyManagementFragment.this.showToast(R.string.remove_keypair_successfully, new Object[0]);
} else {
PolicyManagementFragment.this.showToast(R.string.remove_keypair_fail, new Object[0]);
}
}
});
}
}, null, null, null, null);
}
private void importCaCertificateFromIntent(Intent intent) {
Uri data;
boolean z;
if (getActivity() == null || getActivity().isFinishing() || intent == null || (data = intent.getData()) == null) {
return;
}
try {
z = Util.installCaCertificate(getActivity().getContentResolver().openInputStream(data), this.mDevicePolicyManager, this.mAdminComponentName);
} catch (FileNotFoundException e) {
Log.e("PolicyManagement", "importCaCertificateFromIntent: ", e);
z = false;
}
showToast(z ? R.string.install_ca_successfully : R.string.install_ca_fail, new Object[0]);
}
public void onActivityResult(int i, int i2, Intent intent) {
super.onActivityResult(i, i2, intent);
if (i2 == -1) {
switch (i) {
case INSTALL_KEY_CERTIFICATE_REQUEST_CODE:
importKeyCertificateFromIntent(intent, "");
break;
case INSTALL_CA_CERTIFICATE_REQUEST_CODE:
importCaCertificateFromIntent(intent);
break;
case CAPTURE_IMAGE_REQUEST_CODE:
showFragment(MediaDisplayFragment.newInstance(1, this.mImageUri));
break;
case CAPTURE_VIDEO_REQUEST_CODE:
showFragment(MediaDisplayFragment.newInstance(2, this.mVideoUri));
break;
case INSTALL_APK_PACKAGE_REQUEST_CODE:
installApkPackageFromIntent(intent);
break;
}
}
}
private void showCaCertificateList() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
ShowCaCertificateListTask showCaCertificateListTask = this.mShowCaCertificateListTask;
if (showCaCertificateListTask != null && !showCaCertificateListTask.isCancelled()) {
this.mShowCaCertificateListTask.cancel(true);
}
ShowCaCertificateListTask showCaCertificateListTask2 = new ShowCaCertificateListTask();
this.mShowCaCertificateListTask = showCaCertificateListTask2;
showCaCertificateListTask2.execute(new Void[0]);
}
private void showSetGlobalHttpProxyDialog() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = getActivity().getLayoutInflater().inflate(R.layout.proxy_config_dialog, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.proxy_host);
final EditText editText2 = (EditText) inflate.findViewById(R.id.proxy_port);
String property = System.getProperty("http.proxyHost");
if (!TextUtils.isEmpty(property)) {
editText.setText(property);
editText2.setText(System.getProperty("http.proxyPort"));
}
new AlertDialog.Builder(getActivity()).setTitle(R.string.set_global_http_proxy).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m257x8053ed86(editText, editText2, dialogInterface, i);
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
public void m257x8053ed86(EditText editText, EditText editText2, DialogInterface dialogInterface, int i) {
String obj = editText.getText().toString();
if (obj.isEmpty()) {
showToast(R.string.no_host, new Object[0]);
return;
}
String obj2 = editText2.getText().toString();
if (obj2.isEmpty()) {
showToast(R.string.no_port, new Object[0]);
return;
}
int parseInt = Integer.parseInt(obj2);
if (parseInt > 65535) {
showToast(R.string.port_out_of_range, new Object[0]);
} else {
this.mDevicePolicyManager.setRecommendedGlobalProxy(this.mAdminComponentName, ProxyInfo.buildDirectProxy(obj, parseInt));
}
}
private void showBlockUninstallationPrompt() {
Activity activity = getActivity();
if (activity == null || activity.isFinishing()) {
return;
}
List<ApplicationInfo> installedApplications = this.mPackageManager.getInstalledApplications(0);
ArrayList arrayList = new ArrayList();
Collections.sort(installedApplications, new ApplicationInfo.DisplayNameComparator(this.mPackageManager));
for (ApplicationInfo applicationInfo : installedApplications) {
if ((applicationInfo.flags & 1) == 0) {
ResolveInfo resolveInfo = new ResolveInfo();
resolveInfo.resolvePackageName = applicationInfo.packageName;
arrayList.add(resolveInfo);
}
}
final BlockUninstallationInfoArrayAdapter blockUninstallationInfoArrayAdapter = new BlockUninstallationInfoArrayAdapter(getActivity(), R.id.pkg_name, arrayList, this.mAdminComponentName);
ListView listView = new ListView(getActivity());
listView.setAdapter((ListAdapter) blockUninstallationInfoArrayAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long j) {
blockUninstallationInfoArrayAdapter.onItemClick(adapterView, view, i, j);
}
});
new AlertDialog.Builder(getActivity()).setTitle(R.string.block_uninstallation_title).setView(listView).setPositiveButton(R.string.close, (DialogInterface.OnClickListener) null).show();
}
private void showEnableSystemAppsPrompt() {
final List<String> disabledSystemApps = this.mDevicePolicyManagerGateway.getDisabledSystemApps();
if (disabledSystemApps.isEmpty()) {
showToast(R.string.no_disabled_system_apps, new Object[0]);
} else {
new AlertDialog.Builder(getActivity()).setTitle(getString(R.string.enable_system_apps_title)).setAdapter(new AppInfoArrayAdapter(getActivity(), R.id.pkg_name, disabledSystemApps, true), new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m247x5557b24a(disabledSystemApps, dialogInterface, i);
}
}).show();
}
}
public void m247x5557b24a(List list, DialogInterface dialogInterface, int i) {
final String str = (String) list.get(i);
this.mDevicePolicyManagerGateway.enableSystemApp(str, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m246xce4176c8(str, (Void) obj);
}
}, new Consumer() {
@Override
public final void accept(Object obj) {
Util.onErrorLog("enableSystemApp(%s)", str, new Object[0]);
}
});
}
public void m246xce4176c8(String str, Void r3) {
onSuccessShowToast("enableSystemApp", R.string.enable_system_apps_by_package_name_success_msg, str);
}
private void showInstallExistingPackagePrompt() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
LinearLayout linearLayout = (LinearLayout) getActivity().getLayoutInflater().inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) linearLayout.findViewById(R.id.input);
editText.setHint(getString(R.string.package_name_hints));
new AlertDialog.Builder(getActivity()).setTitle(getString(R.string.install_existing_packages_title)).setView(linearLayout).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m249x9d3c7c0f(editText, dialogInterface, i);
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
public void m249x9d3c7c0f(EditText editText, DialogInterface dialogInterface, int i) {
String obj = editText.getText().toString();
showToast(this.mDevicePolicyManager.installExistingPackage(this.mAdminComponentName, obj) ? R.string.install_existing_packages_success_msg : R.string.package_name_error, obj);
dialogInterface.dismiss();
}
private void installApkPackageFromIntent(Intent intent) {
Uri data;
if (getActivity() == null || getActivity().isFinishing() || intent == null || (data = intent.getData()) == null) {
return;
}
try {
PackageInstallationUtils.installPackage(getActivity(), getActivity().getContentResolver().openInputStream(data), null);
} catch (IOException e) {
showToast("Failed to open APK file");
Log.e("PolicyManagement", "Failed to open APK file", e);
}
}
private void showUninstallPackagePrompt() {
final ArrayList arrayList = new ArrayList();
for (ResolveInfo resolveInfo : getAllLauncherIntentResolversSorted()) {
if (!arrayList.contains(resolveInfo.activityInfo.packageName)) {
arrayList.add(resolveInfo.activityInfo.packageName);
}
}
new AlertDialog.Builder(getActivity()).setTitle(getString(R.string.uninstall_packages_title)).setAdapter(new AppInfoArrayAdapter(getActivity(), R.id.pkg_name, arrayList, true), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
PackageInstallationUtils.uninstallPackage(PolicyManagementFragment.this.getContext(), (String) arrayList.get(i));
}
}).show();
}
private void showHideAppsPrompt(final boolean z) {
int i;
int i2;
int i3;
final ArrayList arrayList = new ArrayList();
if (z) {
for (ApplicationInfo applicationInfo : getAllInstalledApplicationsSorted()) {
if (this.mDevicePolicyManager.isApplicationHidden(this.mAdminComponentName, applicationInfo.packageName)) {
arrayList.add(applicationInfo.packageName);
}
}
} else {
for (ResolveInfo resolveInfo : getAllLauncherIntentResolversSorted()) {
if (!arrayList.contains(resolveInfo.activityInfo.packageName) && !this.mDevicePolicyManager.isApplicationHidden(this.mAdminComponentName, resolveInfo.activityInfo.packageName)) {
arrayList.add(resolveInfo.activityInfo.packageName);
}
}
}
if (arrayList.isEmpty()) {
showToast(z ? R.string.unhide_apps_empty : R.string.hide_apps_empty, new Object[0]);
return;
}
AppInfoArrayAdapter appInfoArrayAdapter = new AppInfoArrayAdapter(getActivity(), R.id.pkg_name, arrayList, true);
if (z) {
i = R.string.unhide_apps_title;
i2 = R.string.unhide_apps_success;
i3 = R.string.unhide_apps_failure;
} else {
i = R.string.hide_apps_title;
i2 = R.string.hide_apps_success;
i3 = R.string.hide_apps_failure;
}
final int i4 = i2;
final int i5 = i3;
new AlertDialog.Builder(getActivity()).setTitle(getString(i)).setAdapter(appInfoArrayAdapter, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i6) {
String str = (String) arrayList.get(i6);
if (PolicyManagementFragment.this.mDevicePolicyManager.setApplicationHidden(PolicyManagementFragment.this.mAdminComponentName, str, !z)) {
PolicyManagementFragment.this.showToast(i4, str);
} else {
PolicyManagementFragment policyManagementFragment = PolicyManagementFragment.this;
policyManagementFragment.showToast(policyManagementFragment.getString(i5, new Object[]{str}), 1);
}
}
}).show();
}
private void showHideAppsOnParentPrompt(final boolean z) {
int i;
int i2;
int i3;
int i4;
if (z) {
i = R.string.unhide_apps_parent_title;
i2 = R.string.unhide_apps_success;
i3 = R.string.unhide_apps_failure;
i4 = R.string.unhide_apps_system_failure;
} else {
i = R.string.hide_apps_parent_title;
i2 = R.string.hide_apps_success;
i3 = R.string.hide_apps_failure;
i4 = R.string.hide_apps_system_failure;
}
final int i5 = i2;
final int i6 = i3;
final int i7 = i4;
View inflate = getActivity().getLayoutInflater().inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.input);
editText.setHint(getString(R.string.input_package_name_hints));
new AlertDialog.Builder(getActivity()).setTitle(getString(i)).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i8) {
PolicyManagementFragment.this.m248xe38c36f3(editText, z, i5, i6, i7, dialogInterface, i8);
}
}).setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i8) {
dialogInterface.dismiss();
}
}).show();
}
public void m248xe38c36f3(EditText editText, boolean z, int i, int i2, int i3, DialogInterface dialogInterface, int i4) {
String obj = editText.getText().toString();
try {
if (this.mDevicePolicyManager.getParentProfileInstance(this.mAdminComponentName).setApplicationHidden(this.mAdminComponentName, obj, !z)) {
showToast(i, obj);
} else {
showToast(getString(i2, new Object[]{obj}), 1);
}
} catch (IllegalArgumentException unused) {
showToast(getString(i3, new Object[]{obj}), 1);
}
dialogInterface.dismiss();
}
private void showSuspendAppsPrompt(boolean z) {
int i;
int i2;
int i3;
ArrayList arrayList = new ArrayList();
if (z) {
for (ApplicationInfo applicationInfo : getAllInstalledApplicationsSorted()) {
if (isPackageSuspended(applicationInfo.packageName)) {
arrayList.add(applicationInfo.packageName);
}
}
} else {
for (ResolveInfo resolveInfo : getAllLauncherIntentResolversSorted()) {
if (!arrayList.contains(resolveInfo.activityInfo.packageName) && !isPackageSuspended(resolveInfo.activityInfo.packageName)) {
arrayList.add(resolveInfo.activityInfo.packageName);
}
}
}
if (arrayList.isEmpty()) {
showToast(z ? R.string.unsuspend_apps_empty : R.string.suspend_apps_empty, new Object[0]);
return;
}
AppInfoArrayAdapter appInfoArrayAdapter = new AppInfoArrayAdapter(getActivity(), R.id.pkg_name, arrayList, true);
if (z) {
i = R.string.unsuspend_apps_title;
i2 = R.string.unsuspend_apps_success;
i3 = R.string.unsuspend_apps_failure;
} else {
i = R.string.suspend_apps_title;
i2 = R.string.suspend_apps_success;
i3 = R.string.suspend_apps_failure;
}
new AlertDialog.Builder(getActivity()).setTitle(getString(i)).setAdapter(appInfoArrayAdapter, new AnonymousClass27(arrayList, z, i2, i3)).show();
}
class AnonymousClass27 implements DialogInterface.OnClickListener {
final int val$failureResId;
final boolean val$forUnsuspending;
final List val$showApps;
final int val$successResId;
AnonymousClass27(List list, boolean z, int i, int i2) {
this.val$showApps = list;
this.val$forUnsuspending = z;
this.val$successResId = i;
this.val$failureResId = i2;
}
@Override
public void onClick(DialogInterface dialogInterface, int i) {
final String str = (String) this.val$showApps.get(i);
boolean z = true ^ this.val$forUnsuspending;
final int i2 = this.val$successResId;
final int i3 = this.val$failureResId;
Consumer<String[]> consumer = new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.AnonymousClass27.this.m276x781a3d08(i2, str, i3, (String[]) obj);
}
};
final int i4 = this.val$failureResId;
PolicyManagementFragment.this.mDevicePolicyManagerGateway.setPackagesSuspended(new String[]{str}, z, consumer, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.AnonymousClass27.this.m277x9235bba7(i4, str, (Exception) obj);
}
});
}
public void m276x781a3d08(int i, String str, int i2, String[] strArr) {
if (strArr.length == 0) {
PolicyManagementFragment.this.onSuccessShowToast("setPackagesSuspended", i, str);
} else {
PolicyManagementFragment.this.onErrorShowToast("setPackagesSuspended", i2, str);
}
}
public void m277x9235bba7(int i, String str, Exception exc) {
PolicyManagementFragment.this.onErrorShowToast("setPackagesSuspended", exc, i, str);
}
}
private void showSetMeteredDataPrompt() {
Activity activity = getActivity();
if (activity == null || activity.isFinishing()) {
return;
}
List<ApplicationInfo> installedApplications = this.mPackageManager.getInstalledApplications(0);
ArrayList arrayList = new ArrayList();
Collections.sort(installedApplications, new ApplicationInfo.DisplayNameComparator(this.mPackageManager));
for (ApplicationInfo applicationInfo : installedApplications) {
ResolveInfo resolveInfo = new ResolveInfo();
resolveInfo.resolvePackageName = applicationInfo.packageName;
arrayList.add(resolveInfo);
}
final MeteredDataRestrictionInfoAdapter meteredDataRestrictionInfoAdapter = new MeteredDataRestrictionInfoAdapter(getActivity(), arrayList, getMeteredDataRestrictedPkgs());
ListView listView = new ListView(activity);
listView.setAdapter((ListAdapter) meteredDataRestrictionInfoAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public final void onItemClick(AdapterView adapterView, View view, int i, long j) {
MeteredDataRestrictionInfoAdapter.this.onItemClick(adapterView, view, i, j);
}
});
new AlertDialog.Builder(activity).setTitle(R.string.metered_data_restriction).setView(listView).setPositiveButton(R.string.update_pkgs, meteredDataRestrictionInfoAdapter).setNegativeButton(R.string.close, (DialogInterface.OnClickListener) null).show();
}
private List<String> getMeteredDataRestrictedPkgs() {
return this.mDevicePolicyManager.getMeteredDataDisabledPackages(this.mAdminComponentName);
}
private void showClearAppDataPrompt() {
final List list = (List) getAllInstalledApplicationsSorted().stream().map(new Function() {
@Override
public final Object apply(Object obj) {
String str;
str = ((ApplicationInfo) obj).packageName;
return str;
}
}).collect(Collectors.toList());
if (list.isEmpty()) {
showToast(R.string.clear_app_data_empty, new Object[0]);
} else {
new AlertDialog.Builder(getActivity()).setTitle(getString(R.string.clear_app_data_title)).setAdapter(new AppInfoArrayAdapter(getActivity(), R.id.pkg_name, list, true), new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m242xacf93056(list, dialogInterface, i);
}
}).show();
}
}
public void m242xacf93056(List list, DialogInterface dialogInterface, int i) {
clearApplicationUserData((String) list.get(i));
}
private void clearApplicationUserData(final String str) {
this.mDevicePolicyManager.clearApplicationUserData(this.mAdminComponentName, str, new MainThreadExecutor(), new DevicePolicyManager.OnClearApplicationUserDataListener() {
@Override
public final void onApplicationUserDataCleared(String str2, boolean z) {
PolicyManagementFragment.this.m216xa47c8b13(str, str2, z);
}
});
}
public void m216xa47c8b13(String str, String str2, boolean z) {
showToast(z ? R.string.clear_app_data_success : R.string.clear_app_data_failure, str);
}
private boolean isPackageSuspended(String str) {
try {
return this.mDevicePolicyManagerGateway.isPackageSuspended(str);
} catch (PackageManager.NameNotFoundException e) {
Log.e("PolicyManagement", "Unable check if package is suspended", e);
return false;
}
}
private List<ResolveInfo> getAllLauncherIntentResolversSorted() {
List<ResolveInfo> queryIntentActivities = this.mPackageManager.queryIntentActivities(Util.getLauncherIntent(getActivity()), 0);
Collections.sort(queryIntentActivities, new ResolveInfo.DisplayNameComparator(this.mPackageManager));
return queryIntentActivities;
}
private List<ApplicationInfo> getAllInstalledApplicationsSorted() {
List<ApplicationInfo> installedApplications = this.mPackageManager.getInstalledApplications(8192);
Collections.sort(installedApplications, new ApplicationInfo.DisplayNameComparator(this.mPackageManager));
return installedApplications;
}
public void showToast(int i, Object... objArr) {
showToast(getString(i, objArr));
}
public void showToast(String str) {
showToast(str, 0);
}
public void showToast(String str, int i) {
Activity activity = getActivity();
if (activity == null || activity.isFinishing()) {
Log.w("PolicyManagement", "Not toasting '" + str + "' as activity is finishing or finished");
} else {
Log.d("PolicyManagement", "Showing toast: " + str);
Toast.makeText(activity, str, i).show();
}
}
private class GetAccessibilityServicesTask extends GetAvailableComponentsTask<AccessibilityServiceInfo> {
private AccessibilityManager mAccessibilityManager;
public GetAccessibilityServicesTask() {
super(PolicyManagementFragment.this.getActivity(), R.string.set_accessibility_services);
this.mAccessibilityManager = (AccessibilityManager) PolicyManagementFragment.this.getActivity().getSystemService("accessibility");
}
@Override
public List<AccessibilityServiceInfo> doInBackground(Void... voidArr) {
return this.mAccessibilityManager.getInstalledAccessibilityServiceList();
}
@Override
protected List<ResolveInfo> getResolveInfoListFromAvailableComponents(List<AccessibilityServiceInfo> list) {
HashSet hashSet = new HashSet();
ArrayList arrayList = new ArrayList();
Iterator<AccessibilityServiceInfo> it = list.iterator();
while (it.hasNext()) {
ResolveInfo resolveInfo = it.next().getResolveInfo();
if (!hashSet.contains(resolveInfo.serviceInfo.packageName)) {
arrayList.add(resolveInfo);
hashSet.add(resolveInfo.serviceInfo.packageName);
}
}
return arrayList;
}
@Override
protected List<String> getPermittedComponentsList() {
return PolicyManagementFragment.this.mDevicePolicyManager.getPermittedAccessibilityServices(PolicyManagementFragment.this.mAdminComponentName);
}
@Override
protected void setPermittedComponentsList(List<String> list) {
boolean permittedAccessibilityServices = PolicyManagementFragment.this.mDevicePolicyManager.setPermittedAccessibilityServices(PolicyManagementFragment.this.mAdminComponentName, list);
int i = list == null ? R.string.all_accessibility_services_enabled : R.string.set_accessibility_services_successful;
PolicyManagementFragment policyManagementFragment = PolicyManagementFragment.this;
if (!permittedAccessibilityServices) {
i = R.string.set_accessibility_services_fail;
}
policyManagementFragment.showToast(i, new Object[0]);
}
}
private class GetInputMethodsTask extends GetAvailableComponentsTask<InputMethodInfo> {
private InputMethodManager mInputMethodManager;
public GetInputMethodsTask() {
super(PolicyManagementFragment.this.getActivity(), R.string.set_input_methods);
this.mInputMethodManager = (InputMethodManager) PolicyManagementFragment.this.getActivity().getSystemService("input_method");
}
@Override
public List<InputMethodInfo> doInBackground(Void... voidArr) {
return this.mInputMethodManager.getInputMethodList();
}
@Override
protected List<ResolveInfo> getResolveInfoListFromAvailableComponents(List<InputMethodInfo> list) {
ArrayList arrayList = new ArrayList();
for (InputMethodInfo inputMethodInfo : list) {
ResolveInfo resolveInfo = new ResolveInfo();
resolveInfo.serviceInfo = inputMethodInfo.getServiceInfo();
resolveInfo.resolvePackageName = inputMethodInfo.getPackageName();
arrayList.add(resolveInfo);
}
return arrayList;
}
@Override
protected List<String> getPermittedComponentsList() {
return PolicyManagementFragment.this.mDevicePolicyManager.getPermittedInputMethods(PolicyManagementFragment.this.mAdminComponentName);
}
@Override
protected void setPermittedComponentsList(List<String> list) {
boolean permittedInputMethods = PolicyManagementFragment.this.mDevicePolicyManager.setPermittedInputMethods(PolicyManagementFragment.this.mAdminComponentName, list);
int i = list == null ? R.string.all_input_methods_enabled : R.string.set_input_methods_successful;
PolicyManagementFragment policyManagementFragment = PolicyManagementFragment.this;
if (!permittedInputMethods) {
i = R.string.set_input_methods_fail;
}
policyManagementFragment.showToast(i, new Object[0]);
}
}
private void setPermittedInputMethodsOnParent() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
final DevicePolicyManagerGatewayImpl forParentProfile = DevicePolicyManagerGatewayImpl.forParentProfile(getActivity());
View inflate = getActivity().getLayoutInflater().inflate(R.layout.permitted_input_methods_on_parent, (ViewGroup) null);
((Button) inflate.findViewById(R.id.all_input_methods_button)).setOnClickListener(new View.OnClickListener() {
@Override
public final void onClick(View view) {
PolicyManagementFragment.this.m240x41010825(forParentProfile, view);
}
});
((Button) inflate.findViewById(R.id.system_input_methods_button)).setOnClickListener(new View.OnClickListener() {
@Override
public final void onClick(View view) {
PolicyManagementFragment.this.m241x848c25e6(forParentProfile, view);
}
});
new AlertDialog.Builder(getActivity()).setView(inflate).show();
}
public void m240x41010825(DevicePolicyManagerGateway devicePolicyManagerGateway, View view) {
showToast(devicePolicyManagerGateway.setPermittedInputMethods(null) ? R.string.all_input_methods_on_parent : R.string.add_input_method_on_parent_fail, new Object[0]);
}
public void m241x848c25e6(DevicePolicyManagerGateway devicePolicyManagerGateway, View view) {
showToast(devicePolicyManagerGateway.setPermittedInputMethods(new ArrayList()) ? R.string.system_input_methods_on_parent : R.string.add_input_method_on_parent_fail, new Object[0]);
}
private void setNotificationAllowlistEditBox() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = getActivity().getLayoutInflater().inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.input);
editText.setHint(getString(R.string.set_notification_listener_text_hint));
List<String> permittedCrossProfileNotificationListeners = this.mDevicePolicyManager.getPermittedCrossProfileNotificationListeners(this.mAdminComponentName);
if (permittedCrossProfileNotificationListeners == null) {
editText.setText("null");
} else {
editText.setText(TextUtils.join(", ", permittedCrossProfileNotificationListeners));
}
new AlertDialog.Builder(getActivity()).setTitle(getString(R.string.set_notification_listener_text_hint)).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m239x66200401(editText, dialogInterface, i);
}
}).setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
}).show();
}
public void m239x66200401(EditText editText, DialogInterface dialogInterface, int i) {
String obj = editText.getText().toString();
if (obj.trim().equals("null")) {
setPermittedNotificationListeners(null);
} else {
setPermittedNotificationListeners(Arrays.asList(obj.trim().split("\\s*,\\s*")));
}
dialogInterface.dismiss();
}
private class GetNotificationListenersTask extends GetAvailableComponentsTask<ResolveInfo> {
@Override
protected List<ResolveInfo> getResolveInfoListFromAvailableComponents(List<ResolveInfo> list) {
return list;
}
public GetNotificationListenersTask() {
super(PolicyManagementFragment.this.getActivity(), R.string.set_notification_listeners);
}
@Override
public List<ResolveInfo> doInBackground(Void... voidArr) {
return PolicyManagementFragment.this.mPackageManager.queryIntentServices(new Intent("android.service.notification.NotificationListenerService"), 8320);
}
@Override
protected List<String> getPermittedComponentsList() {
return PolicyManagementFragment.this.mDevicePolicyManager.getPermittedCrossProfileNotificationListeners(PolicyManagementFragment.this.mAdminComponentName);
}
@Override
protected void setPermittedComponentsList(List<String> list) {
PolicyManagementFragment.this.setPermittedNotificationListeners(list);
}
}
public void setPermittedNotificationListeners(List<String> list) {
boolean permittedCrossProfileNotificationListeners = this.mDevicePolicyManager.setPermittedCrossProfileNotificationListeners(this.mAdminComponentName, list);
int i = list == null ? R.string.all_notification_listeners_enabled : R.string.set_notification_listeners_successful;
if (!permittedCrossProfileNotificationListeners) {
i = R.string.set_notification_listeners_fail;
}
showToast(i, new Object[0]);
}
private class ShowCaCertificateListTask extends AsyncTask<Void, Void, String[]> {
private ShowCaCertificateListTask() {
}
@Override
public String[] doInBackground(Void... voidArr) {
return getCaCertificateSubjectDnList();
}
@Override
public void onPostExecute(String[] strArr) {
if (PolicyManagementFragment.this.getActivity() == null || PolicyManagementFragment.this.getActivity().isFinishing()) {
return;
}
if (strArr == null) {
PolicyManagementFragment.this.showToast(R.string.no_ca_certificate, new Object[0]);
} else {
new AlertDialog.Builder(PolicyManagementFragment.this.getActivity()).setTitle(PolicyManagementFragment.this.getString(R.string.installed_ca_title)).setItems(strArr, (DialogInterface.OnClickListener) null).show();
}
}
private String[] getCaCertificateSubjectDnList() {
int i;
CertificateException e;
List<byte[]> installedCaCerts = PolicyManagementFragment.this.mDevicePolicyManager.getInstalledCaCerts(PolicyManagementFragment.this.mAdminComponentName);
if (installedCaCerts.size() <= 0) {
return null;
}
String[] strArr = new String[installedCaCerts.size()];
int i2 = 0;
Iterator<byte[]> it = installedCaCerts.iterator();
while (it.hasNext()) {
try {
i = i2 + 1;
try {
strArr[i2] = ((X509Certificate) CertificateFactory.getInstance(PolicyManagementFragment.X509_CERT_TYPE).generateCertificate(new ByteArrayInputStream(it.next()))).getSubjectDN().getName();
} catch (CertificateException e2) {
e = e2;
Log.e("PolicyManagement", "getCaCertificateSubjectDnList: ", e);
i2 = i;
}
} catch (CertificateException e3) {
i = i2;
e = e3;
}
i2 = i;
}
return strArr;
}
}
private void showFragment(Fragment fragment) {
getFragmentManager().beginTransaction().addToBackStack(PolicyManagementFragment.class.getName()).replace(R.id.container, fragment).commit();
}
private void showFragment(Fragment fragment, String str) {
getFragmentManager().beginTransaction().addToBackStack(PolicyManagementFragment.class.getName()).replace(R.id.container, fragment, str).commit();
}
private void relaunchInLockTaskMode() {
ActivityManager activityManager = (ActivityManager) getContext().getSystemService(ActivityManager.class);
Intent intent = new Intent(getActivity(), getActivity().getClass());
intent.addFlags(268435456);
if (!activityManager.isInLockTaskMode()) {
intent.addFlags(134217728);
}
ActivityOptions makeBasic = ActivityOptions.makeBasic();
makeBasic.setLockTaskEnabled(true);
try {
startActivity(intent, makeBasic.toBundle());
getActivity().finish();
} catch (SecurityException unused) {
showToast("You must first allow-list the TestDPC package for LockTask");
}
}
private void startKioskMode(String[] strArr) {
ComponentName componentName = new ComponentName(getActivity(), (Class<?>) KioskModeActivity.class);
this.mPackageManager.setComponentEnabledSetting(componentName, 1, 1);
this.mDevicePolicyManager.addPersistentPreferredActivity(this.mAdminComponentName, Util.getHomeIntentFilter(), componentName);
Intent homeIntent = Util.getHomeIntent();
homeIntent.putExtra(KioskModeActivity.LOCKED_APP_PACKAGE_LIST, strArr);
startActivity(homeIntent);
getActivity().finish();
}
private void showWifiConfigCreationDialog() {
WifiConfigCreationDialog.newInstance().show(getFragmentManager(), TAG_WIFI_CONFIG_CREATION);
}
private void showEapTlsWifiConfigCreationDialog() {
WifiEapTlsCreateDialogFragment.newInstance(null).show(getFragmentManager(), WifiEapTlsCreateDialogFragment.class.getName());
}
private void reboot() {
if (this.mTelephonyManager.getCallState() != 0) {
showToast(R.string.reboot_error_msg, new Object[0]);
} else {
this.mDevicePolicyManagerGateway.reboot(new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m230xa09e350b((Void) obj);
}
}, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m231xe42952cc((Exception) obj);
}
});
}
}
public void m230xa09e350b(Void r1) {
onSuccessLog(REBOOT_KEY);
}
public void m231xe42952cc(Exception exc) {
onErrorLog(REBOOT_KEY, exc);
}
private void showSetupManagement() {
getActivity().startActivity(new Intent(getActivity(), (Class<?>) SetupManagementActivity.class));
}
private void showSetScreenBrightnessDialog() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = getActivity().getLayoutInflater().inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.input);
String string = Settings.System.getString(getActivity().getContentResolver(), "screen_brightness");
editText.setHint(R.string.set_screen_brightness_hint);
if (!TextUtils.isEmpty(string)) {
editText.setText(string);
}
new AlertDialog.Builder(getActivity()).setTitle(R.string.set_screen_brightness).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m260x82f274a2(editText, dialogInterface, i);
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
public void m260x82f274a2(EditText editText, DialogInterface dialogInterface, int i) {
String obj = editText.getText().toString();
if (obj.isEmpty()) {
showToast(R.string.no_screen_brightness, new Object[0]);
return;
}
int parseInt = Integer.parseInt(obj);
if (parseInt > 255 || parseInt < 0) {
showToast(R.string.invalid_screen_brightness, new Object[0]);
} else {
this.mDevicePolicyManager.setSystemSetting(this.mAdminComponentName, "screen_brightness", obj);
}
}
private void showSetScreenOffTimeoutDialog() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = getActivity().getLayoutInflater().inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.input);
String string = Settings.System.getString(getActivity().getContentResolver(), "screen_off_timeout");
int parseInt = Integer.parseInt(string);
editText.setHint(R.string.set_screen_off_timeout_hint);
if (!TextUtils.isEmpty(string)) {
editText.setText(Integer.toString(parseInt / 1000));
}
new AlertDialog.Builder(getActivity()).setTitle(R.string.set_screen_off_timeout).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m261xcc1a9922(editText, dialogInterface, i);
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
public void m261xcc1a9922(EditText editText, DialogInterface dialogInterface, int i) {
String obj = editText.getText().toString();
if (obj.isEmpty()) {
showToast(R.string.no_screen_off_timeout, new Object[0]);
return;
}
int parseInt = Integer.parseInt(obj);
if (parseInt < 0) {
showToast(R.string.invalid_screen_off_timeout, new Object[0]);
} else {
this.mDevicePolicyManager.setSystemSetting(this.mAdminComponentName, "screen_off_timeout", Integer.toString(parseInt * 1000));
}
}
private void showSetTimeDialog() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = getActivity().getLayoutInflater().inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.input);
editText.setText(Long.toString(System.currentTimeMillis()));
new AlertDialog.Builder(getActivity()).setTitle(R.string.set_time).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m262xae075d34(editText, dialogInterface, i);
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
public void m262xae075d34(EditText editText, DialogInterface dialogInterface, int i) {
String obj = editText.getText().toString();
if (obj.isEmpty()) {
showToast(R.string.no_set_time, new Object[0]);
return;
}
try {
this.mDevicePolicyManager.setTime(this.mAdminComponentName, Long.parseLong(obj));
} catch (NumberFormatException unused) {
showToast(R.string.invalid_set_time, new Object[0]);
}
}
private void showSetTimeZoneDialog() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = getActivity().getLayoutInflater().inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.input);
editText.setText(Calendar.getInstance().getTimeZone().getID());
new AlertDialog.Builder(getActivity()).setTitle(R.string.set_time_zone).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m263xeb7f36fe(editText, dialogInterface, i);
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
public void m263xeb7f36fe(EditText editText, DialogInterface dialogInterface, int i) {
String obj = editText.getText().toString();
if (obj.isEmpty()) {
showToast(R.string.no_timezone, new Object[0]);
} else if (!Arrays.asList(TimeZone.getAvailableIDs()).contains(obj)) {
showToast(R.string.invalid_timezone, new Object[0]);
} else {
this.mDevicePolicyManager.setTimeZone(this.mAdminComponentName, obj);
}
}
private void showSetProfileNameDialog() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = getActivity().getLayoutInflater().inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.input);
editText.setText("");
new AlertDialog.Builder(getActivity()).setTitle(R.string.set_profile_name).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m259x18dac7f4(editText, dialogInterface, i);
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
public void m259x18dac7f4(EditText editText, DialogInterface dialogInterface, int i) {
String obj = editText.getText().toString();
if (obj.isEmpty()) {
showToast(R.string.no_profile_name, new Object[0]);
} else {
this.mDevicePolicyManager.setProfileName(this.mAdminComponentName, obj);
}
}
private void showSetOrganizationIdDialog() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
View inflate = getActivity().getLayoutInflater().inflate(R.layout.simple_edittext, (ViewGroup) null);
final EditText editText = (EditText) inflate.findViewById(R.id.input);
editText.setText("");
new AlertDialog.Builder(getActivity()).setTitle(R.string.set_organization_id).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m258x509125cb(editText, dialogInterface, i);
}
}).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).show();
}
public void m258x509125cb(EditText editText, DialogInterface dialogInterface, int i) {
String obj = editText.getText().toString();
if (obj.isEmpty()) {
showToast(R.string.organization_id_empty, new Object[0]);
} else {
setOrganizationId(obj);
}
}
private void setOrganizationId(String str) {
try {
ReflectionUtil.invoke(this.mDevicePolicyManager, "setOrganizationId", str);
} catch (ReflectionUtil.ReflectionIsTemporaryException e) {
Log.e("PolicyManagement", "Error invoking setOrganizationId", e);
showToast("Error setting organization ID");
}
loadEnrollmentSpecificId();
}
private void chooseAccount() {
if (getActivity() == null || getActivity().isFinishing()) {
return;
}
final List asList = Arrays.asList(this.mAccountManager.getAccounts());
if (asList.isEmpty()) {
showToast(R.string.no_accounts_available, new Object[0]);
} else {
new AlertDialog.Builder(getActivity()).setTitle(R.string.remove_account).setAdapter(new AccountArrayAdapter(getActivity(), R.id.account_name, asList), new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
PolicyManagementFragment.this.m215x48712d71(asList, dialogInterface, i);
}
}).show();
}
}
public void m215x48712d71(List list, DialogInterface dialogInterface, int i) {
removeAccount((Account) list.get(i));
}
private void removeAccount(final Account account) {
this.mAccountManager.removeAccount(account, getActivity(), new AccountManagerCallback() {
@Override
public final void run(AccountManagerFuture accountManagerFuture) {
PolicyManagementFragment.this.m232x9b80241f(account, accountManagerFuture);
}
}, null);
}
public void m232x9b80241f(Account account, AccountManagerFuture accountManagerFuture) {
try {
if (((Bundle) accountManagerFuture.getResult()).getBoolean("booleanResult")) {
showToast(R.string.success_remove_account, account);
} else {
showToast(R.string.fail_to_remove_account, account);
}
} catch (AuthenticatorException | OperationCanceledException | IOException e) {
Log.e("PolicyManagement", "Failed to remove account: " + account, e);
showToast(R.string.fail_to_remove_account, account);
}
}
public int validateAffiliatedUserAfterP() {
if (Util.SDK_INT < 28 || this.mDevicePolicyManager.isAffiliatedUser()) {
return 0;
}
return R.string.require_affiliated_user;
}
private void factoryResetOrgOwnedDevice() {
DevicePolicyManagerGatewayImpl.forParentProfile(getActivity()).wipeData(0, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m217xf04e6a53((Void) obj);
}
}, new Consumer() {
@Override
public final void accept(Object obj) {
PolicyManagementFragment.this.m218x33d98814((Exception) obj);
}
});
}
public void m217xf04e6a53(Void r1) {
onSuccessLog("wipeData");
}
public void m218x33d98814(Exception exc) {
onErrorLog("wipeData", exc);
}
private boolean isOrganizationOwnedDevice() {
return this.mDevicePolicyManager.isDeviceOwnerApp(this.mPackageName) || (this.mDevicePolicyManager.isProfileOwnerApp(this.mPackageName) && this.mDevicePolicyManagerGateway.isOrganizationOwnedDeviceWithManagedProfile());
}
public int validateDeviceOwnerBeforeO() {
if (Util.SDK_INT >= 26 || this.mDevicePolicyManager.isDeviceOwnerApp(this.mPackageName)) {
return 0;
}
return R.string.requires_device_owner;
}
public int validateDeviceOwnerBeforeP() {
if (Util.SDK_INT >= 28 || this.mDevicePolicyManager.isDeviceOwnerApp(this.mPackageName)) {
return 0;
}
return R.string.requires_device_owner;
}
public int validateDeviceOwnerBeforeQ() {
if (Util.SDK_INT >= 29 || this.mDevicePolicyManager.isDeviceOwnerApp(this.mPackageName)) {
return 0;
}
return R.string.requires_device_owner;
}
public int validateDeviceOwnerOrDelegationNetworkLoggingBeforeS() {
if (Util.SDK_INT >= 31) {
return 0;
}
if (isDeviceOwner() || hasNetworkLoggingDelegation()) {
return R.string.requires_device_owner_or_delegation_network_logging;
}
return 0;
}
private void setAutoTimeEnabled(boolean z) {
this.mDevicePolicyManager.setAutoTimeEnabled(this.mAdminComponentName, z);
}
private void setAutoTimeZoneEnabled(boolean z) {
this.mDevicePolicyManager.setAutoTimeZoneEnabled(this.mAdminComponentName, z);
}
public void onSuccessShowToast(String str, int i, Object... objArr) {
Log.d("PolicyManagement", str + "() succeeded");
showToast(i, objArr);
}
private void onSuccessShowToastWithHardcodedMessage(String str, Object... objArr) {
showToast(String.format(str, objArr));
}
public void onErrorShowToast(String str, int i, Object... objArr) {
Log.e("PolicyManagement", str + "() failed");
showToast(i, objArr);
}
public void onErrorShowToast(String str, Exception exc, int i, Object... objArr) {
Log.e("PolicyManagement", str + "() failed: ", exc);
showToast(i, objArr);
}
private void onErrorOrFailureShowToast(String str, Exception exc, int i, int i2) {
if (exc instanceof DevicePolicyManagerGateway.FailedOperationException) {
Log.e("PolicyManagement", str + " returned false");
showToast(i, new Object[0]);
} else {
Log.e("PolicyManagement", "Exception when calling " + str, exc);
showToast(i2, new Object[0]);
}
}
}