/** * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. * * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, * copy, modify, and distribute this software in source code or binary form for use * in connection with the web services and APIs provided by Facebook. * * As with any software that integrates with the Facebook platform, your use of * this software is subject to the Facebook Developer Principles and Policies * [http://developers.facebook.com/policy/]. This copyright notice shall be * included in all copies or substantial portions of the software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.example.places.model; import android.text.TextUtils; import android.util.SparseArray; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; public class OpeningHours { public static final int MONDAY = 0; public static final int TUESDAY = 1; public static final int WEDNESDAY = 2; public static final int THURSDAY = 3; public static final int FRIDAY = 4; public static final int SATURDAY = 5; public static final int SUNDAY = 6; private static final String[] DAY_PREFIX = new String[] {"mon", "tue", "wed","thu", "fri", "sat","sun"}; private final SparseArray<List<String>> openingHours = new SparseArray<>(); public List<String> getHoursInterval(int day) { return openingHours.get(day); } public static OpeningHours parse(Place place) { JSONObject jsonHours = place.getJson(Place.HOURS); if (jsonHours != null) { OpeningHours instance = new OpeningHours(); for (int i = MONDAY; i <= SUNDAY; i++) { List<String> hoursIntervals = getOpeningHoursOfADay(jsonHours, DAY_PREFIX[i]); if (hoursIntervals != null) { instance.openingHours.put(i, hoursIntervals); } } return instance; } return null; } private static List<String> getOpeningHoursOfADay(JSONObject jsonHours, String dayPrefix) { List<String> hoursIntervals = null; String open1 = jsonHours.optString(dayPrefix + "_1_open"); String close1 = jsonHours.optString(dayPrefix + "_1_close"); if (!TextUtils.isEmpty(open1) && !TextUtils.isEmpty(close1)) { hoursIntervals = new ArrayList<>(4); hoursIntervals.add(open1); hoursIntervals.add(close1); String open2 = jsonHours.optString(dayPrefix + "_2_open"); String close2 = jsonHours.optString(dayPrefix + "_2_close"); if (!TextUtils.isEmpty(open2) && !TextUtils.isEmpty(close2)) { hoursIntervals.add(open2); hoursIntervals.add(close2); } } return hoursIntervals; } }