• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2014, The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.managedprovisioning;
18 
19 import android.os.Parcel;
20 import android.os.Parcelable;
21 import android.os.PersistableBundle;
22 import android.util.Base64;
23 import java.util.Locale;
24 
25 
26 /**
27  * Provisioning Parameters for DeviceOwner Provisioning
28  */
29 public class ProvisioningParams implements Parcelable {
30     public static final long DEFAULT_LOCAL_TIME = -1;
31     public static final boolean DEFAULT_WIFI_HIDDEN = false;
32     public static final int DEFAULT_WIFI_PROXY_PORT = 0;
33 
34     public String mTimeZone;
35     public long mLocalTime = DEFAULT_LOCAL_TIME;
36     public Locale mLocale;
37 
38     public String mWifiSsid;
39     public boolean mWifiHidden = DEFAULT_WIFI_HIDDEN;
40     public String mWifiSecurityType;
41     public String mWifiPassword;
42     public String mWifiProxyHost;
43     public int mWifiProxyPort = DEFAULT_WIFI_PROXY_PORT;
44     public String mWifiProxyBypassHosts;
45     public String mWifiPacUrl;
46 
47     public String mDeviceAdminPackageName; // Package name of the device admin package.
48 
49     public String mDeviceAdminPackageDownloadLocation; // Url of the device admin .apk
50     public String mDeviceAdminPackageDownloadCookieHeader; // Cookie header for http request
51     public byte[] mDeviceAdminPackageChecksum = new byte[0]; // SHA-1 sum of the .apk file.
52 
53     public PersistableBundle mAdminExtrasBundle;
54 
55     public boolean mStartedByNfc; // True iff provisioning flow was started by Nfc bump.
56 
getLocaleAsString()57     public String getLocaleAsString() {
58         if (mLocale != null) {
59             return mLocale.getLanguage() + "_" + mLocale.getCountry();
60         } else {
61             return null;
62         }
63     }
64 
getDeviceAdminPackageChecksumAsString()65     public String getDeviceAdminPackageChecksumAsString() {
66         return Base64.encodeToString(mDeviceAdminPackageChecksum,
67                 Base64.URL_SAFE | Base64.NO_PADDING | Base64.NO_WRAP);
68     }
69 
70     @Override
describeContents()71     public int describeContents() {
72         return 0;
73     }
74 
75     @Override
writeToParcel(Parcel out, int flags)76     public void writeToParcel(Parcel out, int flags) {
77         out.writeString(mTimeZone);
78         out.writeLong(mLocalTime);
79         out.writeSerializable(mLocale);
80         out.writeString(mWifiSsid);
81         out.writeInt(mWifiHidden ? 1 : 0);
82         out.writeString(mWifiSecurityType);
83         out.writeString(mWifiPassword);
84         out.writeString(mWifiProxyHost);
85         out.writeInt(mWifiProxyPort);
86         out.writeString(mWifiProxyBypassHosts);
87         out.writeString(mDeviceAdminPackageName);
88         out.writeString(mDeviceAdminPackageDownloadLocation);
89         out.writeString(mDeviceAdminPackageDownloadCookieHeader);
90         out.writeInt(mDeviceAdminPackageChecksum.length);
91         out.writeByteArray(mDeviceAdminPackageChecksum);
92         out.writeParcelable(mAdminExtrasBundle, 0 /* default */);
93         out.writeInt(mStartedByNfc ? 1 : 0);
94     }
95 
96     public static final Parcelable.Creator<ProvisioningParams> CREATOR
97         = new Parcelable.Creator<ProvisioningParams>() {
98         @Override
99         public ProvisioningParams createFromParcel(Parcel in) {
100             ProvisioningParams params = new ProvisioningParams();
101             params.mTimeZone = in.readString();
102             params.mLocalTime = in.readLong();
103             params.mLocale = (Locale) in.readSerializable();
104             params.mWifiSsid = in.readString();
105             params.mWifiHidden = in.readInt() == 1;
106             params.mWifiSecurityType = in.readString();
107             params.mWifiPassword = in.readString();
108             params.mWifiProxyHost = in.readString();
109             params.mWifiProxyPort = in.readInt();
110             params.mWifiProxyBypassHosts = in.readString();
111             params.mDeviceAdminPackageName = in.readString();
112             params.mDeviceAdminPackageDownloadLocation = in.readString();
113             params.mDeviceAdminPackageDownloadCookieHeader = in.readString();
114             int checksumLength = in.readInt();
115             params.mDeviceAdminPackageChecksum = new byte[checksumLength];
116             in.readByteArray(params.mDeviceAdminPackageChecksum);
117             params.mAdminExtrasBundle = in.readParcelable(null /* use default classloader */);
118             params.mStartedByNfc = in.readInt() == 1;
119             return params;
120         }
121 
122         @Override
123         public ProvisioningParams[] newArray(int size) {
124             return new ProvisioningParams[size];
125         }
126     };
127 }
128