blob: fd8caa9b03f6bf4786fc64a0d0fd71b4fdff0076 [file] [log] [blame]
Emeric Vigier12d61d82012-09-19 15:08:18 -04001package com.savoirfairelinux.sflphone.service;
Emeric Vigier9380ae52012-09-14 17:40:39 -04002
Alexandre Savard74c1cad2012-10-24 16:39:00 -04003import android.content.Context;
4import android.content.Intent;
Emeric Vigier9380ae52012-09-14 17:40:39 -04005import android.util.Log;
Alexandre Savard74c1cad2012-10-24 16:39:00 -04006import android.os.Bundle;
7import android.support.v4.content.LocalBroadcastManager;
Emeric Vigier9380ae52012-09-14 17:40:39 -04008
9public class CallManagerCallBack extends Callback {
10
11 private static final String TAG = "CallManagerCallBack";
Alexandre Savard74c1cad2012-10-24 16:39:00 -040012 private Context mContext;
13
Alexandre Savard3bdce7b2012-10-24 18:27:45 -040014 static public final String SIGNAL_NAME = "signal-name";
15 static public final String NEW_CALL_CREATED = "new-call-created";
16 static public final String CALL_STATE_CHANGED = "call-state-changed";
17 static public final String INCOMING_CALL = "incoming-call";
alision04a00182013-05-10 17:05:29 -040018 static public final String INCOMING_TEXT = "incoming-text";
Alexandre Savard3bdce7b2012-10-24 18:27:45 -040019
Alexandre Savard74c1cad2012-10-24 16:39:00 -040020 public CallManagerCallBack(Context context) {
21 mContext = context;
22 }
Emeric Vigier9380ae52012-09-14 17:40:39 -040023
24 @Override
Alexandre Savard6b8d1df2012-10-23 16:44:43 -040025 public void on_new_call_created(String accountID, String callID, String to) {
26 Log.d(TAG, "on_new_call_created(" + accountID + ", " + callID + ", " + to + ")");
Alexandre Savard74c1cad2012-10-24 16:39:00 -040027 sendNewCallCreatedMessage(accountID, callID, to);
Alexandre Savard6b8d1df2012-10-23 16:44:43 -040028 }
29
30 @Override
Alexandre Savard14323be2012-10-24 10:02:13 -040031 public void on_call_state_changed(String callID, String state) {
32 Log.d(TAG, "on_call_state_changed(" + callID + ", " + state + ")");
Alexandre Savard74c1cad2012-10-24 16:39:00 -040033 sendCallStateChangedMessage(callID, state);
Alexandre Savard14323be2012-10-24 10:02:13 -040034 }
35
36 @Override
Emeric Vigier9380ae52012-09-14 17:40:39 -040037 public void on_incoming_call(String accountID, String callID, String from) {
38 Log.d(TAG, "on_incoming_call(" + accountID + ", " + callID + ", " + from + ")");
Alexandre Savard74c1cad2012-10-24 16:39:00 -040039 sendIncomingCallMessage(accountID, callID, from);
40 }
alision7f18fc82013-05-01 09:37:33 -040041
42 @Override
43 public void on_transfer_state_changed(String result){
44 Log.w(TAG,"TRANSFER STATE CHANGED:"+result);
45 }
alision43a9b362013-05-01 16:30:15 -040046
47 @Override
48 public void on_conference_created(String confID){
49 Log.w(TAG,"CONFERENCE CREATED:"+confID);
50 }
alision4a0eb092013-05-07 13:52:03 -040051
52 @Override
alision04a00182013-05-10 17:05:29 -040053 public void on_incoming_message(String ID, String from, String msg){
54 Log.w(TAG,"on_incoming_message:"+msg);
55 sendIncomingTextMessage(ID, from, msg);
56 }
57
58 @Override
alision4a0eb092013-05-07 13:52:03 -040059 public void on_conference_removed(String confID){
60 Log.w(TAG,"CONFERENCE REMOVED:"+confID);
61 }
62
63 @Override
64 public void on_conference_state_changed(String confID, String state){
65 Log.w(TAG,"CONFERENCE STATE CHANGED:"+confID);
66 }
Alexandre Savard74c1cad2012-10-24 16:39:00 -040067
68 private void sendNewCallCreatedMessage(String accountID, String callID, String to) {
69 Bundle bundle = new Bundle();
70 bundle.putString("AccountID", accountID);
71 bundle.putString("CallID", callID);
72 bundle.putString("To", to);
Alexandre Savard3bdce7b2012-10-24 18:27:45 -040073 Intent intent = new Intent(NEW_CALL_CREATED);
74 intent.putExtra(SIGNAL_NAME, NEW_CALL_CREATED);
Alexandre Savardc58c0fd2012-10-25 10:44:08 -040075 intent.putExtra("com.savoirfairelinux.sflphone.service.newcall", bundle);
Alexandre Savard74c1cad2012-10-24 16:39:00 -040076 LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent);
77 }
78
79 private void sendCallStateChangedMessage(String callID, String state) {
80 Bundle bundle = new Bundle();
81 bundle.putString("CallID", callID);
82 bundle.putString("State", state);
Alexandre Savard3bdce7b2012-10-24 18:27:45 -040083 Intent intent = new Intent(CALL_STATE_CHANGED);
Alexandre Savardc58c0fd2012-10-25 10:44:08 -040084 intent.putExtra("com.savoirfairelinux.sflphone.service.newstate", bundle);
Alexandre Savard74c1cad2012-10-24 16:39:00 -040085 LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent);
86 }
87
88 private void sendIncomingCallMessage(String accountID, String callID, String from) {
89 Bundle bundle = new Bundle();
90 bundle.putString("AccountID", accountID);
91 bundle.putString("CallID", callID);
92 bundle.putString("From", from);
Alexandre Savard3bdce7b2012-10-24 18:27:45 -040093 Intent intent = new Intent(INCOMING_CALL);
94 intent.putExtra(SIGNAL_NAME, INCOMING_CALL);
Alexandre Savardc58c0fd2012-10-25 10:44:08 -040095 intent.putExtra("com.savoirfairelinux.sflphone.service.newcall", bundle);
Alexandre Savard74c1cad2012-10-24 16:39:00 -040096 LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent);
Emeric Vigier9380ae52012-09-14 17:40:39 -040097 }
alision04a00182013-05-10 17:05:29 -040098
99 private void sendIncomingTextMessage(String id, String from, String msg) {
100 Bundle bundle = new Bundle();
101
102 bundle.putString("CallID", id);
103 bundle.putString("From", from);
104 bundle.putString("Msg", msg);
105 Intent intent = new Intent(INCOMING_TEXT);
106 intent.putExtra(SIGNAL_NAME, INCOMING_TEXT);
107 intent.putExtra("com.savoirfairelinux.sflphone.service.newtext", bundle);
108 LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent);
109
110 }
Emeric Vigier9380ae52012-09-14 17:40:39 -0400111}