MockWalker.java

import android.content.Context;import android.os.Bundle;import com.google.android.gms.common.api.GoogleApiClient;import com.google.android.gms.location.LocationServices;import rx.Observable;import rx.subjects.PublishSubject;public class MockWalker implements GoogleApiClient.ConnectionCallbacks {    private static MockWalker sMockWalker;    public static synchronized MockWalker get(Context context) {        if (sMockWalker == null) {            sMockWalker = new MockWalker(context);        }        return sMockWalker;    }    private PublishSubject mChanges;    private Context mContext;    private final GoogleApiClient mClient;    private boolean mStarted;    private MockWalk mMockWalk;    private MockWalker(Context context) {        mContext = context.getApplicationContext();        mChanges = PublishSubject.create();        mClient = new GoogleApiClient.Builder(mContext)                .addApi(LocationServices.API)                .addConnectionCallbacks(this)                .build();        mClient.connect();    }    public Observable getChanges() {        return mChanges;    }    @Override    public void onConnected(Bundle bundle) {        syncWalkState();    }    public void setStarted(boolean started) {        mStarted = started;        syncWalkState();        mChanges.onNext(this);    }    public boolean isStarted() {        return mStarted;    }    private void syncWalkState() {        if (!mStarted && mMockWalk != null) {            mMockWalk.quit();            mMockWalk = null;        } else if (!mStarted && mMockWalk == null) {            // all good        } else if (mStarted && mMockWalk == null && !mClient.isConnected()) {            // all good        } else if (mStarted && mMockWalk == null && mClient.isConnected()) {            mMockWalk = new MockWalk(mClient);            mMockWalk.start();        }    }    @Override    public void onConnectionSuspended(int i) {    }}

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. Android实现2D翻转动画
  2. Android开发入门
  3. Android(安卓)WebView 开发详解(二)
  4. 【博客园客户端】博客园Android客户端更
  5. Android UI主线程与子线程
  6. Android屏幕适配攻略
  7. 如果你现在学Android---学习使用Kotlin进
  8. 修改Android Studio下的AVD的下载路径
  9. Android声音管理方法
  10. 从创建flutter到打包成aar,并运行,这之间踩