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 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 void startVoice();
     82     public boolean hasCustomContentToLeft();
     83     public void populateCustomContentContainer();
     84     public View getQsbBar();
     85 
     86     /*
     87      * Extensions points for adding / replacing some other aspects of the Launcher experience.
     88      */
     89     public Intent getFirstRunActivity();
     90     public boolean hasFirstRunActivity();
     91     public boolean hasDismissableIntroScreen();
     92     public View getIntroScreen();
     93     public boolean shouldMoveToDefaultScreenOnHomeIntent();
     94     public boolean hasSettings();
     95     @Deprecated
     96     public ComponentName getWallpaperPickerComponent();
     97     public boolean overrideWallpaperDimensions();
     98     public boolean isLauncherPreinstalled();
     99     public AllAppsSearchBarController getAllAppsSearchBarController();
    100     public List<ComponentKey> getPredictedApps();
    101 
    102     /**
    103      * Returning true will immediately result in a call to {@link #setLauncherOverlayView(ViewGroup,
    104      * com.android.launcher3.Launcher.LauncherOverlayCallbacks)}.
    105      *
    106      * @return true if this launcher extension will provide an overlay
    107      */
    108     public boolean hasLauncherOverlay();
    109 
    110     /**
    111      * Handshake to establish an overlay relationship
    112      *
    113      * @param container Full screen overlay ViewGroup into which custom views can be placed.
    114      * @param callbacks A set of callbacks provided by Launcher in relation to the overlay
    115      * @return an interface used to make requests and notify the Launcher in relation to the overlay
    116      */
    117     public Launcher.LauncherOverlay setLauncherOverlayView(InsettableFrameLayout container,
    118             Launcher.LauncherOverlayCallbacks callbacks);
    119 
    120     /**
    121      * Sets the callbacks to allow reacting the actions of search overlays of the launcher.
    122      *
    123      * @param callbacks A set of callbacks to the Launcher, is actually a LauncherSearchCallback,
    124      *                  but for implementation purposes is passed around as an object.
    125      */
    126     public void setLauncherSearchCallback(Object callbacks);
    127 }
    128