/******************************************************************************* * Copyright 2011 The Regents of the University of California * * 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.ohmage.logprobe; import android.os.RemoteException; import org.json.JSONException; import org.json.JSONObject; import org.ohmage.OhmageApplication; import org.ohmage.probemanager.ProbeBuilder; import org.ohmage.logprobe.OhmageAnalytics.TriggerStatus; import org.ohmage.logprobe.LogProbe.Status; /** * Ohmage Specific probe writer which has additional Analytics logging. Uses the * probewriter from {@link LogProbe#probeWriter} which will be created in * {@link OhmageApplication#onCreate()} * * @author cketcham */ public class OhmageAnalyticsProbeWriter { private static final String OBSERVER_ID = "org.ohmage.Analytics"; private static final int OBSERVER_VERSION = 1; private static final String STREAM_PROMPT = "prompt"; private static final int STREAM_PROMPT_VERSION = 1; private static final String STREAM_TRIGGER = "trigger"; private static final int STREAM_TRIGGER_VERSION = 1; public static void prompt(String type, String id, Status status) { try { ProbeBuilder probe = new ProbeBuilder(OBSERVER_ID, OBSERVER_VERSION); probe.setStream(STREAM_PROMPT, STREAM_PROMPT_VERSION); JSONObject data = new JSONObject(); data.put("type", type); data.put("id", id); data.put("status", status); probe.setData(data.toString()); probe.withId().now(); probe.write(LogProbe.probeWriter); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void trigger(TriggerStatus action, String type, int count, String campaign) { try { ProbeBuilder probe = new ProbeBuilder(OBSERVER_ID, OBSERVER_VERSION); probe.setStream(STREAM_TRIGGER, STREAM_TRIGGER_VERSION); JSONObject data = new JSONObject(); data.put("action", action); data.put("type", type); data.put("count", count); data.put("campaign", campaign); probe.setData(data.toString()); probe.withId().now(); probe.write(LogProbe.probeWriter); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }