update TODOs

- assign bugs for future items
- remove it if not necessary any more
- also remove unused CarServiceApplication

bug: 31970410

Change-Id: I3f5ecb8a80fd450afdb58007e07e88527132edb9
diff --git a/car-lib/src/android/car/CarInfoManager.java b/car-lib/src/android/car/CarInfoManager.java
index 8beb8d2..b70f6c9 100644
--- a/car-lib/src/android/car/CarInfoManager.java
+++ b/car-lib/src/android/car/CarInfoManager.java
@@ -63,24 +63,22 @@
     @ValueTypeDef(type = String.class)
     public static final String BASIC_INFO_KEY_VEHICLE_ID = "android.car.vehicle-id";
 
-    //TODO
+    /* TODO bug: 32059999
     //@ValueTypeDef(type = Integer.class)
     //public static final String KEY_DRIVER_POSITION = "driver-position";
 
-    //TODO
     //@ValueTypeDef(type = int[].class)
     //public static final String KEY_SEAT_CONFIGURATION = "seat-configuration";
 
-    //TODO
     //@ValueTypeDef(type = Integer.class)
     //public static final String KEY_WINDOW_CONFIGURATION = "window-configuration";
 
-    //TODO: MT, AT, CVT, ...
+    //MT, AT, CVT, ...
     //@ValueTypeDef(type = Integer.class)
     //public static final String KEY_TRANSMISSION_TYPE = "transmission-type";
 
-    //TODO add: transmission gear available selection, gear available steps
-    //          drive wheel: FWD, RWD, AWD, 4WD
+    // add: transmission gear available selection, gear available steps
+    //          drive wheel: FWD, RWD, AWD, 4WD */
 
     private final ICarInfo mService;
 
diff --git a/car-lib/src/android/car/cluster/renderer/DisplayConfiguration.java b/car-lib/src/android/car/cluster/renderer/DisplayConfiguration.java
index 2b9f0a0..409c817 100644
--- a/car-lib/src/android/car/cluster/renderer/DisplayConfiguration.java
+++ b/car-lib/src/android/car/cluster/renderer/DisplayConfiguration.java
@@ -22,7 +22,7 @@
 import android.os.Parcelable;
 
 /**
- * TODO: need to properly define this class and make it immutable.
+ * TODO: need to properly define this class and make it immutable. bug: 32060601
  *
  * @hide
  */
diff --git a/car-lib/src/android/car/cluster/renderer/InstrumentClusterRenderer.java b/car-lib/src/android/car/cluster/renderer/InstrumentClusterRenderer.java
index 858613d..5086186 100644
--- a/car-lib/src/android/car/cluster/renderer/InstrumentClusterRenderer.java
+++ b/car-lib/src/android/car/cluster/renderer/InstrumentClusterRenderer.java
@@ -24,7 +24,7 @@
 /**
  * Interface for instrument cluster rendering.
  *
- * TODO: implement instrument cluster feature list and extend API.
+ * TODO: implement instrument cluster feature list and extend API. bug: 32060603
  *
  * @hide
  */
diff --git a/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java b/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java
index 447348f..1719190 100644
--- a/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java
+++ b/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java
@@ -23,7 +23,7 @@
 /**
  * Contains methods specified for Navigation App renderer in instrument cluster.
  *
- * TODO: Consider to add methods to report time / distance to final destination.
+ * TODO: Consider to add methods to report time / distance to final destination. bug:32060070
  * @hide
  */
 @SystemApi
