• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2016 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 android.car.cluster.demorenderer;
17 
18 import android.car.cluster.renderer.DisplayConfiguration;
19 import android.car.cluster.renderer.InstrumentClusterRenderer;
20 import android.car.cluster.renderer.NavigationRenderer;
21 import android.car.navigation.CarNavigationInstrumentCluster;
22 import android.content.Context;
23 import android.view.View;
24 
25 /**
26  * Demo implementation of {@code InstrumentClusterRenderer}.
27  */
28 public class DemoInstrumentClusterRenderer extends InstrumentClusterRenderer {
29 
30     private DemoInstrumentClusterView mView;
31     private Context mContext;
32     private CallStateMonitor mPhoneStatusMonitor;
33     private MediaStateMonitor mMediaStateMonitor;
34     private DemoPhoneRenderer mPhoneRenderer;
35     private DemoMediaRenderer mMediaRenderer;
36 
37     @Override
onCreate(Context context)38     public void onCreate(Context context) {
39         mContext = context;
40     }
41 
42     @Override
onCreateView(DisplayConfiguration displayConfiguration)43     public View onCreateView(DisplayConfiguration displayConfiguration) {
44         mView = new DemoInstrumentClusterView(mContext);
45         mPhoneRenderer = new DemoPhoneRenderer(mView);
46         mMediaRenderer = new DemoMediaRenderer(mView);
47         return mView;
48     }
49 
50     @Override
onStart()51     public void onStart() {
52         mPhoneStatusMonitor = new CallStateMonitor(mContext, mPhoneRenderer);
53         mMediaStateMonitor = new MediaStateMonitor(mContext, mMediaRenderer);
54     }
55 
56     @Override
onStop()57     public void onStop() {
58         if (mPhoneStatusMonitor != null) {
59             mPhoneStatusMonitor.release();
60             mPhoneStatusMonitor = null;
61         }
62 
63         if (mMediaStateMonitor != null) {
64             mMediaStateMonitor.release();
65             mMediaStateMonitor = null;
66         }
67         mPhoneRenderer = null;
68         mMediaRenderer = null;
69     }
70 
71     @Override
createNavigationRenderer()72     protected NavigationRenderer createNavigationRenderer() {
73         return new DemoNavigationRenderer(mView);
74     }
75 
76     @Override
getNavigationProperties()77     public CarNavigationInstrumentCluster getNavigationProperties() {
78         // TODO
79         return null;
80     }
81 }
82