ProvisioningParams.java revision 48fdbe03c7cc39accada396a96acff09bdecb3b2
1ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse/*
2ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse * Copyright 2014, The Android Open Source Project
3ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse *
4ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse * Licensed under the Apache License, Version 2.0 (the "License");
5ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse * you may not use this file except in compliance with the License.
6ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse * You may obtain a copy of the License at
7ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse *
8ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse *     http://www.apache.org/licenses/LICENSE-2.0
9ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse *
10ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse * Unless required by applicable law or agreed to in writing, software
11ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse * distributed under the License is distributed on an "AS IS" BASIS,
12ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse * See the License for the specific language governing permissions and
14ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse * limitations under the License.
15ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse */
16ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse
17ed0883b8349832c510353310f48a47f316900a00Sander Alewijnsepackage com.android.managedprovisioning;
18ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse
19d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnseimport android.os.Parcel;
20d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnseimport android.os.Parcelable;
2148fdbe03c7cc39accada396a96acff09bdecb3b2Sander Alewijnseimport android.util.Base64;
2263254f4c85d3a0643bafb78558fa2cb75f4ee3d5Sander Alewijnseimport java.util.Locale;
2363254f4c85d3a0643bafb78558fa2cb75f4ee3d5Sander Alewijnse
2448fdbe03c7cc39accada396a96acff09bdecb3b2Sander Alewijnse
25ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse/**
26ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse * Provisioning Parameters for DeviceOwner Provisioning
27ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse */
28d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnsepublic class ProvisioningParams implements Parcelable {
2956f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse    public static final long DEFAULT_LOCAL_TIME = -1;
3056f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse    public static final boolean DEFAULT_WIFI_HIDDEN = false;
3156f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse    public static final int DEFAULT_WIFI_PROXY_PORT = 0;
3256f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse
33ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse    public static String mTimeZone;
3456f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse    public static long mLocalTime = DEFAULT_LOCAL_TIME;
3563254f4c85d3a0643bafb78558fa2cb75f4ee3d5Sander Alewijnse    public static Locale mLocale;
36ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse
37ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse    public static String mWifiSsid;
3856f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse    public static boolean mWifiHidden = DEFAULT_WIFI_HIDDEN;
39ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse    public static String mWifiSecurityType;
40ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse    public static String mWifiPassword;
41ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse    public static String mWifiProxyHost;
4256f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse    public static int mWifiProxyPort = DEFAULT_WIFI_PROXY_PORT;
43ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse    public static String mWifiProxyBypassHosts;
442daab0a2c2bcb07a0595f93c4367ed1ca673e0e6Jason Monk    public static String mWifiPacUrl;
45ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse
46885c349f7658aee02af77da42400d360e93bb310Sander Alewijnse    public static String mDeviceAdminPackageName; // Package name of the device admin package.
47af8413ea41cba9a29fda7eef0c2e8ecafb454dbfSander Alewijnse
4856f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse    public static String mDeviceAdminPackageDownloadLocation; // Url of the device admin .apk
4956f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse    public static byte[] mDeviceAdminPackageChecksum = new byte[0]; // SHA-1 sum of the .apk file.
5056f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse
5156f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse    public String getLocaleAsString() {
5256f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse        if (mLocale != null) {
5356f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse            return mLocale.getLanguage() + "_" + mLocale.getCountry();
5456f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse        } else {
5556f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse            return null;
5656f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse        }
5756f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse    }
5856f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse
5956f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse    public String getDeviceAdminPackageChecksumAsString() {
6048fdbe03c7cc39accada396a96acff09bdecb3b2Sander Alewijnse        return Base64.encodeToString(mDeviceAdminPackageChecksum,
6148fdbe03c7cc39accada396a96acff09bdecb3b2Sander Alewijnse                Base64.URL_SAFE | Base64.NO_PADDING | Base64.NO_WRAP);
6256f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse    }
63d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse
64d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse    @Override
65d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse    public int describeContents() {
66d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        return 0;
67d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse    }
68d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse
69d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse    @Override
70d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse    public void writeToParcel(Parcel out, int flags) {
71d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        out.writeString(mTimeZone);
72d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        out.writeLong(mLocalTime);
73d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        out.writeSerializable(mLocale);
74d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        out.writeString(mWifiSsid);
75d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        out.writeInt(mWifiHidden ? 1 : 0);
76d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        out.writeString(mWifiSecurityType);
77d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        out.writeString(mWifiPassword);
78d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        out.writeString(mWifiProxyHost);
79d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        out.writeInt(mWifiProxyPort);
80d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        out.writeString(mWifiProxyBypassHosts);
81d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        out.writeString(mDeviceAdminPackageName);
8256f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse        out.writeString(mDeviceAdminPackageDownloadLocation);
8356f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse        out.writeByteArray(mDeviceAdminPackageChecksum);
84d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse    }
85d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse
86d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse    public static final Parcelable.Creator<ProvisioningParams> CREATOR
87d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        = new Parcelable.Creator<ProvisioningParams>() {
88d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        @Override
89d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        public ProvisioningParams createFromParcel(Parcel in) {
90d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse            ProvisioningParams params = new ProvisioningParams();
91d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse            params.mTimeZone = in.readString();
92d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse            params.mLocalTime = in.readLong();
93d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse            params.mLocale = (Locale) in.readSerializable();
94d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse            params.mWifiSsid = in.readString();
95d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse            params.mWifiHidden = in.readInt()==1;
96d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse            params.mWifiSecurityType = in.readString();
97d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse            params.mWifiPassword = in.readString();
98d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse            params.mWifiProxyHost = in.readString();
99d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse            params.mWifiProxyPort = in.readInt();
100d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse            params.mWifiProxyBypassHosts = in.readString();
101d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse            params.mDeviceAdminPackageName = in.readString();
10256f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse            params.mDeviceAdminPackageDownloadLocation = in.readString();
10356f7157c220d657d48406caf8e0d61904dfd7789Sander Alewijnse            in.readByteArray(params.mDeviceAdminPackageChecksum);
104d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse            return params;
105d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        }
106d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse
107d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        @Override
108d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        public ProvisioningParams[] newArray(int size) {
109d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse            return new ProvisioningParams[size];
110d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse        }
111d70438542632a1c8df15bdd9d91bfee52bf2b655Sander Alewijnse    };
112ed0883b8349832c510353310f48a47f316900a00Sander Alewijnse}
113