11447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang/*
21447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang * Copyright (C) 2017 The Android Open Source Project
31447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang *
41447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang * Licensed under the Apache License, Version 2.0 (the "License");
51447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang * you may not use this file except in compliance with the License.
61447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang * You may obtain a copy of the License at
71447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang *
81447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang *      http://www.apache.org/licenses/LICENSE-2.0
91447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang *
101447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang * Unless required by applicable law or agreed to in writing, software
111447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang * distributed under the License is distributed on an "AS IS" BASIS,
121447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang * See the License for the specific language governing permissions and
141447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang * limitations under the License.
151447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang */
161447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang
171447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhangpackage com.android.settings.testutils.shadow;
181447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang
191447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhangimport android.content.Context;
201447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang
211447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhangimport com.android.settingslib.datetime.ZoneGetter;
221447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang
231447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhangimport org.robolectric.annotation.Implementation;
241447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhangimport org.robolectric.annotation.Implements;
251447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang
261447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhangimport java.util.ArrayList;
271447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhangimport java.util.HashMap;
281447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhangimport java.util.List;
291447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhangimport java.util.Map;
301447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhangimport java.util.TimeZone;
311447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang
321447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang@Implements(ZoneGetter.class)
331447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhangpublic class ShadowZoneGetter {
341447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang
351447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang    @Implementation
361447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang    public static List<Map<String, Object>> getZonesList(Context context) {
371447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang        List<Map<String, Object>> zones = new ArrayList<>();
381447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang        zones.add(createDisplayEntry(TimeZone.getDefault(), "gmt-1:00", "FakePlace", 10000));
391447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang        return zones;
401447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang    }
411447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang
421447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang    private static Map<String, Object> createDisplayEntry(
431447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang            TimeZone tz, CharSequence gmtOffsetText, CharSequence displayName, int offsetMillis) {
441447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang        Map<String, Object> map = new HashMap<>();
451447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang        map.put(ZoneGetter.KEY_ID, tz.getID());
461447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang        map.put(ZoneGetter.KEY_DISPLAYNAME, displayName.toString());
471447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang        map.put(ZoneGetter.KEY_DISPLAY_LABEL, displayName);
481447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang        map.put(ZoneGetter.KEY_GMT, gmtOffsetText.toString());
491447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang        map.put(ZoneGetter.KEY_OFFSET_LABEL, gmtOffsetText);
501447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang        map.put(ZoneGetter.KEY_OFFSET, offsetMillis);
511447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang        return map;
521447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang    }
531447da277b7c26713571b0e818794e70ec4dc6d2Fan Zhang}
54