1 /* 2 * Copyright (C) 2012 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.android.keyguard; 17 18 import com.android.internal.widget.LockPatternUtils; 19 20 public interface KeyguardSecurityView { 21 static public final int SCREEN_ON = 1; 22 static public final int VIEW_REVEALED = 2; 23 24 int PROMPT_REASON_NONE = 0; 25 int PROMPT_REASON_RESTART = 1; 26 27 /** 28 * Interface back to keyguard to tell it when security 29 * @param callback 30 */ setKeyguardCallback(KeyguardSecurityCallback callback)31 void setKeyguardCallback(KeyguardSecurityCallback callback); 32 33 /** 34 * Set {@link LockPatternUtils} object. Useful for providing a mock interface. 35 * @param utils 36 */ setLockPatternUtils(LockPatternUtils utils)37 void setLockPatternUtils(LockPatternUtils utils); 38 39 /** 40 * Reset the view and prepare to take input. This should do things like clearing the 41 * password or pattern and clear error messages. 42 */ reset()43 void reset(); 44 45 /** 46 * Emulate activity life cycle within the view. When called, the view should clean up 47 * and prepare to be removed. 48 */ onPause()49 void onPause(); 50 51 /** 52 * Emulate activity life cycle within this view. When called, the view should prepare itself 53 * to be shown. 54 * @param reason the root cause of the event. 55 */ onResume(int reason)56 void onResume(int reason); 57 58 /** 59 * Inquire whether this view requires IME (keyboard) interaction. 60 * 61 * @return true if IME interaction is required. 62 */ needsInput()63 boolean needsInput(); 64 65 /** 66 * Get {@link KeyguardSecurityCallback} for the given object 67 * @return KeyguardSecurityCallback 68 */ getCallback()69 KeyguardSecurityCallback getCallback(); 70 71 /** 72 * Show a string explaining why the security view needs to be solved. 73 * 74 * @param reason a flag indicating which string should be shown, see {@link #PROMPT_REASON_NONE} 75 * and {@link #PROMPT_REASON_RESTART} 76 */ showPromptReason(int reason)77 void showPromptReason(int reason); 78 79 /** 80 * Instruct the view to show usability hints, if any. 81 * 82 */ showUsabilityHint()83 void showUsabilityHint(); 84 85 /** 86 * Starts the animation which should run when the security view appears. 87 */ startAppearAnimation()88 void startAppearAnimation(); 89 90 /** 91 * Starts the animation which should run when the security view disappears. 92 * 93 * @param finishRunnable the runnable to be run when the animation ended 94 * @return true if an animation started and {@code finishRunnable} will be run, false if no 95 * animation started and {@code finishRunnable} will not be run 96 */ startDisappearAnimation(Runnable finishRunnable)97 boolean startDisappearAnimation(Runnable finishRunnable); 98 } 99