blob: 57d9497b1140dbb6e2b36777d62b5f3aaa0f28ac [file] [log] [blame]
Alexandre Lision064e1e02013-10-01 16:18:42 -04001package org.sflphone.client;
2
3import org.sflphone.service.ISipService;
4import org.sflphone.service.SipService;
Emeric Vigiercf6d51e2012-09-19 14:28:35 -04005
Emeric Vigiercc0785a2012-11-06 19:07:48 -05006import android.app.AlertDialog;
Emeric Vigiercf6d51e2012-09-19 14:28:35 -04007import android.app.Application;
Emeric Vigiercc0785a2012-11-06 19:07:48 -05008import android.content.Intent;
Emeric Vigiercf6d51e2012-09-19 14:28:35 -04009import android.util.Log;
10
Adrien Béraudc99b8432013-04-25 16:27:46 +100011public class SFLphoneApplication extends Application
12{
Adrien Béraudc99b8432013-04-25 16:27:46 +100013 static final String TAG = "SFLphoneApplication";
14 private boolean serviceRunning = false;
15 private ISipService sipService;
Emeric Vigiercc0785a2012-11-06 19:07:48 -050016
Adrien Béraudc99b8432013-04-25 16:27:46 +100017 private void startSipService()
18 {
19 Thread thread = new Thread("StartSFLphoneService") {
20 public void run()
21 {
22 Log.i(TAG, "SipService launching thread");
23 Intent sipServiceIntent = new Intent(SFLphoneApplication.this, SipService.class);
24 //sipServiceIntent.putExtra(ServiceConstants.EXTRA_OUTGOING_ACTIVITY, new ComponentName(SFLPhoneHome.this, SFLPhoneHome.class));
25 startService(sipServiceIntent);
26 serviceRunning = true;
27 };
28 };
29 try {
30 thread.start();
31 } catch (IllegalThreadStateException e) {
32 AlertDialog.Builder builder = new AlertDialog.Builder(this);
33 builder.setMessage("Cannot start SFLPhone SipService!");
34 AlertDialog alert = builder.create();
35 alert.show();
36 //TODO exit application
37 }
38 }
Emeric Vigiercf6d51e2012-09-19 14:28:35 -040039
Adrien Béraudc99b8432013-04-25 16:27:46 +100040 @Override
41 public void onCreate()
42 {
43 super.onCreate();
44 Log.i(TAG, "onCreate");
Emeric Vigiercc0785a2012-11-06 19:07:48 -050045
Adrien Béraudc99b8432013-04-25 16:27:46 +100046 if (!serviceRunning) {
47 Log.i(TAG, "starting SipService");
48 startSipService();
49 }
50 }
Emeric Vigier6119d782012-09-21 18:04:14 -040051
Adrien Béraudc99b8432013-04-25 16:27:46 +100052 @Override
53 public void onTerminate()
54 {
55 super.onTerminate();
56 Log.i(TAG, "onTerminate");
Emeric Vigiercc0785a2012-11-06 19:07:48 -050057
Adrien Béraudc99b8432013-04-25 16:27:46 +100058 if (serviceRunning) {
59 Log.i(TAG, "onDestroy: stopping SipService...");
60 stopService(new Intent(this, SipService.class));
61 serviceRunning = false;
62 }
63 }
Emeric Vigier6119d782012-09-21 18:04:14 -040064
Adrien Béraudc99b8432013-04-25 16:27:46 +100065 public boolean isServiceRunning()
66 {
67 return serviceRunning;
68 }
Emeric Vigier6119d782012-09-21 18:04:14 -040069
Adrien Béraudc99b8432013-04-25 16:27:46 +100070 public void setServiceRunning(boolean r)
71 {
72 this.serviceRunning = r;
73 }
Emeric Vigier6119d782012-09-21 18:04:14 -040074
Adrien Béraudc99b8432013-04-25 16:27:46 +100075 public ISipService getSipService()
76 {
77 return sipService;
78 }
Emeric Vigier6119d782012-09-21 18:04:14 -040079
Adrien Béraudc99b8432013-04-25 16:27:46 +100080 public void setSipService(ISipService service)
81 {
82 sipService = service;
83 }
Emeric Vigiercf6d51e2012-09-19 14:28:35 -040084}