Migrating PhoneInterface (Irrigation and SpeakerLocator) from old to new Nexus 5X...
[iot2.git] / benchmarks / other / PhoneInterface / SpeakerLocator / app / src / main / java / com / example / xub3 / speakerlocator / CallReceiver.java
1 package com.example.xub3.speakerlocator;
2
3 import android.content.Context;
4 import android.os.AsyncTask;
5 import android.util.Log;
6
7
8 import org.json.JSONException;
9 import org.json.JSONObject;
10
11 import java.net.HttpURLConnection;
12 import java.net.MalformedURLException;
13 import java.net.ProtocolException;
14 import java.net.URL;
15 import java.util.Date;
16 import java.io.*;
17
18
19 /**
20  * Created by xub3 on 4/14/16.
21  */
22 public class CallReceiver extends PhonecallReceiver {
23
24
25
26
27         /*
28         ** Interrupt the playing music when phone is ringing
29         */
30         @Override
31         protected void onIncomingCallReceived(Context ctx, String number, Date start) {
32                 String driverIP = ctx.getResources().getString(R.string.gateway_ip);
33                 new MakeRequestTask(driverIP, true, "setRingStatus").start();
34         }
35
36         @Override
37         protected void onIncomingCallAnswered(Context ctx, String number, Date start) {
38
39         }
40         /*
41         ** Resume the music after the phone call
42         */
43         @Override
44         protected void onIncomingCallEnded(Context ctx, String number, Date start, Date end) {
45                 String driverIP = ctx.getResources().getString(R.string.gateway_ip);
46                 new MakeRequestTask(driverIP, false, "setRingStatus").start();
47         }
48     /*
49         ** Interrupt the music when starting an outgoing call
50     */
51         @Override
52         protected void onOutgoingCallStarted(Context ctx, String number, Date start) {
53
54         String driverIP = ctx.getResources().getString(R.string.gateway_ip);
55         new MakeRequestTask(driverIP, true, "setRingStatus").start();
56         }
57     /*
58         ** Resume the music when finishing calls
59     */
60         @Override
61         protected void onOutgoingCallEnded(Context ctx, String number, Date start, Date end) {
62         String driverIP = ctx.getResources().getString(R.string.gateway_ip);
63                 new MakeRequestTask(driverIP, false, "setRingStatus").start();
64         }
65
66         @Override
67         protected void onMissedCall(Context ctx, String number, Date start) {
68                 String driverIP = ctx.getResources().getString(R.string.gateway_ip);
69                 new MakeRequestTask(driverIP, false, "setRingStatus").start();
70         }
71
72
73 }
74 class MakeRequestTask implements Runnable {
75
76         private Helper helper = MainActivity.helper;
77         private String driverIP;
78         private boolean status;
79         private String methodName;
80         private Thread t;
81         MakeRequestTask(String ip, boolean ring, String name) {
82                 driverIP = ip;
83                 status = ring;
84                 methodName = name;
85         }
86
87         @Override
88         public void run() {
89                 helper.makeRequest(driverIP, status, methodName);
90         }
91         public void start() {
92                 if (t == null) {
93                         t = new Thread(this, "makeRequest");
94                 }
95                 t.start();
96         }
97 }