/* * 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 + "]"; } }