Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d0437eb1 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update Hvac to remove the self register or ui components with their controller"

parents 690e9065 f084d889
Loading
Loading
Loading
Loading
+2 −9
Original line number Diff line number Diff line
@@ -23,8 +23,6 @@ import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import com.android.systemui.statusbar.car.hvac.TemperatureView;
import com.android.systemui.statusbar.car.hvac.HvacController;
import android.util.AttributeSet;
import android.util.Property;
import android.view.Gravity;
@@ -36,8 +34,8 @@ import android.widget.ImageView;
import android.widget.TextSwitcher;
import android.widget.TextView;

import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.statusbar.car.hvac.TemperatureView;

/**
 * Simple text display of HVAC properties, It is designed to show mTemperature and is configured in
@@ -47,8 +45,6 @@ import com.android.systemui.R;
 * hvacAreaId - Example: VehicleSeat.SEAT_ROW_1_LEFT (1)
 * hvacTempFormat - Example: "%.1f\u00B0" (1 decimal and the degree symbol)
 * hvacOrientaion = Example: left
 * <p>
 * Note: It registers itself with {@link HvacController}
 */
public class AnimatedTemperatureView extends FrameLayout implements TemperatureView {

@@ -158,12 +154,9 @@ public class AnimatedTemperatureView extends FrameLayout implements TemperatureV
                ViewGroup.LayoutParams.MATCH_PARENT);

        typedArray.recycle();

        // register with controller
        HvacController hvacController = Dependency.get(HvacController.class);
        hvacController.addHvacTextView(this);
    }


    private TextView generateTextView() {
        TextView textView = new TextView(getContext());
        textView.setTextAppearance(mTextAppearanceRes);
+3 −1
Original line number Diff line number Diff line
@@ -131,7 +131,9 @@ class TemperatureBackgroundAnimator {
    }

    void animateOpen() {
        if (!mAnimationsReady || mCircleState == CircleState.ENTERING) {
        if (!mAnimationsReady
                || !mAnimatedView.isAttachedToWindow()
                || mCircleState == CircleState.ENTERING) {
            return;
        }

+26 −6
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import com.android.systemui.recents.misc.SysUiTaskStackChangeListener;
import com.android.systemui.shared.system.ActivityManagerWrapper;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.car.hvac.HvacController;
import com.android.systemui.statusbar.car.hvac.TemperatureView;
import com.android.systemui.statusbar.phone.CollapsedStatusBarFragment;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.policy.BatteryController;
@@ -82,6 +83,7 @@ public class CarStatusBar extends StatusBar implements
    private ActivityManagerWrapper mActivityManagerWrapper;
    private DeviceProvisionedController mDeviceProvisionedController;
    private boolean mDeviceIsProvisioned = true;
    private HvacController mHvacController;

    @Override
    public void start() {
@@ -95,8 +97,7 @@ public class CarStatusBar extends StatusBar implements
        createBatteryController();
        mCarBatteryController.startListening();

        Log.d(TAG, "Connecting to HVAC service");
        Dependency.get(HvacController.class).connectToCarService();
        mHvacController.connectToCarService();

        mCarFacetButtonController = Dependency.get(CarFacetButtonController.class);
        mDeviceProvisionedController = Dependency.get(DeviceProvisionedController.class);
@@ -119,10 +120,11 @@ public class CarStatusBar extends StatusBar implements
     * before and after the device is provisioned
     */
    private void restartNavBars() {
        // remove and reattach all hvac components such that we don't keep a reference to unused
        // ui elements
        mHvacController.removeAllComponents();
        addTemperatureViewToController(mStatusBarWindow);
        mCarFacetButtonController.removeAll();

        Dependency.get(HvacController.class).removeAllComponents();

        if (mNavigationBarWindow != null) {
            mNavigationBarWindow.removeAllViews();
            mNavigationBarView = null;
@@ -137,9 +139,22 @@ public class CarStatusBar extends StatusBar implements
            mRightNavigationBarWindow.removeAllViews();
            mRightNavigationBarView = null;
        }

        buildNavBarContent();
    }

    private void addTemperatureViewToController(View v) {
        if (v instanceof TemperatureView) {
            Log.d(TAG, "addTemperatureViewToController: found ");
            mHvacController.addHvacTextView((TemperatureView) v);
        } else if (v instanceof ViewGroup) {
            ViewGroup viewGroup = (ViewGroup) v;
            for (int i = 0; i < viewGroup.getChildCount(); i++) {
                addTemperatureViewToController(viewGroup.getChildAt(i));
            }
        }
    }

    /**
     * Allows for showing or hiding just the navigation bars. This is indented to be used when
     * the full screen user selector is shown.
@@ -214,6 +229,7 @@ public class CarStatusBar extends StatusBar implements
    @Override
    protected void makeStatusBarView() {
        super.makeStatusBarView();
        mHvacController = Dependency.get(HvacController.class);

        mNotificationPanelBackground = getDefaultWallpaper();
        mScrimController.setScrimBehindDrawable(mNotificationPanelBackground);
@@ -226,6 +242,7 @@ public class CarStatusBar extends StatusBar implements
            // when a device has connected by bluetooth.
            mBatteryMeterView.setVisibility(View.GONE);
        });
        addTemperatureViewToController(mStatusBarWindow);
    }

    private BatteryController createBatteryController() {
@@ -264,7 +281,6 @@ public class CarStatusBar extends StatusBar implements

    private void buildNavBarWindows() {
        if (mShowBottom) {

            mNavigationBarWindow = (ViewGroup) View.inflate(mContext,
                    R.layout.navigation_bar_window, null);
        }
@@ -342,6 +358,7 @@ public class CarStatusBar extends StatusBar implements
            throw new RuntimeException("Unable to build botom nav bar due to missing layout");
        }
        mNavigationBarView.setStatusBar(this);
        addTemperatureViewToController(mNavigationBarView);
    }

    private void buildLeft(int layout) {
@@ -352,6 +369,7 @@ public class CarStatusBar extends StatusBar implements
            throw new RuntimeException("Unable to build left nav bar due to missing layout");
        }
        mLeftNavigationBarView.setStatusBar(this);
        addTemperatureViewToController(mLeftNavigationBarView);
    }


@@ -362,6 +380,8 @@ public class CarStatusBar extends StatusBar implements
            Log.e(TAG, "CarStatusBar failed inflate for R.layout.car_navigation_bar");
            throw new RuntimeException("Unable to build right nav bar due to missing layout");
        }
        mRightNavigationBarView.setStatusBar(this);
        addTemperatureViewToController(mRightNavigationBarView);
    }

    @Override
+0 −1
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.systemui.statusbar.car.hvac;

import android.car.Car;
import android.car.CarNotConnectedException;
import android.car.hardware.CarPropertyValue;
import android.car.hardware.hvac.CarHvacManager;
import android.car.hardware.hvac.CarHvacManager.CarHvacEventCallback;
+0 −7
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.widget.TextView;

import com.android.systemui.Dependency;
import com.android.systemui.R;

/**
@@ -31,8 +30,6 @@ import com.android.systemui.R;
 * hvacPropertyId - Example: CarHvacManager.ID_ZONED_TEMP_SETPOINT (16385)
 * hvacAreaId - Example: VehicleSeat.SEAT_ROW_1_LEFT (1)
 * hvacTempFormat - Example: "%.1f\u00B0" (1 decimal and the degree symbol)
 *
 * Note: It registers itself with {@link HvacController}
 */
public class TemperatureTextView extends TextView implements TemperatureView {

@@ -47,10 +44,6 @@ public class TemperatureTextView extends TextView implements TemperatureView {
        mPropertyId = typedArray.getInt(R.styleable.TemperatureView_hvacPropertyId, -1);
        String format = typedArray.getString(R.styleable.TemperatureView_hvacTempFormat);
        mTempFormat = (format == null) ? "%.1f\u00B0" : format;

        // register with controller
        HvacController hvacController = Dependency.get(HvacController.class);
        hvacController.addHvacTextView(this);
    }

    /**