diff --git a/car-lib/src/android/car/hardware/CarSensorManager.java b/car-lib/src/android/car/hardware/CarSensorManager.java
index 5baf08e..831ee73 100644
--- a/car-lib/src/android/car/hardware/CarSensorManager.java
+++ b/car-lib/src/android/car/hardware/CarSensorManager.java
@@ -346,7 +346,7 @@
      * @throws CarNotConnectedException if the connection to the car service has been lost.
      */
     public void unregisterListener(OnSensorChangedListener listener) {
-        //TODO: removing listener should reset update rate
+        //TODO: removing listener should reset update rate, bug: 32060307
         synchronized(mActiveSensorListeners) {
             Iterator<Integer> sensorIterator = mActiveSensorListeners.keySet().iterator();
             while (sensorIterator.hasNext()) {
diff --git a/car-lib/src/android/car/hardware/camera/CarCameraManager.java b/car-lib/src/android/car/hardware/camera/CarCameraManager.java
index eed670d..37cf8b9 100644
--- a/car-lib/src/android/car/hardware/camera/CarCameraManager.java
+++ b/car-lib/src/android/car/hardware/camera/CarCameraManager.java
@@ -102,7 +102,7 @@
     }
 
     public void closeCamera(CarCamera camera) {
-        // TODO:  What should we do?
+        // nothing to do for now
     }
 
     /** @hide */
diff --git a/car-systemtest-lib/src/android/car/test/CarTestManager.java b/car-systemtest-lib/src/android/car/test/CarTestManager.java
index c7a0996..4a99207 100644
--- a/car-systemtest-lib/src/android/car/test/CarTestManager.java
+++ b/car-systemtest-lib/src/android/car/test/CarTestManager.java
@@ -132,7 +132,8 @@
     }
 
     private void handleRemoteException(RemoteException e) {
-        //TODO
+        // let test fail
+        throw new RuntimeException(e);
     }
 
     private static class IVehicleNetworkHalMockImpl extends IVehicleNetworkHalMock.Stub {
diff --git a/libvehiclenetwork/include/VehicleNetworkDataTypes.h b/libvehiclenetwork/include/VehicleNetworkDataTypes.h
index f5cc209..159aad0 100644
--- a/libvehiclenetwork/include/VehicleNetworkDataTypes.h
+++ b/libvehiclenetwork/include/VehicleNetworkDataTypes.h
@@ -100,7 +100,6 @@
         if (l.config_flags != r.config_flags) {
             return false;
         }
-        //TODO config_string
         if (l.float_min_value != r.float_min_value) {
             return false;
         }
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetwork.aidl b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetwork.aidl
index a081fd0..cd16b4d 100644
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetwork.aidl
+++ b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetwork.aidl
@@ -46,6 +46,4 @@
     void stopErrorListening(in IVehicleNetworkListener listener)                         = 10;
     void startHalRestartMonitoring(in IVehicleNetworkListener listener)                  = 11;
     void stopHalRestartMonitoring(in IVehicleNetworkListener listener)                   = 12;
-
-    //TODO add specialized set for byte array for efficiency
 }
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkListener.aidl b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkListener.aidl
index 3acee49..6403e03 100644
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkListener.aidl
+++ b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkListener.aidl
@@ -29,5 +29,4 @@
     void onHalError(int errorCode, int property, int operation)        = 1;
     void onHalRestart(boolean inMocking)                               = 2;
     void onPropertySet(in VehiclePropValueParcelable value)            = 3;
-    //TODO add specialized onVehicleNetworkEvents for byte array for efficiency
 }
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetwork.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetwork.java
index 471c2c3..6dc92db 100644
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetwork.java
+++ b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetwork.java
@@ -425,7 +425,6 @@
     /**
      * Get string type property.
      */
-    //TODO check UTF8 to java string conversion
     public String getStringProperty(int property) throws IllegalArgumentException,
             ServiceSpecificException {
         VehiclePropValue v = getProperty(
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkProtoUtil.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkProtoUtil.java
index ac2f393..e8eedc1 100644
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkProtoUtil.java
+++ b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkProtoUtil.java
@@ -63,7 +63,6 @@
         if (l.getPermissionModel() != r.getPermissionModel()) {
             return false;
         }
-        //TODO add more comparison
         return true;
     }
 }
diff --git a/libvehiclenetwork/libvehiclenetwork-audio-helper/src/VehicleNetworkAudioHelper.cpp b/libvehiclenetwork/libvehiclenetwork-audio-helper/src/VehicleNetworkAudioHelper.cpp
index 770b2e3..09d6a3e 100644
--- a/libvehiclenetwork/libvehiclenetwork-audio-helper/src/VehicleNetworkAudioHelper.cpp
+++ b/libvehiclenetwork/libvehiclenetwork-audio-helper/src/VehicleNetworkAudioHelper.cpp
@@ -243,7 +243,6 @@
 }
 
 void VehicleNetworkAudioHelper::onPropertySet(const vehicle_prop_value_t &value) {
-    // TODO
 }
 
 }; // namespace android
diff --git a/libvehiclenetwork/native/IVehicleNetwork.cpp b/libvehiclenetwork/native/IVehicleNetwork.cpp
index f8ba297..ddecd3a 100644
--- a/libvehiclenetwork/native/IVehicleNetwork.cpp
+++ b/libvehiclenetwork/native/IVehicleNetwork.cpp
@@ -86,7 +86,6 @@
                 ALOGE("listProperties, cannot read blob %d", status);
                 return holder;
             }
