diff --git a/packages/SystemUI/res/layout/car_qs_detail.xml b/packages/SystemUI/res/layout/car_qs_detail.xml deleted file mode 100644 index 5703f7ee5a4e4..0000000000000 --- a/packages/SystemUI/res/layout/car_qs_detail.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - diff --git a/packages/SystemUI/res/layout/car_qs_panel.xml b/packages/SystemUI/res/layout/car_qs_panel.xml index 4f7fa15921f84..d1f7ff83db934 100644 --- a/packages/SystemUI/res/layout/car_qs_panel.xml +++ b/packages/SystemUI/res/layout/car_qs_panel.xml @@ -24,11 +24,4 @@ - - - - diff --git a/packages/SystemUI/src/com/android/systemui/qs/car/CarQSDetail.java b/packages/SystemUI/src/com/android/systemui/qs/car/CarQSDetail.java deleted file mode 100644 index 1fc6bf4840dfb..0000000000000 --- a/packages/SystemUI/src/com/android/systemui/qs/car/CarQSDetail.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (C) 2017 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.qs.car; - -import android.annotation.Nullable; -import android.content.Context; -import android.content.res.Configuration; -import android.util.AttributeSet; -import android.util.SparseArray; -import android.view.View; -import android.widget.FrameLayout; - -import com.android.internal.logging.MetricsLogger; -import com.android.systemui.Dependency; -import com.android.systemui.plugins.qs.DetailAdapter; -import com.android.systemui.qs.QSDetail; -import com.android.systemui.qs.QSPanel; - -/** - * The detail view that displays below the status bar header in the auto use-case. This view - * additional details of quick settings options, such as for showing the users when user switcher - * has been selected. - */ -public class CarQSDetail extends FrameLayout { - - private final SparseArray mDetailViews = new SparseArray<>(); - - private DetailAdapter mDetailAdapter; - - public CarQSDetail(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - } - - @Override - public void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - - for (int i = 0; i < mDetailViews.size(); i++) { - mDetailViews.valueAt(i).dispatchConfigurationChanged(newConfig); - } - } - - public void setQsPanel(QSPanel panel) { - panel.setCallback(mQsPanelCallback); - } - - public boolean isShowingDetail() { - return mDetailAdapter != null; - } - - public void handleShowingDetail(@Nullable DetailAdapter adapter) { - boolean showingDetail = adapter != null; - setClickable(showingDetail); - - // If it's already in the right state (not showing or already showing the right adapter), - // then no need to change. - if ((mDetailAdapter == null && adapter == null) || mDetailAdapter == adapter) { - return; - } - - if (showingDetail) { - int viewCacheIndex = adapter.getMetricsCategory(); - View detailView = adapter.createDetailView(mContext, mDetailViews.get(viewCacheIndex), - this); - if (detailView == null) { - throw new IllegalStateException("Must return detail view"); - } - - removeAllViews(); - addView(detailView); - mDetailViews.put(viewCacheIndex, detailView); - Dependency.get(MetricsLogger.class).visible(adapter.getMetricsCategory()); - mDetailAdapter = adapter; - setVisibility(View.VISIBLE); - } else { - if (mDetailAdapter != null) { - Dependency.get(MetricsLogger.class).hidden(mDetailAdapter.getMetricsCategory()); - } - mDetailAdapter = null; - setVisibility(View.GONE); - } - } - - private QSDetail.Callback mQsPanelCallback = new QSDetail.Callback() { - @Override - public void onToggleStateChanged(final boolean state) { - } - - @Override - public void onShowingDetail(final DetailAdapter detail, final int x, final int y) { - post(() -> handleShowingDetail(detail)); - } - - @Override - public void onScanStateChanged(final boolean state) { - } - }; -} diff --git a/packages/SystemUI/src/com/android/systemui/qs/car/CarQSFooter.java b/packages/SystemUI/src/com/android/systemui/qs/car/CarQSFooter.java index ab79646d240bd..9730f29da9770 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/car/CarQSFooter.java +++ b/packages/SystemUI/src/com/android/systemui/qs/car/CarQSFooter.java @@ -18,7 +18,6 @@ import android.content.Intent; import android.graphics.drawable.Drawable; import android.support.annotation.Nullable; import android.util.AttributeSet; -import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; @@ -38,16 +37,11 @@ import com.android.systemui.statusbar.policy.UserInfoController; */ public class CarQSFooter extends RelativeLayout implements QSFooter, UserInfoController.OnUserInfoChangedListener { - private static final String TAG = "CarQSFooter"; - private UserInfoController mUserInfoController; private MultiUserSwitch mMultiUserSwitch; private ImageView mMultiUserAvatar; - private CarQSDetail mQsDetail; - private QSPanel mQsPanel; - public CarQSFooter(Context context, AttributeSet attrs) { super(context, attrs); } @@ -60,21 +54,6 @@ public class CarQSFooter extends RelativeLayout implements QSFooter, mUserInfoController = Dependency.get(UserInfoController.class); - mMultiUserSwitch.setOnClickListener(v -> { - if (mQsDetail == null || mQsPanel == null) { - Log.e(TAG, "CarQSFooter not properly set up; cannot display user switcher."); - return; - } - - // MultiUserSwitch.onClick() shows the detail, but does not close the detail, so need - // to use the detail's showing state to determine the correct action. - if (mQsDetail.isShowingDetail()) { - mQsPanel.closeDetail(); - } else { - mMultiUserSwitch.onClick(v); - } - }); - findViewById(R.id.settings_button).setOnClickListener(v -> { ActivityStarter activityStarter = Dependency.get(ActivityStarter.class); @@ -94,22 +73,11 @@ public class CarQSFooter extends RelativeLayout implements QSFooter, mMultiUserAvatar.setImageDrawable(picture); } - /** - * Needed for setup in order to allow the multi user switch to show the users. - * - * @param panel the QSPanel that listens to the user switch controller. This cannot be null - * during normal operation. - */ @Override public void setQSPanel(@Nullable QSPanel panel) { if (panel != null) { mMultiUserSwitch.setQsPanel(panel); } - mQsPanel = panel; - } - - public void setQSDetail(CarQSDetail detail) { - mQsDetail = detail; } @Override diff --git a/packages/SystemUI/src/com/android/systemui/qs/car/CarQSFragment.java b/packages/SystemUI/src/com/android/systemui/qs/car/CarQSFragment.java index 1605cad24e713..7c2a8129813a5 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/car/CarQSFragment.java +++ b/packages/SystemUI/src/com/android/systemui/qs/car/CarQSFragment.java @@ -25,7 +25,6 @@ import android.view.ViewGroup; import com.android.systemui.R; import com.android.systemui.plugins.qs.QS; import com.android.systemui.qs.QSFooter; -import com.android.systemui.qs.QSPanel; /** * A quick settings fragment for the car. For auto, there is no row for quick settings or ability @@ -34,9 +33,7 @@ import com.android.systemui.qs.QSPanel; */ public class CarQSFragment extends Fragment implements QS { private View mHeader; - private CarQSFooter mFooter; - private QSPanel mQsPanel; - private CarQSDetail mQsDetail; + private QSFooter mFooter; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @@ -49,13 +46,6 @@ public class CarQSFragment extends Fragment implements QS { super.onViewCreated(view, savedInstanceState); mHeader = view.findViewById(R.id.header); mFooter = view.findViewById(R.id.qs_footer); - mQsPanel = view.findViewById(R.id.quick_settings_panel); - mQsDetail = view.findViewById(R.id.qs_detail); - - // Inform each other about their existence. - mQsDetail.setQsPanel(mQsPanel); - mFooter.setQSDetail(mQsDetail); - mFooter.setQSPanel(mQsPanel); } @Override @@ -133,13 +123,13 @@ public class CarQSFragment extends Fragment implements QS { @Override public boolean isShowingDetail() { - return mQsDetail.isShowingDetail(); + // No detail panel to close. + return false; } @Override public void closeDetail() { - mQsDetail.setVisibility(View.GONE); - mQsPanel.closeDetail(); + // No detail panel to close. } @Override diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/car/CarQsFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/car/CarQsFragmentTest.java index f770631ceb7c5..4f87b02ed35f2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/car/CarQsFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/car/CarQsFragmentTest.java @@ -28,7 +28,6 @@ import com.android.keyguard.CarrierText; import com.android.systemui.Dependency; import com.android.systemui.SysuiBaseFragmentTest; import com.android.systemui.statusbar.policy.Clock; -import com.android.systemui.statusbar.policy.UserSwitcherController; import org.junit.Before; import org.junit.Test; @@ -58,8 +57,6 @@ public class CarQsFragmentTest extends SysuiBaseFragmentTest { mDependency.injectTestDependency(Dependency.BG_LOOPER, TestableLooper.get(this).getLooper()); - mDependency.injectMockDependency(UserSwitcherController.class); - injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES); } @Test