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