2013-06-06 05:57:06 +02:00
|
|
|
package org.kde.connect;
|
|
|
|
|
|
|
|
import android.app.Service;
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.content.SharedPreferences;
|
|
|
|
import android.os.IBinder;
|
|
|
|
import android.util.Log;
|
|
|
|
|
2013-06-17 12:23:08 +02:00
|
|
|
import org.kde.connect.PackageEmitters.BaseReceiver;
|
|
|
|
import org.kde.connect.PackageEmitters.PhoneCallReceiver;
|
2013-06-06 05:57:06 +02:00
|
|
|
import org.kde.connect.Types.NetworkPackage;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
|
|
public class BackgroundService extends Service {
|
|
|
|
|
2013-06-17 12:23:08 +02:00
|
|
|
SharedPreferences settings;
|
|
|
|
ArrayList<Announcer> announcers = new ArrayList<Announcer>();
|
|
|
|
ArrayList<ComputerLink> computerLinks = new ArrayList<ComputerLink>();
|
2013-06-06 05:57:06 +02:00
|
|
|
ArrayList<BaseReceiver> receivers = new ArrayList<BaseReceiver>();
|
|
|
|
|
2013-06-17 12:23:08 +02:00
|
|
|
private void addComputerLink(ComputerLink cl) {
|
2013-06-06 05:57:06 +02:00
|
|
|
|
2013-06-17 12:23:08 +02:00
|
|
|
computerLinks.add(cl);
|
2013-06-06 05:57:06 +02:00
|
|
|
|
|
|
|
if (settings.getBoolean("listenCalls", true)) {
|
2013-06-17 12:23:08 +02:00
|
|
|
receivers.add(new PhoneCallReceiver(getApplicationContext(), cl));
|
2013-06-06 05:57:06 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
NetworkPackage p = new NetworkPackage(System.currentTimeMillis());
|
|
|
|
p.setType(NetworkPackage.Type.PING);
|
2013-06-17 12:23:08 +02:00
|
|
|
cl.sendPackage(p);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int onStartCommand(Intent intent, int flags, int startId) {
|
|
|
|
Log.e("BackgroundService","Starting");
|
|
|
|
|
|
|
|
for (Announcer a : announcers) {
|
|
|
|
a.startAnnouncing(new Announcer.ConnexionReceiver() {
|
|
|
|
@Override
|
|
|
|
public void onPair(ComputerLink cl) {
|
|
|
|
addComputerLink(cl);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
2013-06-06 05:57:06 +02:00
|
|
|
|
|
|
|
return Service.START_STICKY;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onCreate() {
|
|
|
|
Log.e("BackgroundService","Creating");
|
2013-06-17 12:23:08 +02:00
|
|
|
|
|
|
|
settings = getSharedPreferences("KdeConnect", 0);
|
|
|
|
|
|
|
|
announcers.add(new AvahiAnnouncer(this));
|
|
|
|
|
2013-06-06 05:57:06 +02:00
|
|
|
super.onCreate();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onDestroy() {
|
|
|
|
Log.e("BackgroundService","Destroying");
|
|
|
|
super.onDestroy();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public IBinder onBind(Intent intent) {
|
|
|
|
Log.e("BackgroundService", "Binding");
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|