168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// found in the LICENSE file.
468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)package org.chromium.content.browser;
668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)import org.chromium.base.CalledByNative;
868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)import org.chromium.base.JNINamespace;
968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
1068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)/**
1168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) * A wrapper of the android MediaDrmCredentialManager
1268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) */
1368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)@JNINamespace("content")
1468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)public class MediaDrmCredentialManager {
1568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
1668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    /**
1768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)     * Callback interface for getting notified from credential reset.
1868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)     */
1968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    public interface MediaDrmCredentialManagerCallback {
2068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        /**
2168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)         * This method will be called when credential reset attempt is done.
2268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)         * @param succeeded Whether or not it succeeded.
2368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)         */
2468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        @CalledByNative("MediaDrmCredentialManagerCallback")
2568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        public void onCredentialResetFinished(boolean succeeded);
2668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    }
2768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
2868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    /**
2968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)     * Attempts to reset the DRM credentials.
3068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)     * @param callback It notifies whether or not it succeeded.
3168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)     */
3268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    public static void resetCredentials(MediaDrmCredentialManagerCallback callback) {
3368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        nativeResetCredentials(callback);
3468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    }
3568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
3668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    private static native void nativeResetCredentials(MediaDrmCredentialManagerCallback callback);
3768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)}
38