// 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.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.location.ActivityRecognition; import com.google.android.gms.location.ActivityRecognitionApi; import com.google.android.gms.location.ActivityRecognitionResult; import com.google.android.gms.location.DetectedActivity; import com.olio.data.object.context.PersonalAssistantContext; import com.olio.olios.detector.ManagedDetector; import com.olio.util.ALog; public class PhysicalActivityDetector implements ManagedDetector, com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks, com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener { public static final String BROADCAST_FILTER = "com.olio.detector:PHYSICAL_ACTIVITY_DETECTOR"; private static final long DETECTOR_UPDATE_INTERVAL = 60000L; private BroadcastReceiver mBroadcastReceiver; private Context mContext; private GoogleApiClient mGoogleApiClient; private int mLastKnownActivity; public PhysicalActivityDetector(Context context) { mContext = context; } private String getActivityName(int i) { switch (i) { case 4: // '\004' case 6: // '\006' default: return "unknown"; case 0: // '\0' return "inVehicle"; case 1: // '\001' return "onBicycle"; case 2: // '\002' case 7: // '\007' return "walking"; case 3: // '\003' return "still"; case 8: // '\b' return "running"; case 5: // '\005' return "tilting"; } } private BroadcastReceiver getBroadcastReceiver() { if (mBroadcastReceiver == null) { mBroadcastReceiver = new BroadcastReceiver() { final PhysicalActivityDetector this$0; public void onReceive(Context context, Intent intent) { int i; int j; if (!ActivityRecognitionResult.hasResult(intent)) { break MISSING_BLOCK_LABEL_142; } context = ActivityRecognitionResult.extractResult(intent).getMostProbableActivity(); i = context.getConfidence(); j = context.getType(); if (i >= 30) goto _L2; else goto _L1 _L1: return; _L2: ALog.d((new StringBuilder()).append("Most Probable Name : ").append(getActivityName(context.getType())).toString(), new Object[0]); ALog.d((new StringBuilder()).append("Confidence : ").append(i).toString(), new Object[0]); if (j == mLastKnownActivity) goto _L1; else goto _L3 _L3: mLastKnownActivity = j; if (mLastKnownActivity != 0 && j != 0) goto _L1; else goto _L4 _L4: setPhysicalActivityContext(j); return; ALog.d("Intent had no data returned", new Object[0]); return; } { this$0 = PhysicalActivityDetector.this; super(); } }; } return mBroadcastReceiver; } private GoogleApiClient getGoogleApiClient() { if (mGoogleApiClient == null) { mGoogleApiClient = (new com.google.android.gms.common.api.GoogleApiClient.Builder(mContext)).addApi(ActivityRecognition.API).addConnectionCallbacks(this).addOnConnectionFailedListener(this).build(); } return mGoogleApiClient; } private void setPhysicalActivityContext(int i) { PersonalAssistantContext personalassistantcontext = PersonalAssistantContext.personalAssistantContext(mContext.getContentResolver(), "physicalActivity"); String s = getActivityName(i); if (personalassistantcontext == null) { (new PersonalAssistantContext("physicalActivity", s)).save(mContext.getContentResolver()); return; } else { personalassistantcontext.setContextValue(s); personalassistantcontext.save(mContext.getContentResolver()); return; } } public void onConnected(Bundle bundle) { bundle = new Intent("com.olio.detector:PHYSICAL_ACTIVITY_DETECTOR"); bundle = PendingIntent.getBroadcast(mContext, 0, bundle, 0x8000000); ALog.d("Connected to ActivityRecognition", new Object[0]); ActivityRecognition.ActivityRecognitionApi.requestActivityUpdates(getGoogleApiClient(), 60000L, bundle); } public void onConnectionFailed(ConnectionResult connectionresult) { ALog.d("Google Api Connection failed", new Object[0]); } public void onConnectionSuspended(int i) { ALog.d("Google Api Connection suspended", new Object[0]); } public void onDisconnect() { } public void register() { GoogleApiClient googleapiclient = getGoogleApiClient(); if (!googleapiclient.isConnected()) { googleapiclient.connect(); mContext.registerReceiver(getBroadcastReceiver(), new IntentFilter("com.olio.detector:PHYSICAL_ACTIVITY_DETECTOR")); } } public boolean shouldUpdate() { return false; } public void unregister() { getGoogleApiClient().disconnect(); mContext.unregisterReceiver(getBroadcastReceiver()); } public void update() { } public Long updateFrequency() { return null; } public boolean updateOnReconnect() { return false; } /* static int access$102(PhysicalActivityDetector physicalactivitydetector, int i) { physicalactivitydetector.mLastKnownActivity = i; return i; } */ }