/*
* 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;
/**
* A base class that is used to send asynchronous event information from the DRM framework.
*
*/
public class DrmEvent {
// Please do not add type constants in this class. More event type constants
// should go to DrmInfoEvent or DrmErrorEvent classes.
/**
* All of the rights information associated with all DRM schemes have been successfully removed.
*/
public static final int TYPE_ALL_RIGHTS_REMOVED = 1001;
/**
* The given DRM information has been successfully processed.
*/
public static final int TYPE_DRM_INFO_PROCESSED = 1002;
/**
* The key that is used in the <code>attributes</code> HashMap to pass the return status.
*/
public static final String DRM_INFO_STATUS_OBJECT = "drm_info_status_object";
/**
* The key that is used in the <code>attributes</code> HashMap to pass the
* {@link DrmInfo} object.
*/
public static final String DRM_INFO_OBJECT = "drm_info_object";
private final int mUniqueId;
private final int mType;
private String mMessage = "";
private HashMap<String, Object> mAttributes = new HashMap<String, Object>();
/**
* Creates a <code>DrmEvent</code> object with the specified parameters.
*
* @param uniqueId Unique session identifier.
* @param type Type of information.
* @param message Message description.
* @param attributes Attributes for extensible information.
*/
protected DrmEvent(int uniqueId, int type, String message,
HashMap<String, Object> attributes) {
mUniqueId = uniqueId;
mType = type;
if (null != message) {
mMessage = message;
}
if (null != attributes) {
mAttributes = attributes;
}
}
/**
* Creates a <code>DrmEvent</code> object with the specified parameters.
*
* @param uniqueId Unique session identifier.
* @param type Type of information.
* @param message Message description.
*/
protected DrmEvent(int uniqueId, int type, String message) {
mUniqueId = uniqueId;
mType = type;
if (null != message) {
mMessage = message;
}
}
/**
* Retrieves the unique session identifier associated with this object.
*
* @return The unique session identifier.
*/
public int getUniqueId() {
return mUniqueId;
}
/**
* Retrieves the type of information that is associated with this object.
*
* @return The type of information.
*/
public int getType() {
return mType;
}
/**
* Retrieves the message description associated with this object.
*
* @return The message description.
*/
public String getMessage() {
return mMessage;
}
/**
* Retrieves the attribute associated with the specified key.
*
* @return One of the attributes or null if no mapping for
* the key is found.
*/
public Object getAttribute(String key) {
return mAttributes.get(key);
}
}