148132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz/* 248132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * Copyright 2016, The Android Open Source Project 348132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * 448132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * Licensed under the Apache License, Version 2.0 (the "License"); 548132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * you may not use this file except in compliance with the License. 648132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * You may obtain a copy of the License at 748132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * 848132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * http://www.apache.org/licenses/LICENSE-2.0 948132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * 1048132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * Unless required by applicable law or agreed to in writing, software 1148132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * distributed under the License is distributed on an "AS IS" BASIS, 1248132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1348132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * See the License for the specific language governing permissions and 1448132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * limitations under the License. 1548132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz */ 1648132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz 1748132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franzpackage com.android.managedprovisioning.common; 1848132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz 1948132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franzimport static android.provider.Settings.Global.DEVICE_PROVISIONED; 2048132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franzimport static android.provider.Settings.Global.PACKAGE_VERIFIER_ENABLE; 2147a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franzimport static android.provider.Settings.Secure.MANAGED_PROFILE_CONTACT_REMOTE_SEARCH; 2248132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franzimport static android.provider.Settings.Secure.USER_SETUP_COMPLETE; 2348132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz 2448132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franzimport android.content.Context; 2548132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franzimport android.provider.Settings.Global; 2648132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franzimport android.provider.Settings.Secure; 2748132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz 2848132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz/** 2948132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * Wrapper class around the static Settings provider calls. 3048132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz */ 3148132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franzpublic class SettingsFacade { 3248132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz /** 3347a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz * Sets USER_SETUP_COMPLETE for a given user. 3447a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz */ 3547a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz public void setUserSetupCompleted(Context context, int userId) { 3647a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz ProvisionLogger.logd("Setting USER_SETUP_COMPLETE to 1 for user " + userId); 3747a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz Secure.putIntForUser(context.getContentResolver(), USER_SETUP_COMPLETE, 1, userId); 3847a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz } 3947a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz 4047a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz /** 4148132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * Returns whether USER_SETUP_COMPLETE is set on the calling user. 4248132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz */ 4348132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz public boolean isUserSetupCompleted(Context context) { 4448132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz return Secure.getInt(context.getContentResolver(), USER_SETUP_COMPLETE, 0) != 0; 4548132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz } 4648132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz 4748132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz /** 4848132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * Returns whether DEVICE_PROVISIONED is set. 4948132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz */ 5048132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz public boolean isDeviceProvisioned(Context context) { 5148132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz return Global.getInt(context.getContentResolver(), DEVICE_PROVISIONED, 0) != 0; 5248132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz } 5348132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz 5448132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz /** 5548132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * Sets whether package verification is enabled or not. 5648132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz */ 5748132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz public void setPackageVerifierEnabled(Context context, boolean packageVerifierEnabled) { 5848132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz Global.putInt(context.getContentResolver(), PACKAGE_VERIFIER_ENABLE, 5948132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz packageVerifierEnabled ? 1 : 0); 6048132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz } 6148132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz 6248132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz /** 6348132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz * Returns whether package verification is enabled or not. 6448132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz */ 6548132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz public boolean isPackageVerifierEnabled(Context context) { 6648132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz return Global.getInt(context.getContentResolver(), PACKAGE_VERIFIER_ENABLE, 0) != 0; 6748132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz } 6847a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz 6947a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz /** 7047a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz * Sets whether profile contact remote search is enabled. 7147a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz */ 7247a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz public void setProfileContactRemoteSearch(Context context, boolean allowed, int userId) { 7347a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz Secure.putIntForUser(context.getContentResolver(), 7447a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz MANAGED_PROFILE_CONTACT_REMOTE_SEARCH, allowed ? 1 : 0, userId); 7547a23e3a089354bfbc71610f6ef3c59366b20f3aBenjamin Franz } 7648132dd835f559e3d01ee7d2198c285bf4972e35Benjamin Franz} 77