/*
* Copyright 2014 Google Inc. All rights reserved.
*
* 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 com.google.samples.apps.iosched.server.schedule;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.regex.Pattern;
public interface Config {
public final int CONFERENCE_YEAR = 2016;
public final boolean STAGING = true;
@SuppressWarnings("deprecation")
public static final long[][] CONFERENCE_DAYS =
new long[][] {
// start and end of day 1
{ new Date(116, Calendar.MAY, 18, 14, 0, 0).getTime(),
new Date(116, Calendar.MAY, 19, 5, 0, 0).getTime() },
// start and end of day 2
{ new Date(116, Calendar.MAY, 19, 14, 0, 0).getTime(),
new Date(116, Calendar.MAY, 20, 0, 0, 0).getTime() },
// start and end of day 3
{ new Date(116, Calendar.MAY, 20, 14, 0, 0).getTime(),
new Date(116, Calendar.MAY, 21, 0, 0, 0).getTime() },
};
public final Pattern SESSIONS_PATTERN = Pattern.compile("session_data_v(\\d+)\\.(\\d+)\\.json");
public final String SESSIONS_FORMAT = "session_data_v{0,number,integer}.{1,number,integer}.json";
public final String MANIFEST_FORMAT_VERSION = "iosched-json-v1";
/**
* The manifest version is used to name the manifest file (manifest_v{version}.json) and as
* the major version of the generated session files.
*/
public final int MANIFEST_VERSION = 1;
public final String MANIFEST_NAME = "manifest_v"+MANIFEST_VERSION+".json";
public final String MANIFEST_NAME_STAGING = "manifest_v"+MANIFEST_VERSION+"__qa_.json";
public final boolean DEBUG_FIX_DATA = false;
public final boolean SHOW_UNPUBLISHED_DATA=false;
public final long TIME_TRAVEL_SHIFT = 0; //Used for dogfooding: -29 * (24*60*60*1000L);
public final String VIDEO_CATEGORY = "f04c9884-9dd8-e411-b87f-00155d5066d7";
public final String CLOUD_STORAGE_BUCKET = "io2016-bucket-dev";
public final String CLOUD_STORAGE_BASE_URL = "https://storage.googleapis.com/"+CLOUD_STORAGE_BUCKET+"/";
// Used when the CMS doesn't have a proper live stream Youtube URL but we still want to
// have a non-empty URL so that the app will show the "LIVE" indicator.
public final String VIDEO_LIVESTREAMURL_FOR_EMPTY = "https://google.com/events/io";
// GCM confs:
public static final String GCM_SYNC_URL = "/gcm/send/global/sync_schedule";
public static final String GCM_URL= "https://io2015-dev.appspot.com"+GCM_SYNC_URL;
// TODO: Define the API key used to allow GCM device registrations.
public static final String GCM_API_KEY = "UNDEFINED";
// Email address used for sending emails. Normally this should be a service account.
public static final String EMAIL_FROM = "io2015-data.google.com@appspot.gserviceaccount.com";
// API key used for session CMS access
public static final String CMS_API_KEY = "UNDEFINED";
// TODO(arthurthompson): Remove CMS_API_CODE since it is no longer used by vendor API.
public static final String CMS_API_CODE = "UNDEFINED";
// See context at b/15452185:
public static final RoomMapping ROOM_MAPPING = new RoomMapping();
static class RoomMapping {
private HashMap<String, String> idMapping = new HashMap<String, String>();
private HashMap<String, String> titleMapping = new HashMap<String, String>();
private HashMap<String, String> captionsMapping = new HashMap<String, String>();
public RoomMapping() {
idMapping.put("e9f3b25f-d4e2-e411-b87f-00155d5066d7", "keynote");
idMapping.put("6822c256-d4e2-e411-b87f-00155d5066d7", "sandbox");
idMapping.put("cbce21ff-2cbe-e411-b87f-00155d5066d7", "room1");
idMapping.put("3c9c1a44-d4e2-e411-b87f-00155d5066d7", "room2");
idMapping.put("82588250-d4e2-e411-b87f-00155d5066d7", "room3");
captionsMapping.put("keynote", "http://io-captions.appspot.com/?event=e0&android=t");
captionsMapping.put("room1", "http://io-captions.appspot.com/?event=e1&android=t");
captionsMapping.put("room2", "http://io-captions.appspot.com/?event=e2&android=t");
captionsMapping.put("room3", "http://io-captions.appspot.com/?event=e3&android=t");
// Currently no title mappings present. But if needed:
// titleMapping.put("dddsandbox", "Design, Develop, Distribute");
}
public String getRoomId(String originalRoomId) {
if (idMapping.containsKey(originalRoomId)) {
return idMapping.get(originalRoomId);
}
return originalRoomId;
}
public String getTitle(String newId, String originalRoomTitle) {
if (titleMapping.containsKey(newId)) {
return titleMapping.get(newId);
}
return originalRoomTitle;
}
public String getCaptions(String newId) {
if (captionsMapping.containsKey(newId)) {
return captionsMapping.get(newId);
}
return null;
}
}
}