diff --git a/packages/SystemUI/res/layout/home_controls.xml b/packages/SystemUI/res/layout/home_controls.xml index bb971c206e5ce..b9a6a482cf1a5 100644 --- a/packages/SystemUI/res/layout/home_controls.xml +++ b/packages/SystemUI/res/layout/home_controls.xml @@ -1,5 +1,5 @@ - - + android:background="?android:attr/colorBackgroundFloating"> + 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 1c8e451e52f7c..9a33c8c825cf0 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 0a59618b59a18..39ae66e7607a1 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 { 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 { 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 { 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 { } 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() { + new PluginListener() { @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 30fe68a28ef24..e00cfb16bd676 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;