// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.oliodevices.assist.app.detectors; import android.app.Service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.media.RemoteController; import android.os.IBinder; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; import com.olio.util.ALog; import java.lang.reflect.Method; // Referenced classes of package com.oliodevices.assist.app.detectors: // BroadcastDelegate, MessageBroadcastDelegate public class PhoneDetector extends Service { private class CallStateListener extends PhoneStateListener { final PhoneDetector this$0; public void onCallStateChanged(int i, String s) { switch (i) { default: return; case 1: // '\001' ALog.d("New call state: RINGING", new Object[0]); return; case 0: // '\0' ALog.d("New call state: IDLE", new Object[0]); return; case 2: // '\002' ALog.d("New call state: OFFHOOK", new Object[0]); break; } } private CallStateListener() { this$0 = PhoneDetector.this; super(); } } private class PhoneActionReceiver extends BroadcastReceiver { final PhoneDetector this$0; public void onReceive(Context context, Intent intent) { ALog.d("Received phone notification action.", new Object[0]); try { context = (TelephonyManager)context.getSystemService("phone"); intent = Class.forName(context.getClass().getName()).getDeclaredMethod("getITelephony", new Class[0]); intent.setAccessible(true); context = ((Context) (intent.invoke(context, new Object[0]))); intent = Class.forName(context.getClass().getName()).getDeclaredMethod("answerRingingCall", new Class[0]); intent.setAccessible(true); intent.invoke(context, new Object[0]); return; } // Misplaced declaration of an exception variable catch (Context context) { ALog.e("Could not access telephony manager functions", context, new Object[0]); } } private PhoneActionReceiver() { this$0 = PhoneDetector.this; super(); } } private final String PHONE_ACTION_FILTER = "com.oliodevices.PhoneDetectorFilter"; private PhoneActionReceiver mActionReceiver; private MessageBroadcastDelegate mDetectorDelegate; private PhoneStateListener mPhoneStateListener; private RemoteController mRemoteController; public PhoneDetector() { mPhoneStateListener = null; mDetectorDelegate = null; mActionReceiver = null; mRemoteController = null; } public IBinder onBind(Intent intent) { return null; } public void onCreate() { super.onCreate(); mDetectorDelegate = new BroadcastDelegate(getBaseContext()); mActionReceiver = new PhoneActionReceiver(); IntentFilter intentfilter = new IntentFilter("com.oliodevices.PhoneDetectorFilter"); registerReceiver(mActionReceiver, intentfilter); mPhoneStateListener = new CallStateListener(); ((TelephonyManager)getSystemService("phone")).listen(mPhoneStateListener, 32); mRemoteController = new RemoteController(this, new android.media.RemoteController.OnClientUpdateListener() { final PhoneDetector this$0; public void onClientChange(boolean flag) { } public void onClientMetadataUpdate(android.media.RemoteController.MetadataEditor metadataeditor) { } public void onClientPlaybackStateUpdate(int i) { } public void onClientPlaybackStateUpdate(int i, long l, long l1, float f) { } public void onClientTransportControlUpdate(int i) { } { this$0 = PhoneDetector.this; super(); } }); } public void onDestroy() { super.onDestroy(); if (mActionReceiver != null) { unregisterReceiver(mActionReceiver); } if (mPhoneStateListener != null) { ((TelephonyManager)getSystemService("phone")).listen(mPhoneStateListener, 0); } } public int onStartCommand(Intent intent, int i, int j) { if (mDetectorDelegate == null) { ALog.e("Notification detector delegate was not created properly.", new Object[0]); return 2; } else { ALog.d("Phone detector started.", new Object[0]); return 3; } } }