Automatic sources dropoff on 2020-06-10 18:32:38.095721 The change is generated with prebuilt drop tool. Change-Id: I24cbf6ba6db262a1ae1445db1427a08fee35b3b4
diff --git a/android/drm/DrmInfoRequest.java b/android/drm/DrmInfoRequest.java new file mode 100644 index 0000000..135bbc0 --- /dev/null +++ b/android/drm/DrmInfoRequest.java
@@ -0,0 +1,165 @@ +/* + * Copyright (C) 2010 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 android.drm; + +import java.util.HashMap; +import java.util.Iterator; + +/** + * An entity class that is used to pass information to an online DRM server. An instance of this + * class is passed to the {@link DrmManagerClient#acquireDrmInfo acquireDrmInfo()} method to get an + * instance of a {@link DrmInfo}. + * + * @deprecated Please use {@link android.media.MediaDrm} + */ +@Deprecated +public class DrmInfoRequest { + // Changes in following constants should be in sync with DrmInfoRequest.h + /** + * Acquires DRM server registration information. + */ + public static final int TYPE_REGISTRATION_INFO = 1; + /** + * Acquires information for unregistering the DRM server. + */ + public static final int TYPE_UNREGISTRATION_INFO = 2; + /** + * Acquires rights information. + */ + public static final int TYPE_RIGHTS_ACQUISITION_INFO = 3; + /** + * Acquires the progress of the rights acquisition. + */ + public static final int TYPE_RIGHTS_ACQUISITION_PROGRESS_INFO = 4; + + /** + * Key that is used to pass the unique session ID for the account or the user. + */ + public static final String ACCOUNT_ID = "account_id"; + + /** + * Key that is used to pass the unique session ID for the subscription. + */ + public static final String SUBSCRIPTION_ID = "subscription_id"; + + private final int mInfoType; + private final String mMimeType; + private final HashMap<String, Object> mRequestInformation = new HashMap<String, Object>(); + + /** + * Creates a <code>DrmInfoRequest</code> object with type and MIME type. + * + * @param infoType Type of information. + * @param mimeType MIME type. + */ + public DrmInfoRequest(int infoType, String mimeType) { + mInfoType = infoType; + mMimeType = mimeType; + if (!isValid()) { + final String msg = "infoType: " + infoType + "," + + "mimeType: " + mimeType; + throw new IllegalArgumentException(msg); + } + } + + /** + * Retrieves the MIME type associated with this object. + * + * @return The MIME type. + */ + public String getMimeType() { + return mMimeType; + } + + /** + * Retrieves the information type associated with this object. + * + * @return The information type. + */ + public int getInfoType() { + return mInfoType; + } + + /** + * Adds optional information as key-value pairs to this object. + * + * @param key The key to add. + * @param value The value to add. + */ + public void put(String key, Object value) { + mRequestInformation.put(key, value); + } + + /** + * Retrieves the value of a given key. + * + * @param key The key whose value is being retrieved. + * + * @return The value of the key that is being retrieved. Returns null if the key cannot be + * found. + */ + public Object get(String key) { + return mRequestInformation.get(key); + } + + /** + * Retrieves an iterator object that you can use to iterate over the keys associated with + * this <code>DrmInfoRequest</code> object. + * + * @return The iterator object. + */ + public Iterator<String> keyIterator() { + return mRequestInformation.keySet().iterator(); + } + + /** + * Retrieves an iterator object that you can use to iterate over the values associated with + * this <code>DrmInfoRequest</code> object. + * + * @return The iterator object. + */ + public Iterator<Object> iterator() { + return mRequestInformation.values().iterator(); + } + + /** + * Returns whether this instance is valid or not + * + * @return + * true if valid + * false if invalid + */ + boolean isValid() { + return (null != mMimeType && !mMimeType.equals("") + && null != mRequestInformation && isValidType(mInfoType)); + } + + /* package */ static boolean isValidType(int infoType) { + boolean isValid = false; + + switch (infoType) { + case TYPE_REGISTRATION_INFO: + case TYPE_UNREGISTRATION_INFO: + case TYPE_RIGHTS_ACQUISITION_INFO: + case TYPE_RIGHTS_ACQUISITION_PROGRESS_INFO: + isValid = true; + break; + } + return isValid; + } +} +