LauncherCallbacks.java revision 3a43ed61cba0dd45cf085f41c1632cfbc82a8adc
1package com.android.launcher3; 2 3import android.content.ComponentName; 4import android.content.Intent; 5import android.graphics.Rect; 6import android.os.Bundle; 7import android.view.Menu; 8import android.view.View; 9import android.view.ViewGroup; 10 11import java.io.FileDescriptor; 12import java.io.PrintWriter; 13import java.util.ArrayList; 14 15/** 16 * LauncherCallbacks is an interface used to extend the Launcher activity. It includes many hooks 17 * in order to add additional functionality. Some of these are very general, and give extending 18 * classes the ability to react to Activity life-cycle or specific user interactions. Others 19 * are more specific and relate to replacing parts of the application, for example, the search 20 * interface or the wallpaper picker. 21 */ 22public interface LauncherCallbacks { 23 24 /* 25 * Activity life-cycle methods. These methods are triggered after 26 * the code in the corresponding Launcher method is executed. 27 */ 28 public void preOnCreate(); 29 public void onCreate(Bundle savedInstanceState); 30 public void preOnResume(); 31 public void onResume(); 32 public void onStart(); 33 public void onStop(); 34 public void onPause(); 35 public void onDestroy(); 36 public void onSaveInstanceState(Bundle outState); 37 public void onPostCreate(Bundle savedInstanceState); 38 public void onNewIntent(Intent intent); 39 public void onActivityResult(int requestCode, int resultCode, Intent data); 40 public void onRequestPermissionsResult(int requestCode, String[] permissions, 41 int[] grantResults); 42 public void onWindowFocusChanged(boolean hasFocus); 43 public boolean onPrepareOptionsMenu(Menu menu); 44 public void dump(String prefix, FileDescriptor fd, PrintWriter w, String[] args); 45 public void onHomeIntent(); 46 public boolean handleBackPressed(); 47 public void onTrimMemory(int level); 48 49 /* 50 * Extension points for providing custom behavior on certain user interactions. 51 */ 52 public void onLauncherProviderChange(); 53 public void finishBindingItems(final boolean upgradePath); 54 public void onClickAllAppsButton(View v); 55 public void bindAllApplications(ArrayList<AppInfo> apps); 56 public void onClickFolderIcon(View v); 57 public void onClickAppShortcut(View v); 58 public void onClickPagedViewIcon(View v); 59 public void onClickWallpaperPicker(View v); 60 public void onClickSettingsButton(View v); 61 public void onClickAddWidgetButton(View v); 62 public void onPageSwitch(View newPage, int newPageIndex); 63 public void onWorkspaceLockedChanged(); 64 public void onDragStarted(View view); 65 public void onInteractionBegin(); 66 public void onInteractionEnd(); 67 68 /* 69 * Extension points for replacing the search experience 70 */ 71 public boolean forceDisableVoiceButtonProxy(); 72 public boolean providesSearch(); 73 public boolean startSearch(String initialQuery, boolean selectInitialQuery, 74 Bundle appSearchData, Rect sourceBounds); 75 public void startVoice(); 76 public boolean hasCustomContentToLeft(); 77 public void populateCustomContentContainer(); 78 public View getQsbBar(); 79 80 /* 81 * Extensions points for adding / replacing some other aspects of the Launcher experience. 82 */ 83 public Intent getFirstRunActivity(); 84 public boolean hasFirstRunActivity(); 85 public boolean hasDismissableIntroScreen(); 86 public View getIntroScreen(); 87 public boolean shouldMoveToDefaultScreenOnHomeIntent(); 88 public boolean hasSettings(); 89 public ComponentName getWallpaperPickerComponent(); 90 public boolean overrideWallpaperDimensions(); 91 public boolean isLauncherPreinstalled(); 92 93 /** 94 * Returning true will immediately result in a call to {@link #setLauncherOverlayView(ViewGroup, 95 * com.android.launcher3.Launcher.LauncherOverlayCallbacks)}. 96 * 97 * @return true if this launcher extension will provide an overlay 98 */ 99 public boolean hasLauncherOverlay(); 100 101 /** 102 * Handshake to establish an overlay relationship 103 * 104 * @param container Full screen overlay ViewGroup into which custom views can be placed. 105 * @param callbacks A set of callbacks provided by Launcher in relation to the overlay 106 * @return an interface used to make requests and notify the Launcher in relation to the overlay 107 */ 108 public Launcher.LauncherOverlay setLauncherOverlayView(InsettableFrameLayout container, 109 Launcher.LauncherOverlayCallbacks callbacks); 110 111} 112