arg0) throws SQLException {
- // TODO Auto-generated method stub
- return null;
- }
-
- public Connection getConnection() throws SQLException {
- // TODO Auto-generated method stub
- return null;
- }
-
- public Connection getConnection(String theUsername, String thePassword)
- throws SQLException {
- // TODO Auto-generated method stub
- return null;
- }
- }
-
- public String getMailhost() {
- return mailhost;
- }
-
- public void setMailhost(String mailhost) {
- this.mailhost = mailhost;
- properties.setProperty("mail.host", this.mailhost);
- }
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/email/ToastUtils.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/email/ToastUtils.java
deleted file mode 100644
index c774d18..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/email/ToastUtils.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.android.learn.base.email;
-
-import android.content.Context;
-import android.os.Looper;
-import android.widget.Toast;
-
-public class ToastUtils {
- static Toast toast = null;
- public static void show(Context context, String text) {
- try {
- if(toast!=null){
- toast.setText(text);
- }else{
- toast= Toast.makeText(context, text, Toast.LENGTH_SHORT);
- }
- toast.show();
- } catch (Exception e) {
- //解决在子线程中调用Toast的异常情况处理
- Looper.prepare();
- Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
- Looper.loop();
- }
- }
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/CancelCollectEvent.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/CancelCollectEvent.java
deleted file mode 100644
index 9668f40..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/CancelCollectEvent.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.android.learn.base.event;
-
-public class CancelCollectEvent {
- public int id;
-
- public CancelCollectEvent(int id) {
- this.id = id;
-
- }
-
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/ChangeNightEvent.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/ChangeNightEvent.java
deleted file mode 100644
index 9fb14b9..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/ChangeNightEvent.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.android.learn.base.event;
-
-public class ChangeNightEvent {
-
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/LoginEvent.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/LoginEvent.java
deleted file mode 100644
index df35c53..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/LoginEvent.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.android.learn.base.event;
-
-public class LoginEvent {
-
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/LogoutEvent.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/LogoutEvent.java
deleted file mode 100644
index af9b97d..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/LogoutEvent.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.android.learn.base.event;
-
-public class LogoutEvent {
-
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/RestartMainEvent.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/RestartMainEvent.java
deleted file mode 100644
index 95c1d29..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/RestartMainEvent.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.android.learn.base.event;
-
-import android.app.Activity;
-
-public class RestartMainEvent {
- public Activity activity;
- public RestartMainEvent(Activity activity){
- this.activity=activity;
- }
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/UpdateDoneEvent.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/UpdateDoneEvent.java
deleted file mode 100644
index fcdda32..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/UpdateDoneEvent.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.android.learn.base.event;
-
-public class UpdateDoneEvent {
-
-
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/UpdateTodoEvent.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/UpdateTodoEvent.java
deleted file mode 100644
index ab04c3f..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/event/UpdateTodoEvent.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.android.learn.base.event;
-
-public class UpdateTodoEvent {
-
-
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/fragment/BaseFragment.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/fragment/BaseFragment.java
deleted file mode 100644
index 22265bd..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/fragment/BaseFragment.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package com.android.learn.base.fragment;
-
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.FrameLayout;
-import android.widget.LinearLayout;
-
-import com.gaolei.basemodule.R;
-import com.android.learn.base.utils.NetUtils;
-
-import butterknife.ButterKnife;
-import butterknife.Unbinder;
-
-
-
-
-public abstract class BaseFragment extends Fragment implements View.OnClickListener {
- private FrameLayout mLlContent;
- View subFragmentView;
- private Button bt_error_refresh;
- public LinearLayout mErrorPageView;
- private Unbinder mBinder;
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View mParentView = inflater.inflate(R.layout.fragment_base, container, false);
- initBaseView(mParentView);
- addContentView(inflater);
- Bundle bundle = getArguments();
- if (bundle == null) {
- bundle = savedInstanceState;
- }
- initData(bundle);
- initView(mParentView);
- return mParentView;
- }
-
- /**
- * 用于布局加载完毕,子Fragment可以开始初始化数据
- *
- * @param bundle
- */
- public abstract void initData(Bundle bundle);
- public abstract void initView(View view);
-
- private void initBaseView(View view) {
- mLlContent = view.findViewById(R.id.base_fragment_content);
- mErrorPageView = view.findViewById(R.id.ll_base_error_content);
- bt_error_refresh = view.findViewById(R.id.bt_error_refresh);
-// if (!NetworkUtil.isNetworkAvailable(getActivity()))
-// showErrorPage(true);
- bt_error_refresh.setOnClickListener(this);
- }
-
- /**
- * 设置子布局layout
- */
- public abstract int setContentLayout();
-
- public abstract void reload();
-
- /**
- * 设置内容
- */
- public void addContentView(LayoutInflater inflater) {
- subFragmentView = inflater.inflate(setContentLayout(), null);
- mLlContent.addView(subFragmentView);
- mBinder = ButterKnife.bind(this, subFragmentView);
-
- }
-
-
-
- /**
- * 显示/隐藏 错误页面
- *
- * @param isShow
- */
- public void showErrorPage(boolean isShow) {
- mErrorPageView.setVisibility(isShow ? View.VISIBLE : View.GONE);
- }
-
- @Override
- public void onClick(View v) {
- if (v.getId() == R.id.bt_error_refresh) {
- if (NetUtils.isConnected())
- mErrorPageView.setVisibility(View.GONE);
- reload();
- }
- }
-
-
- public void onDestroyView() {
- super.onDestroyView();
- if (mBinder != null) {
- mBinder.unbind();
- }
- }
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/fragment/BaseLazyFragment.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/fragment/BaseLazyFragment.java
deleted file mode 100644
index fa010b9..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/fragment/BaseLazyFragment.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package com.android.learn.base.fragment;
-
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.view.View;
-
-
-
-public abstract class BaseLazyFragment extends BaseFragment {
-
- //Fragment的View加载完毕的标记
- private boolean isViewCreated;
- //Fragment对用户可见的标记
- private boolean isUIVisible;
-
-
- @Override
- public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- isViewCreated = true;
- lazyLoad();
- }
-
- @Override
- public void setUserVisibleHint(boolean isVisibleToUser) {
-
- super.setUserVisibleHint(isVisibleToUser);
- //isVisibleToUser这个boolean值表示:该Fragment的UI 用户是否可见
- if (isVisibleToUser) {
- isUIVisible = true;
- lazyLoad();
- } else {
- isUIVisible = false;
- }
- }
-
- private void lazyLoad() {
-
- //这里进行双重标记判断,是因为setUserVisibleHint会多次回调,并且会在onCreateView执行前回调,必须确保onCreateView加载完毕且页面可见,才加载数据
- if (isViewCreated && isUIVisible) {
-
- loadData();
- //数据加载完毕,恢复标记,防止重复加载
- isViewCreated = false;
- isUIVisible = false;
-
- }
- }
-
-
- protected abstract void loadData();
-
-
- @Override
- public void onDestroyView() {
- super.onDestroyView();
- //页面销毁,恢复标记
- isViewCreated = false;
- isUIVisible = false;
-
- }
-
-
- /**Fragment中TextView显示的内容*/
- // protected abstract String getFragmentTextviewContent();
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/fragment/BaseMvpFragment.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/fragment/BaseMvpFragment.java
deleted file mode 100644
index f6f4056..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/fragment/BaseMvpFragment.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.android.learn.base.fragment;
-
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-
-import com.android.learn.base.mpresenter.BasePresenter;
-
-
-/**
- * Created by gaolei on 2018/4/26.
- */
-
-
-public abstract class BaseMvpFragment extends BaseFragment {
-
- public P mPresenter;
- //Fragment的View加载完毕的标记
- private boolean isViewCreated;
- //Fragment对用户可见的标记
- private boolean isUIVisible;
-
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- isViewCreated = true;
-
- mPresenter = initPresenter();
- if (mPresenter != null)
- mPresenter.attach(this);
- lazyLoad();
- }
-
- @Override
- public void onDestroy() {
- if (mPresenter != null)
- mPresenter.dettach();
- super.onDestroy();
- }
-
- //实例presenter
- public abstract P initPresenter();
-
-
- @Override
- public void setUserVisibleHint(boolean isVisibleToUser) {
-
- super.setUserVisibleHint(isVisibleToUser);
- //isVisibleToUser这个boolean值表示:该Fragment的UI 用户是否可见
- if (isVisibleToUser) {
- isUIVisible = true;
- lazyLoad();
- } else {
- isUIVisible = false;
- }
- }
-
- private void lazyLoad() {
-
- //这里进行双重标记判断,是因为setUserVisibleHint会多次回调,并且会在onCreateView执行前回调,必须确保onCreateView加载完毕且页面可见,才加载数据
- if (isViewCreated && isUIVisible) {
-
- loadData();
- //数据加载完毕,恢复标记,防止重复加载
- isViewCreated = false;
- isUIVisible = false;
-
- }
- }
-
-
- protected abstract void loadData();
-
-
- @Override
- public void onDestroyView() {
- super.onDestroyView();
- //页面销毁,恢复标记
- isViewCreated = false;
- isUIVisible = false;
-
- }
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/BannerListData.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/BannerListData.java
deleted file mode 100644
index e920968..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/BannerListData.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.android.learn.base.mmodel;
-
-import java.util.List;
-
-
-public class BannerListData extends BaseData {
-
-// {
-// "desc":"最新项目上线啦~", "id":13, "imagePath":
-// "http://www.wanandroid.com/blogimgs/5ae04af4-72b9-4696-81cb-1644cdcd2d29.jpg", "isVisible":
-// 1, "order":0, "title":"最新项目上线啦~", "type":0, "url":"http://www.wanandroid.com/pindex"
-// }
-
-
- public List data;
-
- public class BannerData {
-
- public int id;
- public String url;
- public String imagePath;
- public String title;
- public String desc;
- public int isVisible;
- public int order;
- public int type;
-
- }
-
-
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/BaseData.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/BaseData.java
deleted file mode 100644
index 8b53774..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/BaseData.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.android.learn.base.mmodel;
-
-/**
- * @author quchao
- * @date 2018/2/12
- */
-
-public class BaseData {
-
- public static final int SUCCESS = 0;
- public static final int FAIL = -1;
-
- public int errorCode;
-
- public String errorMsg;
-
-
- public int getErrorCode() {
- return errorCode;
- }
-
- public void setErrorCode(int errorCode) {
- this.errorCode = errorCode;
- }
-
- public String getErrorMsg() {
- return errorMsg;
- }
-
- public void setErrorMsg(String errorMsg) {
- this.errorMsg = errorMsg;
- }
-
-
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/BaseResponse.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/BaseResponse.java
deleted file mode 100644
index 0e3e5e0..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/BaseResponse.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.android.learn.base.mmodel;
-
-public class BaseResponse {
-
- public static final int SUCCESS = 0;
- public static final int FAIL = 1;
-
- /**
- * 0:成功,1:失败
- */
- public int errorCode;
-
- public String errorMsg;
-
- public T data;
-
- public int getErrorCode() {
- return errorCode;
- }
-
- public void setErrorCode(int errorCode) {
- this.errorCode = errorCode;
- }
-
- public String getErrorMsg() {
- return errorMsg;
- }
-
- public void setErrorMsg(String errorMsg) {
- this.errorMsg = errorMsg;
- }
-
- public T getData() {
- return data;
- }
-
- public void setData(T data) {
- this.data = data;
- }
-
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/FeedArticleListData.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/FeedArticleListData.java
deleted file mode 100644
index f252a36..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/FeedArticleListData.java
+++ /dev/null
@@ -1,247 +0,0 @@
-package com.android.learn.base.mmodel;
-
-import java.io.Serializable;
-import java.util.List;
-
-public class FeedArticleListData {
-
- public int curPage;
- public List datas;
- public int offset;
- public boolean over;
- public int pageCount;
- public int size;
- public int total;
-
- public int getCurPage() {
- return curPage;
- }
-
- public void setCurPage(int curPage) {
- this.curPage = curPage;
- }
-
- public List getDatas() {
- return datas;
- }
-
- public void setDatas(List datas) {
- this.datas = datas;
- }
-
- public int getOffset() {
- return offset;
- }
-
- public void setOffset(int offset) {
- this.offset = offset;
- }
-
- public boolean isOver() {
- return over;
- }
-
- public void setOver(boolean over) {
- this.over = over;
- }
-
- public int getPageCount() {
- return pageCount;
- }
-
- public void setPageCount(int pageCount) {
- this.pageCount = pageCount;
- }
-
- public int getSize() {
- return size;
- }
-
- public void setSize(int size) {
- this.size = size;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public class FeedArticleData implements Serializable {
-
- public String apkLink;
- public String author;
- public int chapterId;
- public String chapterName;
- public boolean collect=true;
- public int courseId;
- public String desc;
- public String envelopePic;
- public int id;
- public String link;
- public String niceDate;
- public String origin;
- public String projectLink;
- public int superChapterId;
- public String superChapterName;
- public long publishTime;
- public String title;
- public int visible;
- public int zan,originId;
-
- public String getApkLink() {
- return apkLink;
- }
-
- public void setApkLink(String apkLink) {
- this.apkLink = apkLink;
- }
-
- public String getAuthor() {
- return author;
- }
-
- public void setAuthor(String author) {
- this.author = author;
- }
-
- public int getChapterId() {
- return chapterId;
- }
-
- public void setChapterId(int chapterId) {
- this.chapterId = chapterId;
- }
-
- public String getChapterName() {
- return chapterName;
- }
-
- public void setChapterName(String chapterName) {
- this.chapterName = chapterName;
- }
-
- public boolean isCollect() {
- return collect;
- }
-
- public void setCollect(boolean collect) {
- this.collect = collect;
- }
-
- public int getCourseId() {
- return courseId;
- }
-
- public void setCourseId(int courseId) {
- this.courseId = courseId;
- }
-
- public String getDesc() {
- return desc;
- }
-
- public void setDesc(String desc) {
- this.desc = desc;
- }
-
- public String getEnvelopePic() {
- return envelopePic;
- }
-
- public void setEnvelopePic(String envelopePic) {
- this.envelopePic = envelopePic;
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getLink() {
- return link;
- }
-
- public void setLink(String link) {
- this.link = link;
- }
-
- public String getNiceDate() {
- return niceDate;
- }
-
- public void setNiceDate(String niceDate) {
- this.niceDate = niceDate;
- }
-
- public String getOrigin() {
- return origin;
- }
-
- public void setOrigin(String origin) {
- this.origin = origin;
- }
-
- public String getProjectLink() {
- return projectLink;
- }
-
- public void setProjectLink(String projectLink) {
- this.projectLink = projectLink;
- }
-
- public int getSuperChapterId() {
- return superChapterId;
- }
-
- public void setSuperChapterId(int superChapterId) {
- this.superChapterId = superChapterId;
- }
-
- public String getSuperChapterName() {
- return superChapterName;
- }
-
- public void setSuperChapterName(String superChapterName) {
- this.superChapterName = superChapterName;
- }
-
- public long getPublishTime() {
- return publishTime;
- }
-
- public void setPublishTime(long publishTime) {
- this.publishTime = publishTime;
- }
-
- public String getTitle() {
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public int getVisible() {
- return visible;
- }
-
- public void setVisible(int visible) {
- this.visible = visible;
- }
-
- public int getZan() {
- return zan;
- }
-
- public void setZan(int zan) {
- this.zan = zan;
- }
- }
-
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/HotKeyData.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/HotKeyData.java
deleted file mode 100644
index c4fab0f..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/HotKeyData.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.android.learn.base.mmodel;
-
-public class HotKeyData {
-
-
- /**
- * id : 6
- * link :
- * name : 面试
- * order : 1
- * visible : 1
- */
-
- private int id;
- private String link;
- private String name;
- private int order;
- private int visible;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getLink() {
- return link;
- }
-
- public void setLink(String link) {
- this.link = link;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getOrder() {
- return order;
- }
-
- public void setOrder(int order) {
- this.order = order;
- }
-
- public int getVisible() {
- return visible;
- }
-
- public void setVisible(int visible) {
- this.visible = visible;
- }
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/ProjectListData.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/ProjectListData.java
deleted file mode 100644
index aaec995..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/ProjectListData.java
+++ /dev/null
@@ -1,289 +0,0 @@
-package com.android.learn.base.mmodel;
-
-import java.io.Serializable;
-import java.util.List;
-
-
-/**
- * @author quchao
- * @date 2018/2/24
- */
-
-public class ProjectListData {
-
- /**
- * "curPage": 1,
- * "datas": [],
- * "offset": 0,
- * "over": true,
- * "pageCount": 1,
- * "size": 15,
- * "total": 8
- */
- public ListData data;
-
- public class ListData {
- public int curPage;
- public List datas;
- public int offset;
- public boolean over;
- public int pageCount;
- public int size;
- public int total;
- public List getDatas() {
- return datas;
- }
-
- public void setDatas(List datas) {
- this.datas = datas;
- }
-// public int getCurPage() {
-// return curPage;
-// }
-//
-// public void setCurPage(int curPage) {
-// this.curPage = curPage;
-// }
-//
-// public int getOffset() {
-// return offset;
-// }
-//
-// public void setOffset(int offset) {
-// this.offset = offset;
-// }
-//
-// public boolean isOver() {
-// return over;
-// }
-//
-// public void setOver(boolean over) {
-// this.over = over;
-// }
-//
-// public int getPageCount() {
-// return pageCount;
-// }
-//
-// public void setPageCount(int pageCount) {
-// this.pageCount = pageCount;
-// }
-//
-// public int getSize() {
-// return size;
-// }
-//
-// public void setSize(int size) {
-// this.size = size;
-// }
-//
-// public int getTotal() {
-// return total;
-// }
-//
-// public void setTotal(int total) {
-// this.total = total;
-// }
- }
-
- public class ProjectData implements Serializable
- {
-
-// {
-// "apkLink": "",
-// "author": "LiangLuDev",
-// "chapterId": 294,
-// "chapterName": "完整项目",
-// "collect": false,
-// "courseId": 13,
-// "desc": "注册登录、用户信息、用户密码、用户图像修改、书籍分类、本地书籍扫描、书架、书籍搜索(作者名或书籍名)、书籍阅读(仅txt格式,暂不支持PDF等其他格式)、阅读字体、背景颜色、翻页效果等设置、意见反馈(反馈信息发送到我的邮箱)、应用版本更新",
-// "envelopePic": "http://www.wanandroid.com/blogimgs/fab6fb8b-c3aa-495f-b6a9-c007d78751c0.gif",
-// "fresh": false,
-// "id": 2836,
-// "link": "http://www.wanandroid.com/blog/show/2116",
-// "niceDate": "2018-04-22",
-// "origin": "",
-// "projectLink": "https://github.com/LiangLuDev/WeYueReader",
-// "publishTime": 1524376619000,
-// "superChapterId": 0,
-// "superChapterName": "",
-// "tags": [ ],
-// "title": "微Yue电子书阅读 WeYueReader",
-// "type": 0,
-// "visible": 1,
-// "zan": 0
-//}
- public String apkLink;
- public String author;
- public int chapterId;
- public String chapterName;
- public boolean collect;
- public int courseId;
- public String desc;
- public String envelopePic;
- public int id;
- public String link;
- public String niceDate;
- public String origin;
- public String projectLink;
- public int superChapterId;
- public String superChapterName;
- public long publishTime;
- public String title;
- public int visible;
- public int zan;
-
-// public String getApkLink() {
-// return apkLink;
-// }
-//
-// public void setApkLink(String apkLink) {
-// this.apkLink = apkLink;
-// }
-//
- public String getAuthor() {
- return author;
- }
-
- public void setAuthor(String author) {
- this.author = author;
- }
-
- public int getChapterId() {
- return chapterId;
- }
-//
-// public void setChapterId(int chapterId) {
-// this.chapterId = chapterId;
-// }
-//
-// public String getChapterName() {
-// return chapterName;
-// }
-//
-// public void setChapterName(String chapterName) {
-// this.chapterName = chapterName;
-// }
-//
-// public boolean isCollect() {
-// return collect;
-// }
-//
-// public void setCollect(boolean collect) {
-// this.collect = collect;
-// }
-//
-// public int getCourseId() {
-// return courseId;
-// }
-//
-// public void setCourseId(int courseId) {
-// this.courseId = courseId;
-// }
-//
- public String getDesc() {
- return desc;
- }
-
- public void setDesc(String desc) {
- this.desc = desc;
- }
-
- public String getEnvelopePic() {
- return envelopePic;
- }
-
- public void setEnvelopePic(String envelopePic) {
- this.envelopePic = envelopePic;
- }
-//
-// public int getId() {
-// return id;
-// }
-//
-// public void setId(int id) {
-// this.id = id;
-// }
-
- public String getLink() {
- return link;
- }
-
- public void setLink(String link) {
- this.link = link;
- }
-
- public String getNiceDate() {
- return niceDate;
- }
-
- public void setNiceDate(String niceDate) {
- this.niceDate = niceDate;
- }
-//
-// public String getOrigin() {
-// return origin;
-// }
-//
-// public void setOrigin(String origin) {
-// this.origin = origin;
-// }
-//
-// public String getProjectLink() {
-// return projectLink;
-// }
-//
-// public void setProjectLink(String projectLink) {
-// this.projectLink = projectLink;
-// }
-//
-// public int getSuperChapterId() {
-// return superChapterId;
-// }
-//
-// public void setSuperChapterId(int superChapterId) {
-// this.superChapterId = superChapterId;
-// }
-//
-// public String getSuperChapterName() {
-// return superChapterName;
-// }
-//
-// public void setSuperChapterName(String superChapterName) {
-// this.superChapterName = superChapterName;
-// }
-//
-// public long getPublishTime() {
-// return publishTime;
-// }
-//
-// public void setPublishTime(long publishTime) {
-// this.publishTime = publishTime;
-// }
-//
- public String getTitle() {
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-//
-// public int getVisible() {
-// return visible;
-// }
-//
-// public void setVisible(int visible) {
-// this.visible = visible;
-// }
-//
-// public int getZan() {
-// return zan;
-// }
-//
-// public void setZan(int zan) {
-// this.zan = zan;
-// }
-
- }
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/RegisterLoginData.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/RegisterLoginData.java
deleted file mode 100644
index 545aa0b..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/RegisterLoginData.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.android.learn.base.mmodel;
-
-import java.util.List;
-
-/**
- * @author quchao
- * @date 2018/2/26
- */
-
-public class RegisterLoginData extends BaseData {
-
- public Data data;
-
- public class Data {
- public String username;
- public String password;
- public String email, icon, token;
- public int id, type;
- // private List chapterTops;
- public List collectIds;
-
- @Override
- public String toString() {
- return "RegisterLoginData{" +
- "username='" + username + '\'' +
- ", password='" + password + '\'' +
- ", email='" + email + '\'' +
- ", icon='" + icon + '\'' +
- ", token='" + token + '\'' +
- ", id=" + id +
- ", type=" + type +
- ", collectIds=" + collectIds +
- '}';
- }
- }
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/TodoData.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/TodoData.java
deleted file mode 100644
index dc3e812..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/TodoData.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package com.android.learn.base.mmodel;
-
-import java.io.Serializable;
-import java.util.List;
-
-public class TodoData {
-
-
- /**
- * curPage : 1
- * datas : [{"completeDate":null,"completeDateStr":"","content":"圣诞节快乐","date":1545667200000,"dateStr":"2018-12-25","id":5566,"priority":0,"status":0,"title":"圣诞节","type":0,"userId":13479},{"completeDate":null,"completeDateStr":"","content":"圣诞夜快乐","date":1545580800000,"dateStr":"2018-12-24","id":5564,"priority":0,"status":0,"title":"圣诞夜","type":0,"userId":13479}]
- * offset : 0
- * over : true
- * pageCount : 1
- * size : 20
- * total : 2
- */
-
- private int curPage;
- private int offset;
- private boolean over;
- private int pageCount;
- private int size;
- private int total;
- private List datas;
-
- public int getCurPage() {
- return curPage;
- }
-
- public void setCurPage(int curPage) {
- this.curPage = curPage;
- }
-
- public int getOffset() {
- return offset;
- }
-
- public void setOffset(int offset) {
- this.offset = offset;
- }
-
- public boolean isOver() {
- return over;
- }
-
- public void setOver(boolean over) {
- this.over = over;
- }
-
- public int getPageCount() {
- return pageCount;
- }
-
- public void setPageCount(int pageCount) {
- this.pageCount = pageCount;
- }
-
- public int getSize() {
- return size;
- }
-
- public void setSize(int size) {
- this.size = size;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public List getDatas() {
- return datas;
- }
-
- public void setDatas(List datas) {
- this.datas = datas;
- }
-
- public static class DatasBean implements Serializable{
- /**
- * completeDate : null
- * completeDateStr :
- * content : 圣诞节快乐
- * date : 1545667200000
- * dateStr : 2018-12-25
- * id : 5566
- * priority : 0
- * status : 0
- * title : 圣诞节
- * type : 0
- * userId : 13479
- */
-
- private Object completeDate;
- private String completeDateStr;
- private String content;
- private long date;
- private String dateStr;
- private int id;
- private int priority;
- private int status;
- private String title;
- private int type;
- private int userId;
-
- public Object getCompleteDate() {
- return completeDate;
- }
-
- public void setCompleteDate(Object completeDate) {
- this.completeDate = completeDate;
- }
-
- public String getCompleteDateStr() {
- return completeDateStr;
- }
-
- public void setCompleteDateStr(String completeDateStr) {
- this.completeDateStr = completeDateStr;
- }
-
- public String getContent() {
- return content;
- }
-
- public void setContent(String content) {
- this.content = content;
- }
-
- public long getDate() {
- return date;
- }
-
- public void setDate(long date) {
- this.date = date;
- }
-
- public String getDateStr() {
- return dateStr;
- }
-
- public void setDateStr(String dateStr) {
- this.dateStr = dateStr;
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public int getPriority() {
- return priority;
- }
-
- public void setPriority(int priority) {
- this.priority = priority;
- }
-
- public int getStatus() {
- return status;
- }
-
- public void setStatus(int status) {
- this.status = status;
- }
-
- public String getTitle() {
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public int getType() {
- return type;
- }
-
- public void setType(int type) {
- this.type = type;
- }
-
- public int getUserId() {
- return userId;
- }
-
- public void setUserId(int userId) {
- this.userId = userId;
- }
- }
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/TreeBean.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/TreeBean.java
deleted file mode 100644
index a3f694b..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/TreeBean.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package com.android.learn.base.mmodel;
-
-import java.io.Serializable;
-import java.util.List;
-
-
-public class TreeBean implements Serializable {
-
- /**
- * children : [{"children":[],"courseId":13,"id":60,"name":"Android Studio相关","order":1000,"parentChapterId":150,"visible":1},"..."]
- * courseId : 13
- * id : 150
- * name : 开发环境
- * order : 1
- * parentChapterId : 0
- * visible : 1
- */
-
- private int courseId;
- private int id;
- private String name;
- private int order;
- private int parentChapterId;
- private int visible;
- private List children;
-
- public int getCourseId() {
- return courseId;
- }
-
- public void setCourseId(int courseId) {
- this.courseId = courseId;
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getOrder() {
- return order;
- }
-
- public void setOrder(int order) {
- this.order = order;
- }
-
- public int getParentChapterId() {
- return parentChapterId;
- }
-
- public void setParentChapterId(int parentChapterId) {
- this.parentChapterId = parentChapterId;
- }
-
- public int getVisible() {
- return visible;
- }
-
- public void setVisible(int visible) {
- this.visible = visible;
- }
-
- public List getChildren() {
- return children;
- }
-
- public void setChildren(List children) {
- this.children = children;
- }
-
- public static class ChildrenBean {
- /**
- * children : []
- * courseId : 13
- * id : 60
- * name : Android Studio相关
- * order : 1000
- * parentChapterId : 150
- * visible : 1
- */
-
- private int courseId;
- private int id;
- private String name;
- private int order;
- private int parentChapterId;
- private int visible;
- private List> children;
-
- public int getCourseId() {
- return courseId;
- }
-
- public void setCourseId(int courseId) {
- this.courseId = courseId;
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getOrder() {
- return order;
- }
-
- public void setOrder(int order) {
- this.order = order;
- }
-
- public int getParentChapterId() {
- return parentChapterId;
- }
-
- public void setParentChapterId(int parentChapterId) {
- this.parentChapterId = parentChapterId;
- }
-
- public int getVisible() {
- return visible;
- }
-
- public void setVisible(int visible) {
- this.visible = visible;
- }
-
- public List> getChildren() {
- return children;
- }
-
- public void setChildren(List> children) {
- this.children = children;
- }
- }
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/WxArticle.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/WxArticle.java
deleted file mode 100644
index 298592d..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mmodel/WxArticle.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package com.android.learn.base.mmodel;
-
-import com.google.gson.Gson;
-
-import java.util.List;
-
-public class WxArticle {
-
-
- /**
- * children : []
- * courseId : 13
- * id : 408
- * name : 鸿洋
- * order : 190000
- * parentChapterId : 407
- * userControlSetTop : false
- * visible : 1
- */
-
- private int courseId;
- private int id;
- private String name;
- private int order;
- private int parentChapterId;
- private boolean userControlSetTop;
- private int visible;
- private List> children;
-
- public static WxArticle objectFromData(String str) {
-
- return new Gson().fromJson(str, WxArticle.class);
- }
-
- public int getCourseId() {
- return courseId;
- }
-
- public void setCourseId(int courseId) {
- this.courseId = courseId;
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getOrder() {
- return order;
- }
-
- public void setOrder(int order) {
- this.order = order;
- }
-
- public int getParentChapterId() {
- return parentChapterId;
- }
-
- public void setParentChapterId(int parentChapterId) {
- this.parentChapterId = parentChapterId;
- }
-
- public boolean isUserControlSetTop() {
- return userControlSetTop;
- }
-
- public void setUserControlSetTop(boolean userControlSetTop) {
- this.userControlSetTop = userControlSetTop;
- }
-
- public int getVisible() {
- return visible;
- }
-
- public void setVisible(int visible) {
- this.visible = visible;
- }
-
- public List> getChildren() {
- return children;
- }
-
- public void setChildren(List> children) {
- this.children = children;
- }
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mpresenter/BasePresenter.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mpresenter/BasePresenter.java
deleted file mode 100644
index ae0718e..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mpresenter/BasePresenter.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.android.learn.base.mpresenter;
-
-import com.android.learn.base.thirdframe.retrofit.ApiService;
-import com.android.learn.base.thirdframe.retrofit.RetrofitProvider;
-import com.android.learn.base.thirdframe.rxjava.BaseObserver;
-import io.reactivex.Observable;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.disposables.CompositeDisposable;
-import io.reactivex.schedulers.Schedulers;
-
-public abstract class BasePresenter {
-
- public V mView;
-// public Observable observable;
- public ApiService mRestService = RetrofitProvider.getInstance().builder().getApiService();
- CompositeDisposable mCompositeDisposable ;
-
- /**
- * 绑定View
- *
- * @param view
- */
- public void attach(V view) {
- this.mView = view;
- if (mCompositeDisposable == null) {
- mCompositeDisposable = new CompositeDisposable();
- }
- }
-
- /**
- * 释放View
- */
- public void dettach() {
- this.mView = null;
- if (mCompositeDisposable != null) {
- mCompositeDisposable.clear();
- }
- }
-
- public void addSubscribe( Observable observable,BaseObserver observer){
- mCompositeDisposable.add(observer);
- observable.subscribeOn(Schedulers.io())
- .unsubscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(observer);
- }
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mview/BaseView.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mview/BaseView.java
deleted file mode 100644
index c04a9ad..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/mview/BaseView.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.android.learn.base.mview;
-
-public interface BaseView {
-
- void showLoading();
- void hideLoading();
- void showErrorMsg(String errorMsg);
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/glide/ImageLoader.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/glide/ImageLoader.java
deleted file mode 100644
index 5974beb..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/glide/ImageLoader.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.android.learn.base.thirdframe.glide;
-
-import android.content.Context;
-import android.widget.ImageView;
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.load.engine.DiskCacheStrategy;
-import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
-import com.bumptech.glide.request.RequestOptions;
-
-
-public class ImageLoader {
- public static ImageLoader instance;
- public static RequestOptions options;
-
- private ImageLoader() {
- }
-
- public static ImageLoader getInstance() {
- if (instance == null) {
- instance = new ImageLoader();
- options = new RequestOptions()
-// .placeholder(R.drawable.ic_launcher)// 正在加载中的图片
-// .error(R.drawable.video_error) // 加载失败的图片
- .diskCacheStrategy(DiskCacheStrategy.ALL); // 磁盘缓存策略
-
- }
- return instance;
- }
-
- /**
- * 使用Glide加载圆形ImageView(如头像)时,不要使用占位图
- *
- * @param context context
- * @param url image url
- * @param iv imageView
- */
- public void load(Context context, String url, ImageView iv) {
-
- Glide.with(context).load(url).apply(options).transition(new DrawableTransitionOptions().crossFade(500))
- .into(iv);
- }
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/glide/MyAppGlideModule.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/glide/MyAppGlideModule.java
deleted file mode 100644
index 95c667d..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/glide/MyAppGlideModule.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.android.learn.base.thirdframe.glide;
-
-import android.content.Context;
-import android.os.Environment;
-import android.support.annotation.NonNull;
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.GlideBuilder;
-import com.bumptech.glide.Registry;
-import com.bumptech.glide.annotation.GlideModule;
-import com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;
-import com.bumptech.glide.load.engine.cache.DiskLruCacheFactory;
-import com.bumptech.glide.load.engine.cache.LruResourceCache;
-import com.bumptech.glide.module.AppGlideModule;
-import com.android.learn.base.application.CustomApplication;
-
-@GlideModule
-public final class MyAppGlideModule extends AppGlideModule {
-
- public static String glideCachePath;
- @Override
- public boolean isManifestParsingEnabled() {
-// return super.isManifestParsingEnabled();
- return false;
- }
-
- @Override
- public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
- int diskCacheSizeBytes = 1024 * 1024 * 100; // 50 MB
- glideCachePath= CustomApplication.context.getExternalFilesDir("glide_cache").getAbsolutePath();
- builder.setDiskCache(
- new DiskLruCacheFactory( glideCachePath, diskCacheSizeBytes )
- );
- int maxMemory = (int) Runtime.getRuntime().maxMemory();//获取系统分配给应用的总内存大小
- int memoryCacheSize = maxMemory / 8;//设置图片内存缓存占用八分之一
- //设置内存缓存大小
- builder.setMemoryCache(new LruResourceCache(memoryCacheSize));
- //设置BitmapPool缓存内存大小
- builder.setBitmapPool(new LruBitmapPool(memoryCacheSize));
-
- }
- private String getStorageDirectory(Context context){
- return Environment.getExternalStorageDirectory().getPath()+"/"+context.getPackageName();
- }
- @Override
- public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
- super.registerComponents(context, glide, registry);
- }
-}
-
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/ApiService.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/ApiService.java
deleted file mode 100644
index fd8533f..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/ApiService.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit;
-
-
-import com.android.learn.base.mmodel.BannerListData;
-import com.android.learn.base.mmodel.BaseData;
-import com.android.learn.base.mmodel.BaseResponse;
-import com.android.learn.base.mmodel.FeedArticleListData;
-import com.android.learn.base.mmodel.HotKeyData;
-import com.android.learn.base.mmodel.RegisterLoginData;
-import com.android.learn.base.mmodel.ProjectListData;
-import com.android.learn.base.mmodel.TodoData;
-import com.android.learn.base.mmodel.TreeBean;
-import com.android.learn.base.mmodel.WxArticle;
-
-import java.util.List;
-import java.util.Map;
-
-import io.reactivex.Observable;
-import retrofit2.http.Field;
-import retrofit2.http.FormUrlEncoded;
-import retrofit2.http.GET;
-import retrofit2.http.POST;
-import retrofit2.http.Path;
-import retrofit2.http.Query;
-import retrofit2.http.QueryMap;
-
-
-public interface ApiService {
-
-
- @GET("project/list/{page}/json")
- Observable getProjectListData(@Path("page") int page, @Query("cid") int cid);
-
- @GET("banner/json")
- Observable getBannerListData();
-
- @GET("article/list/{num}/json")
- Observable> getFeedArticleList(@Path("num") int num);
-
- @GET("article/list/{num}/json")
- Observable> getKnowledgeArticleList(@Path("num") int num, @Query("cid") int cid);
-
- @POST("user/login")
- @FormUrlEncoded
- Observable login(@Field("username") String username, @Field("password") String password);
-
- @GET("user/logout/json")
- Observable logout();
-
- @POST("user/register")
- @FormUrlEncoded
- Observable register(@Field("username") String username, @Field("password") String password, @Field("repassword") String repassword);
-
- @POST("lg/collect/{id}/json")
- Observable addCollectArticle(@Path("id") int id);
-
- @GET("lg/collect/list/{page}/json")
- Observable> getCollectList(@Path("page") int page);
-
- @POST("lg/uncollect_originId/{id}/json")
- @FormUrlEncoded
- Observable cancelCollectArticle(@Path("id") int id, @Field("originId") int originId);
-
- @GET("tree/json")
- Observable>> getKnowledgeTree();
-
- @GET("hotkey/json")
- Observable>> getHotKey();
-
- @GET("wxarticle/chapters/json")
- Observable>> getWxArticle();
-
- @GET("wxarticle/list/{id}/{num}/json")
- Observable> getWxArtileById(@Path("id") int id, @Path("num") int num);
-
- @POST("article/query/{num}/json")
- @FormUrlEncoded
- Observable> search(@Path("num") int num, @Field("k") String key);
-
- @GET("lg/todo/list/{type}/json")
- Observable> getTodoList(@Path("type") int type);
-
- @POST("lg/todo/listnotdo/{type}/json/{page}")
- Observable> getListNotDone(@Path("type") int type, @Path("page") int page);
-
- @POST("lg/todo/listdone/{type}/json/{page}")
- Observable> getListDone(@Path("type") int type, @Path("page") int page);
-
- @POST("lg/todo/add/json")
- Observable addTodo(@QueryMap Map map);
-
- @POST("lg/todo/update/{id}/json")
- Observable updateTodo(@Path("id") int id, @QueryMap Map map);
-
- @POST("lg/todo/delete/{id}/json")
- Observable deleteTodo(@Path("id") int id);
-
- //status: 0或1,传1代表未完成到已完成,反之则反之。
- @POST("lg/todo/done/{id}/json")
- Observable updateTodoStatus(@Path("id") int id, @Query("status") int status);
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/CustomizeGsonConverterFactory.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/CustomizeGsonConverterFactory.java
deleted file mode 100644
index 6d0131c..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/CustomizeGsonConverterFactory.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit;
-
-import com.google.gson.Gson;
-import com.google.gson.TypeAdapter;
-import com.google.gson.reflect.TypeToken;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-
-import okhttp3.RequestBody;
-import okhttp3.ResponseBody;
-import retrofit2.Converter;
-import retrofit2.Retrofit;
-
-/**
- * @author lqx
- * 自定义GsonConverterFactory
- */
-public class CustomizeGsonConverterFactory extends Converter.Factory {
- public static CustomizeGsonConverterFactory create() {
- return create(new Gson());
- }
-
- public static CustomizeGsonConverterFactory create(Gson gson) {
- return new CustomizeGsonConverterFactory(gson);
- }
-
- private final Gson gson;
-
- private CustomizeGsonConverterFactory(Gson gson) {
- if (gson == null) {
- throw new NullPointerException("gson == null");
- }
- this.gson = gson;
- }
-
- @Override
- public Converter responseBodyConverter(Type type, Annotation[] annotations,
- Retrofit retrofit) {
- TypeAdapter> adapter = gson.getAdapter(TypeToken.get(type));
- return new CustomizeGsonResponseBodyConverter<>(gson, adapter);
- }
-
- @Override
- public Converter, RequestBody> requestBodyConverter(Type type, Annotation[] parameterAnnotations, Annotation[] methodAnnotations, Retrofit retrofit) {
- TypeAdapter> adapter = gson.getAdapter(TypeToken.get(type));
- return new CustomizeGsonRequestBodyConverter<>(gson, adapter);
- }
-
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/CustomizeGsonRequestBodyConverter.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/CustomizeGsonRequestBodyConverter.java
deleted file mode 100644
index 6e8170d..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/CustomizeGsonRequestBodyConverter.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit;
-
-import com.google.gson.Gson;
-import com.google.gson.TypeAdapter;
-import com.google.gson.stream.JsonWriter;
-
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-import java.nio.charset.Charset;
-
-import okhttp3.MediaType;
-import okhttp3.RequestBody;
-import okio.Buffer;
-import retrofit2.Converter;
-
-/**
- * @param
- * @author lqx
- */
-public class CustomizeGsonRequestBodyConverter implements Converter {
-
- private static final MediaType MEDIA_TYPE = MediaType.parse("application/json; charset=UTF-8");
- private static final Charset UTF_8 = Charset.forName("UTF-8");
-
- private final Gson gson;
- private final TypeAdapter adapter;
-
- CustomizeGsonRequestBodyConverter(Gson gson, TypeAdapter adapter) {
- this.gson = gson;
- this.adapter = adapter;
- }
-
- @Override
- public RequestBody convert(T value) throws IOException {
- Buffer buffer = new Buffer();
- Writer writer = new OutputStreamWriter(buffer.outputStream(), UTF_8);
- JsonWriter jsonWriter = gson.newJsonWriter(writer);
- adapter.write(jsonWriter, value);
- jsonWriter.close();
- return RequestBody.create(MEDIA_TYPE, buffer.readByteString());
- }
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/CustomizeGsonResponseBodyConverter.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/CustomizeGsonResponseBodyConverter.java
deleted file mode 100644
index 92dce17..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/CustomizeGsonResponseBodyConverter.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit;
-
-import com.android.learn.base.utils.LogUtil;
-import com.google.gson.Gson;
-import com.google.gson.TypeAdapter;
-
-import org.json.JSONObject;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import okhttp3.ResponseBody;
-import retrofit2.Converter;
-
-/**
- * @param
- * @author lqx
- */
-public class CustomizeGsonResponseBodyConverter implements Converter {
-
- private final Gson gson;
- private final TypeAdapter adapter;
- String TAG="CustomizeGsonResponseBodyConverter";
-
- CustomizeGsonResponseBodyConverter(Gson gson, TypeAdapter adapter) {
- this.gson = gson;
- this.adapter = adapter;
- }
-
- @Override
- public T convert(ResponseBody value) throws IOException {
-
- String responseBodyStr = value.string();
- LogUtil.d(TAG,"responseBodyStr---------------"+responseBodyStr);
-
-
- return adapter.fromJson(responseBodyStr);
- }
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/RetrofitDynamicProvider.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/RetrofitDynamicProvider.java
deleted file mode 100644
index 20a5d7f..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/RetrofitDynamicProvider.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit;
-
-
-import com.android.learn.base.application.CustomApplication;
-import com.android.learn.base.thirdframe.retrofit.interceptor.DefaultHeaderInterceptor;
-import com.android.learn.base.thirdframe.retrofit.interceptor.HttpLoggingInterceptor;
-import com.franmontiel.persistentcookiejar.PersistentCookieJar;
-import com.franmontiel.persistentcookiejar.cache.SetCookieCache;
-import com.franmontiel.persistentcookiejar.persistence.SharedPrefsCookiePersistor;
-
-import java.nio.charset.Charset;
-import java.util.concurrent.TimeUnit;
-
-import okhttp3.OkHttpClient;
-import retrofit2.Retrofit;
-import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
-
-
-public final class RetrofitDynamicProvider {
- private final Charset UTF8 = Charset.forName("UTF-8");
- private Retrofit mRetrofit;
- private OkHttpClient mOkHttpClient;
- private static volatile RetrofitDynamicProvider sInstance;
- private ApiService restService;
- public static String netCachePath;
-// public final String BASE_URL = "http://www.xuetangx.com/";
-
- private RetrofitDynamicProvider() {
- }
-
-
- public RetrofitDynamicProvider builder(String BASE_URL) {
- netCachePath = CustomApplication.context.getExternalFilesDir("net_cache").getAbsolutePath();
- if (mOkHttpClient == null) {
- mOkHttpClient = new OkHttpClient.Builder()
- .addNetworkInterceptor(new HttpLoggingInterceptor())
-// .addNetworkInterceptor(new HandleGzipInterceptor())
- .addInterceptor(new DefaultHeaderInterceptor())//请求连接中添加头信息
-// .addNetworkInterceptor(new OnlineCacheInterceptor())//有网缓存拦截器
-// .addInterceptor(new OfflineCacheInterceptor())//无网缓存拦截器
-// .cache(new Cache(new File(netCachePath), 50 * 10240 * 1024))//缓存路径和空间设置
-// .addInterceptor(new RetryIntercepter(4))//重试
-// .addInterceptor(new GzipRequestInterceptor())//开启Gzip压缩
-
-// .addInterceptor(new ProgressInterceptor())//请求url的进度
-// .addInterceptor(new TokenInterceptor())//token过期,自动刷新Token
-// .addInterceptor(new SignInterceptor())//所有的接口,默认需要带上sign,timestamp2个参数
-// .addNetworkInterceptor(new ParamsEncryptInterceptor())//参数加密,一般针对表单中的字段和值进行加密,防止中途第三方进行窥探和篡改
- .cookieJar(new PersistentCookieJar(new SetCookieCache(), new SharedPrefsCookiePersistor(CustomApplication.context)))
- .connectTimeout(30, TimeUnit.SECONDS)
- .readTimeout(30, TimeUnit.SECONDS)
- .writeTimeout(30, TimeUnit.SECONDS)
- .build();
-
- }
-// if (mRetrofit == null) {
- mRetrofit = new Retrofit.Builder()
- .client(mOkHttpClient)
- .baseUrl(BASE_URL)
- .addConverterFactory(CustomizeGsonConverterFactory.create())
- .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
- .build();
-// }
- return sInstance;
- }
-
- public static RetrofitDynamicProvider getInstance() {
- if (sInstance == null) {
- synchronized (RetrofitDynamicProvider.class) {
- if (sInstance == null) {
- sInstance = new RetrofitDynamicProvider();
- }
- }
- }
- return sInstance;
- }
-
- public T createService(Class tClass) {
- return mRetrofit.create(tClass);
- }
-
-
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/RetrofitProvider.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/RetrofitProvider.java
deleted file mode 100644
index 9d6c27c..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/RetrofitProvider.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit;
-
-
-import com.android.learn.base.application.CustomApplication;
-import com.android.learn.base.thirdframe.retrofit.interceptor.HttpLoggingInterceptor;
-import com.android.learn.base.thirdframe.retrofit.interceptor.OfflineCacheInterceptor;
-import com.android.learn.base.thirdframe.retrofit.interceptor.OnlineCacheInterceptor;
-import com.android.learn.base.thirdframe.retrofit.interceptor.RetryIntercepter;
-import com.franmontiel.persistentcookiejar.PersistentCookieJar;
-import com.franmontiel.persistentcookiejar.cache.SetCookieCache;
-import com.franmontiel.persistentcookiejar.persistence.SharedPrefsCookiePersistor;
-
-import java.io.File;
-import java.util.concurrent.TimeUnit;
-
-import okhttp3.Cache;
-import okhttp3.OkHttpClient;
-import retrofit2.Retrofit;
-import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
-import retrofit2.converter.gson.GsonConverterFactory;
-
-
-public final class RetrofitProvider {
-
- private Retrofit mRetrofit;
- private OkHttpClient mOkHttpClient;
- private static volatile RetrofitProvider sInstance;
- private ApiService restService;
- public static String netCachePath;
- public final String BASE_URL = "http://www.wanandroid.com/";
- public PersistentCookieJar persistentCookieJar;
- public SharedPrefsCookiePersistor sharedPrefsCookiePersistor;
-
- private RetrofitProvider() {
- }
-
-
- public RetrofitProvider builder() {
- netCachePath = CustomApplication.context.getExternalFilesDir("net_cache").getAbsolutePath();
- if (mOkHttpClient == null) {
- sharedPrefsCookiePersistor=new SharedPrefsCookiePersistor(CustomApplication.context);
- persistentCookieJar=new PersistentCookieJar(new SetCookieCache(), sharedPrefsCookiePersistor);
- mOkHttpClient = new OkHttpClient.Builder()
- .addNetworkInterceptor(new HttpLoggingInterceptor())
- .addNetworkInterceptor(new OnlineCacheInterceptor())//有网缓存拦截器
- .addInterceptor(new OfflineCacheInterceptor())//无网缓存拦截器
- .cache(new Cache(new File(netCachePath), 50 * 10240 * 1024))//缓存路径和空间设置
- .addInterceptor(new RetryIntercepter(4))//重试
-// .addInterceptor(new GzipRequestInterceptor())//开启Gzip压缩
-
-// .addInterceptor(new DefaultHeaderInterceptor())//请求连接中添加头信息
-// .addInterceptor(new ProgressInterceptor())//请求url的进度
-// .addInterceptor(new TokenInterceptor())//token过期,自动刷新Token
-// .addInterceptor(new SignInterceptor())//所有的接口,默认需要带上sign,timestamp2个参数
-// .addNetworkInterceptor(new ParamsEncryptInterceptor())//参数加密,一般针对表单中的字段和值进行加密,防止中途第三方进行窥探和篡改
- .cookieJar(persistentCookieJar)
- .connectTimeout(5, TimeUnit.SECONDS)
- .readTimeout(5, TimeUnit.SECONDS)
- .writeTimeout(5, TimeUnit.SECONDS)
- .build();
-
- }
- if (mRetrofit == null) {
- mRetrofit = new Retrofit.Builder()
- .client(mOkHttpClient)
- .baseUrl(BASE_URL)
- .addConverterFactory(CustomizeGsonConverterFactory.create())
- .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
- .build();
- }
- return sInstance;
- }
-
- public static RetrofitProvider getInstance() {
- if (sInstance == null) {
- synchronized (RetrofitProvider.class) {
- if (sInstance == null) {
- sInstance = new RetrofitProvider();
- }
- }
- }
- return sInstance;
- }
-
- public T createService(Class tClass) {
- return mRetrofit.create(tClass);
- }
-
- public ApiService getApiService() {
- if (restService == null)
- restService = mRetrofit.create(ApiService.class);
- return restService;
- }
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/DefaultHeaderInterceptor.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/DefaultHeaderInterceptor.java
deleted file mode 100644
index d7afc7a..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/DefaultHeaderInterceptor.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit.interceptor;
-
-import java.io.IOException;
-
-import okhttp3.Headers;
-import okhttp3.Interceptor;
-import okhttp3.Request;
-import okhttp3.Response;
-
-public class DefaultHeaderInterceptor implements Interceptor {
-
- @Override
- public Response intercept(Chain chain) throws IOException {
- Request originalrequest = chain.request();//原始request
- Headers headers = new Headers.Builder()
- .add("name", "jason")
- .add("age", "27")
- .add("token", "dfedsdfsdfffdd12dsef123sdfef1s2dfe")
- .build();//构造一个Headers
- Request request = originalrequest.newBuilder().headers(headers).build();//注意这行代码别写错了
- return chain.proceed(request);
- }
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/GzipRequestInterceptor.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/GzipRequestInterceptor.java
deleted file mode 100644
index a4d11ff..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/GzipRequestInterceptor.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit.interceptor; /** This interceptor compresses the HTTP request body. Many webservers can't handle this! */
-
-import java.io.IOException;
-
-import okhttp3.Interceptor;
-import okhttp3.MediaType;
-import okhttp3.Request;
-import okhttp3.RequestBody;
-import okhttp3.Response;
-import okio.BufferedSink;
-import okio.GzipSink;
-import okio.Okio;
-
-/**
- * 我们在向服务器提交大量数据的时候,希望对post的数据进行gzip压缩
- * 这个拦截器压缩了请求实体. 很多网络服务器无法处理它 */
-public class GzipRequestInterceptor implements Interceptor {
- @Override public Response intercept(Interceptor.Chain chain) throws IOException {
- Request originalRequest = chain.request();
- if (originalRequest.body() == null || originalRequest.header("Content-Encoding") != null) {
- return chain.proceed(originalRequest);
- }
-
- Request compressedRequest = originalRequest.newBuilder()
- .header("Content-Encoding", "gzip")
- .method(originalRequest.method(), gzip(originalRequest.body()))
- .build();
- return chain.proceed(compressedRequest);
- }
-
- private RequestBody gzip(final RequestBody body) {
- return new RequestBody() {
- @Override public MediaType contentType() {
- return body.contentType();
- }
-
- @Override public long contentLength() {
- return -1; // We don't know the compressed length in advance!
- }
-
- @Override public void writeTo(BufferedSink sink) throws IOException {
- BufferedSink gzipSink = Okio.buffer(new GzipSink(sink));
- body.writeTo(gzipSink);
- gzipSink.close();
- }
- };
- }
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/HttpLoggingInterceptor.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/HttpLoggingInterceptor.java
deleted file mode 100644
index 71e2a0d..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/HttpLoggingInterceptor.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit.interceptor;
-
-import android.util.Log;
-
-
-import com.android.learn.base.utils.LogUtil;
-
-import java.io.IOException;
-
-import okhttp3.Interceptor;
-import okhttp3.Request;
-import okhttp3.Response;
-import okhttp3.ResponseBody;
-
-
-public class HttpLoggingInterceptor implements Interceptor {
- public Response intercept(Interceptor.Chain chain) throws IOException {
- //这个chain里面包含了request和response,所以你要什么都可以从这里拿
- Request request = chain.request();
-
- long t1 = System.nanoTime();//请求发起的时间
- LogUtil.d("HttpLoggingInterceptor",String.format("发送请求 %s on %s%n%s",
- request.url(), chain.connection(), request.headers()));
-
- Response response = chain.proceed(request);
-
- long t2 = System.nanoTime();//收到响应的时间
-
- //这里不能直接使用response.body().string()的方式输出日志
- //因为response.body().string()之后,response中的流会被关闭,程序会报错,我们需要创建出一
- //个新的response给应用层处理
- ResponseBody responseBody = response.peekBody(1024 * 1024);
-
- LogUtil.d("HttpLoggingInterceptor",String.format("接收响应: [%s] %n返回json:【%s】 %.1fms%n%s",
- response.request().url(),
- responseBody.string(),
- (t2 - t1) / 1e6d,
- response.headers()));
-
- return response;
- }
-}
-
-
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/OfflineCacheInterceptor.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/OfflineCacheInterceptor.java
deleted file mode 100644
index d5a5de4..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/OfflineCacheInterceptor.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit.interceptor;
-
-import android.util.Log;
-
-import com.android.learn.base.application.CustomApplication;
-import com.android.learn.base.utils.NetUtils;
-
-import java.io.IOException;
-
-import okhttp3.Interceptor;
-import okhttp3.Request;
-import okhttp3.Response;
-
-public class OfflineCacheInterceptor implements Interceptor {
- @Override
- public Response intercept(Chain chain) throws IOException {
- Request request = chain.request();
- if (!NetUtils.isConnected()) {
- int offlineCacheTime = Integer.MAX_VALUE;//离线的时候的缓存的过期时间
- request = request.newBuilder()
-// .cacheControl(new CacheControl
-// .Builder()
-// .maxStale(60, TimeUnit.SECONDS)
-// .onlyIfCached()
-// .build()
-// )
-// 两种方式结果是一样的,写法不同
- .header("Cache-Control", "public, only-if-cached, max-stale=" + offlineCacheTime)
- .build();
- }
- Response response = chain.proceed(request);
- Log.d("gaolei","OfflineCacheInterceptor------------response.code():"+response.code());
- if (response.code() == 504) {
- // 缓存已经不可使用
- }
- return response;
- }
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/OnlineCacheInterceptor.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/OnlineCacheInterceptor.java
deleted file mode 100644
index 78b383a..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/OnlineCacheInterceptor.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit.interceptor;
-
-import android.util.Log;
-
-import java.io.IOException;
-
-import okhttp3.Interceptor;
-import okhttp3.Request;
-import okhttp3.Response;
-
-public class OnlineCacheInterceptor implements Interceptor {
- @Override
- public Response intercept(Chain chain) throws IOException {
- Request request = chain.request();
- Response response = chain.proceed(request);
- int onlineCacheTime = 10;//在线的时候的缓存过期时间,如果想要不缓存,直接时间设置为0
- Response newResponse = response.newBuilder()
- .header("Cache-Control", "public, max-age=" + onlineCacheTime)
- .removeHeader("Pragma")
- .build();
- Log.d("gaolei","OnlineCacheInterceptor------------newResponse.code():"+newResponse.code());
-
- return newResponse;
- }
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/ParamsEncryptInterceptor.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/ParamsEncryptInterceptor.java
deleted file mode 100644
index 6655ba3..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/ParamsEncryptInterceptor.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit.interceptor;
-
-import android.util.Base64;
-import android.util.Log;
-
-import java.io.IOException;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-import java.security.spec.InvalidKeySpecException;
-
-import javax.crypto.Cipher;
-import javax.crypto.KeyGenerator;
-import javax.crypto.SecretKey;
-import javax.crypto.spec.SecretKeySpec;
-
-import okhttp3.Interceptor;
-import okhttp3.MediaType;
-import okhttp3.Request;
-import okhttp3.RequestBody;
-import okhttp3.Response;
-import okio.Buffer;
-
-public class ParamsEncryptInterceptor implements Interceptor {
-
- private static final String TAG = ParamsEncryptInterceptor.class.getSimpleName();
-
- private static final boolean DEBUG = true;
-
- @Override
- public Response intercept(Chain chain) throws IOException {
-
-
- Request request = chain.request();
- try {
- RequestBody oldBody = request.body();
- Buffer buffer = new Buffer();
- oldBody.writeTo(buffer);
- String strOldBody = buffer.readUtf8();
- MediaType mediaType = MediaType.parse("text/plain; charset=utf-8");
- //在发动报文前,用Base64和AES对参数进行加密转码
- String strNewBody = encryptDataWithSymmetricKey(generateSymmetric(), strOldBody);
- RequestBody body = RequestBody.create(mediaType, strNewBody);
- request = request.newBuilder().header("Content-Type", body.contentType().toString())
- .header("Content-Length", String.valueOf(body.contentLength())).method(request.method(), body).build();
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- } catch (InvalidKeySpecException e) {
- e.printStackTrace();
- }
- return chain.proceed(request);
-}
-
- //加密算法自己和服务端约定即可
- private static String encrypt(String str){
- //your code
- return "";
- }
-
- //生成了对称密钥
- public static SecretKeySpec generateSymmetric() {
- // Set up secret key spec for 128-bit AES encryption and decryption
- SecretKeySpec sks = null;
- try {
- SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
- sr.setSeed("any data used as random seed".getBytes());
- KeyGenerator kg = KeyGenerator.getInstance("AES");
- kg.init(128, sr);
- SecretKey secretKey=kg.generateKey();
- //在这里可以用从服务端获取到的RSA公钥对刚才随机产生的加密密钥secretKey进行加密
- sks = new SecretKeySpec(secretKey.getEncoded(), "AES");
-
- System.out.println("AES KEY: " + sks);
- } catch (Exception e) {
- Log.e(TAG, "AES secret key spec error");
- }
- return sks;
- }
-
-//用SecretKeySpec加密数据
- private static String encryptDataWithSymmetricKey (SecretKeySpec symmKey, String data) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException {
-
- // encryption
- byte[] toBeCiphred = data.getBytes("UTF-8");
- String encryptedData = null;
-
- try {
- Cipher c = Cipher.getInstance("AES");
- c.init(Cipher.ENCRYPT_MODE, symmKey);
- byte[] encodedBytes = c.doFinal(toBeCiphred);
- System.out.println("BYTE STRING (ASYMM): " + encodedBytes);
- //将SecretKeySpec转换为Base64字符串格式
- encryptedData = Base64.encodeToString(encodedBytes, Base64.DEFAULT);
-
- } catch (Exception e) {
- Log.e(TAG, "AES encryption error");
- throw new RuntimeException(e);
- }
- return encryptedData;
- }
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/ProgressInterceptor.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/ProgressInterceptor.java
deleted file mode 100644
index 3b505d6..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/ProgressInterceptor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit.interceptor;
-
-import com.android.learn.base.thirdframe.retrofit.interceptor.util.ProgressListener;
-import com.android.learn.base.thirdframe.retrofit.interceptor.util.ProgressResponseBody;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import okhttp3.Interceptor;
-import okhttp3.Request;
-import okhttp3.Response;
-import okhttp3.ResponseBody;
-
-/**
- * @author guolin
- * @since 2017/11/5
- */
-public class ProgressInterceptor implements Interceptor {
-
- public static final Map LISTENER_MAP = new HashMap<>();
-
- public static void addListener(String url, ProgressListener listener) {
- LISTENER_MAP.put(url, listener);
- }
-
- public static void removeListener(String url) {
- LISTENER_MAP.remove(url);
- }
-
- @Override
- public Response intercept(Chain chain) throws IOException {
- Request request = chain.request();
- Response response = chain.proceed(request);
- String url = request.url().toString();
- ResponseBody body = response.body();
- Response newResponse = response.newBuilder().body(new ProgressResponseBody(url, body)).build();
- return newResponse;
- }
-
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/RetryIntercepter.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/RetryIntercepter.java
deleted file mode 100644
index 9f9e521..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/RetryIntercepter.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit.interceptor;
-
-import java.io.IOException;
-
-import okhttp3.Interceptor;
-import okhttp3.Request;
-import okhttp3.Response;
-
-public class RetryIntercepter implements Interceptor {
-
- public int maxRetry;//最大重试次数
- private int retryNum = 0;//假如设置为3次重试的话,则最大可能请求4次(默认1次+3次重试)
-
- public RetryIntercepter(int maxRetry) {
- this.maxRetry = maxRetry;
- }
-
- @Override
- public Response intercept(Chain chain) throws IOException {
- Request request = chain.request();
- System.out.println("retryNum=" + retryNum);
- Response response = chain.proceed(request);
- while (!response.isSuccessful() && retryNum < maxRetry) {
- retryNum++;
- System.out.println("retryNum=" + retryNum);
- response = chain.proceed(request);
- }
- return response;
- }
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/SignInterceptor.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/SignInterceptor.java
deleted file mode 100644
index c23cbf0..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/SignInterceptor.java
+++ /dev/null
@@ -1,160 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit.interceptor;
-
-import android.content.Context;
-import android.support.v4.BuildConfig;
-import android.support.v4.util.ArrayMap;
-import android.util.Log;
-import android.util.Pair;
-
-import com.android.learn.base.utils.LogUtil;
-import com.android.learn.base.utils.Utils;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-import okhttp3.FormBody;
-import okhttp3.Interceptor;
-import okhttp3.MediaType;
-import okhttp3.Request;
-import okhttp3.RequestBody;
-import okhttp3.Response;
-import okio.Buffer;
-
-
-
-public final class SignInterceptor implements Interceptor {
-
- private static final String MD5KEY = "base64:FgBvWS7+m3BPRnKemuoOwXEf7kvldmM+VOmJS5Iccxs=";
- private Context mContext;
-
- public SignInterceptor() {
- }
-
- @Override
- public Response intercept(Chain chain) throws IOException {
-
- Request request = chain.request();
-
- //header add version
- Request.Builder requestBuilder = request.newBuilder();
- requestBuilder.addHeader("version", BuildConfig.VERSION_NAME);
- requestBuilder.addHeader("platform", "ANDROID");
-
- if (!request.method().equals("POST")) {
- return chain.proceed(request);
- }
-
- JSONObject bodyJson = null;
- List> params = new ArrayList<>();
- ArrayMap arrayMap = new ArrayMap<>();
-
- FormBody body = null;
- try {
- body = (FormBody) request.body();
- } catch (ClassCastException c) {
- }
-
- if (body != null) {
-
- int size = body.size();
- if (size > 0) {
- for (int i = 0; i < size; i++) {
- params.add(new Pair<>(body.name(i), body.value(i)));
- }
- }
- } else {
- RequestBody requestBody = request.body();
-
- if (requestBody != null) {
- Buffer buffer = new Buffer();
- requestBody.writeTo(buffer);
- Charset charset = Charset.forName("UTF-8");
- MediaType contentType = requestBody.contentType();
- if (contentType != null) {
- charset = contentType.charset(charset);
- }
- String paramsStr = buffer.readString(charset);
- if (BuildConfig.DEBUG) {
- Log.i("HTTP", "request = " + paramsStr);
- }
-
- try {
- bodyJson = new JSONObject(paramsStr);
- } catch (JSONException e) {
- LogUtil.e("JSON", "JsonObject err");
- }
-
- if (bodyJson != null) {
- Iterator it = bodyJson.keys();
- while (it.hasNext()) {
- String key = it.next();
- Object value = null;
- try {
- value = bodyJson.get(key);
- } catch (JSONException e) {
- LogUtil.e("JSON", "JsonObject get err");
- }
- if (key.equals("token")) {
- arrayMap.put("token", String.valueOf(value));
- arrayMap.put("timestamp", String.valueOf(System.currentTimeMillis() / 1000));
-
- for (String strKey : arrayMap.keySet()) {
- params.add(new Pair<>(strKey, arrayMap.get(strKey)));
- }
- } else {
- params.add(new Pair<>(key, String.valueOf(value)));
- }
-
- }
- }
-
- }
- }
-
- params.add(new Pair<>("MD5Key", MD5KEY));
- Collections.sort(params, new Comparator>() {
- @Override
- public int compare(Pair lhs, Pair rhs) {
- return lhs.second.compareTo(rhs.second);
- }
- });
-
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < params.size(); i++) {
- sb.append(params.get(i).second);
- if (i < params.size() - 1) {
- sb.append("");
- }
- }
-
- String sign = Utils.md5Encode(sb.toString());
- params.add(new Pair<>("sign", sign));
-
- for (Pair pair : params) {
- if ((arrayMap.containsKey(pair.first) || pair.first.equals("sign")) && bodyJson != null) {
- try {
- bodyJson.put(pair.first, pair.second);
- } catch (JSONException e) {
- LogUtil.e("JSON", "JsonObject put err");
- }
- }
- }
-
- String postBodyString = bodyJson.toString();
- request = requestBuilder
- .post(RequestBody.create(MediaType.parse("application/json;charset=UTF-8"),
- postBodyString))
- .build();
-
- return chain.proceed(request);
- }
-
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/TokenInterceptor.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/TokenInterceptor.java
deleted file mode 100644
index bd039f2..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/TokenInterceptor.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit.interceptor;
-
-import com.android.learn.base.utils.LogUtil;
-
-import java.io.IOException;
-
-import okhttp3.Interceptor;
-import okhttp3.Request;
-import okhttp3.Response;
-
-public class TokenInterceptor implements Interceptor {
-
- String TAG=getClass()+"";
- @Override
- public Response intercept(Chain chain) throws IOException {
- Request request = chain.request();
- Response response = chain.proceed(request);
- LogUtil.d(TAG,response.code()+"");
-
- if (isTokenExpired(response)) {//根据和服务端的约定判断token过期
- LogUtil.d(TAG,"静默自动刷新Token,然后重新请求数据");
- //同步请求方式,获取最新的Token
- String newSession = getNewToken();
- //使用新的Token,创建新的请求
- Request newRequest = chain.request()
- .newBuilder()
- .header("Cookie", "JSESSIONID=" + newSession)
- .build();
- //重新请求
- return chain.proceed(newRequest);
- }
- return response;
- }
-
- /**
- * 根据Response,判断Token是否失效
- *
- * @param response
- * @return
- */
- private boolean isTokenExpired(Response response) {
- if (response.code() == 404) {
- return true;
- }
- return false;
- }
-
- /**
- * 同步请求方式,获取最新的Token
- *
- * @return
- */
- private String getNewToken() throws IOException {
- // 通过一个特定的接口获取新的token,此处要用到同步的retrofit请求
-// Response_Login loginInfo = CacheManager.restoreLoginInfo(BaseApplication.getContext());
-// String username = loginInfo.getUserName();
-// String password = loginInfo.getPassword();
-//
-// LogUtil.print("loginInfo=" + loginInfo.toString());
-// Call call = WebHelper.getSyncInterface().synclogin(new Request_Login(username, password));
-// loginInfo = call.execute().body();
-// LogUtil.print("loginInfo=" + loginInfo.toString());
-//
-// loginInfo.setPassword(password);
-// CacheManager.saveLoginInfo(loginInfo);
-// return loginInfo.getSession();
-// }
- return "";
- }
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/UrlResetInterceptor.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/UrlResetInterceptor.java
deleted file mode 100644
index 0096641..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/UrlResetInterceptor.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit.interceptor;
-
-import java.io.IOException;
-
-import okhttp3.HttpUrl;
-import okhttp3.Interceptor;
-import okhttp3.Request;
-import okhttp3.Response;
-
-/*
-实际的开发过程中,我们在网络请求中会添加一些公共参数,对于一些可变的公共参数,在缓存数据和访问缓存数据的
-过程中需要删除,比如网络类型,有网络时其值为Wifi或4G等,无网络时可能为none, 这时访问缓存时就会因url不一致导致访问缓存失败
-*/
-
-public class UrlResetInterceptor implements Interceptor {
- @Override
- public Response intercept(Chain chain) throws IOException {
-
-
- Response response = chain.proceed(chain.request());
- HttpUrl newUrl = chain.request().url().newBuilder()
- .removeAllQueryParameters("network")
- .build(); // 缓存数据前删除可变的公共参数
- Request newRequest = chain.request().newBuilder()
- .url(newUrl)
- .build();
- return response.newBuilder()
- .request(newRequest)
- .removeHeader("Pragma")
- .header("Cache-Control", "public, max-age=" + 1)
- .build();
-
-
-// Request request = chain.request();
-// HttpUrl url = request.url();
-// String s = url.url().toString();
-// //———请求之前—–
-// Response response = null;
-// //如果Url中没有包含androidxx关键字,则修改请求链接为http://www.androidxx.cn
-// if (s.contains("androidxx")) {
-// request = request.newBuilder().url("http://www.androidxx.cn").build();
-// }
-// response = chain.proceed(request);
-// //———请求之后————
-// return response;
- }
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/util/ProgressListener.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/util/ProgressListener.java
deleted file mode 100644
index 5f8d468..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/util/ProgressListener.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit.interceptor.util;
-
-/**
- * @author guolin
- * @since 2017/11/5
- */
-public interface ProgressListener {
-
- /**
- * 当下载进度发生变化时,会回调此方法。
- * @param progress
- * 当前的下载进度,参数值的范围是0-100。
- */
- void onProgress(int progress);
-
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/util/ProgressResponseBody.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/util/ProgressResponseBody.java
deleted file mode 100644
index d3f9b5a..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/retrofit/interceptor/util/ProgressResponseBody.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.android.learn.base.thirdframe.retrofit.interceptor.util;
-
-import android.util.Log;
-
-import com.android.learn.base.thirdframe.retrofit.interceptor.ProgressInterceptor;
-
-import java.io.IOException;
-
-import okhttp3.MediaType;
-import okhttp3.ResponseBody;
-import okio.Buffer;
-import okio.BufferedSource;
-import okio.ForwardingSource;
-import okio.Okio;
-import okio.Source;
-
-/**
- * @author guolin
- * @since 2017/11/5
- */
-public class ProgressResponseBody extends ResponseBody {
-
- private static final String TAG = "ProgressResponseBody";
-
- private BufferedSource bufferedSource;
-
- private ResponseBody responseBody;
-
- private ProgressListener listener;
-
- public ProgressResponseBody(String url, ResponseBody responseBody) {
- this.responseBody = responseBody;
- listener = ProgressInterceptor.LISTENER_MAP.get(url);
- }
-
- @Override
- public MediaType contentType() {
- return responseBody.contentType();
- }
-
- @Override
- public long contentLength() {
- return responseBody.contentLength();
- }
-
- @Override
- public BufferedSource source() {
- if (bufferedSource == null) {
- bufferedSource = Okio.buffer(new ProgressSource(responseBody.source()));
- }
- return bufferedSource;
- }
-
- private class ProgressSource extends ForwardingSource {
-
- long totalBytesRead = 0;
-
- int currentProgress;
-
- ProgressSource(Source source) {
- super(source);
- }
-
- @Override
- public long read(Buffer sink, long byteCount) throws IOException {
- long bytesRead = super.read(sink, byteCount);
- long fullLength = responseBody.contentLength();
- if (bytesRead == -1) {
- totalBytesRead = fullLength;
- } else {
- totalBytesRead += bytesRead;
- }
- int progress = (int) (100f * totalBytesRead / fullLength);
- Log.d(TAG, "download progress is " + progress);
- if (listener != null && progress != currentProgress) {
- listener.onProgress(progress);
- }
- if (listener != null && totalBytesRead == fullLength) {
- listener = null;
- }
- currentProgress = progress;
- return bytesRead;
- }
- }
-
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/rxjava/BaseObserver.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/rxjava/BaseObserver.java
deleted file mode 100644
index 3527b07..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/thirdframe/rxjava/BaseObserver.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package com.android.learn.base.thirdframe.rxjava;
-
-import android.app.Activity;
-import android.app.Dialog;
-import android.content.Context;
-
-import com.android.learn.base.activity.BaseActivity;
-import com.android.learn.base.application.CustomApplication;
-import com.android.learn.base.mview.BaseView;
-import com.android.learn.base.utils.NetUtils;
-import com.android.learn.base.utils.Utils;
-import com.android.learn.base.view.CustomProgressDialog;
-
-import java.io.IOException;
-
-import io.reactivex.observers.ResourceObserver;
-import retrofit2.HttpException;
-
-public abstract class BaseObserver extends ResourceObserver {
-
- protected String errMsg = "";
- private boolean isCancelDialog = true;
- private Context context;
-// public static Dialog prgressDialog;
-
- protected BaseObserver(boolean isShowDialog) {
- // context在CustomProgressDialog中用到
-// this.context = context;
-// if (isShowDialog) {
-// Activity activity=BaseActivity.context;
-// CustomProgressDialog.show(activity);
-// }
- }
-
- protected BaseObserver(BaseView view, boolean isShowError) {
- }
-
-
- public void setCancelDialog(boolean cancelDialog) {
- isCancelDialog = cancelDialog;
- }
-
- @Override
-
- public void onNext(T t) {
-
- }
-
- @Override
- public void onError(Throwable e) {
- if(isCancelDialog)
- CustomProgressDialog.cancel();
- if (!NetUtils.isConnected()) {
- errMsg = "网络连接出错,请检查网络";
-
- } else if (e instanceof HttpException) {
- errMsg = "服务器访问异常(HttpException)";
- } else if (e instanceof IOException) {
- errMsg = "服务器访问异常(IOException)";
- }
- if (!"".equals(errMsg))
- Utils.showToast(errMsg, true);
-
- }
-
- @Override
- public void onComplete() {
- if(isCancelDialog)
- CustomProgressDialog.cancel();
- }
-
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/CrashHandler.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/CrashHandler.java
deleted file mode 100644
index e4bc9c7..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/CrashHandler.java
+++ /dev/null
@@ -1,164 +0,0 @@
-package com.android.learn.base.utils;
-
-import android.app.AlarmManager;
-import android.app.Dialog;
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.os.Environment;
-import android.os.Looper;
-import android.support.v7.app.AlertDialog;
-import android.util.Log;
-import android.view.Gravity;
-import android.view.WindowManager;
-import android.widget.Toast;
-
-
-import com.android.learn.base.application.CustomApplication;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-public class CrashHandler implements Thread.UncaughtExceptionHandler {
- /**
- * 系统默认的异常处理类
- */
- private Thread.UncaughtExceptionHandler mDefaultHandler;
- Context mcontext;
- private static CrashHandler INSTANCE = new CrashHandler();
- String errorSavePath;
- //用来存储设备信息和异常信息
- private Map infos = new LinkedHashMap();
-
- public static CrashHandler getInstance() {
- return INSTANCE;
- }
-
- public void init(Context context) {
- mcontext = context;
- mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler();// 获取默认的异常处理类
- Thread.setDefaultUncaughtExceptionHandler(this);// 设置当前处理类为默认的异常处理类
- }
-
- @Override
- public void uncaughtException(Thread thread, Throwable ex) {
- saveCrashInfoIntoSd(ex);
- showToast(mcontext, "程序出错了,请先用其它功能,我们会尽快修复!");
-
- try {
- Thread.sleep(2000);
- } catch (Exception e) {
- // TODO: handle exception
- }
-
-
-// if (SPUtils.contains("currentTime")) {
-// String lastTimeMillis = (String) SPUtils.get("currentTime", String.valueOf("0"));
-// LogUtil.d("lastTimeMillis:" + lastTimeMillis);
-// LogUtil.d("System.currentTimeMillis():" + System.currentTimeMillis());
-// LogUtil.d("priod:" + (System.currentTimeMillis() - Long.valueOf(lastTimeMillis)));
-// long timeInterval = System.currentTimeMillis() - Long.valueOf(lastTimeMillis);
-// if (timeInterval > 60 * 1000) {
-// SPUtils.put("currentTime", String.valueOf(System.currentTimeMillis()));
-// }
-// } else {
-// SPUtils.put("currentTime", String.valueOf(System.currentTimeMillis()));
-//
-// }
-
-// android.os.Process.killProcess(android.os.Process.myPid());
-// System.exit(0);
- ExitAppUtils.getInstance().exit();
-// }
- }
-
- private void showToast(final Context context, final String msg) {
- new Thread(new Runnable() {
-
- @Override
- public void run() {
- Looper.prepare();
- Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
- Looper.loop();
- }
- }).start();
- }
-
-
- // 收集设备、软件参数信息
- private void collectDeviceInfo() {
- try {
- PackageManager pm = CustomApplication.context.getPackageManager();
- PackageInfo pi = pm.getPackageInfo(CustomApplication.context.getPackageName(), PackageManager.GET_ACTIVITIES);
- if (pi != null) {
- String versionName = pi.versionName == null ? "null" : pi.versionName;
- String versionCode = pi.versionCode + "";
- infos.put("systemVersion", SystemUtil.getSystemVersion());
- infos.put("deviceModel", SystemUtil.getSystemModel());
- infos.put("deviceBrand", SystemUtil.getDeviceBrand());
- infos.put("versionName", versionName);
- infos.put("versionCode", versionCode);
- }
- } catch (PackageManager.NameNotFoundException e) {
- }
-
- }
-
- // 保存错误信息到SD卡文件中
- private void saveCrashInfoIntoSd(Throwable ex) {
- collectDeviceInfo();
- //创建文件夹
- errorSavePath = Environment.getExternalStorageDirectory().getPath() + "/" + mcontext.getPackageName() + "/crash";
- File dir = new File(errorSavePath);
- if (!dir.exists()) dir.mkdirs();
-
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String time = formatter.format(new Date());
- StringBuffer sb = new StringBuffer();
- sb.append("\n" + time + "\n");
- for (Map.Entry entry : infos.entrySet()) {
- String key = entry.getKey();
- String value = entry.getValue();
- sb.append(key + "=" + value + "\n");
- }
-
- sb.append(getCrashInfo(ex));
-
- try {
- //创建文件
- String fileName = "crash-" + time + ".txt";
- File file = new File(errorSavePath + "//" + fileName);
- if (!file.exists()) file.createNewFile();
-
- FileOutputStream fos = new FileOutputStream(file);
- fos.write(sb.toString().getBytes());
- fos.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 得到程序崩溃的详细信息
- */
- public String getCrashInfo(Throwable ex) {
- Writer result = new StringWriter();
- PrintWriter printWriter = new PrintWriter(result);
- ex.setStackTrace(ex.getStackTrace());
- ex.printStackTrace(printWriter);
- printWriter.close();
- return result.toString();
- }
-
-
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/CustomCrashHandler.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/CustomCrashHandler.java
deleted file mode 100644
index 242f86b..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/CustomCrashHandler.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package com.android.learn.base.utils;
-
-import android.content.Context;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.os.Build;
-import android.os.Environment;
-import android.os.Looper;
-import android.util.Log;
-import android.widget.Toast;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.lang.Thread.UncaughtExceptionHandler;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.TimeZone;
-
-public class CustomCrashHandler implements UncaughtExceptionHandler {
- private static final String TAG = "Activity";
- private Context mContext;
- private static final String SDCARD_ROOT = Environment.getExternalStorageDirectory().toString();
- private static CustomCrashHandler mInstance = new CustomCrashHandler();
-
-
- private CustomCrashHandler(){}
-
- public static CustomCrashHandler getInstance(){
- return mInstance;
- }
-
-
- @Override
- public void uncaughtException(Thread thread, Throwable ex) {
- savaInfoToSD(mContext, ex);
-
- showToast(mContext, "程序出错了,请先用其它功能,我们会尽快修复!");
- try {
- thread.sleep(2000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
-// android.os.Process.killProcess(android.os.Process.myPid());
-// System.exit(0);
-
- ExitAppUtils.getInstance().exit();
-
- }
-
-
- public void init(Context context){
- mContext = context;
- Thread.setDefaultUncaughtExceptionHandler(this);
- }
-
-
- private void showToast(final Context context, final String msg){
- new Thread(new Runnable() {
-
- @Override
- public void run() {
- Looper.prepare();
- Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
- Looper.loop();
- }
- }).start();
- }
-
-
- private HashMap obtainSimpleInfo(Context context){
- HashMap map = new HashMap();
- PackageManager mPackageManager = context.getPackageManager();
- PackageInfo mPackageInfo = null;
- try {
- mPackageInfo = mPackageManager.getPackageInfo(context.getPackageName(), PackageManager.GET_ACTIVITIES);
- } catch (NameNotFoundException e) {
- e.printStackTrace();
- }
-
- map.put("versionName", mPackageInfo.versionName);
- map.put("versionCode", "" + mPackageInfo.versionCode);
-
- map.put("MODEL", "" + Build.MODEL);
- map.put("SDK_INT", "" + Build.VERSION.SDK_INT);
- map.put("PRODUCT", "" + Build.PRODUCT);
-
- return map;
- }
-
-
- private String obtainExceptionInfo(Throwable throwable) {
- StringWriter mStringWriter = new StringWriter();
- PrintWriter mPrintWriter = new PrintWriter(mStringWriter);
- throwable.printStackTrace(mPrintWriter);
- mPrintWriter.close();
-
- Log.e(TAG, mStringWriter.toString());
- return mStringWriter.toString();
- }
-
-
- private String savaInfoToSD(Context context, Throwable ex){
- String fileName = null;
- StringBuffer sb = new StringBuffer();
-
- for (Map.Entry entry : obtainSimpleInfo(context).entrySet()) {
- String key = entry.getKey();
- String value = entry.getValue();
- sb.append(key).append(" = ").append(value).append("\n");
- }
-
- sb.append(obtainExceptionInfo(ex));
-
- if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
- File dir = new File(SDCARD_ROOT + File.separator + "crash" + File.separator);
- if(! dir.exists()){
- dir.mkdir();
- }
-
- try{
- fileName = dir.toString() + File.separator + paserTime(System.currentTimeMillis()) + ".log";
- FileOutputStream fos = new FileOutputStream(fileName);
- fos.write(sb.toString().getBytes());
- fos.flush();
- fos.close();
- }catch(Exception e){
- e.printStackTrace();
- }
-
- }
-
- return fileName;
-
- }
-
-
- private String paserTime(long milliseconds) {
- System.setProperty("user.timezone", "Asia/Shanghai");
- TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
- TimeZone.setDefault(tz);
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
- String times = format.format(new Date(milliseconds));
-
- return times;
- }
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/DialogUtil.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/DialogUtil.java
deleted file mode 100644
index 5616e8a..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/DialogUtil.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.android.learn.base.utils;
-
-import android.app.Dialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.support.v7.app.AlertDialog;
-import android.util.Log;
-import android.view.WindowManager;
-import android.widget.Toast;
-
-public class DialogUtil {
-
-
-
-
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/ErrorLogSave.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/ErrorLogSave.java
deleted file mode 100644
index 7e4cc6f..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/ErrorLogSave.java
+++ /dev/null
@@ -1,191 +0,0 @@
-
-package com.android.learn.base.utils;
-
-import android.content.Context;
-import android.os.Environment;
-import android.os.Handler;
-import android.text.TextUtils;
-import android.util.Log;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-
-public class ErrorLogSave extends Thread {
-
- private static final String TAG = "ErrorLogSave";
-
- Context context;
-
- private static final String SD_PATH = Environment.getExternalStorageDirectory()
- .getAbsolutePath();
-
- private static final String FILE_PATH = SD_PATH + "/xuetangx_error_log/";
-
- private static String packageName;
-
- protected final Handler mHandler;
-
- public ErrorLogSave(Context context) {
- this.context = context;
- mHandler = new Handler();
- packageName = context.getPackageName();
- }
-
-
- public static void onError(Context context) {
- new ErrorLogSave(context).start();
- }
-
- /**
- * 获取异常日志信息
- *
- * @param paramContext
- * @return
- */
- private static String getExceptionLog(Context paramContext) {
- String localObject = "";
- try {
- String str1 = paramContext.getPackageName();
- String str2 = "";
- int i1 = 0;
- int i2 = 0;
- ArrayList localArrayList = new ArrayList();
- localArrayList.add("logcat");
- localArrayList.add("-d");
- localArrayList.add("-v");
- localArrayList.add("raw");
- localArrayList.add("-s");
- localArrayList.add("AndroidRuntime:E");
- localArrayList.add("-p");
- localArrayList.add(str1);
- Process localProcess = Runtime.getRuntime().exec(
- (String[]) localArrayList.toArray(new String[localArrayList.size()]));
- BufferedReader localBufferedReader = new BufferedReader(new InputStreamReader(
- localProcess.getInputStream()), 1024);
- for (String str3 = localBufferedReader.readLine(); str3 != null; str3 = localBufferedReader
- .readLine()) {
- if (str3.indexOf("thread attach failed") < 0) {
- str2 = str2 + str3 + '\n';
- }
- if ((i2 == 0) && (str3.toLowerCase().indexOf("exception") >= 0)) {
- i2 = 1;
- }
- if ((i1 != 0) || (str3.indexOf(str1) < 0)) {
- continue;
- }
- i1 = 1;
- }
- if ((str2.length() > 0) && (i2 != 0) && (i1 != 0)) {
- localObject = str2;
- }
- try {
- Runtime.getRuntime().exec("logcat -c");
- } catch (Exception localException2) {
- Log.e(TAG, "Failed to clear log");
- }
- } catch (Exception localException1) {
- Log.e(TAG, "Failed to catch error log");
- }
- return localObject;
- }
-
- /**
- * 存储错误日志到sd卡 目录名称:"/sd/itotem_error_log/" 文件名称:
- * packagename_tiem(YYYY_MM_DD-HH_mm_ss)
- *
- * @param context
- * @param errorLog
- */
- protected static void cacheErrorLogToSDFile(Context context, String errorLog) {
- Log.e(TAG, "cache Error Log To SD File is ruuning:" + errorLog);
- if (TextUtils.isEmpty(errorLog)) {
- return;
- }
- FileOutputStream outputStream = null;
- try {
- long curTimeM = System.currentTimeMillis();
- if (TextUtils.isEmpty(packageName)) {
- packageName = context.getPackageName();
- }
- // 获取新的文件名称
- String fileName = packageName + "_" + getTime(curTimeM) + ".txt";
- Log.i(TAG, "new file is :" + fileName);
- // File file = new File(FILE_PATH, fileName);
- File pathFile = new File(FILE_PATH);
- File file = new File(pathFile, fileName);
- if (!pathFile.exists()) {
- pathFile.mkdirs();
- }
- if (!file.exists()) {
- file.createNewFile();
- }
- // 打开一个新的文件
- outputStream = new FileOutputStream(file);
- outputStream.write(errorLog.getBytes());
- outputStream.close();
-
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- return;
- } catch (IOException e) {
- e.printStackTrace();
- return;
- } finally {
- if (outputStream != null) {
- try {
- outputStream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- outputStream = null;
- }
- }
- }
-
- private static String getTime(long curTime) {
- SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
- Date date = new Date(curTime);
- return df1.format(date);
- }
-
-
- @Override
- public void run() {
- String str = getExceptionLog(context);
- mHandler.post(new SaveErrorLog2SD(str));
- super.run();
- }
-
- private static final Object a = new Object();// 线程锁
-
- /**
- * 保存错误日志到sd卡
- *
- * @author pengjun
- */
- private class SaveErrorLog2SD implements Runnable {
- String errorLog;
-
- SaveErrorLog2SD(String errorLog) {
- this.errorLog = errorLog;
- }
-
- @Override
- public void run() {
- // TODO 执行保存错误日志到卡
-// String deviceInfo = CollectDataManager.getDebugInfosToErrorMessage(context);
-// errorLog += "\n deviceInfo:" + deviceInfo;
-// cacheErrorLogToSDFile(context, errorLog);
-
- }
-
- }
-
-}
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/ExitAppUtils.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/ExitAppUtils.java
deleted file mode 100644
index d41c683..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/ExitAppUtils.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.android.learn.base.utils;
-
-import android.app.Activity;
-
-import java.util.LinkedList;
-import java.util.List;
-
-public class ExitAppUtils {
-
- private List mActivityList = new LinkedList();
- private static ExitAppUtils instance = new ExitAppUtils();
-
- private ExitAppUtils(){};
-
- public static ExitAppUtils getInstance(){
- return instance;
- }
-
- public void addActivity(Activity activity){
- mActivityList.add(activity);
- }
-
- public void delActivity(Activity activity){
- mActivityList.remove(activity);
- }
-
- public void exit(){
- for(Activity activity : mActivityList){
- activity.finish();
- }
-
- System.exit(0);
- }
-
-
-}
\ No newline at end of file
diff --git a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/JsonUtil.java b/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/JsonUtil.java
deleted file mode 100644
index 28cecea..0000000
--- a/AndroidLearnProject/basemodule/src/main/java/com/android/learn/base/utils/JsonUtil.java
+++ /dev/null
@@ -1,245 +0,0 @@
-package com.android.learn.base.utils;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParseException;
-import com.google.gson.JsonParser;
-import com.google.gson.reflect.TypeToken;
-
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * JSON字符换和对象间转换的工具类
- */
-public class JsonUtil {
-
- private static final Gson GSON = new Gson();
-
- /**
- * 将json字符串转换成相应的对象
- *
- * @param jsonString json字符串
- * @param classOfT 对象类型的class
- * @param 对象的类型
- * @return 转换后的对象
- * @throws JsonParseException if json is not a valid representation for an object of type classOfT
- */
- public static T decode(String jsonString, Class classOfT) throws RuntimeException {
- return GSON.fromJson(jsonString, classOfT);
- }
-
- /**
- * 将json字符串转换成相应的对象
- *
- * @param jsonString json字符串
- * @param typeOfT 对象类型的type
- * @param 对象的类型
- * @return 转换后的对象
- * @throws JsonParseException if json is not a valid representation for an object of type typeOfT
- */
- public static T decode(String jsonString, Type typeOfT) throws RuntimeException {
- return GSON.fromJson(jsonString, typeOfT);
- }
-
- /**
- * 将已经从json转换后的对象(通常是一个Map)转换成对应Bean的对象实例
- *
- * @param object 一个转json换中的过程对象,通常是一个Map,若传值为null,则返回null
- * @param typeOfT 要转换的对象类型的type
- * @param 要转换的对象类型
- * @return 转换后的对象
- * @throws JsonParseException if object is not a valid representation for an object of type typeOfT
- */
- public static T decode(Object object, Type typeOfT) throws RuntimeException {
- String jsonString = GSON.toJson(object);
- return GSON.fromJson(jsonString, typeOfT);
- }
-
- /**
- * 将一个JavaBean转换成json字符串
- *
- * @param object 待转换的对象
- * @return json字符串
- * @throws JsonParseException if there was a problem while parsing object.
- */
- public static String encode(Object object) throws RuntimeException {
- return GSON.toJson(object);
- }
-
-
- /**
- * 获取JsonObject
- *
- * @param json
- * @return
- */
- public static JsonObject parseJson(String json) {
- JsonParser parser = new JsonParser();
- JsonObject jsonObj = parser.parse(json).getAsJsonObject();
- return jsonObj;
- }
-
- /**
- * 根据javaBean转json字符串再将字符串转Map对象
- *
- * @param object
- * @return
- */
- public static Map javaBeanToMap(Object object) {
- String strJson = encode(object);
- return toMap(parseJson(strJson));
- }
-
- /**
- * 将JSONObjec对象转换成Map-List集合
- *
- * @param json
- * @return
- */
- public static Map toMap(JsonObject json) {
- Map map = new HashMap();
- Set> entrySet = json.entrySet();
- for (Iterator> iter = entrySet.iterator(); iter.hasNext(); ) {
- Map.Entry entry = iter.next();
- String key = entry.getKey();
- Object value = entry.getValue();
- if (value instanceof JsonArray)
- map.put((String) key, toList((JsonArray) value));
- else if (value instanceof JsonObject)
- map.put((String) key, toMap((JsonObject) value));
- else
- map.put((String) key, value);
- }
- return map;
- }
-
- /**
- * 将JSONArray对象转换成List集合
- *
- * @param json
- * @return
- */
- public static List