All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src.android.drm.DrmInfoEvent Maven / Gradle / Ivy

Go to download

A library jar that provides APIs for Applications written for the Google Android Platform.

There is a newer version: 15-robolectric-12650502
Show newest version
/*
 * 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;

/**
 * An entity class that is passed to the 
 * {@link DrmManagerClient.OnInfoListener#onInfo onInfo()} callback.
 *
 * @deprecated Please use {@link android.media.MediaDrm}
 */
@Deprecated
public class DrmInfoEvent extends DrmEvent {

    // Please add newly defined type constants to the end of the list,
    // and modify checkTypeValidity() accordingly.

    /**
     * The registration has already been done by another account ID.
     */
    public static final int TYPE_ALREADY_REGISTERED_BY_ANOTHER_ACCOUNT = 1;
    /**
     * The rights need to be removed completely.
     */
    public static final int TYPE_REMOVE_RIGHTS = 2;
    /**
     * The rights have been successfully downloaded and installed.
     */
    public static final int TYPE_RIGHTS_INSTALLED = 3;
    /**
     * The rights object is being delivered to the device. You must wait before
     * calling {@link DrmManagerClient#acquireRights acquireRights()} again.
     */
    public static final int TYPE_WAIT_FOR_RIGHTS = 4;
    /**
     * The registration has already been done for the given account.
     */
    public static final int TYPE_ACCOUNT_ALREADY_REGISTERED = 5;
    /**
     * The rights have been removed.
     */
    public static final int TYPE_RIGHTS_REMOVED = 6;

    // Add more type constants here...

    // FIXME:
    // We may want to add a user-defined type constant, such as
    // TYPE_VENDOR_SPECIFIC, to take care vendor specific use
    // cases.

    /**
     * Creates a DrmInfoEvent object with the specified parameters.
     *
     * @param uniqueId Unique session identifier.
     * @param type Type of the event. Must be any of the event types defined above,
     * or the constants defined in {@link DrmEvent}.
     * @param message Message description. It can be null.
     */
    public DrmInfoEvent(int uniqueId, int type, String message) {
        super(uniqueId, type, message);
        checkTypeValidity(type);
    }

    /**
     * Creates a DrmInfoEvent object with the specified parameters.
     *
     * @param uniqueId Unique session identifier.
     * @param type Type of the event. Must be any of the event types defined above,
     * or the constants defined in {@link DrmEvent}
     * @param message Message description. It can be null.
     * @param attributes Attributes for extensible information. Could be any
     * information provided by the plug-in.
     */
    public DrmInfoEvent(int uniqueId, int type, String message,
                            HashMap attributes) {
        super(uniqueId, type, message, attributes);
        checkTypeValidity(type);
    }

    /*
     * Check the validity of the given type.
     * To overcome a design flaw, we need also accept the type constants
     * defined in super class, DrmEvent.
     */
    private void checkTypeValidity(int type) {
        if (type < TYPE_ALREADY_REGISTERED_BY_ANOTHER_ACCOUNT ||
            type > TYPE_RIGHTS_REMOVED) {

            if (type != TYPE_ALL_RIGHTS_REMOVED &&
                type != TYPE_DRM_INFO_PROCESSED) {
                final String msg = "Unsupported type: " + type;
                throw new IllegalArgumentException(msg);
            }
        }
    }
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy