diff options
Diffstat (limited to 'src_plugins/com/android')
6 files changed, 263 insertions, 0 deletions
diff --git a/src_plugins/com/android/systemui/plugins/AppLaunchEventsPlugin.java b/src_plugins/com/android/systemui/plugins/AppLaunchEventsPlugin.java new file mode 100644 index 000000000..15a0ffaa0 --- /dev/null +++ b/src_plugins/com/android/systemui/plugins/AppLaunchEventsPlugin.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.systemui.plugins; + +import android.content.ComponentName; +import android.os.UserHandle; + +import com.android.systemui.plugins.annotations.ProvidesInterface; + +/** + * Plugin interface which sends app launch events. + */ +@ProvidesInterface(action = AppLaunchEventsPlugin.ACTION, version = AppLaunchEventsPlugin.VERSION) +public interface AppLaunchEventsPlugin extends Plugin { + String ACTION = "com.android.systemui.action.PLUGIN_APP_EVENTS"; + int VERSION = 1; + + /** + * Receives onStartShortcut event from + * {@link com.android.launcher3.appprediction.PredictionAppTracker}. + */ + void onStartShortcut(String packageName, String shortcutId, UserHandle user, String container); + + /** + * Receives onStartApp event from + * {@link com.android.launcher3.appprediction.PredictionAppTracker}. + */ + void onStartApp(ComponentName componentName, UserHandle user, String container); + + /** + * Receives onDismissApp event from + * {@link com.android.launcher3.appprediction.PredictionAppTracker}. + */ + void onDismissApp(ComponentName componentName, UserHandle user, String container); + + /** + * Receives onReturnedToHome event from + * {@link com.android.launcher3.appprediction.PredictionAppTracker}. + */ + void onReturnedToHome(); +} diff --git a/src_plugins/com/android/systemui/plugins/CustomWidgetPlugin.java b/src_plugins/com/android/systemui/plugins/CustomWidgetPlugin.java new file mode 100644 index 000000000..47aa94b40 --- /dev/null +++ b/src_plugins/com/android/systemui/plugins/CustomWidgetPlugin.java @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.plugins; + +import android.appwidget.AppWidgetHostView; +import android.content.Context; + +import com.android.systemui.plugins.annotations.ProvidesInterface; + +/** + * Implement this plugin interface to add a custom widget. + */ +@ProvidesInterface(action = CustomWidgetPlugin.ACTION, version = CustomWidgetPlugin.VERSION) +public interface CustomWidgetPlugin extends Plugin { + + String ACTION = "com.android.systemui.action.PLUGIN_CUSTOM_WIDGET"; + int VERSION = 1; + + /** + * The label to display to the user in the AppWidget picker. + */ + String getLabel(Context context); + + /** + * The default width of the widget when added to a host, in dp. The widget will get + * at least this width, and will often be given more, depending on the host. + */ + int getSpanX(Context context); + + /** + * The default height of the widget when added to a host, in dp. The widget will get + * at least this height, and will often be given more, depending on the host. + */ + int getSpanY(Context context); + + /** + * Minimum width (in dp) which the widget can be resized to. This field has no effect if it + * is greater than minWidth or if horizontal resizing isn't enabled. + */ + int getMinSpanX(Context context); + + /** + * Minimum height (in dp) which the widget can be resized to. This field has no effect if it + * is greater than minHeight or if vertical resizing isn't enabled. + */ + int getMinSpanY(Context context); + + /** + * The rules by which a widget can be resized. + */ + int getResizeMode(Context context); + + /** + * Notify the plugin that container of the widget has been rendered, where the custom widget + * can be attached to. + */ + void onViewCreated(Context context, AppWidgetHostView parent); +} diff --git a/src_plugins/com/android/systemui/plugins/HotseatPlugin.java b/src_plugins/com/android/systemui/plugins/HotseatPlugin.java new file mode 100644 index 000000000..1264e0d3b --- /dev/null +++ b/src_plugins/com/android/systemui/plugins/HotseatPlugin.java @@ -0,0 +1,20 @@ +package com.android.systemui.plugins; + +import android.view.View; +import android.view.ViewGroup; + +import com.android.systemui.plugins.annotations.ProvidesInterface; + +/** + * Implement this plugin interface to add a sub-view in the Hotseat. + */ +@ProvidesInterface(action = HotseatPlugin.ACTION, version = HotseatPlugin.VERSION) +public interface HotseatPlugin extends Plugin { + String ACTION = "com.android.systemui.action.PLUGIN_HOTSEAT"; + int VERSION = 1; + + /** + * Creates a plugin view which will be added to the Hotseat. + */ + View createView(ViewGroup parent); +} diff --git a/src_plugins/com/android/systemui/plugins/OverviewScreenshotActions.java b/src_plugins/com/android/systemui/plugins/OverviewScreenshotActions.java new file mode 100644 index 000000000..8d9c0f4e1 --- /dev/null +++ b/src_plugins/com/android/systemui/plugins/OverviewScreenshotActions.java @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.plugins; + +import android.app.Activity; +import android.graphics.Bitmap; +import android.view.ViewGroup; + +import com.android.systemui.plugins.annotations.ProvidesInterface; + +/** + * Implement this interface to add action buttons for overview screenshots, e.g. share, edit etc. + */ +@ProvidesInterface( + action = OverviewScreenshotActions.ACTION, version = OverviewScreenshotActions.VERSION) +public interface OverviewScreenshotActions extends Plugin { + String ACTION = "com.android.systemui.action.PLUGIN_OVERVIEW_SCREENSHOT_ACTIONS"; + int VERSION = 1; + + /** + * Setup the actions for the screenshot, including edit, save, etc. + * @param parent The parent view to add buttons on. + * @param screenshot The screenshot we will do actions on. + * @param activity THe host activity. + */ + void setupActions(ViewGroup parent, Bitmap screenshot, Activity activity); +} diff --git a/src_plugins/com/android/systemui/plugins/RecentsExtraCard.java b/src_plugins/com/android/systemui/plugins/RecentsExtraCard.java new file mode 100644 index 000000000..0ebea3d47 --- /dev/null +++ b/src_plugins/com/android/systemui/plugins/RecentsExtraCard.java @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.plugins; + +import android.app.Activity; +import android.content.Context; +import android.widget.FrameLayout; + +import com.android.systemui.plugins.annotations.ProvidesInterface; + +/** + * Implement this interface to allow extra card on recents overview. + */ +@ProvidesInterface(action = RecentsExtraCard.ACTION, version = RecentsExtraCard.VERSION) +public interface RecentsExtraCard extends Plugin { + + String ACTION = "com.android.systemui.action.PLUGIN_RECENTS_EXTRA_CARD"; + int VERSION = 1; + + /** + * Sets up the recents overview extra card and fills in data. + * + * @param context Plugin context + * @param frameLayout PlaceholderView + * @param activity Recents activity to hold extra view + */ + void setupView(Context context, FrameLayout frameLayout, Activity activity); +} diff --git a/src_plugins/com/android/systemui/plugins/UserEventPlugin.java b/src_plugins/com/android/systemui/plugins/UserEventPlugin.java new file mode 100644 index 000000000..0e3664ae3 --- /dev/null +++ b/src_plugins/com/android/systemui/plugins/UserEventPlugin.java @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.plugins; + +import com.android.systemui.plugins.annotations.ProvidesInterface; + +/** + * Implement this plugin interface to access user event log on the device for prototype purpose. + * NOTE: plugin is for internal prototype only and is not visible in production environment. + */ +@ProvidesInterface(action = UserEventPlugin.ACTION, version = UserEventPlugin.VERSION) +public interface UserEventPlugin extends Plugin { + String ACTION = "com.android.launcher3.action.PLUGIN_USER_EVENT_LOG"; + int VERSION = 1; + + /** + * Callback to be triggered whenever an user event occurs. + */ + void onUserEvent(Object event); +} |