/* * Copyright (C) 2008 Esmertec AG. * Copyright (C) 2008 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 com.android.mms.drm; import android.drm.DrmManagerClient; import android.drm.DrmStore; import android.net.Uri; import android.util.Log; import com.android.mms.MmsApp; public class DrmUtils { private static final String TAG = "DrmUtils"; /** The MIME type of special DRM files */ private static final String EXTENSION_ANDROID_FWDL = ".fl"; private DrmUtils() { } public static String getConvertExtension(String mimetype) { return EXTENSION_ANDROID_FWDL; } public static boolean isDrmType(String mimeType) { boolean result = false; DrmManagerClient drmManagerClient = MmsApp.getApplication().getDrmManagerClient(); if (drmManagerClient != null) { try { if (drmManagerClient.canHandle("", mimeType)) { result = true; } } catch (IllegalArgumentException ex) { Log.w(TAG, "canHandle called with wrong parameters"); } catch (IllegalStateException ex) { Log.w(TAG, "DrmManagerClient didn't initialize properly"); } } return result; } /** * Check if content may be forwarded according to DRM * * @param uri Uri to content * @return true if the content may be forwarded */ public static boolean haveRightsForAction(Uri uri, int action) { DrmManagerClient drmManagerClient = MmsApp.getApplication().getDrmManagerClient(); try { // first check if the URI is registered as DRM in DRM-framework if (drmManagerClient.canHandle(uri.toString(), null)) { int check = drmManagerClient.checkRightsStatus(uri.toString(), action); return (check == DrmStore.RightsStatus.RIGHTS_VALID); } } catch (Exception e) { // Ignore exception and assume it is OK to forward file. } finally { } return true; } }