1/* 2 * Copyright (C) 2012 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 17package android.bordeaux.services; 18 19import java.util.Date; 20import android.util.Log; 21import java.util.HashMap; 22import java.util.Map; 23 24class TimeStatsAggregator extends Aggregator { 25 final String TAG = "TimeStatsAggregator"; 26 public static final String CURRENT_TIME = "Current Time"; 27 final String EARLY_MORNING = "EarlyMorning"; 28 final String MORNING = "Morning"; 29 final String NOON = "Noon"; 30 final String AFTERNOON = "AfterNoon"; 31 final String NIGHT = "Night"; 32 final String LATE_NIGHT = "LateNight"; 33 34 public String[] getListOfFeatures(){ 35 String [] list = new String[1]; 36 list[0] = CURRENT_TIME; 37 return list; 38 } 39 40 public Map<String,String> getFeatureValue(String featureName) { 41 HashMap<String,String> m = new HashMap<String,String>(); 42 if (featureName.equals(CURRENT_TIME)) 43 m.put(CURRENT_TIME, getCurrentTimeLabel()); 44 else 45 Log.e(TAG, "There is no Time feature called " + featureName); 46 return (Map) m; 47 } 48 49 private String getCurrentTimeLabel(){ 50 Date d = new Date(System.currentTimeMillis()); 51 String t = ""; //TODO maybe learn thresholds 52 int h = d.getHours(); 53 if ((h > 5) & (h <= 7) ) 54 t = EARLY_MORNING; 55 else if ((h > 7) & (h <= 11) ) 56 t = MORNING; 57 else if ((h > 11) & (h <= 15)) 58 t = NOON; 59 else if ((h > 15) & (h <= 20)) 60 t = AFTERNOON; 61 else if ((h > 20) & (h <= 24)) 62 t = NIGHT; 63 else if ((h > 0) & (h <= 5)) 64 t = LATE_NIGHT; 65 return t; 66 } 67} 68