18cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev/* 28cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev * Copyright (C) 2016 The Android Open Source Project 38cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev * 48cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev * Licensed under the Apache License, Version 2.0 (the "License"); 58cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev * you may not use this file except in compliance with the License. 68cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev * You may obtain a copy of the License at 78cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev * 88cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev * http://www.apache.org/licenses/LICENSE-2.0 98cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev * 108cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev * Unless required by applicable law or agreed to in writing, software 118cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev * distributed under the License is distributed on an "AS IS" BASIS, 128cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev * See the License for the specific language governing permissions and 148cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev * limitations under the License. 158cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev */ 168cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsevpackage android.car.cluster.loggingrenderer; 178cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev 180477e29bb17ee8ec99acfa5fa966889cd45ebf34Pavel Maltsevimport android.car.cluster.renderer.InstrumentClusterRenderingService; 198cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsevimport android.car.cluster.renderer.NavigationRenderer; 208cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsevimport android.car.navigation.CarNavigationInstrumentCluster; 218cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsevimport android.graphics.Bitmap; 221fd2ff63ed701ccc8d2f86d6285e09410eedb411Pavel Maltsevimport android.os.Bundle; 238cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsevimport android.util.Log; 241fd2ff63ed701ccc8d2f86d6285e09410eedb411Pavel Maltsevimport com.google.android.collect.Lists; 258cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev 268cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev/** 270477e29bb17ee8ec99acfa5fa966889cd45ebf34Pavel Maltsev * Dummy implementation of {@link LoggingClusterRenderingService} to log all interaction. 288cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev */ 290477e29bb17ee8ec99acfa5fa966889cd45ebf34Pavel Maltsevpublic class LoggingClusterRenderingService extends InstrumentClusterRenderingService { 308cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev 310477e29bb17ee8ec99acfa5fa966889cd45ebf34Pavel Maltsev private static final String TAG = LoggingClusterRenderingService.class.getSimpleName(); 328cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev 338cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev @Override 340477e29bb17ee8ec99acfa5fa966889cd45ebf34Pavel Maltsev protected NavigationRenderer getNavigationRenderer() { 358cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev NavigationRenderer navigationRenderer = new NavigationRenderer() { 368cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev @Override 378cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev public CarNavigationInstrumentCluster getNavigationProperties() { 388cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev Log.i(TAG, "getNavigationProperties"); 398cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev CarNavigationInstrumentCluster config = 408cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev CarNavigationInstrumentCluster.createCluster(1000); 411fd2ff63ed701ccc8d2f86d6285e09410eedb411Pavel Maltsev config.getExtra().putIntegerArrayList("dummy", Lists.newArrayList(1, 2, 3, 4)); 428cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev Log.i(TAG, "getNavigationProperties, returns: " + config); 438cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev return config; 448cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev } 458cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev 468cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev 478cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev @Override 488cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev public void onStartNavigation() { 498cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev Log.i(TAG, "onStartNavigation"); 508cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev } 518cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev 528cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev @Override 538cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev public void onStopNavigation() { 548cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev Log.i(TAG, "onStopNavigation"); 558cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev } 568cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev 578cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev @Override 583388e7848f3a30029935463afafe9b8280939127Keun-young Park public void onNextTurnChanged(int event, CharSequence eventName, int turnAngle, 593388e7848f3a30029935463afafe9b8280939127Keun-young Park int turnNumber, Bitmap image, int turnSide) { 603388e7848f3a30029935463afafe9b8280939127Keun-young Park Log.i(TAG, "event: " + event + ", eventName: " + eventName + 613388e7848f3a30029935463afafe9b8280939127Keun-young Park ", turnAngle: " + turnAngle + ", turnNumber: " + turnNumber + 623388e7848f3a30029935463afafe9b8280939127Keun-young Park ", image: " + image + ", turnSide: " + turnSide); 638cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev } 648cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev 658cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev @Override 66a928f13d7e41030331afaad33ee62e3772d96541Pavel Maltsev public void onNextTurnDistanceChanged(int distanceMeters, int timeSeconds, 67a928f13d7e41030331afaad33ee62e3772d96541Pavel Maltsev int displayDistanceMillis, int displayDistanceUnit) { 688cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev Log.i(TAG, "onNextTurnDistanceChanged, distanceMeters: " + distanceMeters 69a928f13d7e41030331afaad33ee62e3772d96541Pavel Maltsev + ", timeSeconds: " + timeSeconds 70a928f13d7e41030331afaad33ee62e3772d96541Pavel Maltsev + ", displayDistanceMillis: " + displayDistanceMillis 71a928f13d7e41030331afaad33ee62e3772d96541Pavel Maltsev + ", displayDistanceUnit: " + displayDistanceUnit); 728cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev } 731fd2ff63ed701ccc8d2f86d6285e09410eedb411Pavel Maltsev 741fd2ff63ed701ccc8d2f86d6285e09410eedb411Pavel Maltsev @Override 751fd2ff63ed701ccc8d2f86d6285e09410eedb411Pavel Maltsev public void onEvent(int eventType, Bundle bundle) { 761fd2ff63ed701ccc8d2f86d6285e09410eedb411Pavel Maltsev Log.i(TAG, "onEvent, eventType: " + eventType + ", bundle: " + bundle); 771fd2ff63ed701ccc8d2f86d6285e09410eedb411Pavel Maltsev } 788cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev }; 798cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev 808cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev Log.i(TAG, "createNavigationRenderer, returns: " + navigationRenderer); 818cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev return navigationRenderer; 828cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev } 838cf86912f5abf7ceb2cf39d799a8f3b5a79d3608Pavel Maltsev} 84