/* * Copyright (c) 2013, Will Szumski * Copyright (c) 2013, Doug Szumski * * This file is part of Cyclismo. * * Cyclismo is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Cyclismo is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Cyclismo. If not, see <http://www.gnu.org/licenses/>. */ /* * Copyright 2012 Google Inc. * * 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 org.cowboycoders.cyclismo.util; import android.content.Context; import org.cowboycoders.cyclismo.R; import java.util.HashMap; /** * Utilities for track icon. * * @author Jimmy Shih */ public class TrackIconUtils { private static final String AIRPLANE = "AIRPLANE"; private static final String BIKE = "BIKE"; private static final String BOAT = "BOAT"; private static final String DRIVE = "DRIVE"; private static final String RUN = "RUN"; private static final String SKI = "SKI"; private static final String SNOW_BOARDING = "SNOW_BOARDING"; private static final String WALK = "WALK"; private TrackIconUtils() {} private static HashMap<String, Integer> map = new HashMap<String, Integer>(); static { map.put(AIRPLANE, R.drawable.track_airplane); map.put(BIKE, R.drawable.track_bike); map.put(BOAT, R.drawable.track_boat); map.put(DRIVE, R.drawable.track_drive); map.put(RUN, R.drawable.track_run); map.put(SKI, R.drawable.track_ski); map.put(SNOW_BOARDING, R.drawable.track_snow_boarding); map.put(WALK, R.drawable.track_walk); } private static int[] airplane = new int[] { R.string.activity_type_airplane, R.string.activity_type_commercial_airplane, R.string.activity_type_rc_airplane }; private static int[] bike = new int[] { R.string.activity_type_biking, R.string.activity_type_cycling, R.string.activity_type_dirt_bike, R.string.activity_type_motor_bike, R.string.activity_type_mountain_biking, R.string.activity_type_road_biking, R.string.activity_type_track_cycling }; private static int[] boat = new int[] { R.string.activity_type_boat, R.string.activity_type_ferry, R.string.activity_type_motor_boating, R.string.activity_type_rc_boat }; private static int[] drive = new int[] { R.string.activity_type_atv, R.string.activity_type_driving, R.string.activity_type_driving_bus, R.string.activity_type_driving_car }; private static int[] run = new int[] { R.string.activity_type_running, R.string.activity_type_street_running, R.string.activity_type_track_running, R.string.activity_type_trail_running }; private static int[] ski = new int[] { R.string.activity_type_cross_country_skiing, R.string.activity_type_skiing }; private static int[] snowBoarding = new int[] { R.string.activity_type_snow_boarding }; private static int[] walk = new int[] { R.string.activity_type_hiking, R.string.activity_type_off_trail_hiking, R.string.activity_type_speed_walking, R.string.activity_type_trail_hiking, R.string.activity_type_walking }; /** * Gets the icon drawable. * * @param iconValue the icon value */ public static int getIconDrawable(String iconValue) { if (iconValue == null || iconValue.equals("")) { return R.drawable.track_walk; } Integer drawable = map.get(iconValue); return drawable == null ? R.drawable.track_walk : drawable; } /** * Gets the icon value. * * @param context the context * @param activityType the activity type */ public static String getIconValue(Context context, String activityType) { if (inList(context, activityType, airplane)) { return AIRPLANE; } if (inList(context, activityType, bike)) { return BIKE; } if (inList(context, activityType, boat)) { return BOAT; } if (inList(context, activityType, drive)) { return DRIVE; } if (inList(context, activityType, run)) { return RUN; } if (inList(context, activityType, ski)) { return SKI; } if (inList(context, activityType, snowBoarding)) { return SNOW_BOARDING; } if (inList(context, activityType, walk)) { return WALK; } return ""; } /** * Returns true if the activity type is in the list. * * @param context the context * @param activityType the activity type * @param list the list */ private static boolean inList(Context context, String activityType, int[] list) { for (int i : list) { if (context.getString(i).equals(activityType)) { return true; } } return false; } }