diff options
| author | 2019-10-24 19:58:38 +0000 | |
|---|---|---|
| committer | 2019-10-24 19:58:38 +0000 | |
| commit | 698c84ba527c631cfdb034b155ab4f7adcf6e128 (patch) | |
| tree | 2b7fb7eab0813075ae655b851124fa807e91b621 | |
| parent | 8943d65a634d9e0326abc66163ba800d71007053 (diff) | |
| parent | 8d4a635cc385dd0a3db38eeac870530a832402a2 (diff) | |
Merge "Reuse NPVPlugin for QS Controls Tile"
4 files changed, 24 insertions, 20 deletions
diff --git a/packages/SystemUI/res/layout/home_controls.xml b/packages/SystemUI/res/layout/home_controls.xml index bb971c206e5c..b9a6a482cf1a 100644 --- a/packages/SystemUI/res/layout/home_controls.xml +++ b/packages/SystemUI/res/layout/home_controls.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/home_controls_layout" android:layout_width="match_parent" @@ -8,6 +8,5 @@ android:visibility="gone" android:padding="8dp" android:layout_margin="5dp" - android:background="?android:attr/colorBackgroundFloating" - android:orientation="vertical"> -</LinearLayout> + android:background="?android:attr/colorBackgroundFloating"> +</FrameLayout> diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java index 1c8e451e52f7..9a33c8c825cf 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java @@ -145,7 +145,7 @@ public class QSFactoryImpl implements QSFactory { return mBluetoothTileProvider.get(); case "controls": if (Settings.System.getInt(mHost.getContext().getContentResolver(), - "qs_controls_tile_enabled", 0) == 1) { + "npv_plugin_flag", 0) == 3) { return mControlsTileProvider.get(); } else return null; case "cell": diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/ControlsTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/ControlsTile.java index 0a59618b59a1..39ae66e7607a 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/ControlsTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/ControlsTile.java @@ -22,11 +22,11 @@ import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.LinearLayout; +import android.widget.FrameLayout; import com.android.systemui.R; import com.android.systemui.plugins.ActivityStarter; -import com.android.systemui.plugins.HomeControlsPlugin; +import com.android.systemui.plugins.NPVPlugin; import com.android.systemui.plugins.PluginListener; import com.android.systemui.plugins.qs.DetailAdapter; import com.android.systemui.plugins.qs.QSTile.BooleanState; @@ -44,7 +44,7 @@ public class ControlsTile extends QSTileImpl<BooleanState> { private ControlsDetailAdapter mDetailAdapter; private final ActivityStarter mActivityStarter; private PluginManager mPluginManager; - private HomeControlsPlugin mPlugin; + private NPVPlugin mPlugin; private Intent mHomeAppIntent; @Inject @@ -81,7 +81,7 @@ public class ControlsTile extends QSTileImpl<BooleanState> { public void setDetailListening(boolean listening) { if (mPlugin == null) return; - mPlugin.setVisible(listening); + mPlugin.setListening(listening); } @Override @@ -142,7 +142,7 @@ public class ControlsTile extends QSTileImpl<BooleanState> { private class ControlsDetailAdapter implements DetailAdapter { private View mDetailView; - protected LinearLayout mHomeControlsLayout; + protected FrameLayout mHomeControlsLayout; public CharSequence getTitle() { return "Controls"; @@ -157,24 +157,30 @@ public class ControlsTile extends QSTileImpl<BooleanState> { } public View createDetailView(Context context, View convertView, final ViewGroup parent) { - mHomeControlsLayout = (LinearLayout) LayoutInflater.from(context).inflate( - R.layout.home_controls, parent, false); + if (convertView != null) return convertView; + + mHomeControlsLayout = (FrameLayout) LayoutInflater.from(context).inflate( + R.layout.home_controls, parent, false); mHomeControlsLayout.setVisibility(View.VISIBLE); + parent.addView(mHomeControlsLayout); + mPluginManager.addPluginListener( - new PluginListener<HomeControlsPlugin>() { + new PluginListener<NPVPlugin>() { @Override - public void onPluginConnected(HomeControlsPlugin plugin, + public void onPluginConnected(NPVPlugin plugin, Context pluginContext) { mPlugin = plugin; - mPlugin.sendParentGroup(mHomeControlsLayout); - mPlugin.setVisible(true); + mPlugin.attachToRoot(mHomeControlsLayout); + mPlugin.setListening(true); } @Override - public void onPluginDisconnected(HomeControlsPlugin plugin) { + public void onPluginDisconnected(NPVPlugin plugin) { + mPlugin.setListening(false); + mHomeControlsLayout.removeAllViews(); } - }, HomeControlsPlugin.class, false); + }, NPVPlugin.class, false); return mHomeControlsLayout; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 30fe68a28ef2..e00cfb16bd67 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -55,7 +55,6 @@ import android.view.ViewGroup; import android.view.WindowInsets; import android.view.accessibility.AccessibilityManager; import android.widget.FrameLayout; -import android.widget.LinearLayout; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.config.sysui.SystemUiDeviceConfigFlags; @@ -243,7 +242,7 @@ public class NotificationPanelView extends PanelView implements private View mQsNavbarScrim; protected NotificationsQuickSettingsContainer mNotificationContainerParent; protected NotificationStackScrollLayout mNotificationStackScroller; - protected LinearLayout mHomeControlsLayout; + protected FrameLayout mHomeControlsLayout; private boolean mAnimateNextPositionUpdate; private int mTrackingPointer; |