示例#1
0
 public AlarmInfo calculateMostImportantAlarm(
     RouteDataObject ro, Location loc, MetricsConstants mc, boolean showCameras) {
   float mxspeed = ro.getMaximumSpeed();
   AlarmInfo speedAlarm = createSpeedAlarm(mc, mxspeed, loc);
   if (speedAlarm != null) {
     voiceRouter.announceAlarm(speedAlarm);
     return speedAlarm;
   }
   for (int i = 0; i < ro.getPointsLength(); i++) {
     int[] pointTypes = ro.getPointTypes(i);
     RouteRegion reg = ro.region;
     if (pointTypes != null) {
       for (int r = 0; r < pointTypes.length; r++) {
         RouteTypeRule typeRule = reg.quickGetEncodingRule(pointTypes[r]);
         AlarmInfo info = AlarmInfo.createAlarmInfo(typeRule, 0);
         if (info != null) {
           if (info.getType() != AlarmInfoType.SPEED_CAMERA || showCameras) {
             voiceRouter.announceAlarm(info);
             return info;
           }
         }
       }
     }
   }
   return null;
 }