| /* |
| * Copyright (C) 2015 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.packageinstaller.permission.ui; |
| |
| import android.graphics.drawable.Icon; |
| import android.os.Bundle; |
| import android.view.View; |
| import android.view.WindowManager; |
| |
| /** |
| * Class for managing the presentation and user interaction of the "grant |
| * permissions" user interface. |
| */ |
| public interface GrantPermissionsViewHandler { |
| |
| /** |
| * Listener interface for getting notified when the user responds to a |
| * permissions grant request. |
| */ |
| interface ResultListener { |
| void onPermissionGrantResult(String groupName, boolean granted, boolean doNotAskAgain); |
| } |
| |
| /** |
| * Creates and returns the view hierarchy that is managed by this view |
| * handler. This must be called before {@link #updateUi}. |
| */ |
| View createView(); |
| |
| /** |
| * Updates the layout attributes of the current window. This is an optional |
| * operation; implementations only need to do work in this method if they |
| * need to alter the default styles provided by the activity's theme. |
| */ |
| void updateWindowAttributes(WindowManager.LayoutParams outLayoutParams); |
| |
| /** |
| * Updates the view hierarchy to reflect the specified state. |
| * <p> |
| * Note that this must be called at least once before showing the UI to |
| * the user to properly initialize the UI. |
| * |
| * @param groupName the name of the permission group |
| * @param groupCount the total number of groups that are being requested |
| * @param groupIndex the index of the current group being requested |
| * @param icon the icon representation of the current group |
| * @param message the message to display the user |
| * @param showDoNotAsk whether to show the "do not ask again" option |
| */ |
| void updateUi(String groupName, int groupCount, int groupIndex, Icon icon, |
| CharSequence message, boolean showDoNotAsk); |
| |
| /** |
| * Sets the result listener that will be notified when the user responds |
| * to a permissions grant request. |
| */ |
| GrantPermissionsViewHandler setResultListener(ResultListener listener); |
| |
| /** |
| * Called by {@link GrantPermissionsActivity} to save the state of this |
| * view handler to the specified bundle. |
| */ |
| void saveInstanceState(Bundle outState); |
| |
| /** |
| * Called by {@link GrantPermissionsActivity} to load the state of this |
| * view handler from the specified bundle. |
| */ |
| void loadInstanceState(Bundle savedInstanceState); |
| |
| /** |
| * Gives a chance for handling the back key. |
| */ |
| void onBackPressed(); |
| } |