/* * 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.io.File; import java.io.IOException; /** * This is an entity class which wraps the license information which was * retrieved from the online DRM server. * * Caller can instantiate {@link DrmRights} by * invoking {@link DrmRights#DrmRights(ProcessedData, String)} * constructor by using the result of {@link DrmManagerClient#processDrmInfo(DrmInfo)} interface. * Caller can also instantiate {@link DrmRights} using the file path * which contains rights information. * */ public class DrmRights { private byte[] mData; private String mMimeType; private String mAccountId = "_NO_USER"; private String mSubscriptionId = ""; /** * constructor to create DrmRights object with given parameters * * @param rightsFilePath Path of the file containing rights data * @param mimeType MIME type */ public DrmRights(String rightsFilePath, String mimeType) { File file = new File(rightsFilePath); instantiate(file, mimeType); } /** * constructor to create DrmRights object with given parameters * * @param rightsFilePath Path of the file containing rights data * @param mimeType MIME type * @param accountId Account Id of the user */ public DrmRights(String rightsFilePath, String mimeType, String accountId) { this(rightsFilePath, mimeType); if (null != accountId && !accountId.equals("")) { mAccountId = accountId; } } /** * constructor to create DrmRights object with given parameters * * @param rightsFilePath Path of the file containing rights data * @param mimeType MIME type * @param accountId Account Id of the user * @param subscriptionId Subscription Id of the user */ public DrmRights( String rightsFilePath, String mimeType, String accountId, String subscriptionId) { this(rightsFilePath, mimeType); if (null != accountId && !accountId.equals("")) { mAccountId = accountId; } if (null != subscriptionId && !subscriptionId.equals("")) { mSubscriptionId = subscriptionId; } } /** * constructor to create DrmRights object with given parameters * * @param rightsFile File containing rights data * @param mimeType MIME type */ public DrmRights(File rightsFile, String mimeType) { instantiate(rightsFile, mimeType); } private void instantiate(File rightsFile, String mimeType) { try { mData = DrmUtils.readBytes(rightsFile); } catch (IOException e) { e.printStackTrace(); } mMimeType = mimeType; } /** * constructor to create DrmRights object with given parameters * The user can pass String or binary data
* Usage:
* i) String(e.g. data is instance of String):
* - new DrmRights(data.getBytes(), mimeType)
* ii) Binary data
* - new DrmRights(binaryData[], mimeType)
*
* @param data Processed data
* @param mimeType MIME type
*/
public DrmRights(ProcessedData data, String mimeType) {
mData = data.getData();
String accountId = data.getAccountId();
if (null != accountId && !accountId.equals("")) {
mAccountId = accountId;
}
String subscriptionId = data.getSubscriptionId();
if (null != subscriptionId && !subscriptionId.equals("")) {
mSubscriptionId = subscriptionId;
}
mMimeType = mimeType;
}
/**
* Returns the rights data associated with this object
*
* @return Rights data
*/
public byte[] getData() {
return mData;
}
/**
* Returns the mimetype associated with this object
*
* @return MIME type
*/
public String getMimeType() {
return mMimeType;
}
/**
* Returns the account-id associated with this object
*
* @return Account Id
*/
public String getAccountId() {
return mAccountId;
}
/**
* Returns the subscription-id associated with this object
*
* @return Subscription Id
*/
public String getSubscriptionId() {
return mSubscriptionId;
}
/**
* Returns whether this instance is valid or not
*
* @return
* true if valid
* false if invalid
*/
/*package*/ boolean isValid() {
return (null != mMimeType && !mMimeType.equals("")
&& null != mData && mData.length > 0);
}
}