-            //TODO make this more memory efficient
             std::unique_ptr<VehiclePropConfigs> configs(new VehiclePropConfigs());
             if (configs.get() == NULL) {
                 return holder;
@@ -338,7 +337,6 @@
                 switch (value.value_type) {
                 case VEHICLE_VALUE_TYPE_INT32:
                 case VEHICLE_VALUE_TYPE_ZONED_INT32:
-                    // TODO:  Handle array types as well?
                     if (value.value.int32_value == VEHICLE_INT_OUT_OF_RANGE_OFF) {
                         // this should be handled specially to throw IllegalStateException in java.
                         reply->writeInt32(binder::Status::EX_ILLEGAL_STATE);
@@ -347,7 +345,6 @@
                     break;
                 case VEHICLE_VALUE_TYPE_FLOAT:
                 case VEHICLE_VALUE_TYPE_ZONED_FLOAT:
-                    // TODO:  Handle array types as well?
                     if (value.value.float_value == VEHICLE_FLOAT_OUT_OF_RANGE_OFF) {
                         // this should be handled specially to throw IllegalStateException in java.
                         reply->writeInt32(binder::Status::EX_ILLEGAL_STATE);
diff --git a/libvehiclenetwork/native/IVehicleNetworkHalMock.cpp b/libvehiclenetwork/native/IVehicleNetworkHalMock.cpp
index 91e00b2..7bc9f8b 100644
--- a/libvehiclenetwork/native/IVehicleNetworkHalMock.cpp
+++ b/libvehiclenetwork/native/IVehicleNetworkHalMock.cpp
@@ -78,7 +78,6 @@
                 ALOGE("listProperties, cannot read blob %d", status);
                 return holder;
             }
-            //TODO make this more memory efficient
             std::unique_ptr<VehiclePropConfigs> configs(new VehiclePropConfigs());
             if (configs.get() == NULL) {
                 return holder;
diff --git a/libvehiclenetwork/native/VehicleNetworkProtoUtil.cpp b/libvehiclenetwork/native/VehicleNetworkProtoUtil.cpp
index c79164c..ec1db59 100644
--- a/libvehiclenetwork/native/VehicleNetworkProtoUtil.cpp
+++ b/libvehiclenetwork/native/VehicleNetworkProtoUtil.cpp
@@ -43,7 +43,6 @@
     out.set_zone(in.zone);
     switch (in.value_type) {
         case VEHICLE_VALUE_TYPE_STRING: {
-            //TODO fix ugly copy here for inplace mode
             if (in.value.str_value.len > 0) {
                 out.set_string_value((char*)in.value.str_value.data, in.value.str_value.len);
             }
@@ -119,7 +118,6 @@
                     return BAD_VALUE;
                 }
             }
-            //TODO fix copy...
             status_t r = copyString(in.string_value(), &(out.value.str_value.data),
                     &(out.value.str_value.len));
             if (r != NO_ERROR) {
diff --git a/service/src/com/android/car/CanBusErrorNotifier.java b/service/src/com/android/car/CanBusErrorNotifier.java
index 115dda0..56be067 100644
--- a/service/src/com/android/car/CanBusErrorNotifier.java
+++ b/service/src/com/android/car/CanBusErrorNotifier.java
@@ -64,7 +64,7 @@
 
     private void showNotification() {
         if (IS_RELEASE_BUILD) {
-            // TODO: for release build we should show message to take car to the dealer.
+            // TODO: for user, we should show message to take car to the dealer. bug:32096297
             return;
         }
         Notification notification;
@@ -84,7 +84,7 @@
 
     private void hideNotification() {
         if (IS_RELEASE_BUILD) {
-            // TODO: for release build we should show message to take car to the dealer.
+            // TODO: for user, we should show message to take car to the dealer. bug:32096297
             return;
         }
         mNotificationManager.cancel(TAG, NOTIFICATION_ID);
diff --git a/service/src/com/android/car/CarAudioService.java b/service/src/com/android/car/CarAudioService.java
index e4ad5db..17df7a0 100644
--- a/service/src/com/android/car/CarAudioService.java
+++ b/service/src/com/android/car/CarAudioService.java
@@ -1194,7 +1194,6 @@
             if (((mCurrentFocusState.streams & streamsToRequest) == streamsToRequest) &&
                     ((mCurrentFocusState.streams & ~streamsToRequest) != 0)) {
                 // stream is reduced, so do not release it immediately
-                //TODO find better way than blocking here.
                 try {
                     Thread.sleep(NO_FOCUS_PLAY_WAIT_TIME_MS);
                 } catch (InterruptedException e) {
@@ -1343,7 +1342,6 @@
     }
 
     private void doHandleFocusRelease() {
-        //TODO Is there a need to wait for the stopping of streams?
         boolean sent = false;
         synchronized (mLock) {
             if (mCurrentFocusState != FocusState.STATE_LOSS) {
diff --git a/service/src/com/android/car/CarPowerManagementService.java b/service/src/com/android/car/CarPowerManagementService.java
index 1563dee..34a67fa 100644
--- a/service/src/com/android/car/CarPowerManagementService.java
+++ b/service/src/com/android/car/CarPowerManagementService.java
@@ -506,15 +506,15 @@
 
     @Override
     public void onDisplayBrightnessChange(int brightness) {
-        // TODO
+        // TODO bug: 32065231
     }
 
     private void doHandleDisplayBrightnessChange(int brightness) {
-        //TODO
+        //TODO bug: 32065231
     }
 
     private void doHandleMainDisplayStateChange(boolean on) {
-        //TODO
+        //TODO bug: 32065231
     }
 
     private boolean shouldDoFakeShutdown() {
@@ -672,7 +672,7 @@
 
         @Override
         public void enterDeepSleep(int wakeupTimeSec) {
-            //TODO set wake up time
+            //TODO set wake up time, bug: 32061842
             mPowerManager.goToSleep(SystemClock.uptimeMillis(),
                     PowerManager.GO_TO_SLEEP_REASON_DEVICE_ADMIN,
                     PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE);
@@ -680,7 +680,7 @@
 
         @Override
         public boolean isSystemSupportingDeepSleep() {
-            //TODO should return by checking some kernel suspend control sysfs
+            //TODO should return by checking some kernel suspend control sysfs, bug: 32061842
             return false;
         }
 
@@ -716,8 +716,8 @@
 
         @Override
         public boolean isWakeupCausedByTimer() {
-            //TODO check wake up reason and do necessary operation information should come from
-            // kernel. it can be either power on or wake up for maintenance
+            //TODO bug: 32061842, check wake up reason and do necessary operation information should
+            // come from kernel. it can be either power on or wake up for maintenance
             // power on will involve GPIO trigger from power controller
             // its own wakeup will involve timer expiration.
             return false;
diff --git a/service/src/com/android/car/CarPropertyServiceBase.java b/service/src/com/android/car/CarPropertyServiceBase.java
index cfeb6f2..7864e6a 100644
--- a/service/src/com/android/car/CarPropertyServiceBase.java
+++ b/service/src/com/android/car/CarPropertyServiceBase.java
@@ -101,7 +101,6 @@
 
     @Override
     public void dump(PrintWriter writer) {
-        // TODO
     }
 
     @Override
@@ -209,6 +208,6 @@
 
     @Override
     public void onError(int zone, int property) {
-        // TODO:
+        // TODO bug:32068464
     }
 }
diff --git a/service/src/com/android/car/CarSensorService.java b/service/src/com/android/car/CarSensorService.java
index f0bc8d1..748d3c2 100644
--- a/service/src/com/android/car/CarSensorService.java
+++ b/service/src/com/android/car/CarSensorService.java
@@ -234,9 +234,9 @@
                     record.lastEvent = event;
                 } else if (record.lastEvent.timestamp < event.timestamp) {
                     record.lastEvent = event;
-                    //TODO recycle event
+                    //TODO recycle event, bug: 32094595
                 } else { // wrong timestamp, throw away this.
-                    //TODO recycle new event
+                    //TODO recycle new event, bug: 32094595
                     continue;
                 }
                 SensorListeners listeners = mSensorListeners.get(event.sensorType);
@@ -400,7 +400,7 @@
         return result;
     }
 
-    //TODO handle per property OEM permission
+    //TODO handle per property OEM permission. bug: 32094983
     private String getPermissionName(int sensorType) {
         if ((sensorType >= CarSensorManager.SENSOR_TYPE_VENDOR_EXTENSION_START) &&
                 (sensorType >= CarSensorManager.SENSOR_TYPE_VENDOR_EXTENSION_END)) {
@@ -424,7 +424,7 @@
     }
 
     private boolean startSensor(SensorRecord record, int sensorType, int rate) {
-        //TODO choose proper sensor rate per each sensor.
+        //TODO handle sensor rate properly. bug: 32095903
         //Some sensors which report only when there is change should be always set with maximum
         //rate. For now, set every sensor to the maximum.
         if (Log.isLoggable(CarLog.TAG_SENSOR, Log.VERBOSE)) {
diff --git a/service/src/com/android/car/CarServiceApplication.java b/service/src/com/android/car/CarServiceApplication.java
deleted file mode 100644
index 49cd8f0..0000000
--- a/service/src/com/android/car/CarServiceApplication.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.car;
-
-import android.app.Application;
-
-public class CarServiceApplication extends Application {
-
-    @Override
-    public void onCreate() {
-        // TODO Auto-generated method stub
-        super.onCreate();
-    }
-
-    @Override
-    public void onTerminate() {
-        // TODO Auto-generated method stub
-        super.onTerminate();
-    }
-
-}
diff --git a/service/src/com/android/car/CarVolumeControllerFactory.java b/service/src/com/android/car/CarVolumeControllerFactory.java
index 8ad9fef..79ada5a 100644
--- a/service/src/com/android/car/CarVolumeControllerFactory.java
+++ b/service/src/com/android/car/CarVolumeControllerFactory.java
@@ -186,11 +186,11 @@
      * volume internally. If we only support single channel, then we only send the volume change
      * event when that stream is in focus; Otherwise, we need to adjust the stream volume either on
      * software mixer level or send it the car audio module if the car support audio context
-     * and multi channel. TODO: Add support for multi channel.
+     * and multi channel. TODO: Add support for multi channel. bug: 32095376
      *
      * Per context volume should be persisted, so the volumes can stay the same across boots.
      * Depending on the hardware property, this can be persisted on car side (or/and android side).
-     * TODO: we need to define one single source of truth if the car has memory.
+     * TODO: we need to define one single source of truth if the car has memory. bug: 32091839
      */
     public static class CarExternalVolumeController extends CarVolumeController
             implements CarInputService.KeyEventListener, AudioHalService.AudioHalVolumeListener,
@@ -392,7 +392,7 @@
 
         private void initCurrentVolumeLocked() {
             if (mHasExternalMemory) {
-                // TODO: read per context volume from audio hal
+                // TODO: read per context volume from audio hal. bug: 32091839
             } else {
                 // when vhal does not work, get call can take long. For that case,
                 // for the same physical streams, cache initial get results
@@ -554,8 +554,8 @@
 
         @Override
         public void onVolumeLimitChange(int streamNumber, int volume) {
-            // TODO: How should this update be sent to SystemUI? maybe send a volume update without
-            // showing UI.
+            // TODO: How should this update be sent to SystemUI? bug: 32095237
+            // maybe send a volume update without showing UI.
             synchronized (this) {
                 initVolumeLimitLocked();
             }
@@ -592,7 +592,7 @@
             if (DBG) {
                 Log.d(TAG, "Receive volume keyevent " + event.toString());
             }
-            // TODO: properly handle long press on volume key
+            // TODO: properly handle long press on volume key, bug: 32095989
             if (!down || interceptVolKeyBeforeDispatching(mContext)) {
                 return true;
             }
diff --git a/service/src/com/android/car/CarVolumeService.java b/service/src/com/android/car/CarVolumeService.java
index a0d3033..74e7071 100644
--- a/service/src/com/android/car/CarVolumeService.java
+++ b/service/src/com/android/car/CarVolumeService.java
@@ -37,7 +37,6 @@
 public class CarVolumeService {
     private static final String TAG = "CarVolumeService";
 
-    // TODO: need to have a policy to define the default context
     public static int DEFAULT_CAR_AUDIO_CONTEXT =
             VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_MUSIC_FLAG;
     private final Context mContext;
diff --git a/service/src/com/android/car/DayNightModePolicy.java b/service/src/com/android/car/DayNightModePolicy.java
index cdf5ad5..5acbfb4 100644
--- a/service/src/com/android/car/DayNightModePolicy.java
+++ b/service/src/com/android/car/DayNightModePolicy.java
@@ -23,7 +23,7 @@
 
 import java.io.PrintWriter;
 
-//TODO
+//TODO implement default one based on time or other sensors. bug: 32066909
 public class DayNightModePolicy extends CarSensorService.LogicalSensorHalBase {
 
     private final Context mContext;
@@ -31,6 +31,8 @@
     private boolean mIsReady = false;
     private boolean mStarted = false;
 
+    private static final int[] SUPPORTED_SENSORS = { CarSensorManager.SENSOR_TYPE_NIGHT };
+
     public DayNightModePolicy(Context context) {
         mContext = context;
     }
@@ -42,7 +44,6 @@
 
     @Override
     public synchronized void release() {
-        // TODO Auto-generated method stub
     }
 
     public static CarSensorEvent getDefaultValue(int sensorType) {
@@ -59,7 +60,6 @@
 
     @Override
     public synchronized void onSensorServiceReady() {
-        // TODO Auto-generated method stub
     }
 
     @Override
@@ -69,14 +69,12 @@
 
     @Override
     public synchronized int[] getSupportedSensors() {
-        // TODO Auto-generated method stub
-        return null;
+        return SUPPORTED_SENSORS;
     }
 
     @Override
     public synchronized boolean requestSensorStart(int sensorType, int rate) {
         mStarted = true;
-        // TODO Auto-generated method stub
         Log.w(CarLog.TAG_SENSOR,
                 "DayNightModePolicy.requestSensorStart, default policy not implemented");
         return false;
@@ -84,7 +82,6 @@
 
     @Override
     public synchronized void requestSensorStop(int sensorType) {
-        // TODO Auto-generated method stub
     }
 
     private static CarSensorEvent createEvent(boolean isNight, long timestamp) {
@@ -96,6 +93,5 @@
 
     @Override
     public synchronized void dump(PrintWriter writer) {
-        // TODO Auto-generated method stub
     }
 }
diff --git a/service/src/com/android/car/DrivingStatePolicy.java b/service/src/com/android/car/DrivingStatePolicy.java
index 3507dec..4716c1e 100644
--- a/service/src/com/android/car/DrivingStatePolicy.java
+++ b/service/src/com/android/car/DrivingStatePolicy.java
@@ -86,7 +86,6 @@
 
     @Override
     public void release() {
-        // TODO Auto-generated method stub
     }
 
     public static CarSensorEvent getDefaultValue(int sensorType) {
@@ -130,7 +129,6 @@
 
     @Override
     public void dump(PrintWriter writer) {
-        // TODO Auto-generated method stub
     }
 
     private boolean subscribeIfSupportedLocked(int sensorList[], int sensorType, int rate) {
diff --git a/service/src/com/android/car/GarageModeService.java b/service/src/com/android/car/GarageModeService.java
index 92f25ea..245af0a 100644
--- a/service/src/com/android/car/GarageModeService.java
+++ b/service/src/com/android/car/GarageModeService.java
@@ -229,7 +229,7 @@
 
     private void readPolicyLocked() {
         logd("readPolicy");
-        // TODO: define a xml schema for garage mode policy and read it from system dir.
+        // TODO: define a xml schema for policy and read it from system dir. bug: 32096969
         mPolicy = new DefaultGarageModePolicy();
     }
 
@@ -269,8 +269,8 @@
          * Returns number of seconds between now to 1am {@param numDays} days later.
          */
         public static int nextWakeUpSeconds(int numDays, int hour, int min) {
-            // TODO: Should select a random time within a window to avoid all cars update at the
-            // same time.
+            // TODO: Should select a random time within a window. bug: 32096386
+            // This is to avoid all cars update at the same time.
             Calendar next = Calendar.getInstance();
             next.add(Calendar.DATE, numDays);
             next.set(Calendar.HOUR_OF_DAY, hour);
diff --git a/service/src/com/android/car/SystemStateControllerService.java b/service/src/com/android/car/SystemStateControllerService.java
index a9585f4..5746300 100644
--- a/service/src/com/android/car/SystemStateControllerService.java
+++ b/service/src/com/android/car/SystemStateControllerService.java
@@ -44,7 +44,7 @@
 
     @Override
     public long onPrepareShutdown(boolean shuttingDown) {
-        //TODO add state saving here for things to restore on power on.
+        //TODO add state saving here for things to restore on power on. bug: 32096079
         return 0;
     }
 
@@ -59,7 +59,7 @@
             if (!mICarImpl.isInMocking()) { // do not do this in mocking as it can affect test.
                 Log.i(CarLog.TAG_SYS, "Media mute");
                 mCarAudioService.muteMediaWithLock(mLockWhenMuting);
-                //TODO store last context and resume or silence radio on display on
+                //TODO store last context and resume or silence radio on display on. bug: 32096079
             }
         }
     }
@@ -71,17 +71,17 @@
 
     @Override
     public void onShutdown() {
-        // TODO
+        // TODO bug: 32096079
     }
 
     @Override
     public void onSleepEntry() {
-        // TODO
+        // TODO bug: 32096079
     }
 
     @Override
     public void onSleepExit() {
-        // TODO
+        // TODO bug: 32096079
     }
 
     @Override
diff --git a/service/src/com/android/car/hal/AudioHalService.java b/service/src/com/android/car/hal/AudioHalService.java
index c4ce31b..cb73454 100644
--- a/service/src/com/android/car/hal/AudioHalService.java
+++ b/service/src/com/android/car/hal/AudioHalService.java
@@ -375,7 +375,7 @@
                     VehicleNetworkConsts.VEHICLE_PROPERTY_AUDIO_VOLUME, payload);
         } catch (ServiceSpecificException e) {
             Log.e(CarLog.TAG_AUDIO, "Cannot write to VEHICLE_PROPERTY_AUDIO_VOLUME", e);
-            //TODO should reset volume
+            //TODO should reset volume, bug: 32096870
         }
     }
 
diff --git a/service/src/com/android/car/hal/CarPropertyUtils.java b/service/src/com/android/car/hal/CarPropertyUtils.java
index 849417e..ed97bea 100644
--- a/service/src/com/android/car/hal/CarPropertyUtils.java
+++ b/service/src/com/android/car/hal/CarPropertyUtils.java
@@ -120,7 +120,7 @@
             halType = VEHICLE_VALUE_TYPE_STRING;
             builder.setStringValue((String) o);
         } else if (o instanceof byte[]) {
-            halType = VEHICLE_VALUE_TYPE_BYTES;  // TODO: We don't have zoned type in vehicle.h
+            halType = VEHICLE_VALUE_TYPE_BYTES;  // We don't have zoned type in vehicle.h
             builder.setBytesValue(ByteString.copyFrom((byte[]) o));
         } else {
             throw new IllegalArgumentException("Unexpected type in: " + hvacProp);
diff --git a/service/src/com/android/car/hal/SensorHalService.java b/service/src/com/android/car/hal/SensorHalService.java
index fe80c54..c21bddd 100644
--- a/service/src/com/android/car/hal/SensorHalService.java
+++ b/service/src/com/android/car/hal/SensorHalService.java
@@ -170,7 +170,7 @@
         if (config == null) {
             return false;
         }
-        //TODO calculate sampling rate properly
+        //TODO calculate sampling rate properly, bug: 32095903
         mHal.subscribeProperty(this, config.getProp(), fixSamplingRateForProperty(config, rate));
         return true;
     }
diff --git a/service/src/com/android/car/hal/VehicleHal.java b/service/src/com/android/car/hal/VehicleHal.java
index 6ec50fe..94baeb0 100644
--- a/service/src/com/android/car/hal/VehicleHal.java
+++ b/service/src/com/android/car/hal/VehicleHal.java
@@ -334,13 +334,13 @@
         Log.e(CarLog.TAG_HAL, "onHalError, errorCode:" + errorCode +
                 " property:0x" + Integer.toHexString(property) +
                 " operation:" + operation);
-        // TODO propagate per property error to HAL services and handle global error
+        // TODO propagate per property error to HAL services and handle global error, bug:32068464
     }
 
     @Override
     public void onHalRestart(boolean inMocking) {
         Log.e(CarLog.TAG_HAL, "onHalRestart, inMocking:" + inMocking);
-        // TODO restart things as other components started mocking. For now, ignore.
+        // TODO restart things as other components started mocking. For now, ignore., bug:32068464
     }
 
     public void dump(PrintWriter writer) {
diff --git a/service/src/com/android/car/pm/CarPackageManagerService.java b/service/src/com/android/car/pm/CarPackageManagerService.java
index 9d02973..9f73b61 100644
--- a/service/src/com/android/car/pm/CarPackageManagerService.java
+++ b/service/src/com/android/car/pm/CarPackageManagerService.java
@@ -61,7 +61,7 @@
 import java.util.Map.Entry;
 import java.util.Set;
 
-//TODO monitor app installing and refresh policy
+//TODO monitor app installing and refresh policy, bug: 31970400
 
 public class CarPackageManagerService extends ICarPackageManager.Stub implements CarServiceBase {
     static final boolean DBG_POLICY_SET = false;
diff --git a/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkMockedTest.java b/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkMockedTest.java
index 531b3d4..2d7cf1e 100644
--- a/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkMockedTest.java
+++ b/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkMockedTest.java
@@ -587,7 +587,6 @@
 
         @Override
         public void onPropertyUnsubscribe(int property) {
-            // TODO Auto-generated method stub
         }
 
         private void setValue(VehiclePropValue value) {
diff --git a/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkTest.java b/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkTest.java
index 7a10c3f..6ec9e54 100644
--- a/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkTest.java
+++ b/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkTest.java
@@ -213,12 +213,10 @@
 
         @Override
         public void onHalError(int errorCode, int property, int operation) {
-            // TODO Auto-generated method stub
         }
 
         @Override
         public void onHalRestart(boolean inMocking) {
-            // TODO Auto-generated method stub
         }
 
         @Override
diff --git a/tests/vehicle_hal_test/src/com/android/car/vehiclenetwork/haltest/RecordingVehicleNetworkListener.java b/tests/vehicle_hal_test/src/com/android/car/vehiclenetwork/haltest/RecordingVehicleNetworkListener.java
index 61f66f3..282d9e9 100644
--- a/tests/vehicle_hal_test/src/com/android/car/vehiclenetwork/haltest/RecordingVehicleNetworkListener.java
+++ b/tests/vehicle_hal_test/src/com/android/car/vehiclenetwork/haltest/RecordingVehicleNetworkListener.java
@@ -105,17 +105,14 @@
 
     @Override
     public void onHalError(int errorCode, int property, int operation) {
-        // TODO Auto-generated method stub
     }
 
     @Override
     public void onHalRestart(boolean inMocking) {
-        // TODO Auto-generated method stub
     }
 
     @Override
     public void onPropertySet(VehiclePropValue value) {
-        // TODO
     }
 
     // To be used to compare expected vs recorded values.
diff --git a/vehicle_network_service/VehicleNetworkService.cpp b/vehicle_network_service/VehicleNetworkService.cpp
index d41d515..21171ff 100644
--- a/vehicle_network_service/VehicleNetworkService.cpp
+++ b/vehicle_network_service/VehicleNetworkService.cpp
@@ -197,7 +197,6 @@
         return false;
     }
     const vehicle_prop_value_t* cached = mCache.valueAt(index);
-    //TODO this can be improved by just passing pointer and not deleting members.
     status_t r = VehiclePropValueUtil::copyVehicleProp(value, *cached);
     if (r != NO_ERROR) {
         ALOGD("readFromCache 0x%x, copy failed %d", value->prop, r);
@@ -232,7 +231,6 @@
     if (mMockingEnabled) {
         msg.append("*Mocked Properties\n");
         for (auto& prop : mPropertiesForMocking->getList()) {
-            //TODO dump more info
             msg.appendFormat("property 0x%x\n", prop->prop);
         }
     }
@@ -325,7 +323,6 @@
         for (size_t i = 0; i < mPropertyToClientsMap.size(); i++) {
             sp<HalClientSpVector>& clients = mPropertyToClientsMap.editValueAt(i);
             clients->remove(currentClient);
-            // TODO update frame rate
             if (clients->size() == 0) {
                 int32_t property = mPropertyToClientsMap.keyAt(i);
                 propertiesToUnsubscribe.push_back(property);
@@ -466,7 +463,6 @@
         ALOGI("cannot subscribe, property 0x%x is static", property);
         return false;
     }
-    //TODO extend VNS to support event notification for set from android
     if (config->change_mode == VEHICLE_PROP_CHANGE_MODE_POLL) {
             ALOGI("cannot subscribe, property 0x%x is poll only", property);
             return false;
@@ -998,7 +994,6 @@
         // onlistProperties call. Otherwise, this will lead into dead-lock.
         mPropertiesForMocking = mock->onListProperties();
         handleHalRestartAndGetClientsToDispatchLocked(clientsToDispatch);
-        //TODO handle binder death
         handler = mHandler;
     } while (false);
     handler->handleMockStart();