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