MVP

HttpUtils

public class HttpUtils {

    public final Api api;
    //单例
    private HttpUtils(){

        final SharedPreferences sp = BaseApplication.sharedPreferences;

        //拦截器,统一请求头
        OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .readTimeout(60, TimeUnit.SECONDS)
                .connectTimeout(60, TimeUnit.SECONDS)
                .writeTimeout(60, TimeUnit.SECONDS)
                .addInterceptor(new Interceptor() {
                    @Override
                    public Response intercept(Chain chain) throws IOException {
                        Request request = chain.request().newBuilder()
                                .addHeader("ak",""+sp.getString("ak",""))
                                .addHeader("userId", ""+sp.getInt("userId",0))
                                .addHeader("sessionId", ""+sp.getString("sessionId",""))
                                .addHeader("Content-Type",""+sp.getString("Content-Type",""))
                                .build();
                        Response response = chain.proceed(request);
                        Log.e("sessionId",sp.getString("sessionId",""));
                        Log.e("userId",""+sp.getInt("userId",0));
                        Log.e("===========","拦截"+response);
                        return response;
                    }
                }).build();
        //实例化
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://172.17.8.100/health/")
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .client(okHttpClient)
                .build();
        api = retrofit.create(Api.class);
    }
    private static class instance{
        private static final HttpUtils httpUtils = new HttpUtils();
    }
    public static HttpUtils getInstance(){
        return instance.httpUtils;
    }

    //网络判断
    public boolean isNetworkConnected(Context context) {
             if (context != null) {
                     ConnectivityManager mConnectivityManager = (ConnectivityManager) context
                             .getSystemService(Context.CONNECTIVITY_SERVICE);
                    NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
             if (mNetworkInfo != null) {
                             return mNetworkInfo.isAvailable();
                         }
             }
             return false;
         }
    //判断WIFI网络是否可用
    public boolean isWifiConnected(Context context) {      if (context != null) {
        ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo mWiFiNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        if (mWiFiNetworkInfo != null) {
            return mWiFiNetworkInfo.isAvailable();
        }
    }
        return false;
    }
}

Api

2.public interface Api {
    //发送验证码
    @FormUrlEncoded
    @POST("user/v1/sendOutEmailCode")
    Observable<SendOutEmailCodeBean> getSendOutEmailCode(@Field("email") String email);

    //注册
    @FormUrlEncoded
    @POST("user/v1/register")
    Observable<RegisterBean> getRegister(@Field("email") String email, @Field("code") String code, @Field("pwd1") String pwd1, @Field("pwd2") String pwd2, @Field("invitationCode") String invitationCode);

    //登录
    @FormUrlEncoded
    @POST("user/v1/login")
    Observable<LoginBean> getLogin(@Field("email") String email, @Field("pwd") String pwd);

    //根据用户ID查询用户信息
    @GET("user/verify/v1/getUserInfoById")
    Observable<GetUserInfoByIdBean> getUserInfoById();
}

BasePresenter

public class BasePresenter<V extends BaseView> {
    private V view;

    public void setView(V view) {
        this.view = view;
    }

    public V getView() {
        return view;
    }
    public void detachView(){
        this.view=null;
    }
}

BaseActivty

public abstract class BaseActivity extends AppCompatActivity {

    private Unbinder bind;
    private ImmersionBar immersionBar;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(setContentView());
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // 禁止所有的activity横屏
        bind = ButterKnife.bind(this);
        immersionBar = ImmersionBar.with(this);
        immersionBar.statusBarDarkFont(true, 0.2f)
                .init();
        initData();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        bind.unbind();
    }

    public abstract void initData();
    public abstract int setContentView();
}

BaseFragment

public abstract class BaseFragment extends Fragment {

    private Unbinder bind;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(ContentView(),container,false);
        bind = ButterKnife.bind(this, view);
        return view;
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        bind.unbind();
    }
    //懒加载
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
       if(isVisibleToUser){
           initData();
       }
        super.setUserVisibleHint(isVisibleToUser);
    }

    @Override
    public void onStart() {
        super.onStart();
        if(getUserVisibleHint()){
            initData();
        }
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        initView();
    }
    public abstract void initView();
    public abstract void initData();
    public abstract int ContentView();
}

BaseView

public interface BaseView {
    void onSuccess(Object o);
    void onFail(String msg);
}

Presenter

public class MainHomePresenter extends BasePresenter {

    private final HttpUtils instance;

    public MainHomePresenter() {

        instance = HttpUtils.getInstance ();

    }
	

    //查询科室列表
    public void getAdministrative(){
        Observable<DepartmentBean> administrative = instance.api.getAdministrative ();
        administrative.subscribeOn (Schedulers.io ())
                .observeOn (AndroidSchedulers.mainThread ())
                .subscribe (new Observer<DepartmentBean> () {
                    @Override
                    public void onCompleted() {

                    }

                    @Override
                    public void onError(Throwable e) {
                       getView ().onFail (e.getMessage ());
                    }

                    @Override
                    public void onNext(DepartmentBean departmentBean) {
                       getView ().onSuccess (departmentBean);
                    }
                });
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值