blob: e85f94f017895560aecdc08d1b38ce7ffc3fcf7f [file] [log] [blame]
Alexandre Lision5f144b82014-02-11 09:59:36 -05001package org.sflphone.fragments;
2
3import android.content.BroadcastReceiver;
4import android.content.Context;
5import android.content.Intent;
6import android.content.IntentFilter;
7import android.os.Bundle;
8import android.support.v4.app.Fragment;
9import android.util.Log;
Alexandre Lision5f144b82014-02-11 09:59:36 -050010import org.sflphone.interfaces.CallInterface;
11import org.sflphone.service.CallManagerCallBack;
12
13/**
14 * Created by lisional on 10/02/14.
15 */
16public abstract class CallableWrapperFragment extends Fragment implements CallInterface {
17
18
19 private CallReceiver mReceiver;
20
21
22 @Override
23 public void onCreate(Bundle savedInstanceState) {
24 super.onCreate(savedInstanceState);
25 mReceiver = new CallReceiver();
26 }
27
28 @Override
29 public void onResume() {
Alexandre Lision48b49eb2014-02-11 13:37:33 -050030 super.onResume();
31 IntentFilter intentFilter = new IntentFilter();
Alexandre Lision5f144b82014-02-11 09:59:36 -050032 intentFilter.addAction(CallManagerCallBack.INCOMING_CALL);
33 intentFilter.addAction(CallManagerCallBack.INCOMING_TEXT);
34 intentFilter.addAction(CallManagerCallBack.CALL_STATE_CHANGED);
35 intentFilter.addAction(CallManagerCallBack.CONF_CREATED);
36 intentFilter.addAction(CallManagerCallBack.CONF_REMOVED);
37 intentFilter.addAction(CallManagerCallBack.CONF_CHANGED);
38 intentFilter.addAction(CallManagerCallBack.RECORD_STATE_CHANGED);
39 intentFilter.addAction(CallManagerCallBack.ZRTP_OFF);
40 intentFilter.addAction(CallManagerCallBack.ZRTP_ON);
41 intentFilter.addAction(CallManagerCallBack.DISPLAY_SAS);
42 getActivity().registerReceiver(mReceiver, intentFilter);
43 }
44
45
46 @Override
47 public void onPause() {
48 super.onPause();
49 getActivity().unregisterReceiver(mReceiver);
50 }
51
52 @Override
Alexandre Lision48b49eb2014-02-11 13:37:33 -050053 public void callStateChanged(String callID, String state) {
Alexandre Lision5f144b82014-02-11 09:59:36 -050054
55 }
56
57 @Override
Alexandre Lision48b49eb2014-02-11 13:37:33 -050058 public void incomingText(String ID, String from, String msg) {
Alexandre Lision5f144b82014-02-11 09:59:36 -050059
60 }
61
62 @Override
Alexandre Lision48b49eb2014-02-11 13:37:33 -050063 public void confCreated(String id) {
Alexandre Lision5f144b82014-02-11 09:59:36 -050064
65 }
66
67 @Override
Alexandre Lision48b49eb2014-02-11 13:37:33 -050068 public void confRemoved(String id) {
Alexandre Lision5f144b82014-02-11 09:59:36 -050069
70 }
71
72 @Override
Alexandre Lision48b49eb2014-02-11 13:37:33 -050073 public void confChanged(String id, String state) {
Alexandre Lision5f144b82014-02-11 09:59:36 -050074
75 }
76
77 @Override
Alexandre Lision48b49eb2014-02-11 13:37:33 -050078 public void recordingChanged(String callID, String filename) {
Alexandre Lision5f144b82014-02-11 09:59:36 -050079
80 }
81
82 @Override
Alexandre Lision48b49eb2014-02-11 13:37:33 -050083 public void secureZrtpOn(String id) {
Alexandre Lision5f144b82014-02-11 09:59:36 -050084
85 }
86
87 @Override
Alexandre Lision48b49eb2014-02-11 13:37:33 -050088 public void secureZrtpOff(String id) {
Alexandre Lision5f144b82014-02-11 09:59:36 -050089
90 }
91
92 @Override
Alexandre Lision48b49eb2014-02-11 13:37:33 -050093 public void displaySAS(String callID, String SAS, boolean verified) {
Alexandre Lision5f144b82014-02-11 09:59:36 -050094
95 }
96
97 public class CallReceiver extends BroadcastReceiver {
98
99 private final String TAG = CallReceiver.class.getSimpleName();
100
101 @Override
102 public void onReceive(Context context, Intent intent) {
103 if (intent.getAction().contentEquals(CallManagerCallBack.INCOMING_TEXT)) {
Alexandre Lision48b49eb2014-02-11 13:37:33 -0500104 incomingText(intent.getStringExtra("CallID"), intent.getStringExtra("From"), intent.getStringExtra("Msg"));
Alexandre Lision5f144b82014-02-11 09:59:36 -0500105 } else if (intent.getAction().contentEquals(CallManagerCallBack.CALL_STATE_CHANGED)) {
Alexandre Lision48b49eb2014-02-11 13:37:33 -0500106 callStateChanged(intent.getStringExtra("CallID"), intent.getStringExtra("State"));
Alexandre Lision5f144b82014-02-11 09:59:36 -0500107 } else if (intent.getAction().contentEquals(CallManagerCallBack.CONF_CREATED)) {
Alexandre Lision48b49eb2014-02-11 13:37:33 -0500108 confCreated(intent.getStringExtra("confID"));
Alexandre Lision5f144b82014-02-11 09:59:36 -0500109 } else if (intent.getAction().contentEquals(CallManagerCallBack.CONF_REMOVED)) {
Alexandre Lision48b49eb2014-02-11 13:37:33 -0500110 confRemoved(intent.getStringExtra("confID"));
Alexandre Lision5f144b82014-02-11 09:59:36 -0500111 } else if (intent.getAction().contentEquals(CallManagerCallBack.CONF_CHANGED)) {
Alexandre Lision48b49eb2014-02-11 13:37:33 -0500112 confChanged(intent.getStringExtra("confID"), intent.getStringExtra("state"));
Alexandre Lision5f144b82014-02-11 09:59:36 -0500113 } else if (intent.getAction().contentEquals(CallManagerCallBack.RECORD_STATE_CHANGED)) {
Alexandre Lision48b49eb2014-02-11 13:37:33 -0500114 recordingChanged(intent.getStringExtra("callID"), intent.getStringExtra("file"));
Alexandre Lision5f144b82014-02-11 09:59:36 -0500115 } else if (intent.getAction().contentEquals(CallManagerCallBack.ZRTP_OFF)) {
Alexandre Lision48b49eb2014-02-11 13:37:33 -0500116 secureZrtpOff(intent.getStringExtra("callID"));
Alexandre Lision5f144b82014-02-11 09:59:36 -0500117 } else if (intent.getAction().contentEquals(CallManagerCallBack.ZRTP_ON)) {
Alexandre Lision48b49eb2014-02-11 13:37:33 -0500118 secureZrtpOn(intent.getStringExtra("callID"));
Alexandre Lision5f144b82014-02-11 09:59:36 -0500119 } else if (intent.getAction().contentEquals(CallManagerCallBack.DISPLAY_SAS)) {
Alexandre Lision48b49eb2014-02-11 13:37:33 -0500120 displaySAS(intent.getStringExtra("callID"), intent.getStringExtra("SAS"), intent.getBooleanExtra("verified", false));
Alexandre Lision5f144b82014-02-11 09:59:36 -0500121 } else {
122 Log.e(TAG, "Unknown action: " + intent.getAction());
123 }
124
125 }
126
127 }
128
129
130}