/*
 * 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;

Defines constants that are used by the DRM framework.
/** * Defines constants that are used by the DRM framework. * */
public class DrmStore {
Interface definition for the columns that represent DRM constraints. DrmManagerClient.getConstraints() can be called by an application to find out the contraints on the actions that can be performed on right-protected content. The constants defined in this interface represent three most common types of constraints: count-based, date-based, and duration-based. Two or more constraints can be used at the same time to represent more sophisticated constraints. In addition, user-defined constraint, extended metadata, can be used if these three types of constraints are not sufficient.
/** * Interface definition for the columns that represent DRM constraints. * {@link android.drm.DrmManagerClient#getConstraints DrmManagerClient.getConstraints()} * can be called by an application to find out the contraints on the * {@link android.drm.DrmStore.Action actions} that can be performed * on right-protected content. The constants defined in this interface * represent three most common types of constraints: count-based, * date-based, and duration-based. Two or more constraints can be used * at the same time to represent more sophisticated constraints. * In addition, user-defined constraint, * {@link #EXTENDED_METADATA extended metadata}, can be * used if these three types of constraints are not sufficient. */
public interface ConstraintsColumns {
This is a count-based constraint. It represents the maximum repeat count that can be performed on an action.

Type: INTEGER

/** * This is a count-based constraint. It represents the maximum * repeat count that can be performed on an * {@link android.drm.DrmStore.Action action}. * <p> * Type: INTEGER */
public static final String MAX_REPEAT_COUNT = "max_repeat_count";
This is a count-based constraint. It represents the remaining repeat count that can be performed on an action.

Type: INTEGER

/** * This is a count-based constraint. It represents the remaining * repeat count that can be performed on an * {@link android.drm.DrmStore.Action action}. * <p> * Type: INTEGER */
public static final String REMAINING_REPEAT_COUNT = "remaining_repeat_count";
This is a date-based constraint. It represents the time before which an action can be performed on the rights-protected content.

Type: TEXT

/** * This is a date-based constraint. It represents the time before which * an {@link android.drm.DrmStore.Action action} can be performed on * the rights-protected content. * <p> * Type: TEXT */
public static final String LICENSE_START_TIME = "license_start_time";
This is a date-based constaint. It represents the time after which an action can not be performed on the rights-protected content.

Type: TEXT

/** * This is a date-based constaint. It represents the time after which * an {@link android.drm.DrmStore.Action action} can not be performed on * the rights-protected content. * <p> * Type: TEXT */
public static final String LICENSE_EXPIRY_TIME = "license_expiry_time";
This is a duration-based constaint. It represents the available time left before the license expires.

Type: TEXT

/** * This is a duration-based constaint. It represents the available time left * before the license expires. * <p> * Type: TEXT */
public static final String LICENSE_AVAILABLE_TIME = "license_available_time";
This is a user-defined constraint. It represents the additional constraint using extended metadata.

Type: TEXT

/** * This is a user-defined constraint. It represents the additional constraint * using extended metadata. * <p> * Type: TEXT */
public static final String EXTENDED_METADATA = "extended_metadata"; }
Defines DRM object types.
/** * Defines DRM object types. */
public static class DrmObjectType {
An unknown object type.
/** * An unknown object type. */
public static final int UNKNOWN = 0x00;
A rights-protected file object type.
/** * A rights-protected file object type. */
public static final int CONTENT = 0x01;
A rights information object type.
/** * A rights information object type. */
public static final int RIGHTS_OBJECT = 0x02;
A trigger information object type.
/** * A trigger information object type. */
public static final int TRIGGER_OBJECT = 0x03;
Deprecated:This class should have been an interface instead. The default constuctor should have not been exposed.
/** * @deprecated This class should have been an interface instead. * The default constuctor should have not been exposed. */
public DrmObjectType() {} }
Defines playback states for content.
/** * Defines playback states for content. */
public static class Playback {
Playback started.
/** * Playback started. */
public static final int START = 0x00;
Playback stopped.
/** * Playback stopped. */
public static final int STOP = 0x01;
Playback paused.
/** * Playback paused. */
public static final int PAUSE = 0x02;
Playback resumed.
/** * Playback resumed. */
public static final int RESUME = 0x03; /* package */ static boolean isValid(int playbackStatus) { boolean isValid = false; switch (playbackStatus) { case START: case STOP: case PAUSE: case RESUME: isValid = true; } return isValid; }
Deprecated:This class should have been an interface instead. The default constuctor should have not been exposed.
/** * @deprecated This class should have been an interface instead. * The default constuctor should have not been exposed. */
public Playback() {} }
Defines actions that can be performed on rights-protected content.
/** * Defines actions that can be performed on rights-protected content. */
public static class Action {
The default action.
/** * The default action. */
public static final int DEFAULT = 0x00;
The rights-protected content can be played.
/** * The rights-protected content can be played. */
public static final int PLAY = 0x01;
The rights-protected content can be set as a ringtone.
/** * The rights-protected content can be set as a ringtone. */
public static final int RINGTONE = 0x02;
The rights-protected content can be transferred.
/** * The rights-protected content can be transferred. */
public static final int TRANSFER = 0x03;
The rights-protected content can be set as output.
/** * The rights-protected content can be set as output. */
public static final int OUTPUT = 0x04;
The rights-protected content can be previewed.
/** * The rights-protected content can be previewed. */
public static final int PREVIEW = 0x05;
The rights-protected content can be executed.
/** * The rights-protected content can be executed. */
public static final int EXECUTE = 0x06;
The rights-protected content can be displayed.
/** * The rights-protected content can be displayed. */
public static final int DISPLAY = 0x07; /* package */ static boolean isValid(int action) { boolean isValid = false; switch (action) { case DEFAULT: case PLAY: case RINGTONE: case TRANSFER: case OUTPUT: case PREVIEW: case EXECUTE: case DISPLAY: isValid = true; } return isValid; }
Deprecated:This class should have been an interface instead. The default constuctor should have not been exposed.
/** * @deprecated This class should have been an interface instead. * The default constuctor should have not been exposed. */
public Action() {} }
Defines status notifications for digital rights.
/** * Defines status notifications for digital rights. */
public static class RightsStatus {
The digital rights are valid.
/** * The digital rights are valid. */
public static final int RIGHTS_VALID = 0x00;
The digital rights are invalid.
/** * The digital rights are invalid. */
public static final int RIGHTS_INVALID = 0x01;
The digital rights have expired.
/** * The digital rights have expired. */
public static final int RIGHTS_EXPIRED = 0x02;
The digital rights have not been acquired for the rights-protected content.
/** * The digital rights have not been acquired for the rights-protected content. */
public static final int RIGHTS_NOT_ACQUIRED = 0x03;
Deprecated:This class should have been an interface instead. The default constuctor should have not been exposed.
/** * @deprecated This class should have been an interface instead. * The default constuctor should have not been exposed. */
public RightsStatus() {} }
Deprecated:This class should have been an interface instead. The default constuctor should have not been exposed.
/** * @deprecated This class should have been an interface instead. * The default constuctor should have not been exposed. */
public DrmStore() {} }