blob: 1fc849eff5d825d53f830ccdab86c9d2c2affde7 [file] [log] [blame]
// Copyright 2017 The Cobalt Authors. All Rights Reserved.
//
// 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 dev.cobalt.account;
import android.content.Intent;
import dev.cobalt.util.UsedByNative;
/**
* Java side implementation for starboard::android::shared::cobalt::AndroidUserAuthorizer.
*/
public interface UserAuthorizer {
/**
* Cleans up at the end of the object's lifecycle.
*/
void shutdown();
/**
* Unblocks any pending request.
*/
@SuppressWarnings("unused")
@UsedByNative
void interrupt();
/**
* Prompts the user as necessary to choose an account, then gets an auth token for the selected
* account. I.e., pairs the web app to be signed-in as a selected account.
*
* This method blocks until finished, and must be called off the UI thread.
*
* Implementations must annotate this method with @UsedByNative so Proguard doesn't remove it.
*/
@SuppressWarnings("unused")
@UsedByNative
AccessToken authorizeUser();
/**
* Prompts the user as necessary to stop using an account. i.e., unpairs the web app to be
* signed-out.
*
* This method blocks until finished, and must be called off the UI thread.
*
* Implementations must annotate this method with @UsedByNative so Proguard doesn't remove it.
*/
@SuppressWarnings("unused")
@UsedByNative
boolean deauthorizeUser();
/**
* Gets a new auth token for the account most recently authorized.
*
* No UI will be shown if there is already a current account restored at construction or selected
* in authorizeUser(). If there is no current account, or the restored account has been deleted,
* the account picker may be shown to let the user specify which account should become the current
* account.
*
* This method blocks until finished, and must be called off the UI thread.
*
* Implementations must annotate this method with @UsedByNative so Proguard doesn't remove it.
*/
@SuppressWarnings("unused")
@UsedByNative
AccessToken refreshAuthorization();
/**
* @see android.app.Activity#onActivityResult(int, int, Intent)
*/
void onActivityResult(int requestCode, int resultCode, Intent data);
/**
* @see android.app.Activity#onRequestPermissionsResult(int, String[], int[])
*/
void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults);
}