1 /*
2  * Copyright (C) 2021 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 
17 package com.android.keyguard;
18 
19 import com.android.systemui.util.ViewController;
20 
21 import javax.inject.Inject;
22 
23 /**
24  * Controller for {@link CarrierText}.
25  */
26 public class CarrierTextController extends ViewController<CarrierText> {
27     private final CarrierTextManager mCarrierTextManager;
28     private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
29     private final CarrierTextManager.CarrierTextCallback mCarrierTextCallback =
30             new CarrierTextManager.CarrierTextCallback() {
31                 @Override
32                 public void updateCarrierInfo(CarrierTextManager.CarrierTextCallbackInfo info) {
33                     mView.setText(info.carrierText);
34                 }
35 
36                 @Override
37                 public void startedGoingToSleep() {
38                     mView.setSelected(false);
39                 }
40 
41                 @Override
42                 public void finishedWakingUp() {
43                     mView.setSelected(true);
44                 }
45             };
46 
47     @Inject
CarrierTextController(CarrierText view, CarrierTextManager.Builder carrierTextManagerBuilder, KeyguardUpdateMonitor keyguardUpdateMonitor)48     public CarrierTextController(CarrierText view,
49             CarrierTextManager.Builder carrierTextManagerBuilder,
50             KeyguardUpdateMonitor keyguardUpdateMonitor) {
51         super(view);
52 
53         mCarrierTextManager = carrierTextManagerBuilder
54                 .setShowAirplaneMode(mView.getShowAirplaneMode())
55                 .setShowMissingSim(mView.getShowMissingSim())
56                 .setDebugLocationString(mView.getDebugLocation())
57                 .build();
58         mKeyguardUpdateMonitor = keyguardUpdateMonitor;
59     }
60 
61     @Override
onInit()62     protected void onInit() {
63         super.onInit();
64         mView.setSelected(mKeyguardUpdateMonitor.isDeviceInteractive());
65     }
66 
67     @Override
onViewAttached()68     protected void onViewAttached() {
69         mCarrierTextManager.setListening(mCarrierTextCallback);
70     }
71 
72     @Override
onViewDetached()73     protected void onViewDetached() {
74         mCarrierTextManager.setListening(null);
75     }
76 }
77