Home | History | Annotate | Download | only in launcher3
      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 void onAttachedToWindow();
     47     public void onDetachedFromWindow();
     48     public boolean onPrepareOptionsMenu(Menu menu);
     49     public void dump(String prefix, FileDescriptor fd, PrintWriter w, String[] args);
     50     public void onHomeIntent();
     51     public boolean handleBackPressed();
     52     public void onTrimMemory(int level);
     53 
     54     /*
     55      * Extension points for providing custom behavior on certain user interactions.
     56      */
     57     public void onLauncherProviderChange();
     58     public void finishBindingItems(final boolean upgradePath);
     59     public void onClickAllAppsButton(View v);
     60     public void bindAllApplications(ArrayList<AppInfo> apps);
     61     public void onClickFolderIcon(View v);
     62     public void onClickAppShortcut(View v);
     63     @Deprecated
     64     public void onClickPagedViewIcon(View v);
     65     public void onClickWallpaperPicker(View v);
     66     public void onClickSettingsButton(View v);
     67     public void onClickAddWidgetButton(View v);
     68     public void onPageSwitch(View newPage, int newPageIndex);
     69     public void onWorkspaceLockedChanged();
     70     public void onDragStarted(View view);
     71     public void onInteractionBegin();
     72     public void onInteractionEnd();
     73 
     74     public boolean providesSearch();
     75     public boolean startSearch(String initialQuery, boolean selectInitialQuery,
     76             Bundle appSearchData, Rect sourceBounds);
     77     @Deprecated
     78     public boolean startSearchFromAllApps(String query);
     79     public boolean hasCustomContentToLeft();
     80     public void populateCustomContentContainer();
     81     public View getQsbBar();
     82     public Bundle getAdditionalSearchWidgetOptions();
     83 
     84     /*
     85      * Extensions points for adding / replacing some other aspects of the Launcher experience.
     86      */
     87     public Intent getFirstRunActivity();
     88     public boolean hasFirstRunActivity();
     89     public boolean hasDismissableIntroScreen();
     90     public View getIntroScreen();
     91     public boolean shouldMoveToDefaultScreenOnHomeIntent();
     92     public boolean hasSettings();
     93     public boolean overrideWallpaperDimensions();
     94     public boolean isLauncherPreinstalled();
     95     public AllAppsSearchBarController getAllAppsSearchBarController();
     96     public List<ComponentKey> getPredictedApps();
     97     public static final int SEARCH_BAR_HEIGHT_NORMAL = 0, SEARCH_BAR_HEIGHT_TALL = 1;
     98     /** Must return one of {@link #SEARCH_BAR_HEIGHT_NORMAL} or {@link #SEARCH_BAR_HEIGHT_TALL} */
     99     public int getSearchBarHeight();
    100 
    101     /**
    102      * Sets the callbacks to allow reacting the actions of search overlays of the launcher.
    103      *
    104      * @param callbacks A set of callbacks to the Launcher, is actually a LauncherSearchCallback,
    105      *                  but for implementation purposes is passed around as an object.
    106      */
    107     public void setLauncherSearchCallback(Object callbacks);
    108 }
    109