Merge "Temorarily changing the long press action on the homescreen to show a popup menu" into ub-launcher3-master

This commit is contained in:
TreeHugger Robot 2017-11-16 18:26:20 +00:00 committed by Android (Google) Code Review
commit af3a327779
3 changed files with 49 additions and 6 deletions

View File

@ -16,12 +16,17 @@
package com.android.launcher3.uioverrides;
import android.content.Intent;
import android.view.View.AccessibilityDelegate;
import android.widget.PopupMenu;
import android.widget.Toast;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherStateManager.StateHandler;
import com.android.launcher3.R;
import com.android.launcher3.VerticalSwipeController;
import com.android.launcher3.util.TouchController;
import com.android.launcher3.widget.WidgetsFullSheet;
public class UiFactory {
@ -38,4 +43,29 @@ public class UiFactory {
launcher.getAllAppsController(), launcher.getWorkspace(),
new RecentsViewStateController(launcher)};
}
public static void onWorkspaceLongPress(Launcher launcher) {
PopupMenu menu = new PopupMenu(launcher, launcher.getWorkspace().getPageIndicator());
menu.getMenu().add(R.string.wallpaper_button_text).setOnMenuItemClickListener((i) -> {
launcher.onClickWallpaperPicker(null);
return true;
});
menu.getMenu().add(R.string.widget_button_text).setOnMenuItemClickListener((i) -> {
if (launcher.getPackageManager().isSafeMode()) {
Toast.makeText(launcher, R.string.safemode_widget_error, Toast.LENGTH_SHORT).show();
} else {
WidgetsFullSheet.show(launcher, true /* animated */);
}
return true;
});
if (launcher.hasSettings()) {
menu.getMenu().add(R.string.settings_button_text).setOnMenuItemClickListener((i) -> {
launcher.startActivity(new Intent(Intent.ACTION_APPLICATION_PREFERENCES)
.setPackage(launcher.getPackageName())
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
return true;
});
}
menu.show();
}
}

View File

@ -60,6 +60,7 @@ import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.content.pm.PackageManager;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Point;
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
@ -122,6 +123,7 @@ import com.android.launcher3.popup.PopupDataProvider;
import com.android.launcher3.shortcuts.DeepShortcutManager;
import com.android.launcher3.states.AllAppsState;
import com.android.launcher3.states.InternalStateHandler;
import com.android.launcher3.uioverrides.UiFactory;
import com.android.launcher3.userevent.nano.LauncherLogProto;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
@ -2061,11 +2063,16 @@ public class Launcher extends BaseActivity
intent.setPackage(pickerPackage);
}
intent.setSourceBounds(getViewBounds(v));
final Bundle launchOptions;
if (v != null) {
intent.setSourceBounds(getViewBounds(v));
// If there is no target package, use the default intent chooser animation
launchOptions = hasTargetPackage ? getActivityLaunchOptions(v) : null;
} else {
launchOptions = null;
}
try {
startActivityForResult(intent, REQUEST_PICK_WALLPAPER,
// If there is no target package, use the default intent chooser animation
hasTargetPackage ? getActivityLaunchOptions(v) : null);
startActivityForResult(intent, REQUEST_PICK_WALLPAPER, launchOptions);
} catch (ActivityNotFoundException e) {
setWaitingForResult(null);
Toast.makeText(this, R.string.activity_not_found, Toast.LENGTH_SHORT).show();
@ -2221,7 +2228,7 @@ public class Launcher extends BaseActivity
getUserEventDispatcher().logActionOnContainer(Action.Touch.LONGPRESS,
Action.Direction.NONE, ContainerType.WORKSPACE,
mWorkspace.getCurrentPage());
getStateManager().goToState(OVERVIEW);
UiFactory.onWorkspaceLongPress(this);
mWorkspace.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,
HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
return true;
@ -2258,7 +2265,7 @@ public class Launcher extends BaseActivity
getUserEventDispatcher().logActionOnContainer(Action.Touch.LONGPRESS,
Action.Direction.NONE, ContainerType.WORKSPACE,
mWorkspace.getCurrentPage());
getStateManager().goToState(OVERVIEW);
UiFactory.onWorkspaceLongPress(this);
}
mWorkspace.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,
HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);

View File

@ -16,6 +16,8 @@
package com.android.launcher3.uioverrides;
import static com.android.launcher3.LauncherState.OVERVIEW;
import android.view.View.AccessibilityDelegate;
import com.android.launcher3.Launcher;
@ -39,4 +41,8 @@ public class UiFactory {
(OverviewPanel) launcher.getOverviewPanel(),
launcher.getAllAppsController(), launcher.getWorkspace() };
}
public static void onWorkspaceLongPress(Launcher launcher) {
launcher.getStateManager().goToState(OVERVIEW);
}
}