diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 46c8aed..c0997a5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -37,7 +37,7 @@ - + @@ -54,7 +54,7 @@ - diff --git a/app/src/main/java/com/shunzhi/parent/AppConfig.java b/app/src/main/java/com/shunzhi/parent/AppConfig.java index dbbd67e..0e5bb86 100644 --- a/app/src/main/java/com/shunzhi/parent/AppConfig.java +++ b/app/src/main/java/com/shunzhi/parent/AppConfig.java @@ -41,12 +41,6 @@ public class AppConfig { return appConfig; } - - - - - - //默认下载保存的路径 public final static String DEFAULT_SAVE_DOWNLOAD_PATH = Environment .getExternalStorageDirectory() @@ -66,8 +60,8 @@ public class AppConfig { } //保存键值对 - public void set(Context context, String key, String value) { - SharedPreferences.Editor editor = getSharedPreferences(context).edit(); + public void set(String key, String value) { + SharedPreferences.Editor editor = getSharedPreferences(AppContext.getContext()).edit(); if (TextUtils.isEmpty(value)) { editor.putString(key, value); } else { diff --git a/app/src/main/java/com/shunzhi/parent/AppContext.java b/app/src/main/java/com/shunzhi/parent/AppContext.java index 461ec86..84fc4c8 100644 --- a/app/src/main/java/com/shunzhi/parent/AppContext.java +++ b/app/src/main/java/com/shunzhi/parent/AppContext.java @@ -22,5 +22,4 @@ public class AppContext extends GlobalApplication { - } diff --git a/app/src/main/java/com/shunzhi/parent/MyApplication.java b/app/src/main/java/com/shunzhi/parent/MyApplication.java deleted file mode 100644 index ce05905..0000000 --- a/app/src/main/java/com/shunzhi/parent/MyApplication.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.shunzhi.parent; - -import com.share.mvpsdk.global.GlobalApplication; - -/** - * Created by ToaHanDong on 2018/3/2. - */ - -public class MyApplication extends GlobalApplication { - - - @Override - public void onCreate() { - super.onCreate(); - - } -} diff --git a/app/src/main/java/com/shunzhi/parent/contract/loginandregister/ceping/CepingMainContract.java b/app/src/main/java/com/shunzhi/parent/contract/loginandregister/ceping/CepingMainContract.java new file mode 100644 index 0000000..d3bff47 --- /dev/null +++ b/app/src/main/java/com/shunzhi/parent/contract/loginandregister/ceping/CepingMainContract.java @@ -0,0 +1,25 @@ +package com.shunzhi.parent.contract.loginandregister.ceping; + +import com.share.mvpsdk.base.BasePresenter; +import com.share.mvpsdk.base.IBaseFragment; +import com.share.mvpsdk.base.IBaseModel; + +/** + * Created by ToaHanDong on 2018/3/8. + */ + +public interface CepingMainContract { + + public abstract class CePingMainPresenter extends BasePresenter{ + public abstract void getHotContents(); + } + + interface ICePingMainModel extends IBaseModel { + + } + + + interface ICePingMainView extends IBaseFragment { + void showHotContents(); + } +} diff --git a/app/src/main/java/com/shunzhi/parent/model/loginandregister/LoginAndRegisterModel.java b/app/src/main/java/com/shunzhi/parent/model/loginandregister/LoginAndRegisterModel.java index 4a99bca..8b383fe 100644 --- a/app/src/main/java/com/shunzhi/parent/model/loginandregister/LoginAndRegisterModel.java +++ b/app/src/main/java/com/shunzhi/parent/model/loginandregister/LoginAndRegisterModel.java @@ -8,6 +8,7 @@ import com.shunzhi.parent.api.LoginRegisterApi; import com.shunzhi.parent.contract.loginandregister.LoginAndRegisterContract; import io.reactivex.Observable; +import okhttp3.RequestBody; /** * Created by Administrator on 2018/3/6 0006. @@ -24,13 +25,13 @@ public class LoginAndRegisterModel extends BaseModel implements LoginAndRegiste @Override public Observable getLoginResult(String loginName, String loginPwd) { - return RetrofitCreateHelper.loginApi(LoginRegisterApi.class,LoginRegisterApi.url).loginResult("password",loginName,loginPwd) + return RetrofitCreateHelper.getInstance().login(LoginRegisterApi.class,LoginRegisterApi.url).loginResult("password",loginName,loginPwd) .compose(RxHelper.rxSchedulerHelper()); } @Override public Observable getRegisterResult(String adminName, String idCode, String password) { - return RetrofitCreateHelper.createApi(LoginRegisterApi.class,LoginRegisterApi.url).registerResult("idcode",adminName,idCode,password) + return RetrofitCreateHelper.getInstance().createApi(LoginRegisterApi.class,LoginRegisterApi.url).registerResult("idcode",adminName,idCode,password) .compose(RxHelper.rxSchedulerHelper()); } diff --git a/app/src/main/java/com/shunzhi/parent/presenter/loginandregister/LoginAndRegisterPresenter.java b/app/src/main/java/com/shunzhi/parent/presenter/loginandregister/LoginAndRegisterPresenter.java index 2372e3a..049dfd3 100644 --- a/app/src/main/java/com/shunzhi/parent/presenter/loginandregister/LoginAndRegisterPresenter.java +++ b/app/src/main/java/com/shunzhi/parent/presenter/loginandregister/LoginAndRegisterPresenter.java @@ -1,9 +1,11 @@ package com.shunzhi.parent.presenter.loginandregister; import android.text.TextUtils; +import android.util.Log; import com.google.gson.JsonObject; import com.share.mvpsdk.helper.RetrofitCreateHelper; +import com.share.mvpsdk.utils.OkHttpExceptionUtil; import com.share.mvpsdk.utils.ToastUtils; import com.shunzhi.parent.AppConfig; import com.shunzhi.parent.AppContext; @@ -14,6 +16,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import io.reactivex.functions.Consumer; +import retrofit2.HttpException; /** * Created by Administrator on 2018/3/6 0006. @@ -36,21 +39,27 @@ public class LoginAndRegisterPresenter extends LoginAndRegisterContract.LoginPre mRxManager.register(mIModel.getLoginResult(loginName, loginPwd).subscribe(new Consumer() { @Override public void accept(JsonObject jsonObject) throws Exception { - if (jsonObject != null && !TextUtils.isEmpty(jsonObject.get("access_token").getAsString())) { - AppConfig.getAppConfig(AppContext.getInstance()).set(AppContext.getInstance() - , AppConfig.ACCESS_TOKEN, jsonObject.get("access_token").getAsString()); - AppConfig.getAppConfig(AppContext.getInstance()).set(AppContext.getInstance(), AppConfig.LOGIN_NAME,loginName); - AppConfig.getAppConfig(AppContext.getInstance()).set(AppContext.getInstance(), AppConfig.LOGIN_PWD, loginPwd); - RetrofitCreateHelper.getInstance().setAuthorization("Bearer "+jsonObject.get("access_token").getAsString()); - getUserInfo(); - } else { - ToastUtils.showToast(jsonObject.get("error").getAsString()); + try { + if (jsonObject != null && !TextUtils.isEmpty(jsonObject.get("access_token").getAsString())) { + AppConfig.getAppConfig(AppContext.getInstance()).set(AppConfig.ACCESS_TOKEN, jsonObject.get("access_token").getAsString()); + AppConfig.getAppConfig(AppContext.getInstance()).set(AppConfig.LOGIN_NAME,loginName); + AppConfig.getAppConfig(AppContext.getInstance()).set(AppConfig.LOGIN_PWD, loginPwd); + RetrofitCreateHelper.getInstance().setAuthorization("Bearer "+jsonObject.get("access_token").getAsString()); + getUserInfo(); + } else { + ToastUtils.showToast(jsonObject.get("error").getAsString()); + } + }catch (Exception e){ + e.printStackTrace(); + ToastUtils.showToast("登录失败:"+e.toString()); } } }, new Consumer() { @Override public void accept(Throwable throwable) throws Exception { - ToastUtils.showToast(throwable.getMessage()); + if (null!=throwable) + OkHttpExceptionUtil.handOkHttpException((HttpException) throwable); +// ToastUtils.showToast(throwable.getMessage()); } })); @@ -110,7 +119,7 @@ public class LoginAndRegisterPresenter extends LoginAndRegisterContract.LoginPre @Override public void getUserInfo() { - + Log.d("77777","getUserInfo="); } diff --git a/app/src/main/java/com/shunzhi/parent/ui/MainActivity.java b/app/src/main/java/com/shunzhi/parent/ui/MainActivity.java index 49564c3..418bace 100644 --- a/app/src/main/java/com/shunzhi/parent/ui/MainActivity.java +++ b/app/src/main/java/com/shunzhi/parent/ui/MainActivity.java @@ -33,7 +33,8 @@ public class MainActivity extends BaseCompatActivity { private int CEPING_INDEX = 0, CONSULT_INDEX = 1, REPORT_INDEX = 2, MINE_INDEX = 3; - FragmentTransaction fragmentTransaction=null; + FragmentTransaction fragmentTransaction = null; + @Override protected void initView(Bundle savedInstanceState) { @@ -77,11 +78,11 @@ public class MainActivity extends BaseCompatActivity { fragments[REPORT_INDEX] = reportFragment; fragments[MINE_INDEX] = mineFragment; - fragmentTransaction=getSupportFragmentManager().beginTransaction(); - fragmentTransaction.add(R.id.frame,cePingFragment) - .add(R.id.frame,consultFragment) - .add(R.id.frame,reportFragment) - .add(R.id.frame,mineFragment) + fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.add(R.id.frame, cePingFragment) + .add(R.id.frame, consultFragment) + .add(R.id.frame, reportFragment) + .add(R.id.frame, mineFragment) .show(cePingFragment) .hide(consultFragment) .hide(reportFragment) diff --git a/app/src/main/java/com/shunzhi/parent/ui/fragment/CePingFragment.java b/app/src/main/java/com/shunzhi/parent/ui/fragment/CePingFragment.java index 35513ac..caf8305 100644 --- a/app/src/main/java/com/shunzhi/parent/ui/fragment/CePingFragment.java +++ b/app/src/main/java/com/shunzhi/parent/ui/fragment/CePingFragment.java @@ -1,21 +1,29 @@ package com.shunzhi.parent.ui.fragment; -import android.content.Context; -import android.net.Uri; import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.view.LayoutInflater; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.view.View; -import android.view.ViewGroup; +import com.share.mvpsdk.base.BasePresenter; +import com.share.mvpsdk.base.fragment.BaseMVPCompatFragment; import com.shunzhi.parent.R; -public class CePingFragment extends Fragment { +public class CePingFragment extends BaseMVPCompatFragment { @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_ce_ping, container, false); + public int getLayoutId() { + return R.layout.fragment_ce_ping; + } + + @Override + public void initUI(View view, @Nullable Bundle savedInstanceState) { + + } + + @NonNull + @Override + public BasePresenter initPresenter() { + return null; } } diff --git a/app/src/main/res/drawable-xhdpi/report_normal.png b/app/src/main/res/drawable-xhdpi/report_normal.png new file mode 100644 index 0000000..066c4a6 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/report_normal.png differ diff --git a/app/src/main/res/drawable-xhdpi/report_select.png b/app/src/main/res/drawable-xhdpi/report_select.png new file mode 100644 index 0000000..3b309ee Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/report_select.png differ diff --git a/app/src/main/res/drawable/selector_report.xml b/app/src/main/res/drawable/selector_report.xml new file mode 100644 index 0000000..f32fa4a --- /dev/null +++ b/app/src/main/res/drawable/selector_report.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/res/menu/bottom_navigationview.xml b/app/src/main/res/menu/bottom_navigationview.xml index ddd881c..cafffac 100644 --- a/app/src/main/res/menu/bottom_navigationview.xml +++ b/app/src/main/res/menu/bottom_navigationview.xml @@ -14,7 +14,7 @@ diff --git a/mvpsdk/src/main/java/com/share/mvpsdk/helper/RetrofitCreateHelper.java b/mvpsdk/src/main/java/com/share/mvpsdk/helper/RetrofitCreateHelper.java index 01715fc..471d198 100644 --- a/mvpsdk/src/main/java/com/share/mvpsdk/helper/RetrofitCreateHelper.java +++ b/mvpsdk/src/main/java/com/share/mvpsdk/helper/RetrofitCreateHelper.java @@ -1,14 +1,21 @@ package com.share.mvpsdk.helper; +import android.util.Log; + import com.share.mvpsdk.helper.okhttp.CacheInterceptor; import com.share.mvpsdk.helper.okhttp.HttpCache; import com.share.mvpsdk.helper.okhttp.TrustManager; import com.share.mvpsdk.utils.StringUtils; +import com.share.mvpsdk.utils.ToastUtils; +import java.io.IOException; import java.util.concurrent.TimeUnit; +import okhttp3.Interceptor; import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; import okhttp3.logging.HttpLoggingInterceptor; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; @@ -27,7 +34,8 @@ public class RetrofitCreateHelper { private static final HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor() .setLevel(HttpLoggingInterceptor.Level.BODY); private static CacheInterceptor cacheInterceptor = new CacheInterceptor(); - private static OkHttpClient okHttpClient = new OkHttpClient.Builder() + private static OkHttpClient.Builder okhttpClientBuilder=null; + /*private static OkHttpClient okHttpClient = new OkHttpClient.Builder() //SSL证书 .sslSocketFactory(TrustManager.getUnsafeOkHttpClient()) .hostnameVerifier(org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER) @@ -43,7 +51,7 @@ public class RetrofitCreateHelper { .writeTimeout(TIMEOUT_READ, TimeUnit.SECONDS) //失败重连 .retryOnConnectionFailure(true) - .build(); + .build();*/ public static RetrofitCreateHelper getInstance(){ if (null==retrofitCreateHelper){ synchronized (RetrofitCreateHelper.class){ @@ -52,31 +60,68 @@ public class RetrofitCreateHelper { } return retrofitCreateHelper; } - public static T createApi(Class clazz, String url) { + + public RetrofitCreateHelper(){ + if (null==okhttpClientBuilder)okhttpClientBuilder=new OkHttpClient.Builder(); + okhttpClientBuilder.connectTimeout(10000,TimeUnit.SECONDS); + okhttpClientBuilder.addInterceptor(new Interceptor() { + @Override + public Response intercept(Chain chain) throws IOException { + Request original = chain.request(); + Request.Builder requestBuilder = original.newBuilder().header("Authorization", Authorization); + Request request = requestBuilder.build(); + return chain.proceed(request); + } + }); + okhttpClientBuilder.addNetworkInterceptor(cacheInterceptor); + okhttpClientBuilder.addInterceptor(interceptor); + } + + public T createApi(Class clazz, String url) { Authorization=token; Retrofit retrofit = new Retrofit.Builder() .baseUrl(url) - .client(okHttpClient) + .client(okhttpClientBuilder.build()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .build(); return retrofit.create(clazz); } - public static T loginApi(Class clazz, String url) { +// public static T loginApi(Class clazz, String url) { +// Authorization= StringUtils.getSign(); +// okHttpClient.newBuilder().addInterceptor(new Interceptor() { +// @Override +// public Response intercept(Chain chain) throws IOException { +// Request original = chain.request(); +// Request.Builder requestBuilder = original.newBuilder().header("Authorization", Authorization); +// Request request = requestBuilder.build(); +// return chain.proceed(request); +// } +// }); +// Log.d("77777","Authorization="+Authorization); +// Retrofit retrofit = new Retrofit.Builder() +// .baseUrl(url) +// .client(okHttpClient) +// .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) +// .addConverterFactory(GsonConverterFactory.create()) +// .build(); +// return retrofit.create(clazz); +// } + public void setAuthorization(String Authorization){ + this.token=Authorization; + } + + public T login(Class clazz,String url){ Authorization= StringUtils.getSign(); - Retrofit retrofit = new Retrofit.Builder() + Retrofit retrofit=new Retrofit.Builder() + .client(okhttpClientBuilder.build()) .baseUrl(url) - .client(okHttpClient) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .build(); return retrofit.create(clazz); } - public void setAuthorization(String Authorization){ - this.token=Authorization; - } - diff --git a/mvpsdk/src/main/java/com/share/mvpsdk/utils/OkHttpExceptionUtil.java b/mvpsdk/src/main/java/com/share/mvpsdk/utils/OkHttpExceptionUtil.java new file mode 100644 index 0000000..1bfecb1 --- /dev/null +++ b/mvpsdk/src/main/java/com/share/mvpsdk/utils/OkHttpExceptionUtil.java @@ -0,0 +1,30 @@ +package com.share.mvpsdk.utils; + +import android.support.annotation.NonNull; +import android.util.Log; + +import org.json.JSONObject; + +import okhttp3.ResponseBody; +import retrofit2.HttpException; +import retrofit2.Response; + +/** + * Created by 10501 on 2017/7/18. + */ + +public class OkHttpExceptionUtil { + public static void handOkHttpException(@NonNull HttpException e){ + Response response = e.response(); + if (response==null)return; + ResponseBody responseBody = response.errorBody(); + if (responseBody==null)return; + try { + JSONObject json = new JSONObject(responseBody.string()); + Log.d("77777",json.toString()); + ToastUtils.showToast(json.optString("error")); + } catch (Exception e1) { + e1.printStackTrace(); + } + } +} -- libgit2 0.21.0