blob: 4344cd9c812f27deaee3f9a55da8966d5ade573e [file] [log] [blame]
package com.savoirfairelinux.sflphone.client;
import android.app.AlertDialog;
import android.app.Application;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.util.Log;
import com.savoirfairelinux.sflphone.service.ISipService;
import com.savoirfairelinux.sflphone.service.SipService;
public class SFLphoneApplication extends Application
{
static final String TAG = "SFLphoneApplication";
private boolean serviceRunning = false;
private ISipService sipService;
private void startSipService()
{
Thread thread = new Thread("StartSFLphoneService") {
public void run()
{
Log.i(TAG, "SipService launching thread");
Intent sipServiceIntent = new Intent(SFLphoneApplication.this, SipService.class);
//sipServiceIntent.putExtra(ServiceConstants.EXTRA_OUTGOING_ACTIVITY, new ComponentName(SFLPhoneHome.this, SFLPhoneHome.class));
startService(sipServiceIntent);
serviceRunning = true;
};
};
try {
thread.start();
} catch (IllegalThreadStateException e) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Cannot start SFLPhone SipService!");
AlertDialog alert = builder.create();
alert.show();
//TODO exit application
}
}
@Override
public void onCreate()
{
super.onCreate();
Log.i(TAG, "onCreate");
if (!serviceRunning) {
Log.i(TAG, "starting SipService");
startSipService();
}
}
@Override
public void onTerminate()
{
super.onTerminate();
Log.i(TAG, "onTerminate");
if (serviceRunning) {
Log.i(TAG, "onDestroy: stopping SipService...");
stopService(new Intent(this, SipService.class));
serviceRunning = false;
}
}
public boolean isServiceRunning()
{
return serviceRunning;
}
public void setServiceRunning(boolean r)
{
this.serviceRunning = r;
}
public ISipService getSipService()
{
return sipService;
}
public void setSipService(ISipService service)
{
sipService = service;
}
public String getAppPath()
{
PackageManager pkgMng = getPackageManager();
String pkgName = getPackageName();
try {
PackageInfo pkgInfo = pkgMng.getPackageInfo(pkgName, 0);
pkgName = pkgInfo.applicationInfo.dataDir;
} catch (NameNotFoundException e) {
Log.w(TAG, "Error Package name not found ", e);
}
Log.d(TAG, "Application path: " + pkgName);
return pkgName;
}
}