summaryrefslogtreecommitdiff
path: root/src/com/android/provision/DpcInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/provision/DpcInfo.java')
-rw-r--r--src/com/android/provision/DpcInfo.java85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/com/android/provision/DpcInfo.java b/src/com/android/provision/DpcInfo.java
new file mode 100644
index 0000000..af38d4b
--- /dev/null
+++ b/src/com/android/provision/DpcInfo.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.provision;
+
+import static com.android.provision.Utils.DEFAULT_SETTINGS_PROVISION_DO_CHECKSUM;
+import static com.android.provision.Utils.DEFAULT_SETTINGS_PROVISION_DO_DOWNLOAD_TRIGGER;
+import static com.android.provision.Utils.DEFAULT_SETTINGS_PROVISION_DO_DOWNLOAD_URL;
+import static com.android.provision.Utils.DEFAULT_SETTINGS_PROVISION_DO_PKG;
+import static com.android.provision.Utils.DEFAULT_SETTINGS_PROVISION_DO_RECEIVER;
+import static com.android.provision.Utils.SETTINGS_PROVISION_DO_CHECKSUM;
+import static com.android.provision.Utils.SETTINGS_PROVISION_DO_DOWNLOAD_TRIGGER;
+import static com.android.provision.Utils.SETTINGS_PROVISION_DO_DOWNLOAD_URL;
+import static com.android.provision.Utils.SETTINGS_PROVISION_DO_PKG;
+import static com.android.provision.Utils.SETTINGS_PROVISION_DO_RECEIVER;
+import static com.android.provision.Utils.getSettings;
+
+import android.content.ComponentName;
+import android.content.ContentResolver;
+
+import java.util.Objects;
+
+/**
+ * Info about a Device Policy Controller app.
+ */
+final class DpcInfo {
+
+ public final String packageName;
+ private final String mReceiverName;
+ public final String checkSum;
+ public final String downloadUrl;
+ public final int trigger;
+
+ DpcInfo(ContentResolver resolver) {
+ this(getSettings(resolver, SETTINGS_PROVISION_DO_PKG, DEFAULT_SETTINGS_PROVISION_DO_PKG),
+ getSettings(resolver, SETTINGS_PROVISION_DO_RECEIVER,
+ DEFAULT_SETTINGS_PROVISION_DO_RECEIVER),
+ getSettings(resolver, SETTINGS_PROVISION_DO_CHECKSUM,
+ DEFAULT_SETTINGS_PROVISION_DO_CHECKSUM),
+ getSettings(resolver, SETTINGS_PROVISION_DO_DOWNLOAD_URL,
+ DEFAULT_SETTINGS_PROVISION_DO_DOWNLOAD_URL),
+ getSettings(resolver, SETTINGS_PROVISION_DO_DOWNLOAD_TRIGGER,
+ DEFAULT_SETTINGS_PROVISION_DO_DOWNLOAD_TRIGGER));
+ }
+
+ private DpcInfo(String packageName, String receiverName, String checkSum, String downloadUrl,
+ int trigger) {
+ this.packageName = Objects.requireNonNull(packageName,
+ "packageName (" + SETTINGS_PROVISION_DO_PKG + ") cannot be null");
+ this.mReceiverName = Objects.requireNonNull(receiverName,
+ "receiverName(" + SETTINGS_PROVISION_DO_RECEIVER + ") cannot be null");
+ this.checkSum = checkSum;
+ this.downloadUrl = downloadUrl;
+ this.trigger = trigger;
+ }
+
+ /***
+ * Gets the name of the admin receiver.
+ */
+ public ComponentName getReceiverComponentName() {
+ return new ComponentName(packageName, mReceiverName);
+ }
+
+ @Override
+ public String toString() {
+ return "DpcInfo[package=" + packageName
+ + ", receiver=" + getReceiverComponentName()
+ + ", checkSum=" + checkSum
+ + ", downloadUrl=" + downloadUrl
+ + ", trigger=" + trigger
+ + "]";
+ }
+}