package ru.net.jimm.client; import android.content.*; import android.os.IBinder; import android.os.Message; import android.os.Messenger; import ru.net.jimm.service.JimmService; /** * Created with IntelliJ IDEA. * <p/> * Date: 13.07.13 16:27 * * @author vladimir */ class LocalConnection implements Connection { private Messenger mService = null; private JimmService jimmService = null; public void onServiceConnected(ComponentName className, IBinder service) { if (service instanceof JimmService.LocalBinder) { jimmService = ((JimmService.LocalBinder)service).getService(); } else { mService = new Messenger(service); } } public void onServiceDisconnected(ComponentName className) { // This is called when the connection with the service has been unexpectedly disconnected - process crashed. jimmService = null; mService = null; } public void send(Message msg) { try { if (null != jimmService) { jimmService.handleMessage(msg); } else { mService.send(msg); } } catch (Exception e) { jimm.modules.DebugLog.panic("JimmServiceConnection", e); } } }