├── .gitignore
├── .idea
├── WanAndroid.iml
├── encodings.xml
├── gradle.xml
├── inspectionProfiles
│ └── Project_Default.xml
├── misc.xml
├── modules.xml
├── runConfigurations.xml
└── vcs.xml
├── README.md
├── app
├── .gitignore
├── build.gradle
├── libs
│ ├── LZQlxy.jks
│ ├── commons-lang3-3.8.1.jar
│ └── tbs_sdk_thirdapp_v4.3.0.1072_43646_sharewithdownloadwithfile_withoutGame_obfs_20190429_175122.jar
├── proguard-rules.pro
├── release
│ ├── 10109.png
│ ├── 10114.png
│ ├── WanAndroid_1.0.18030_release.apk
│ ├── WanAndroid_1.0.18033_release.apk
│ ├── WanAndroid_1.0.18034_release.apk
│ ├── WanAndroid_1.0.18101_10114_release.apk
│ └── output.json
├── src
│ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── lzq
│ │ │ └── wanandroid
│ │ │ └── ExampleInstrumentedTest.java
│ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── assets
│ │ │ └── litepal.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── lzq
│ │ │ │ └── wanandroid
│ │ │ │ ├── MainActivity.java
│ │ │ │ ├── SplashActivity.java
│ │ │ │ ├── WanAndroid.java
│ │ │ │ ├── api
│ │ │ │ ├── Contract.java
│ │ │ │ ├── FlowTagCallBack.java
│ │ │ │ ├── LoadTasksCallBack.java
│ │ │ │ ├── LoginContract.java
│ │ │ │ ├── NetTask.java
│ │ │ │ ├── OffAccountContract.java
│ │ │ │ ├── WebContract.java
│ │ │ │ └── WebTask.java
│ │ │ │ ├── base
│ │ │ │ ├── BaseActivity.java
│ │ │ │ ├── BaseFragment.java
│ │ │ │ ├── BasePresenter.java
│ │ │ │ ├── BaseView.java
│ │ │ │ └── NetChangeActivity.java
│ │ │ │ ├── db
│ │ │ │ └── Tree.java
│ │ │ │ ├── model
│ │ │ │ ├── Articles.java
│ │ │ │ ├── Children.java
│ │ │ │ ├── Data.java
│ │ │ │ ├── Datas.java
│ │ │ │ ├── Event.java
│ │ │ │ ├── ProjectItem.java
│ │ │ │ ├── ProjectTree.java
│ │ │ │ ├── SearchResult.java
│ │ │ │ ├── Tags.java
│ │ │ │ ├── WanAndroid.java
│ │ │ │ └── WanAndroid_Content.java
│ │ │ │ ├── presenter
│ │ │ │ ├── ArticlesPresenter.java
│ │ │ │ ├── CollectPresenter.java
│ │ │ │ ├── HomePresenter.java
│ │ │ │ ├── LoginPresenter.java
│ │ │ │ ├── MainPresenter.java
│ │ │ │ ├── ProjectItemPresenter.java
│ │ │ │ ├── ProjectPresenter.java
│ │ │ │ ├── SearchPresenter.java
│ │ │ │ ├── SettingPresenter.java
│ │ │ │ ├── SystemPresenter.java
│ │ │ │ ├── TitlePresenter.java
│ │ │ │ ├── TreePresenter.java
│ │ │ │ ├── UserPresenter.java
│ │ │ │ └── WebPresenter.java
│ │ │ │ ├── service
│ │ │ │ └── InitService.java
│ │ │ │ ├── utils
│ │ │ │ ├── ActivityUtils.java
│ │ │ │ ├── AnimationUtil.java
│ │ │ │ ├── FitUtil.java
│ │ │ │ ├── GlideImageLoader.java
│ │ │ │ └── StringUtils.java
│ │ │ │ └── view
│ │ │ │ ├── ArticlesActivity.java
│ │ │ │ ├── LoginActivity.java
│ │ │ │ ├── SearchActivity.java
│ │ │ │ ├── SearchResultActivity.java
│ │ │ │ ├── SettingsActivity.java
│ │ │ │ ├── VersionActivity.java
│ │ │ │ ├── WebActivity.java
│ │ │ │ ├── adapter
│ │ │ │ ├── ArticleAdapter.java
│ │ │ │ ├── ContentAdapter.java
│ │ │ │ ├── FragmentAdapter.java
│ │ │ │ ├── NaviAdapter.java
│ │ │ │ ├── ProjectItemAdapter.java
│ │ │ │ ├── SearchResultAdapter.java
│ │ │ │ └── TreeAdapter.java
│ │ │ │ ├── animation
│ │ │ │ ├── CollectAnim.java
│ │ │ │ ├── LaunchAnim.java
│ │ │ │ └── TitleAnim.java
│ │ │ │ ├── custom
│ │ │ │ ├── ClearEditText.java
│ │ │ │ ├── OnlyIconView.java
│ │ │ │ └── ProgressWebview.java
│ │ │ │ └── fragment
│ │ │ │ ├── CollectFragment.java
│ │ │ │ ├── ContentFragment.java
│ │ │ │ ├── HomeFragment.java
│ │ │ │ ├── NaviFragment.java
│ │ │ │ ├── ProjectFragment.java
│ │ │ │ ├── ProjectItemFragment.java
│ │ │ │ ├── SystemFragment.java
│ │ │ │ ├── ToDoFragment.java
│ │ │ │ ├── TreeFragment.java
│ │ │ │ └── UserFragment.java
│ │ ├── jniLibs
│ │ │ ├── armeabi-v7a
│ │ │ │ └── liblbs.so
│ │ │ ├── armeabi-v8a
│ │ │ │ └── liblbs.so
│ │ │ ├── armeabi
│ │ │ │ └── liblbs.so
│ │ │ ├── mips
│ │ │ │ └── liblbs.so
│ │ │ ├── x86
│ │ │ │ └── liblbs.so
│ │ │ └── x86_64
│ │ │ │ └── liblbs.so
│ │ └── res
│ │ │ ├── anim
│ │ │ ├── enter_fade_in.xml
│ │ │ ├── enter_fade_out.xml
│ │ │ ├── exit_fade_in.xml
│ │ │ └── exit_fade_out.xml
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ ├── launch_splash.xml
│ │ │ ├── progress_bar_states.xml
│ │ │ ├── shape_corner_search_edt.xml
│ │ │ ├── shape_corner_white.xml
│ │ │ ├── shape_user_btn_login.xml
│ │ │ └── tab_divider.xml
│ │ │ ├── layout
│ │ │ ├── activity_articles.xml
│ │ │ ├── activity_login.xml
│ │ │ ├── activity_main.xml
│ │ │ ├── activity_search.xml
│ │ │ ├── activity_search_result.xml
│ │ │ ├── activity_settings.xml
│ │ │ ├── activity_splash.xml
│ │ │ ├── activity_version.xml
│ │ │ ├── activity_web.xml
│ │ │ ├── bottom_bar_item_only_icon.xml
│ │ │ ├── empty_view.xml
│ │ │ ├── flow_tv_item.xml
│ │ │ ├── fragment_a.xml
│ │ │ ├── fragment_account.xml
│ │ │ ├── fragment_b.xml
│ │ │ ├── fragment_c.xml
│ │ │ ├── fragment_collect.xml
│ │ │ ├── fragment_content.xml
│ │ │ ├── fragment_project_item.xml
│ │ │ ├── fragment_todo.xml
│ │ │ ├── fragment_tree.xml
│ │ │ ├── fragment_user.xml
│ │ │ ├── rv_article_img.xml
│ │ │ ├── rv_article_normal.xml
│ │ │ ├── rv_home_img_item.xml
│ │ │ ├── rv_tree_item.xml
│ │ │ └── rv_ver_item.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── icon_launcher.png
│ │ │ ├── icon_launcher_round.png
│ │ │ ├── input_del.png
│ │ │ └── logo.png
│ │ │ ├── mipmap-night-xxhdpi
│ │ │ ├── article.png
│ │ │ ├── chat.png
│ │ │ ├── chat_no.png
│ │ │ ├── collect.png
│ │ │ ├── collect_normal.png
│ │ │ ├── collect_yes.png
│ │ │ ├── confirm.png
│ │ │ ├── home.png
│ │ │ ├── home_no.png
│ │ │ ├── icon_launcher.png
│ │ │ ├── icon_launcher_round.png
│ │ │ ├── id.png
│ │ │ ├── input_del.png
│ │ │ ├── my.png
│ │ │ ├── navi.png
│ │ │ ├── navigation.png
│ │ │ ├── official_account.png
│ │ │ ├── project.png
│ │ │ ├── project_no.png
│ │ │ ├── project_yes.png
│ │ │ ├── pwd.png
│ │ │ ├── search.png
│ │ │ ├── search_btn.png
│ │ │ ├── setting.png
│ │ │ ├── todo.png
│ │ │ ├── top_article.png
│ │ │ ├── tree.png
│ │ │ ├── tree_knowledge.png
│ │ │ ├── tree_no.png
│ │ │ ├── user.png
│ │ │ └── user_no.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── icon_launcher.png
│ │ │ ├── icon_launcher_round.png
│ │ │ ├── input_del.png
│ │ │ └── logo.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── article.png
│ │ │ ├── chat.png
│ │ │ ├── chat_no.png
│ │ │ ├── collect.png
│ │ │ ├── collect_normal.png
│ │ │ ├── collect_yes.png
│ │ │ ├── confirm.png
│ │ │ ├── empty.png
│ │ │ ├── home.png
│ │ │ ├── home_no.png
│ │ │ ├── icon_launcher.png
│ │ │ ├── icon_launcher_round.png
│ │ │ ├── id.png
│ │ │ ├── input_del.png
│ │ │ ├── logo.png
│ │ │ ├── my.png
│ │ │ ├── navi.png
│ │ │ ├── navigation.png
│ │ │ ├── official_account.png
│ │ │ ├── project.png
│ │ │ ├── project_no.png
│ │ │ ├── project_yes.png
│ │ │ ├── pwd.png
│ │ │ ├── search.png
│ │ │ ├── search_btn.png
│ │ │ ├── setting.png
│ │ │ ├── todo.png
│ │ │ ├── top_article.png
│ │ │ ├── tree.png
│ │ │ ├── tree_knowledge.png
│ │ │ ├── tree_no.png
│ │ │ ├── user.png
│ │ │ └── user_no.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ └── input_del.png
│ │ │ ├── values-night
│ │ │ └── colors.xml
│ │ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ │ └── xml
│ │ │ └── provider_paths.xml
│ └── test
│ │ └── java
│ │ └── com
│ │ └── lzq
│ │ └── wanandroid
│ │ └── ExampleUnitTest.java
└── version.properties
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── introduce
├── WanAndroid_1.0.18075_10089_release.apk
├── 微信图片_20190629112228.png
├── 微信图片_20190629112245.jpg
├── 微信图片_20190629112248.jpg
├── 微信图片_20190629112253.jpg
├── 微信图片_20190629112257.jpg
├── 微信图片_20190629112303.png
├── 微信图片_20190629112314.jpg
├── 微信图片_20190629112320.jpg
└── 微信图片_20190629112322.jpg
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches
5 | /.idea/libraries
6 | /.idea/modules.xml
7 | /.idea/workspace.xml
8 | /.idea/navEditor.xml
9 | /.idea/assetWizardSettings.xml
10 | .DS_Store
11 | /build
12 | /captures
13 | .externalNativeBuild
14 |
--------------------------------------------------------------------------------
/.idea/WanAndroid.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # WanAndroid
2 |
3 | 项目介绍:
4 | ----
5 | 
6 |
7 | 本项目启动LOGO设计来自越来越美丽的杨设计@Designer Yang
8 | 项目作者:TzuChiangLi
9 | Please star before forking,3ku.
10 | 请在fork前star,谢谢!
11 | 开源项目,如果喜欢请star。
12 |
13 |
14 |
15 | 下载地址:
16 | ----
17 | [点击下载](https://raw.githubusercontent.com/TzuChiangLi/WanAndroid/dev-1.1/app/release/WanAndroid_1.0.18422_10134_release.apk)
18 |
19 | 更新记录:
20 | ----
21 | 2020-06-09:
22 | * 1.移除版本更新以及相关权限
23 | * 2.修复文章列表展示异常的问题
24 | * 3.新增关于界面
25 |
26 | 界面截图:
27 | ----
28 | 
29 | 
30 |
31 |
32 |
33 | 本项目主要用到了一下三方库:
34 | ----
35 | * 1.Glide
36 | * 2.黄油刀
37 | * 3.LitePal
38 | * 4.OkGo
39 | * 5.轮子哥:TitleBar、ToastUtil
40 | * 6.BRAVH适配器
41 | * 7.immersionbar沉浸式顶栏
42 | * 8.GSON
43 | * 9.Banner
44 | * 10.SmartRefreshLayout
45 | * 11.EventBus
46 | * 12.FlowLayout
47 | * 13.空祖Dialog
48 | * 14.BGA-滑动返回
49 | * 15.腾讯系:Bugly全量更新,X5浏览内核
50 | * 16.iconfont阿里图标开源分享库
51 |
52 |
53 | 总结
54 | ----
55 |
56 | 因为当时开始做的时候Gson解析不是特别熟练,所以实体类创建的特别潦草,目前没时间修改,只能完成基本功能。
57 | 最后感谢项目中用到的所有开源库、API的大佬,尤其是玩安卓的开源API,我会继续学习的。谢谢大家支持,希望大家能下载体验,多多提出反馈意见。
58 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/libs/LZQlxy.jks:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TzuChiangLi/WanAndroid/c6f3cd72de3dd0b057fe873e446eeac452168c3f/app/libs/LZQlxy.jks
--------------------------------------------------------------------------------
/app/libs/commons-lang3-3.8.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TzuChiangLi/WanAndroid/c6f3cd72de3dd0b057fe873e446eeac452168c3f/app/libs/commons-lang3-3.8.1.jar
--------------------------------------------------------------------------------
/app/libs/tbs_sdk_thirdapp_v4.3.0.1072_43646_sharewithdownloadwithfile_withoutGame_obfs_20190429_175122.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TzuChiangLi/WanAndroid/c6f3cd72de3dd0b057fe873e446eeac452168c3f/app/libs/tbs_sdk_thirdapp_v4.3.0.1072_43646_sharewithdownloadwithfile_withoutGame_obfs_20190429_175122.jar
--------------------------------------------------------------------------------
/app/release/10109.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TzuChiangLi/WanAndroid/c6f3cd72de3dd0b057fe873e446eeac452168c3f/app/release/10109.png
--------------------------------------------------------------------------------
/app/release/10114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TzuChiangLi/WanAndroid/c6f3cd72de3dd0b057fe873e446eeac452168c3f/app/release/10114.png
--------------------------------------------------------------------------------
/app/release/WanAndroid_1.0.18030_release.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TzuChiangLi/WanAndroid/c6f3cd72de3dd0b057fe873e446eeac452168c3f/app/release/WanAndroid_1.0.18030_release.apk
--------------------------------------------------------------------------------
/app/release/WanAndroid_1.0.18033_release.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TzuChiangLi/WanAndroid/c6f3cd72de3dd0b057fe873e446eeac452168c3f/app/release/WanAndroid_1.0.18033_release.apk
--------------------------------------------------------------------------------
/app/release/WanAndroid_1.0.18034_release.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TzuChiangLi/WanAndroid/c6f3cd72de3dd0b057fe873e446eeac452168c3f/app/release/WanAndroid_1.0.18034_release.apk
--------------------------------------------------------------------------------
/app/release/WanAndroid_1.0.18101_10114_release.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TzuChiangLi/WanAndroid/c6f3cd72de3dd0b057fe873e446eeac452168c3f/app/release/WanAndroid_1.0.18101_10114_release.apk
--------------------------------------------------------------------------------
/app/release/output.json:
--------------------------------------------------------------------------------
1 | [{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":10115,"versionName":"1.0.18101","enabled":true,"outputFile":"WanAndroid_1.0.18101_10115_release.apk","fullName":"release","baseName":"release"},"path":"WanAndroid_1.0.18101_10115_release.apk","properties":{}}]
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/lzq/wanandroid/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumented test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("com.lzq.wanandroid", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
26 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
40 |
41 |
44 |
45 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
71 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
--------------------------------------------------------------------------------
/app/src/main/assets/litepal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/SplashActivity.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid;
2 |
3 | import android.content.Intent;
4 | import android.os.Bundle;
5 |
6 | import com.lzq.wanandroid.base.BaseActivity;
7 |
8 | public class SplashActivity extends BaseActivity {
9 | private static final String TAG="SplashActivity";
10 | @Override
11 | protected void onCreate(Bundle savedInstanceState) {
12 | super.onCreate(savedInstanceState);
13 | //跳转页面
14 | Intent intent = new Intent(SplashActivity.this,MainActivity.class);
15 | startActivity(intent);
16 | finish();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/WanAndroid.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid;
2 |
3 | import android.app.Application;
4 | import android.support.v7.app.AppCompatDelegate;
5 |
6 | import com.blankj.utilcode.util.SPUtils;
7 | import com.hjq.toast.ToastUtils;
8 | import com.lzq.wanandroid.service.InitService;
9 | import com.lzq.wanandroid.utils.StringUtils;
10 | import com.lzy.okgo.OkGo;
11 | import com.lzy.okgo.cookie.CookieJarImpl;
12 | import com.lzy.okgo.cookie.store.SPCookieStore;
13 | import com.qw.soul.permission.SoulPermission;
14 |
15 | import org.litepal.LitePal;
16 |
17 | import cn.bingoogolapple.swipebacklayout.BGASwipeBackHelper;
18 | import okhttp3.OkHttpClient;
19 |
20 | public class WanAndroid extends Application {
21 | private static final String TAG="WanAndroid";
22 | @Override
23 | public void onCreate() {
24 | super.onCreate();
25 | boolean nightMode = SPUtils.getInstance(StringUtils.CONFIG_SETTINGS).getBoolean
26 | (StringUtils.KEY_NIGHT_MODE, false);
27 | AppCompatDelegate.setDefaultNightMode(nightMode ? AppCompatDelegate.MODE_NIGHT_YES :
28 | AppCompatDelegate.MODE_NIGHT_NO);
29 | ToastUtils.init(this);
30 | OkHttpClient.Builder builder = new OkHttpClient.Builder();
31 | //使用sp保持cookie,如果cookie不过期,则一直有效
32 | builder.cookieJar(new CookieJarImpl(new SPCookieStore(this)));
33 | OkGo.getInstance().setOkHttpClient(builder.build()).init(this);
34 | LitePal.initialize(this);
35 | LitePal.getDatabase();
36 | SoulPermission.skipOldRom(true);
37 | /**
38 | * 必须在 Application 的 onCreate 方法中执行 BGASwipeBackHelper.init 来初始化滑动返回
39 | * 第一个参数:应用程序上下文
40 | * 第二个参数:如果发现滑动返回后立即触摸界面时应用崩溃,请把该界面里比较特殊的 View 的 class 添加到该集合中,目前在库中已经添加了 WebView 和 SurfaceView
41 | */
42 | BGASwipeBackHelper.init(this, null);
43 | InitService.start(this);
44 | }
45 |
46 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/api/FlowTagCallBack.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.api;
2 |
3 |
4 | import com.lzq.wanandroid.model.Children;
5 |
6 | import java.util.List;
7 |
8 | public interface FlowTagCallBack {
9 | void getTreeLink(String URL);
10 | void getTreeArticles(int ID, int position, String title, List children);
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/api/LoadTasksCallBack.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.api;
2 |
3 | public interface LoadTasksCallBack {
4 | void onSuccess(T t,int...params);
5 | void onStart();
6 | void onFailed();
7 | void onError(int code,String msg);
8 | void onFinish();
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/api/LoginContract.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.api;
2 |
3 | import android.app.Activity;
4 |
5 | import com.lzq.wanandroid.base.BaseView;
6 | import com.lzq.wanandroid.model.Data;
7 | import com.lzq.wanandroid.model.Datas;
8 |
9 | import java.util.List;
10 |
11 | public interface LoginContract {
12 | //与M层交互
13 | interface LoginPresenter {
14 | void doLogin(String username, String password);
15 |
16 | void doRegister(String username, String password);
17 |
18 | void getUserInfo();
19 |
20 | void resetLoginLocation(Activity activity);
21 |
22 | }
23 |
24 | //与M层交互
25 | interface LogoutPresenter {
26 | void initView();
27 |
28 | void setUserInfo();
29 |
30 |
31 | }
32 |
33 | //与V层交互,需要将获取的信息展示出来
34 | interface LoginView extends BaseView {
35 |
36 | void LoginSuccess(Data data);
37 |
38 | void RegisterResult(String... infos);
39 |
40 | void setLoginLocation(int height);
41 |
42 | void refreshLocation(int height);
43 | }
44 |
45 |
46 | //与V层交互,需要将获取的信息展示出来
47 | interface LogoutView extends BaseView {
48 |
49 | void setEmptyContent(List mList);
50 |
51 | void setContent(List mList, int flag);
52 | }
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/api/NetTask.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.api;
2 |
3 | public interface NetTask {
4 | void execute(LoadTasksCallBack callBack, int... params);
5 |
6 | void execute(LoadTasksCallBack callBack,String...infos);
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/api/OffAccountContract.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.api;
2 |
3 | import com.lzq.wanandroid.base.BaseView;
4 | import com.lzq.wanandroid.model.Children;
5 | import com.lzq.wanandroid.model.Data;
6 | import com.lzq.wanandroid.model.Datas;
7 |
8 | import java.util.List;
9 |
10 | public interface OffAccountContract {
11 | //与M层交互
12 | interface AccountTitlePresenter {
13 | //获取文章前先使用占位符填充
14 | void initView(String[] tabName);
15 |
16 | void initView(int position,String[] tabName, int[] tabID);
17 |
18 | void getTitleText(int type);
19 |
20 | void getContent(int ID, int page);
21 |
22 | }
23 |
24 | //与M层交互
25 | interface AccountContentPresenter {
26 | //获取文章前先使用占位符填充
27 | void initView();
28 |
29 | void getTitleText(int type);
30 |
31 | void addContent(int ID, int page);
32 |
33 | void getContent(int ID, int page);
34 |
35 | void getSelectedURL(String URL);
36 |
37 | int showID();
38 |
39 | void collectArticle(int ID, boolean isCollect, int position);
40 |
41 | }
42 |
43 | //与V层交互,需要将获取的信息展示出来
44 | interface AccountTitleView extends BaseView {
45 |
46 | void setAccountEmptyTitle(List mList);
47 |
48 | void setArticlesContent(int position,List mList);
49 |
50 | void setTitleText(List mList);
51 |
52 | void setContent(List mList);
53 | }
54 |
55 |
56 | //与V层交互,需要将获取的信息展示出来
57 | interface AccountContentView extends BaseView {
58 |
59 | void setEmptyContent(List mList);
60 |
61 | void setContent(List mList, int flag);
62 |
63 | void goWebActivity(String URL);
64 |
65 | void collectedArticle(int position, boolean isCollect);
66 | }
67 |
68 | }
69 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/api/WebContract.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.api;
2 |
3 | import com.lzq.wanandroid.base.BaseView;
4 |
5 | public interface WebContract {
6 |
7 | interface Presenter{
8 | //与M层交互
9 | void getContent(String URL);
10 | }
11 |
12 |
13 | interface View extends BaseView{
14 | //与V层交互,需要将获取的信息展示出来
15 | void setContent(String URL);
16 | }
17 |
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/base/BaseFragment.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.base;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 | import android.support.v4.app.Fragment;
6 | import android.view.View;
7 | import android.view.inputmethod.InputMethodManager;
8 | import android.widget.EditText;
9 |
10 | import com.blankj.utilcode.util.ActivityUtils;
11 | import com.lzq.wanandroid.R;
12 |
13 | public abstract class BaseFragment extends Fragment {
14 |
15 | public void startActivity(View view, Class> className) {
16 | ActivityUtils.getActivityByView(view).startActivity(new Intent(ActivityUtils.getActivityByView(view), className));
17 | //参数(进入动画,退出动画)
18 | ActivityUtils.getActivityByView(view).overridePendingTransition(R.anim.enter_fade_out,R.anim.enter_fade_in);
19 | }
20 |
21 | public void startActivity(View view,Intent intent){
22 | ActivityUtils.getActivityByView(view).startActivity(intent);
23 | //参数(进入动画,退出动画)
24 | ActivityUtils.getActivityByView(view).overridePendingTransition(R.anim.enter_fade_out,R.anim.enter_fade_in);
25 | }
26 |
27 | //获取焦点并且显示输入法
28 | public static void showSoftInputUtil(EditText editText) {
29 | editText.setFocusable(true);
30 | editText.setFocusableInTouchMode(true);
31 | editText.requestFocus();
32 | InputMethodManager inputManager =
33 | (InputMethodManager) editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
34 | inputManager.showSoftInput(editText, 0);
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/base/BasePresenter.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.base;
2 |
3 | public abstract class BasePresenter {
4 | public void sendEvent(int... params) {
5 |
6 | }
7 |
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/base/BaseView.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.base;
2 |
3 | public interface BaseView {
4 | void setPresenter(T presenter);
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/base/NetChangeActivity.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.base;
2 |
3 | import android.content.BroadcastReceiver;
4 | import android.content.Context;
5 | import android.content.Intent;
6 | import android.content.IntentFilter;
7 | import android.net.ConnectivityManager;
8 | import android.net.NetworkInfo;
9 | import android.os.Bundle;
10 |
11 | import com.blankj.utilcode.util.NetworkUtils;
12 |
13 |
14 | /*
15 | * 需要网络状态监听的集成此基类
16 | * */
17 | public abstract class NetChangeActivity extends BaseActivity {
18 | //监听网络变化
19 | private IntentFilter intentFilter;
20 | private NetworkChangeReceiver networkChangeReceiver;
21 | //默认禁止屏幕旋转
22 | private boolean isAllowScrRoate = false;
23 | //采用ButterKnife绑定,每一个Acitivity都需要重新绑定,对标题的设置才能生效
24 |
25 | @Override
26 | protected void onCreate(Bundle savedInstanceState) {
27 | super.onCreate(savedInstanceState);
28 | setScreenRoate(isAllowScrRoate);
29 | intentFilter = new IntentFilter();
30 | intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
31 | networkChangeReceiver = new NetworkChangeReceiver();
32 | registerReceiver(networkChangeReceiver, intentFilter);
33 | }
34 |
35 | @Override
36 | protected void onDestroy() {
37 | super.onDestroy();
38 | unregisterReceiver(networkChangeReceiver);
39 | }
40 |
41 |
42 | class NetworkChangeReceiver extends BroadcastReceiver {
43 |
44 | @Override
45 | public void onReceive(Context context, Intent intent) {
46 | ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
47 | NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
48 | if (networkInfo != null && networkInfo.isConnected()&& NetworkUtils.isAvailableByPing()) {
49 | doNetWork();
50 | } else {
51 | // ToastUtils.show("您当前网络有问题,请检查设置!");
52 | }
53 | }
54 | }
55 |
56 | public abstract void doNetWork();
57 |
58 | public void setScreenRoate(boolean isAllowScrRoate) {
59 | this.isAllowScrRoate = isAllowScrRoate;
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/db/Tree.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.db;
2 |
3 | import org.litepal.crud.LitePalSupport;
4 |
5 | public class Tree extends LitePalSupport {
6 | //只保存一级标题
7 | private int parentID;
8 | private String name;
9 | private int type;//体系还是导航
10 |
11 |
12 | public Tree() {
13 | }
14 |
15 | public Tree(int parentID, String name, int type) {
16 | this.parentID = parentID;
17 | this.name = name;
18 | this.type = type;
19 | }
20 |
21 | public int getParentID() {
22 | return parentID;
23 | }
24 |
25 | public void setParentID(int parentID) {
26 | this.parentID = parentID;
27 | }
28 |
29 | public String getName() {
30 | return name;
31 | }
32 |
33 | public void setName(String name) {
34 | this.name = name;
35 | }
36 |
37 | public int getType() {
38 | return type;
39 | }
40 |
41 | public void setType(int type) {
42 | this.type = type;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/model/Children.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.model;
2 |
3 | import java.util.List;
4 |
5 | public class Children {
6 | private List children;
7 | private int courseId;
8 | private int id;
9 | private String name;
10 | private int order;
11 | private int parentChapterId;
12 | private boolean userControlSetTop;
13 | private int visible;
14 |
15 | public Children() {
16 | }
17 |
18 | public Children(int id, String name) {
19 | this.id = id;
20 | this.name = name;
21 | }
22 |
23 | public Children(List children, int courseId, int id, String name, int order, int parentChapterId, boolean userControlSetTop, int visible) {
24 | this.children = children;
25 | this.courseId = courseId;
26 | this.id = id;
27 | this.name = name;
28 | this.order = order;
29 | this.parentChapterId = parentChapterId;
30 | this.userControlSetTop = userControlSetTop;
31 | this.visible = visible;
32 | }
33 |
34 | public List getChildren() {
35 | return children;
36 | }
37 |
38 | public void setChildren(List children) {
39 | this.children = children;
40 | }
41 |
42 | public int getCourseId() {
43 | return courseId;
44 | }
45 |
46 | public void setCourseId(int courseId) {
47 | this.courseId = courseId;
48 | }
49 |
50 | public int getId() {
51 | return id;
52 | }
53 |
54 | public void setId(int id) {
55 | this.id = id;
56 | }
57 |
58 | public String getName() {
59 | return name;
60 | }
61 |
62 | public void setName(String name) {
63 | this.name = name;
64 | }
65 |
66 | public int getOrder() {
67 | return order;
68 | }
69 |
70 | public void setOrder(int order) {
71 | this.order = order;
72 | }
73 |
74 | public int getParentChapterId() {
75 | return parentChapterId;
76 | }
77 |
78 | public void setParentChapterId(int parentChapterId) {
79 | this.parentChapterId = parentChapterId;
80 | }
81 |
82 | public boolean isUserControlSetTop() {
83 | return userControlSetTop;
84 | }
85 |
86 | public void setUserControlSetTop(boolean userControlSetTop) {
87 | this.userControlSetTop = userControlSetTop;
88 | }
89 |
90 | public int getVisible() {
91 | return visible;
92 | }
93 |
94 | public void setVisible(int visible) {
95 | this.visible = visible;
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/model/Event.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.model;
2 |
3 | /**
4 | * @author TzuchiangLi
5 | * @time 2019年7月5日10:55:25
6 | * @description Event
7 | */
8 | public class Event {
9 |
10 | /**
11 | * 登录界面监听
12 | */
13 | public static final int TYPE_USER_LOGIN = 1;
14 | /**
15 | * 登录成功
16 | */
17 | public static final int TYPE_LOGIN = 2;
18 |
19 | /**
20 | * 退出登录
21 | */
22 | public static final int TYPE_LOGOUT = 3;
23 |
24 | /**
25 | * 收藏
26 | */
27 | public static final int TYPE_COLLECT = 4;
28 |
29 | /**
30 | * 取消收藏
31 | */
32 | public static final int TYPE_UNCOLLECT = 5;
33 |
34 | /**
35 | * 切换夜间模式
36 | */
37 | public static final int TYPE_CHANGE_DAY_NIGHT_MODE = 6;
38 |
39 | /**
40 | * 开始动画
41 | */
42 | public static final int TYPE_START_ANIMATION = 7;
43 |
44 | /**
45 | * 停止动画
46 | */
47 | public static final int TYPE_STOP_ANIMATION = 8;
48 |
49 | /**
50 | * 登录界面动画
51 | */
52 | public static final int TYPE_LOGIN_ANIMATION=9;
53 | /**
54 | * 登录界面渐隐顶部标题
55 | */
56 | public static final int TYPE_LOGIN_SUCCESS=10;
57 | /**
58 | * 退出当前用户刷新UserFragment界面
59 | */
60 | public static final int TYPE_LOGOUT_SUCCESS=11;
61 | /**
62 | * 需要登录
63 | */
64 | public static final int TYPE_NEED_LOGIN=12;
65 | /**
66 | * 收藏刷新
67 | */
68 | public static final int TYPE_COLLECT_REFRESH = 13;
69 | /**
70 | * 收藏注销
71 | */
72 | public static final int TYPE_COLLECT_LOGOUT = 14;
73 | /**
74 | * 收藏注销
75 | */
76 | public static final int TYPE_CHANGE_MAIN_TITLE = 14;
77 | /**
78 | * 跳转到体系界面
79 | */
80 | public static final int TYPE_CHANGE_SYS = 15;
81 | /**
82 | * 跳转到导航界面
83 | */
84 | public static final int TYPE_CHANGE_NAVI = 16;
85 | /**
86 | * 跳转到项目界面
87 | */
88 | public static final int TYPE_CHANGE_PROJECT = 17;
89 | /**
90 | * 跳转到项目界面
91 | */
92 | public static final int TYPE_HOME_BACKTOTOP = 18;
93 | /**
94 | * 跳转到项目界面
95 | */
96 | public static final int TYPE_PROJECT_REFRESH = 19;
97 | /**
98 | * 刷新时是否已登录
99 | */
100 | public static final int TYPE_REFRESH_ISLOGIN = 20;
101 | /**
102 | * 刷新时是否已登录
103 | */
104 | public static final int TYPE_REFRESH_NOTLOGIN = 21;
105 | /**
106 | * 全局加载
107 | */
108 | public static final int TYPE_SYS_LOAD = 22;
109 |
110 |
111 |
112 |
113 | /**
114 | * 目标界面-MainActivity
115 | */
116 | public static final int TARGET_MAIN = 1;
117 |
118 | /**
119 | * 目标界面-目录
120 | */
121 | public static final int TARGET_MENU = 2;
122 |
123 | /**
124 | * 目标界面-首页
125 | */
126 | public static final int TARGET_HOME = 3;
127 |
128 | /**
129 | * 目标界面-体系
130 | */
131 | public static final int TARGET_TREE = 4;
132 |
133 | /**
134 | * 目标界面-项目
135 | */
136 | public static final int TARGET_PROJECT = 5;
137 |
138 | /**
139 | * 目标界面-公众号
140 | */
141 | public static final int TARGET_WX = 6;
142 |
143 | /**
144 | * 目标界面-收藏列表
145 | */
146 | public static final int TARGET_COLLECT = 7;
147 |
148 | /**
149 | * 目标界面-搜索结果
150 | */
151 | public static final int TARGET_SEARCH_RESULT = 8;
152 | /**
153 | * 目标界面-我的信息
154 | */
155 | public static final int TARGET_USER = 9;
156 | /**
157 | * 目标界面-导航体系
158 | */
159 | public static final int TARGET_SYSTEM = 10;
160 | /**
161 | * 目标界面-全局刷新
162 | */
163 | public static final int TARGET_RESFRESH = 11;
164 |
165 |
166 |
167 | public int target;
168 |
169 | public int type;
170 |
171 | public String data;
172 |
173 | public int position;
174 |
175 | }
176 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/model/ProjectTree.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.model;
2 |
3 | import java.util.List;
4 |
5 | public class ProjectTree {
6 | private List data;
7 | private int errorCode;
8 | private String errorMsg;
9 |
10 | public ProjectTree() {
11 | }
12 |
13 | public ProjectTree(List data, int errorCode, String errorMsg) {
14 | this.data = data;
15 | this.errorCode = errorCode;
16 | this.errorMsg = errorMsg;
17 | }
18 |
19 | public List getData() {
20 | return data;
21 | }
22 |
23 | public void setData(List data) {
24 | this.data = data;
25 | }
26 |
27 | public int getErrorCode() {
28 | return errorCode;
29 | }
30 |
31 | public void setErrorCode(int errorCode) {
32 | this.errorCode = errorCode;
33 | }
34 |
35 | public String getErrorMsg() {
36 | return errorMsg;
37 | }
38 |
39 | public void setErrorMsg(String errorMsg) {
40 | this.errorMsg = errorMsg;
41 | }
42 |
43 | public static class DataBean {
44 | private List children;
45 | private int courseId;
46 | private int id;
47 | private String name;
48 | private int order;
49 | private int parentChapterId;
50 | private boolean userControlSetTop;
51 | private int visible;
52 |
53 | public DataBean() {
54 | }
55 |
56 | public DataBean(List children, int courseId, int id, String name, int order, int parentChapterId, boolean userControlSetTop, int visible) {
57 | this.children = children;
58 | this.courseId = courseId;
59 | this.id = id;
60 | this.name = name;
61 | this.order = order;
62 | this.parentChapterId = parentChapterId;
63 | this.userControlSetTop = userControlSetTop;
64 | this.visible = visible;
65 | }
66 |
67 | public List getChildren() {
68 | return children;
69 | }
70 |
71 | public void setChildren(List children) {
72 | this.children = children;
73 | }
74 |
75 | public int getCourseId() {
76 | return courseId;
77 | }
78 |
79 | public void setCourseId(int courseId) {
80 | this.courseId = courseId;
81 | }
82 |
83 | public int getId() {
84 | return id;
85 | }
86 |
87 | public void setId(int id) {
88 | this.id = id;
89 | }
90 |
91 | public String getName() {
92 | return name;
93 | }
94 |
95 | public void setName(String name) {
96 | this.name = name;
97 | }
98 |
99 | public int getOrder() {
100 | return order;
101 | }
102 |
103 | public void setOrder(int order) {
104 | this.order = order;
105 | }
106 |
107 | public int getParentChapterId() {
108 | return parentChapterId;
109 | }
110 |
111 | public void setParentChapterId(int parentChapterId) {
112 | this.parentChapterId = parentChapterId;
113 | }
114 |
115 | public boolean isUserControlSetTop() {
116 | return userControlSetTop;
117 | }
118 |
119 | public void setUserControlSetTop(boolean userControlSetTop) {
120 | this.userControlSetTop = userControlSetTop;
121 | }
122 |
123 | public int getVisible() {
124 | return visible;
125 | }
126 |
127 | public void setVisible(int visible) {
128 | this.visible = visible;
129 | }
130 | }
131 |
132 | }
133 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/model/Tags.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.model;
2 |
3 | public class Tags {
4 | private String name;
5 | private String url;
6 |
7 |
8 | public void setName(String name) {
9 | this.name = name;
10 | }
11 | public String getName() {
12 | return name;
13 | }
14 |
15 |
16 | public void setUrl(String url) {
17 | this.url = url;
18 | }
19 | public String getUrl() {
20 | return url;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/model/WanAndroid.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.model;
2 |
3 |
4 | import java.util.List;
5 |
6 | public class WanAndroid {
7 | private List data;
8 | private int errorCode;
9 | private String errorMsg;
10 |
11 |
12 | public List getData() {
13 | return data;
14 | }
15 |
16 | public void setData(List data) {
17 | this.data = data;
18 | }
19 |
20 | public int getErrorCode() {
21 | return errorCode;
22 | }
23 |
24 | public void setErrorCode(int errorCode) {
25 | this.errorCode = errorCode;
26 | }
27 |
28 | public String getErrorMsg() {
29 | return errorMsg;
30 | }
31 |
32 | public void setErrorMsg(String errorMsg) {
33 | this.errorMsg = errorMsg;
34 | }
35 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/model/WanAndroid_Content.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.model;
2 |
3 |
4 | public class WanAndroid_Content {
5 | private int errorCode;
6 | private String errorMsg;
7 | private Data data;
8 |
9 |
10 | public Data getData() {
11 | return data;
12 | }
13 |
14 | public void setData(Data data) {
15 | this.data = data;
16 | }
17 |
18 | public int getErrorCode() {
19 | return errorCode;
20 | }
21 |
22 | public void setErrorCode(int errorCode) {
23 | this.errorCode = errorCode;
24 | }
25 |
26 | public String getErrorMsg() {
27 | return errorMsg;
28 | }
29 |
30 | public void setErrorMsg(String errorMsg) {
31 | this.errorMsg = errorMsg;
32 | }
33 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lzq/wanandroid/presenter/CollectPresenter.java:
--------------------------------------------------------------------------------
1 | package com.lzq.wanandroid.presenter;
2 |
3 | import android.util.Log;
4 |
5 | import com.lzq.wanandroid.api.Contract;
6 | import com.lzq.wanandroid.api.LoadTasksCallBack;
7 | import com.lzq.wanandroid.api.WebTask;
8 | import com.lzq.wanandroid.base.BasePresenter;
9 | import com.lzq.wanandroid.model.Datas;
10 | import com.lzq.wanandroid.utils.StringUtils;
11 |
12 | import java.util.ArrayList;
13 | import java.util.List;
14 |
15 | public class CollectPresenter extends BasePresenter implements Contract.CollectPresenter, LoadTasksCallBack