• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2024 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.systemui.car.hvac;
17 
18 import android.view.View;
19 
20 import com.android.systemui.car.systembar.element.CarSystemBarElementController;
21 import com.android.systemui.car.systembar.element.CarSystemBarElementStateController;
22 import com.android.systemui.car.systembar.element.CarSystemBarElementStatusBarDisableController;
23 
24 import dagger.assisted.Assisted;
25 import dagger.assisted.AssistedFactory;
26 import dagger.assisted.AssistedInject;
27 
28 /**
29  * A CarSystemBarElementController for handling hvac button interactions.
30  */
31 public class TemperatureControlViewController extends
32             CarSystemBarElementController<TemperatureControlView> {
33 
34     private final HvacPanelOverlayViewController mHvacPanelOverlayViewController;
35     private final HvacController mHvacController;
36 
37     @AssistedInject
TemperatureControlViewController(@ssisted TemperatureControlView hvacButton, CarSystemBarElementStatusBarDisableController disableController, CarSystemBarElementStateController stateController, HvacPanelOverlayViewController hvacPanelOverlayViewController, HvacController hvacController)38     public TemperatureControlViewController(@Assisted TemperatureControlView hvacButton,
39             CarSystemBarElementStatusBarDisableController disableController,
40             CarSystemBarElementStateController stateController,
41             HvacPanelOverlayViewController hvacPanelOverlayViewController,
42             HvacController hvacController) {
43         super(hvacButton, disableController, stateController);
44 
45         mHvacPanelOverlayViewController = hvacPanelOverlayViewController;
46         hvacButton.setTemperatureTextClickListener(this::onHvacClick);
47         mHvacController = hvacController;
48     }
49 
50     @AssistedFactory
51     public interface Factory extends
52             CarSystemBarElementController.Factory<TemperatureControlView,
53                     TemperatureControlViewController> {
54     }
55 
56     @Override
onViewAttached()57     protected void onViewAttached() {
58         super.onViewAttached();
59         mHvacController.registerHvacViews(mView);
60     }
61 
62     @Override
onViewDetached()63     protected void onViewDetached() {
64         super.onViewDetached();
65         mHvacController.unregisterViews(mView);
66     }
67 
onHvacClick(View v)68     private void onHvacClick(View v) {
69         mHvacPanelOverlayViewController.toggle();
70     }
71 }
72