1948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson/* 2948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson * Copyright (C) 2012 The Android Open Source Project 3948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson * 4948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson * Licensed under the Apache License, Version 2.0 (the "License"); 5948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson * you may not use this file except in compliance with the License. 6948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson * You may obtain a copy of the License at 7948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson * 8948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson * http://www.apache.org/licenses/LICENSE-2.0 9948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson * 10948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson * Unless required by applicable law or agreed to in writing, software 11948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson * distributed under the License is distributed on an "AS IS" BASIS, 12948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson * See the License for the specific language governing permissions and 14948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson * limitations under the License. 15948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson */ 16948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson 17948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelsonpackage com.android.deskclock.worldclock; 18948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson 19948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelsonimport android.content.SharedPreferences; 20948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelsonimport android.util.Log; 21948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson 22948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelsonimport java.util.Collection; 23948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelsonimport java.util.HashMap; 24948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelsonimport java.util.Iterator; 25948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson 26948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelsonpublic class Cities { 27948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson 287048625adb7c349deab4c00b2d85bcf65c164ae5Isaac Katzenelson public static final String WORLDCLOCK_UPDATE_INTENT = "com.android.deskclock.worldclock.update"; 29948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson private static final String NUMBER_OF_CITIES = "number_of_cities"; 30948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson 31948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson public static void saveCitiesToSharedPrefs( 32948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson SharedPreferences prefs, HashMap<String, CityObj> cities) { 33d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson SharedPreferences.Editor editor = prefs.edit(); 34d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson editor.putInt(NUMBER_OF_CITIES, cities.size()); 35d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson Collection<CityObj> col = cities.values(); 36d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson Iterator<CityObj> i = col.iterator(); 37d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson int count = 0; 38d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson while (i.hasNext()) { 39d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson CityObj c = i.next(); 40d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson c.saveCityToSharedPrefs(editor, count); 41d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson count++; 42d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson } 43d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson editor.apply(); 44948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson } 45948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson 46948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson public static HashMap<String, CityObj> readCitiesFromSharedPrefs(SharedPreferences prefs) { 47d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson int size = prefs.getInt(NUMBER_OF_CITIES, -1); 48d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson HashMap<String, CityObj> c = new HashMap<String, CityObj>(); 49d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson if (size > 0) { 50d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson for (int i = 0; i < size; i++) { 51d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson CityObj o = new CityObj(prefs, i); 52d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson if (o.mCityName != null && o.mTimeZone != null) { 53d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson c.put(o.mCityId, o); 54948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson } 55948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson } 56d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson } 57d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson return c; 58948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson } 59948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson 60948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson private static void dumpCities(SharedPreferences prefs, String title) { 61948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson int size = prefs.getInt(NUMBER_OF_CITIES, -1); 62d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson Log.d("Cities", "Selected Cities List " + title); 63d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson Log.d("Cities", "Number of cities " + size); 64d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson HashMap<String, CityObj> c = new HashMap<String, CityObj>(); 65948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson if (size > 0) { 66948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson for (int i = 0; i < size; i++) { 67948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson CityObj o = new CityObj(prefs, i); 68948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson if (o.mCityName != null && o.mTimeZone != null) { 69d4bbc122b90c63c5906ad32c4652b72c9409fd44Isaac Katzenelson Log.d("Cities", "Name " + o.mCityName + " tz " + o.mTimeZone); 70948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson } 71948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson } 72948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson } 73948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson } 74948edb548f26c6aef3d918d01d80ea37570da41dIsaac Katzenelson} 75