From fe9c96a991e0c1b27a50698377f9f9b02de51896 Mon Sep 17 00:00:00 2001 From: Xiaowen Lei Date: Thu, 19 Jan 2023 15:00:26 -0800 Subject: [PATCH] Provide default implementation for some methods in BcSmartspaceDataPlugin.java. Many methods are only useful for BcSmartspaceView (At-A-Glance). Most of the default methods now throw a "Not implemented" exception. However, kept `setKeyguardBypassEnabled` as a no-op, so that it can be called in a loop over SmartspaceView's. Bug: 261752855 Test: manual Change-Id: I8f250a6d2c5a8e84f78183b4563caa56ed79f77f --- .../plugins/BcSmartspaceDataPlugin.java | 50 ++++++++++++++----- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java b/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java index bc6e5ec6117ce..e0cc8f4a7596e 100644 --- a/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java +++ b/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java @@ -50,16 +50,24 @@ public interface BcSmartspaceDataPlugin extends Plugin { String TAG = "BcSmartspaceDataPlugin"; /** Register a listener to get Smartspace data. */ - void registerListener(SmartspaceTargetListener listener); + default void registerListener(SmartspaceTargetListener listener) { + throw new UnsupportedOperationException("Not implemented by " + getClass()); + } /** Unregister a listener. */ - void unregisterListener(SmartspaceTargetListener listener); + default void unregisterListener(SmartspaceTargetListener listener) { + throw new UnsupportedOperationException("Not implemented by " + getClass()); + } /** Register a SmartspaceEventNotifier. */ - default void registerSmartspaceEventNotifier(SmartspaceEventNotifier notifier) {} + default void registerSmartspaceEventNotifier(SmartspaceEventNotifier notifier) { + throw new UnsupportedOperationException("Not implemented by " + getClass()); + } /** Push a SmartspaceTargetEvent to the SmartspaceEventNotifier. */ - default void notifySmartspaceEvent(SmartspaceTargetEvent event) {} + default void notifySmartspaceEvent(SmartspaceTargetEvent event) { + throw new UnsupportedOperationException("Not implemented by " + getClass()); + } /** Allows for notifying the SmartspaceSession of SmartspaceTargetEvents. */ interface SmartspaceEventNotifier { @@ -72,16 +80,20 @@ public interface BcSmartspaceDataPlugin extends Plugin { * will be responsible for correctly setting the LayoutParams */ default SmartspaceView getView(ViewGroup parent) { - return null; + throw new UnsupportedOperationException("Not implemented by " + getClass()); } /** * As the smartspace view becomes available, allow listeners to receive an event. */ - default void addOnAttachStateChangeListener(View.OnAttachStateChangeListener listener) { } + default void addOnAttachStateChangeListener(View.OnAttachStateChangeListener listener) { + throw new UnsupportedOperationException("Not implemented by " + getClass()); + } /** Updates Smartspace data and propagates it to any listeners. */ - void onTargetsAvailable(List targets); + default void onTargetsAvailable(List targets) { + throw new UnsupportedOperationException("Not implemented by " + getClass()); + } /** Provides Smartspace data to registered listeners. */ interface SmartspaceTargetListener { @@ -96,7 +108,9 @@ public interface BcSmartspaceDataPlugin extends Plugin { /** * Sets {@link BcSmartspaceConfigPlugin}. */ - void registerConfigProvider(BcSmartspaceConfigPlugin configProvider); + default void registerConfigProvider(BcSmartspaceConfigPlugin configProvider) { + throw new UnsupportedOperationException("Not implemented by " + getClass()); + } /** * Primary color for unprotected text @@ -138,28 +152,38 @@ public interface BcSmartspaceDataPlugin extends Plugin { /** * Set or clear Do Not Disturb information. */ - void setDnd(@Nullable Drawable image, @Nullable String description); + default void setDnd(@Nullable Drawable image, @Nullable String description) { + throw new UnsupportedOperationException("Not implemented by " + getClass()); + } /** * Set or clear next alarm information */ - void setNextAlarm(@Nullable Drawable image, @Nullable String description); + default void setNextAlarm(@Nullable Drawable image, @Nullable String description) { + throw new UnsupportedOperationException("Not implemented by " + getClass()); + } /** * Set or clear device media playing */ - void setMediaTarget(@Nullable SmartspaceTarget target); + default void setMediaTarget(@Nullable SmartspaceTarget target) { + throw new UnsupportedOperationException("Not implemented by " + getClass()); + } /** * Get the index of the currently selected page. */ - int getSelectedPage(); + default int getSelectedPage() { + throw new UnsupportedOperationException("Not implemented by " + getClass()); + } /** * Return the top padding value from the currently visible card, or 0 if there is no current * card. */ - int getCurrentCardTopPadding(); + default int getCurrentCardTopPadding() { + throw new UnsupportedOperationException("Not implemented by " + getClass()); + } } /** Interface for launching Intents, which can differ on the lockscreen */