OSDN Git Service

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