8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # AndroidReview (Android面试复习) #
2 |
3 | ## 一、项目简介 ##
4 |
5 | 为了更好地准备面试Android开发这一职位,于是就到应用市场查找相关的复习App,结果发现只有寥寥无几的几款,而且很不好用,AndroidReview因此而诞生。
6 |
7 | AndroidReview是一款面向Android开发者的一款面试复习App,里面包含知识点复习和面试题目测试两大模块。使用者不管在何时何地都可以通过该App复习巩固Android知识点。如果你有比较好的资源(博文或者测试题目)也可以联系我更新到该应用哦。(QQ群在下面^_^)**[APK点我下载](https://github.com/envyfan/AndroidReview/blob/master/apk/v1.0.1.apk?raw=true)**
8 |
9 | **特点:**
10 | * 知识点归类明细,并且每一篇博文都通过作者阅读后采集进后台,不是简单地采集博文。
11 |
12 | * 博文采用了缓存机制,会根据不同网络环境调整缓存存活时间,给使用者一个良好的体验。(缓存策略思路来自OSChina客户端)。
13 |
14 | * 随机读取题库题目,保证每次读取题库题目题序都是乱序。
15 |
16 | * 提供测试题目收藏,便于使用者随时翻阅感兴趣的题目。
17 |
18 | * 对于资料收集者可从Bmob云后台服务动态增删改查任意题目、博文、知识点数据。
19 |
20 | ## 二、第三方引用 ##
21 |
22 | 1、[下拉刷新android-Ultra-Pull-To-Refresh](https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh)
23 |
24 | 2、[mob移动云服务](http://www.bmob.cn/)
25 |
26 | 3、[logger调试日志插件](https://github.com/orhanobut/logger)
27 |
28 | 4、[应用崩溃异常提示crashwoodpecker](https://github.com/drakeet/CrashWoodpecker)
29 |
30 | ## 三、运行截图 ##
31 |
32 | 
33 |
34 | ## 四、导入说明 ##
35 |
36 | 为了避免移动云数据不被删改,所以在上传该项目的时候已经把ApplicationID删除了,如果你想运行该项目,那么需要到Bmob中创建一个应用,并且建立好数据表后把ApplicationID替换到AppContext中即可。
37 | * **Step 1:申请Bmob账号并且创建一个应用**
38 | 该步骤可参考Bmob官方文档:
39 | http://docs.bmob.cn/android/faststart/index.html?menukey=fast_start&key=start_android
40 |
41 | * **Step 2:替换ApplicationId**
42 |
43 | 把com.vv.androidreview.base.system.AppContext下的ApplicationId替换成你在Bmob中创建应用的ApplicationId
44 | ```java
45 | @Override
46 | public void onCreate() {
47 | super.onCreate();
48 | instance = this;
49 | Bmob.initialize(this, "这里换成你的Bmob ApplicationID");
50 | //初始化Log系统
51 | Logger.init("MyDemo") // default PRETTYLOGGER or use just init()
52 | .setMethodCount(1) // default 2
53 | .hideThreadInfo(); // default shown
54 | }
55 | ```
56 | * **Step 3:运行项目一键插入数据**
57 |
58 | 点击这里进入一键插入数据界面(首次插入数据则自动创建数据表省去了第一版本时候建表的繁琐步骤,记得刷新列表)
59 | 
60 |
61 | ## 五、致谢 ##
62 | 知识点复习大部分博文都来自鸿洋、郭林等大神的博客,非常感谢像他们一样的开发者在网上分享自己的技术经验,让我们受益匪浅。另外也非常感谢oschina这个开源项目,在里面我学习到了很多东西,包括基类的封装、使用缓存策略、网络环境判断等等。
63 |
64 | ## 六、声明 ##
65 | 应用中展示的所有内容均搜集自互联网,若内容有侵权请联系作者进行删除处理。本应用仅用作分享与学习,[**源代码在 GPL v3 协议下发布**](https://github.com/envyfan/AndroidReview/blob/master/LICENSE), 使用前, 请确保你了解这个协议!。
66 | **交流QQ群:206944327**
67 |
68 | [**Android程序员:做一款属于自己的实用小应用**](http://www.v-sounds.com/2016/03/11/作品/做一款属于自己的实用小应用/)
69 |
--------------------------------------------------------------------------------
/apk/v1.0.0.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/apk/v1.0.0.apk
--------------------------------------------------------------------------------
/apk/v1.0.1.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/apk/v1.0.1.apk
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | apply plugin: 'com.android.application'
21 |
22 | android {
23 | compileSdkVersion 23
24 | buildToolsVersion "23.0.1"
25 |
26 | defaultConfig {
27 | applicationId "com.vv.androidreview"
28 | minSdkVersion 14
29 | targetSdkVersion 23
30 | versionCode 2
31 | versionName "V1.0,1"
32 | }
33 | buildTypes {
34 | release {
35 | minifyEnabled false
36 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
37 | }
38 | }
39 | }
40 |
41 | dependencies {
42 | compile fileTree(include: ['*.jar'], dir: 'libs')
43 | testCompile 'junit:junit:4.12'
44 | compile files('libs/logger.jar')
45 | //bmob-sdk :Bmob的android sdk包
46 | compile 'cn.bmob.android:bmob-sdk:3.4.5'
47 | //okhttp(选填):为解决弱网情况下SDK请求失败及响应慢的问题,自`V3.4.3版本`开始使用`okhttp`优化SDK的网络框架。
48 | compile 'com.squareup.okhttp:okhttp:2.4.0'
49 | compile 'com.squareup.okio:okio:1.4.0'
50 | compile 'com.android.support:appcompat-v7:23.1.0'
51 | compile 'com.android.support:design:23.1.0'
52 | //下拉刷新
53 | compile 'in.srain.cube:ultra-ptr:1.0.11'
54 | compile 'com.android.support:cardview-v7:23.1.0'
55 | compile 'com.android.support:support-v4:23.1.0'
56 | //分段选择View
57 | compile 'com.github.channguyen:rsv:1.0.1'
58 | //开关View
59 | compile 'com.7heaven.ioswidget:iosswitch:0.5'
60 |
61 | //异常捕获(调试用 参考drakeet的开源项目)
62 | //debugCompile 'me.drakeet.library:crashwoodpecker:0.9.81'
63 | //releaseCompile 'me.drakeet.library:crashwoodpecker-do-nothing:0.9.7'
64 |
65 | }
66 |
--------------------------------------------------------------------------------
/app/hs_err_pid3528.log:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/hs_err_pid3528.log
--------------------------------------------------------------------------------
/app/hs_err_pid3728.log:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/hs_err_pid3728.log
--------------------------------------------------------------------------------
/app/hs_err_pid5952.log:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/hs_err_pid5952.log
--------------------------------------------------------------------------------
/app/libs/logger.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/libs/logger.jar
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in E:\android-sdks/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/vv/androidreview/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview;
21 |
22 | import android.app.Application;
23 | import android.test.ApplicationTestCase;
24 |
25 | /**
26 | * Testing Fundamentals
27 | */
28 | public class ApplicationTest extends ApplicationTestCase {
29 | public ApplicationTest() {
30 | super(Application.class);
31 | }
32 | }
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
39 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/app/src/main/assets/css/common.css:
--------------------------------------------------------------------------------
1 | /* 图片大小自适应 */
2 | img {
3 | max-width:100%;
4 | height:auto;
5 | }
6 | p {
7 | line-height:2;
8 | }
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/assets/js/common.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | function removeImageAttribute()
4 | {
5 | var imgs = document.getElementsByTagName("img");
6 | for (var i=0;i
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.adapter;
21 |
22 | import android.content.Context;
23 | import android.view.LayoutInflater;
24 | import android.view.View;
25 | import android.view.ViewGroup;
26 | import android.widget.TextView;
27 |
28 | import com.vv.androidreview.R;
29 | import com.vv.androidreview.base.MyBaseAdapter;
30 | import com.vv.androidreview.entity.Content;
31 |
32 | /**
33 | * Author:Vv on .
34 | * Mail:envyfan@qq.com
35 | * Description:
36 | */
37 | public class ContentListAdapter extends MyBaseAdapter {
38 |
39 |
40 | public ContentListAdapter(Context context) {
41 | super(context);
42 | }
43 |
44 | @Override
45 | public View getView(int position, View convertView, ViewGroup parent) {
46 | Content content = mDatas.get(position);
47 | ViewHolder holder;
48 | if (convertView == null) {
49 | convertView = LayoutInflater.from(mContext).inflate(R.layout.list_content_item, null, false);
50 | holder = new ViewHolder(convertView);
51 | convertView.setTag(holder);
52 | } else {
53 | holder = (ViewHolder) convertView.getTag();
54 | }
55 | holder.tv_content_title.setText(content.getTitle());
56 | holder.tv_content_small.setText(content.getSmall());
57 | holder.tv_create_time.setText(content.getCreatedAt());
58 | return convertView;
59 | }
60 |
61 | private class ViewHolder {
62 | private TextView tv_content_title, tv_content_small, tv_create_time;
63 |
64 | public ViewHolder(View view) {
65 | tv_content_title = (TextView) view.findViewById(R.id.tv_content_title);
66 | tv_content_small = (TextView) view.findViewById(R.id.tv_content_small);
67 | tv_create_time = (TextView) view.findViewById(R.id.tv_create_time);
68 | }
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/adapter/FavTestListAdatper.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.adapter;
21 |
22 | import android.content.Context;
23 | import android.view.LayoutInflater;
24 | import android.view.View;
25 | import android.view.ViewGroup;
26 | import android.widget.TextView;
27 |
28 | import com.vv.androidreview.R;
29 | import com.vv.androidreview.base.MyBaseAdapter;
30 | import com.vv.androidreview.entity.Test;
31 |
32 | /**
33 | * Author:Vv on .
34 | * Mail:envyfan@qq.com
35 | * Description:
36 | */
37 | public class FavTestListAdatper extends MyBaseAdapter {
38 |
39 | public FavTestListAdatper(Context context) {
40 | super(context);
41 | }
42 |
43 | @Override
44 | public View getView(int position, View convertView, ViewGroup parent) {
45 | Test test = mDatas.get(position);
46 | ViewHolder holder;
47 | if (convertView == null) {
48 | convertView = LayoutInflater.from(mContext).inflate(R.layout.list_fav_item, null, false);
49 | holder = new ViewHolder(convertView);
50 | convertView.setTag(holder);
51 |
52 | }else {
53 | holder = (ViewHolder) convertView.getTag();
54 | }
55 | holder.tv_test_question.setText(test.getQuestion());
56 | holder.tv_create_time.setText(test.getCreatedAt());
57 |
58 | return convertView;
59 | }
60 |
61 | private class ViewHolder{
62 | TextView tv_test_question,tv_create_time;
63 |
64 | public ViewHolder(View view) {
65 | tv_test_question = (TextView) view.findViewById(R.id.tv_test_question);
66 | tv_create_time = (TextView) view.findViewById(R.id.tv_create_time);
67 | }
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/base/BaseApplication.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.base;
21 |
22 | import android.app.Application;
23 | import android.content.Context;
24 | import android.content.res.Resources;
25 | import android.os.Build;
26 |
27 | /**
28 | * Author:Vv on 2015/7/20 20:39
29 | * Mail:envyfan@qq.com
30 | * Description:
31 | */
32 | public class BaseApplication extends Application{
33 |
34 | public static Context sContext;
35 | public static Resources sResource;
36 |
37 | private static String PREF_NAME = "creativelocker.pref";
38 | private static String LAST_REFRESH_TIME = "last_refresh_time.pref";
39 | private static long lastToastTime;
40 | //运行系统是否为2.3或以上
41 | public static boolean isAtLeastGB;
42 |
43 | static {
44 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
45 | isAtLeastGB = true;
46 | }
47 | }
48 |
49 | @Override
50 | public void onCreate() {
51 | super.onCreate();
52 | sContext = getApplicationContext();
53 | sResource = sContext.getResources();
54 | }
55 |
56 | public static synchronized BaseApplication context() {
57 | return (BaseApplication) sContext;
58 | }
59 |
60 | public static Resources resources() {
61 | return sResource;
62 | }
63 |
64 | }
65 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/base/BaseFragment.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.base;
21 |
22 | import android.app.Activity;
23 | import android.os.Bundle;
24 | import android.support.v4.app.Fragment;
25 |
26 | import com.vv.androidreview.ui.activites.MainActivity;
27 |
28 |
29 | /**
30 | * Author: Vv on 2015/8/12 17:26
31 | * Mail: envyfan@qq.com
32 | * Description:
33 | */
34 | public abstract class BaseFragment extends Fragment {
35 |
36 | /**
37 | * Fragment当前状态是否可见
38 | */
39 | protected boolean isVisible;
40 | protected boolean isCreate = true;
41 |
42 | protected BaseActivity mActivity;
43 |
44 | @Override
45 | public void onAttach(Activity activity) {
46 | this.mActivity = (BaseActivity) activity;
47 | super.onAttach(activity);
48 |
49 | }
50 |
51 | @Override
52 | public void onCreate(Bundle savedInstanceState) {
53 | super.onCreate(savedInstanceState);
54 |
55 | }
56 |
57 | @Override
58 | public void setUserVisibleHint(boolean isVisibleToUser) {
59 | super.setUserVisibleHint(isVisibleToUser);
60 | isCreate = false;
61 | if (getUserVisibleHint()) {
62 | isVisible = true;
63 | onVisible();
64 | } else {
65 | isVisible = false;
66 | onInvisible();
67 | }
68 | }
69 |
70 |
71 | /**
72 | * 当Fragment可见时调用该方法
73 | */
74 | protected void onVisible() {
75 |
76 | }
77 |
78 | /**
79 | * Fragment不可见时调用
80 | */
81 | protected void onInvisible() {
82 | }
83 |
84 |
85 | }
86 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/base/MyBaseAdapter.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.base;
21 |
22 | import android.content.Context;
23 | import android.view.View;
24 | import android.view.ViewGroup;
25 | import android.widget.BaseAdapter;
26 |
27 | import java.util.ArrayList;
28 | import java.util.List;
29 |
30 | /**
31 | * Author:Vv on .
32 | * Mail:envyfan@qq.com
33 | * Description:
34 | */
35 | public abstract class MyBaseAdapter extends BaseAdapter {
36 |
37 | protected List mDatas = new ArrayList<>();
38 |
39 | protected Context mContext;
40 |
41 | public MyBaseAdapter(Context context) {
42 | this.mContext = context;
43 | }
44 |
45 | @Override
46 | public int getCount() {
47 | return mDatas.size();
48 | }
49 |
50 | @Override
51 | public Object getItem(int position) {
52 | return mDatas.get(position);
53 | }
54 |
55 | @Override
56 | public long getItemId(int position) {
57 | return position;
58 | }
59 |
60 | public void addData(List datas) {
61 | if (mDatas != null && datas != null && !datas.isEmpty()) {
62 | mDatas.addAll(datas);
63 | }
64 | notifyDataSetChanged();
65 | }
66 |
67 | public void notifyAdapter(List datas) {
68 | this.mDatas = datas;
69 | notifyDataSetChanged();
70 | }
71 |
72 | public void setDatas(List datas){
73 | this.mDatas = datas;
74 | }
75 |
76 | }
77 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/base/system/AppContext.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.base.system;
21 |
22 |
23 | import com.orhanobut.logger.Logger;
24 | import com.vv.androidreview.base.BaseApplication;
25 |
26 | import cn.bmob.v3.Bmob;
27 | /**
28 | * Author:Vv on 2015/7/20 20:51
29 | * Mail:envyfan@qq.com
30 | * Description:
31 | */
32 | public class AppContext extends BaseApplication {
33 |
34 | private static AppContext instance;
35 |
36 | private static final String ApplicationID = "这里输入你的Bmob ApplicationID";
37 |
38 | @Override
39 | public void onCreate() {
40 | super.onCreate();
41 | instance = this;
42 | Bmob.initialize(this, ApplicationID);
43 | //初始化Log系统
44 | Logger.init("MyDemo") // default PRETTYLOGGER or use just init()
45 | .setMethodCount(1) // default 2
46 | .hideThreadInfo(); // default shown
47 | //异常捕获收集
48 | // CrashWoodpecker.fly().to(this);
49 | }
50 |
51 | /**
52 | * 获得当前app运行的AppContext
53 | *
54 | * @return
55 | */
56 | public static AppContext getInstance() {
57 | return instance;
58 | }
59 |
60 |
61 | }
62 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/base/system/Settings.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.base.system;
21 |
22 | import android.content.Context;
23 | import android.content.SharedPreferences;
24 |
25 | /**
26 | * Author:Vv on .
27 | * Mail:envyfan@qq.com
28 | * Description:存取Settings SharePrefrence 配置
29 | */
30 | public class Settings {
31 |
32 | public final static String FILE_CONFIG = "file_config";
33 |
34 | /**
35 | * wifi缓存过期时间 分钟为单位
36 | */
37 | public final static String CACHE_OVERTIME_WIFI = "cache_overtime_wifi";
38 | /**
39 | * 其他网络缓存过期时间 天为单位
40 | */
41 | public final static String CACHE_OVERTIME_OTHER = "cache_overtime_other";
42 | /**
43 | * 是否开启缓存不过期
44 | */
45 | public final static String CACHE_OVERTIME = "cache_overtime";
46 |
47 | public static SharedPreferences getPreferences(String prefName) {
48 | return AppContext.getInstance().getSharedPreferences(prefName, Context.MODE_PRIVATE);
49 | }
50 |
51 | private static void apply(SharedPreferences.Editor editor) {
52 | if (AppContext.isAtLeastGB) {
53 | editor.apply();
54 | } else {
55 | editor.commit();
56 | }
57 | }
58 |
59 | public static void putInt(String key, int value) {
60 | SharedPreferences preferences = getPreferences(FILE_CONFIG);
61 | SharedPreferences.Editor editor = preferences.edit();
62 | editor.putInt(key, value);
63 | apply(editor);
64 | }
65 |
66 | public static int getInt(String key) {
67 | return getPreferences(FILE_CONFIG).getInt(key, -1);
68 | }
69 |
70 | public static int getInt(String key,int defaultInt) {
71 | return getPreferences(FILE_CONFIG).getInt(key, defaultInt);
72 | }
73 |
74 | public static void putBoolean(String key, boolean value) {
75 | SharedPreferences preferences = getPreferences(FILE_CONFIG);
76 | SharedPreferences.Editor editor = preferences.edit();
77 | editor.putBoolean(key, value);
78 | apply(editor);
79 | }
80 |
81 | public static Boolean getBoolean(String key) {
82 | return getPreferences(FILE_CONFIG).getBoolean(key, false);
83 | }
84 |
85 | public static Boolean getBoolean(String key,boolean defaultBoolean) {
86 | return getPreferences(FILE_CONFIG).getBoolean(key, defaultBoolean);
87 | }
88 | }
89 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/base/system/StatusBarCompat.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.base.system;
21 |
22 | /**
23 | * Author: Vv on 2015/9/25 15:35
24 | * Mail: envyfan@qq.com
25 | * Description:
26 | */
27 | import android.annotation.TargetApi;
28 | import android.app.Activity;
29 | import android.content.Context;
30 | import android.graphics.Color;
31 | import android.os.Build;
32 | import android.view.View;
33 | import android.view.ViewGroup;
34 |
35 | /**
36 | * Created by zhy on 15/9/21.
37 | */
38 | public class StatusBarCompat
39 | {
40 | private static final int INVALID_VAL = -1;
41 | private static final int COLOR_DEFAULT = Color.parseColor("#20000000");
42 |
43 | @TargetApi(Build.VERSION_CODES.LOLLIPOP)
44 | public static void compat(Activity activity, int statusColor)
45 | {
46 |
47 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
48 | {
49 | if (statusColor != INVALID_VAL)
50 | {
51 | activity.getWindow().setStatusBarColor(statusColor);
52 | }
53 | return;
54 | }
55 |
56 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
57 | {
58 | int color = COLOR_DEFAULT;
59 | ViewGroup contentView = (ViewGroup) activity.findViewById(android.R.id.content);
60 | if (statusColor != INVALID_VAL)
61 | {
62 | color = statusColor;
63 | }
64 | View statusBarView = new View(activity);
65 | ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
66 | getStatusBarHeight(activity));
67 | statusBarView.setBackgroundColor(color);
68 | contentView.addView(statusBarView, lp);
69 | }
70 |
71 | }
72 |
73 | public static void compat(Activity activity)
74 | {
75 | compat(activity, INVALID_VAL);
76 | }
77 |
78 |
79 | public static int getStatusBarHeight(Context context)
80 | {
81 | int result = 0;
82 | int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
83 | if (resourceId > 0)
84 | {
85 | result = context.getResources().getDimensionPixelSize(resourceId);
86 | }
87 | return result;
88 | }
89 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/cache/ReadCacheAsyncTask.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.cache;
21 |
22 | import android.content.Context;
23 | import android.os.AsyncTask;
24 |
25 | import java.io.Serializable;
26 | import java.lang.ref.WeakReference;
27 |
28 | /**
29 | * Author:Vv on .
30 | * Mail:envyfan@qq.com
31 | * Description:
32 | */
33 | public class ReadCacheAsyncTask extends AsyncTask {
34 | private WeakReference mContext;
35 |
36 | public interface OnReadCacheToDo {
37 | void preExecute();
38 |
39 | void postExectue(T data);
40 | }
41 |
42 | private OnReadCacheToDo onReadCacheToDo;
43 |
44 | public void setOnReadCacheToDo(OnReadCacheToDo onReadCacheToDo) {
45 | this.onReadCacheToDo = onReadCacheToDo;
46 | }
47 |
48 | public ReadCacheAsyncTask(Context context) {
49 | mContext = new WeakReference(context);
50 | }
51 |
52 | @Override
53 | protected void onPreExecute() {
54 | super.onPreExecute();
55 | if (onReadCacheToDo != null) {
56 | onReadCacheToDo.preExecute();
57 | }
58 | }
59 |
60 | @Override
61 | protected T doInBackground(String... params) {
62 | if (mContext.get() != null) {
63 | Serializable seri = CacheHelper.readObject(mContext.get(), params[0]);
64 | if (seri == null) {
65 | return null;
66 | } else {
67 | return (T) seri;
68 | }
69 | }
70 | return null;
71 | }
72 |
73 | @Override
74 | protected void onPostExecute(T data) {
75 | super.onPostExecute(data);
76 | if (onReadCacheToDo != null) {
77 | onReadCacheToDo.postExectue(data);
78 | }
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/cache/SaveCacheAsyncTask.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.cache;
21 |
22 | import android.content.Context;
23 | import android.os.AsyncTask;
24 |
25 | import java.io.Serializable;
26 | import java.lang.ref.WeakReference;
27 |
28 | /**
29 | * Author:Vv on .
30 | * Mail:envyfan@qq.com
31 | * Description:
32 | */
33 | public class SaveCacheAsyncTask extends AsyncTask {
34 | private WeakReference mContext;
35 | private Serializable seri;
36 | private String cacheKey;
37 |
38 | public SaveCacheAsyncTask(Context context, Serializable seri, String cacheKey) {
39 | mContext = new WeakReference(context);
40 | this.seri = seri;
41 | this.cacheKey = cacheKey;
42 | }
43 |
44 | @Override
45 | protected Void doInBackground(Void... params) {
46 | CacheHelper.saveObject(mContext.get(), seri, cacheKey);
47 | return null;
48 | }
49 |
50 |
51 | }
52 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/entity/Content.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.entity;
21 |
22 | import cn.bmob.v3.BmobObject;
23 |
24 | /**
25 | * Author:Vv on 2016/1/17.
26 | * Mail:envyfan@qq.com
27 | * Description:单元--知识点--内容
28 | */
29 | public class Content extends BmobObject {
30 |
31 | //标题
32 | private String title;
33 |
34 | //内容正文
35 | private String content;
36 |
37 | //作者
38 | private String author;
39 |
40 | //内容来源
41 | private String source;
42 |
43 | //创建者
44 | private String creater;
45 |
46 | //所属知识点
47 | private Point point;
48 |
49 | //简介
50 | private String small;
51 |
52 | public String getSmall() {
53 | return small;
54 | }
55 |
56 | public void setSmall(String small) {
57 | this.small = small;
58 | }
59 |
60 | public Point getPoint() {
61 | return point;
62 | }
63 |
64 | public void setPoint(Point point) {
65 | this.point = point;
66 | }
67 |
68 | public String getTitle() {
69 | return title;
70 | }
71 |
72 | public void setTitle(String title) {
73 | this.title = title;
74 | }
75 |
76 | public String getContent() {
77 | return content;
78 | }
79 |
80 | public void setContent(String content) {
81 | this.content = content;
82 | }
83 |
84 | public String getAuthor() {
85 | return author;
86 | }
87 |
88 | public void setAuthor(String author) {
89 | this.author = author;
90 | }
91 |
92 | public String getSource() {
93 | return source;
94 | }
95 |
96 | public void setSource(String source) {
97 | this.source = source;
98 | }
99 |
100 | public String getCreater() {
101 | return creater;
102 | }
103 |
104 | public void setCreater(String creater) {
105 | this.creater = creater;
106 | }
107 | }
108 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/entity/Point.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.entity;
21 |
22 | import java.util.List;
23 |
24 | import cn.bmob.v3.BmobObject;
25 | import cn.bmob.v3.datatype.BmobPointer;
26 |
27 | /**
28 | * Author:Vv on 2016/1/17.
29 | * Mail:envyfan@qq.com
30 | * Description:单元--知识点
31 | */
32 | public class Point extends BmobObject{
33 |
34 | //知识点名字
35 | private String name;
36 |
37 | //方块颜色
38 | private Integer color;
39 |
40 | private Unit unit;
41 |
42 | public Unit getUnit() {
43 | return unit;
44 | }
45 |
46 | public void setUnit(Unit unit) {
47 | this.unit = unit;
48 | }
49 |
50 | public String getName() {
51 | return name;
52 | }
53 |
54 | public void setName(String name) {
55 | this.name = name;
56 | }
57 |
58 | public Integer getColor() {
59 | return color;
60 | }
61 |
62 | public void setColor(Integer color) {
63 | this.color = color;
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/entity/Suggest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.entity;
21 |
22 | import cn.bmob.v3.BmobObject;
23 |
24 | /**
25 | * Author:Vv on .
26 | * Mail:envyfan@qq.com
27 | * Description:
28 | */
29 | public class Suggest extends BmobObject{
30 | private String msg;
31 |
32 | public String getMail_qq() {
33 | return mail_qq;
34 | }
35 |
36 | public void setMail_qq(String mail_qq) {
37 | this.mail_qq = mail_qq;
38 | }
39 |
40 | private String mail_qq;
41 |
42 | public String getMsg() {
43 | return msg;
44 | }
45 |
46 | public void setMsg(String msg) {
47 | this.msg = msg;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/entity/Unit.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.entity;
21 |
22 | import java.util.List;
23 |
24 | import cn.bmob.v3.BmobObject;
25 | import cn.bmob.v3.datatype.BmobPointer;
26 |
27 | /**
28 | * Author:Vv on 2016/1/17.
29 | * Mail:envyfan@qq.com
30 | * Description:单元
31 | */
32 | public class Unit extends BmobObject {
33 |
34 | //单元名称
35 | private String name ;
36 |
37 | public String getName() {
38 | return name;
39 | }
40 |
41 | public void setName(String name) {
42 | this.name = name;
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/entity/VersionNote.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.entity;
21 |
22 | /**
23 | * Author:Vv on .
24 | * Mail:envyfan@qq.com
25 | * Description:记录更新日志
26 | */
27 | public class VersionNote {
28 |
29 | private String versionName;
30 | private String updateTime;
31 | private String updateNote;
32 |
33 | public VersionNote(String versionName, String updateTime, String updateNote) {
34 | this.versionName = versionName;
35 | this.updateTime = updateTime;
36 | this.updateNote = updateNote;
37 | }
38 |
39 | public String getUpdateNote() {
40 | return updateNote;
41 | }
42 |
43 | public String getVersionName() {
44 | return versionName;
45 | }
46 |
47 | public String getUpdateTime() {
48 | return updateTime;
49 | }
50 |
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/ui/activites/AboutActivity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.ui.activites;
21 |
22 | import android.app.Activity;
23 | import android.content.Intent;
24 | import android.os.Bundle;
25 | import android.view.View;
26 | import android.widget.TextView;
27 |
28 | import com.vv.androidreview.R;
29 | import com.vv.androidreview.base.BaseActivity;
30 |
31 | public class AboutActivity extends BaseActivity {
32 |
33 | private TextView mBtAuthor,mBtUpdate;
34 |
35 | @Override
36 | protected void onCreate(Bundle savedInstanceState) {
37 | super.onCreate(savedInstanceState);
38 | setContentView(R.layout.activity_about);
39 | initToolBar();
40 | showOrHideToolBarNavigation(true);
41 |
42 | mBtAuthor = (TextView) findViewById(R.id.bt_about_author);
43 | mBtAuthor.setOnClickListener(new View.OnClickListener() {
44 | @Override
45 | public void onClick(View v) {
46 | Intent intent = new Intent(AboutActivity.this,AuthorActivity.class);
47 | startActivity(intent);
48 | }
49 | });
50 |
51 | mBtUpdate = (TextView) findViewById(R.id.bt_update_text);
52 | mBtUpdate.setOnClickListener(new View.OnClickListener() {
53 | @Override
54 | public void onClick(View v) {
55 | Intent intent = new Intent(AboutActivity.this,VersionNoteActivity.class);
56 | startActivity(intent);
57 | }
58 | });
59 |
60 | setStatusBarCompat();
61 | }
62 |
63 | @Override
64 | public String returnToolBarTitle() {
65 | return getString(R.string.about);
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/ui/activites/AppStartActivity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.ui.activites;
21 |
22 | import android.Manifest;
23 | import android.app.Activity;
24 | import android.content.Intent;
25 | import android.content.pm.PackageManager;
26 | import android.os.Bundle;
27 | import android.os.Handler;
28 | import android.support.v4.app.ActivityCompat;
29 | import android.support.v4.content.ContextCompat;
30 |
31 | import com.vv.androidreview.R;
32 | import com.vv.androidreview.base.system.AppManager;
33 | import com.vv.androidreview.utils.PermissionsChecker;
34 | import com.vv.androidreview.utils.ToastHelper;
35 |
36 |
37 | public class AppStartActivity extends Activity {
38 |
39 | private final int SPLASH_DISPLAY_LENGHT = 2000; // 休眠2秒
40 |
41 | private static final int REQUEST_CODE = 0; // 请求码
42 |
43 | // 所需的全部权限
44 | static final String[] PERMISSIONS = new String[]{
45 | Manifest.permission.READ_PHONE_STATE,
46 | Manifest.permission.WRITE_EXTERNAL_STORAGE
47 | };
48 | private PermissionsChecker mPermissionsChecker; // 权限检测器
49 |
50 |
51 | @Override
52 | protected void onCreate(Bundle savedInstanceState) {
53 | super.onCreate(savedInstanceState);
54 |
55 | // 防止第三方跳转时出现双实例
56 | Activity aty = AppManager.getActivity(MainActivity.class);
57 | if (aty != null && !aty.isFinishing()) {
58 | finish();
59 | }
60 | setContentView(R.layout.activity_app_start);
61 |
62 | mPermissionsChecker = new PermissionsChecker(this);
63 |
64 | }
65 |
66 | @Override
67 | protected void onResume() {
68 | super.onResume();
69 | // 缺少权限时, 进入权限配置页面
70 | if (mPermissionsChecker.lacksPermissions(PERMISSIONS)) {
71 | PermissionsActivity.startActivityForResult(this, REQUEST_CODE, PERMISSIONS);
72 | }else{
73 | enterMainDelay();
74 | }
75 | }
76 |
77 | @Override
78 | protected void onActivityResult(int requestCode, int resultCode, Intent data) {
79 | super.onActivityResult(requestCode, resultCode, data);
80 | // 拒绝时, 关闭页面, 缺少主要权限, 无法运行
81 | if (requestCode == REQUEST_CODE && resultCode == PermissionsActivity.PERMISSIONS_DENIED) {
82 | finish();
83 | }
84 | }
85 |
86 | private void enterMainDelay() {
87 | new Handler().postDelayed(new Runnable() {
88 | @Override
89 | public void run() {
90 | redirectTo();
91 | }
92 | }, SPLASH_DISPLAY_LENGHT);
93 | }
94 |
95 | /**
96 | * 跳转到主Activity
97 | */
98 | private void redirectTo() {
99 | Intent intent = new Intent(this, MainActivity.class);
100 | startActivity(intent);
101 | finish();
102 | }
103 |
104 |
105 | }
106 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/ui/activites/AuthorActivity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.ui.activites;
21 |
22 | import android.app.Activity;
23 | import android.os.Bundle;
24 |
25 | import com.vv.androidreview.R;
26 | import com.vv.androidreview.base.BaseActivity;
27 |
28 | public class AuthorActivity extends BaseActivity {
29 |
30 | @Override
31 | protected void onCreate(Bundle savedInstanceState) {
32 | super.onCreate(savedInstanceState);
33 | setContentView(R.layout.activity_author);
34 | initToolBar();
35 | showOrHideToolBarNavigation(true);
36 | setStatusBarCompat();
37 | }
38 |
39 | @Override
40 | public String returnToolBarTitle() {
41 | return getString(R.string.author);
42 |
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/ui/fragment/Indicator.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.ui.fragment;
21 |
22 |
23 | import com.vv.androidreview.R;
24 |
25 | /**
26 | * Author: Vv on 2015/7/24 16:08
27 | * Mail: envyfan@qq.com
28 | * Description:
29 | */
30 | public enum Indicator {
31 |
32 | REVIEW(0, R.string.main_tab_name_review, R.drawable.tab_icon_review,
33 | ReviewFragment.class),
34 |
35 | TEST(1, R.string.main_tab_name_test, R.drawable.tab_icon_test,
36 | TestFragment.class),
37 |
38 | SETTING(2, R.string.main_tab_name_setting, R.drawable.tab_icon_other,
39 | SettingFragment.class);
40 |
41 |
42 |
43 | private int idx;
44 | private int resName;
45 | private int resIcon;
46 | private Class> clz;
47 |
48 | private Indicator(int idx, int resName, int resIcon, Class> clz) {
49 | this.idx = idx;
50 | this.resName = resName;
51 | this.resIcon = resIcon;
52 | this.clz = clz;
53 | }
54 |
55 | public int getIdx() {
56 | return idx;
57 | }
58 |
59 | public void setIdx(int idx) {
60 | this.idx = idx;
61 | }
62 |
63 | public int getResName() {
64 | return resName;
65 | }
66 |
67 | public void setResName(int resName) {
68 | this.resName = resName;
69 | }
70 |
71 | public int getResIcon() {
72 | return resIcon;
73 | }
74 |
75 | public void setResIcon(int resIcon) {
76 | this.resIcon = resIcon;
77 | }
78 |
79 | public Class> getClz() {
80 | return clz;
81 | }
82 |
83 | public void setClz(Class> clz) {
84 | this.clz = clz;
85 | }
86 | }
87 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/ui/view/AnswerItem.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.ui.view;
21 |
22 | import android.content.Context;
23 | import android.util.AttributeSet;
24 | import android.view.LayoutInflater;
25 | import android.view.View;
26 | import android.view.ViewGroup;
27 | import android.widget.LinearLayout;
28 | import android.widget.TextView;
29 |
30 | import com.vv.androidreview.R;
31 | import com.vv.androidreview.entity.Test;
32 |
33 | /**
34 | * Author:Vv on .
35 | * Mail:envyfan@qq.com
36 | * Description:
37 | */
38 | public class AnswerItem extends LinearLayout {
39 |
40 | private TextView mChoice, mChoiceContent;
41 | private Test mTest;
42 |
43 | public AnswerItem(Context context) {
44 | this(context, null);
45 | }
46 |
47 | public AnswerItem(Context context, AttributeSet attrs) {
48 | this(context, attrs, 0);
49 | }
50 |
51 | public AnswerItem(Context context, AttributeSet attrs, int defStyleAttr) {
52 | super(context, attrs, defStyleAttr);
53 | init();
54 | }
55 |
56 | private void init() {
57 | ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
58 | View view = LayoutInflater.from(getContext()).inflate(R.layout.test_answer_item, null);
59 | mChoice = (TextView) view.findViewById(R.id.tv_choice);
60 | mChoiceContent = (TextView) view.findViewById(R.id.tv_choice_content);
61 | addView(view,lp);
62 | }
63 |
64 | public void setChoiceText(String str) {
65 | mChoice.setText(str);
66 | }
67 |
68 | public void setChoiceContent(String content) {
69 | mChoiceContent.setText(content);
70 | }
71 |
72 | public void setTest(Test test) {
73 | this.mTest = test;
74 | }
75 |
76 | public void click() {
77 | // mChoice.setTextColor(getResources().getColor(R.color.white));
78 | if (mChoice.getText().toString().equals(mTest.getAnswer())) {
79 | mChoice.setBackgroundResource(R.mipmap.icon_true);
80 | mChoice.setText("");
81 | } else{
82 | mChoice.setBackgroundResource(R.mipmap.icon_false);
83 | mChoice.setText("");
84 | }
85 | }
86 | }
87 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/ui/view/GridViewEx.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.ui.view;
21 |
22 | import android.content.Context;
23 | import android.util.AttributeSet;
24 | import android.widget.GridView;
25 |
26 | /**
27 | * Author:Vv on .
28 | * Mail:envyfan@qq.com
29 | * Description:
30 | */
31 | public class GridViewEx extends GridView {
32 | public GridViewEx(Context context) {
33 | this(context, null);
34 | }
35 |
36 | public GridViewEx(Context context, AttributeSet attrs) {
37 | this(context, attrs, 0);
38 | }
39 |
40 | public GridViewEx(Context context, AttributeSet attrs, int defStyleAttr) {
41 | super(context, attrs, defStyleAttr);
42 | }
43 | @Override
44 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
45 | // TODO Auto-generated method stub
46 | int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
47 | super.onMeasure(widthMeasureSpec, expandSpec);
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/ui/view/ScrollViewEx.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.ui.view;
21 |
22 | import android.content.Context;
23 | import android.util.AttributeSet;
24 | import android.view.GestureDetector;
25 | import android.view.MotionEvent;
26 | import android.view.View;
27 | import android.widget.ScrollView;
28 |
29 | /**
30 | * Author:Vv on .
31 | * Mail:envyfan@qq.com
32 | * Description:
33 | */
34 | public class ScrollViewEx extends ScrollView {
35 | private GestureDetector mGestureDetector;
36 | View.OnTouchListener mGestureListener;
37 |
38 | public ScrollViewEx(Context context, AttributeSet attrs) {
39 | super(context, attrs);
40 | mGestureDetector = new GestureDetector(context, new YScrollDetector());
41 | setFadingEdgeLength(0);
42 | }
43 |
44 | @Override
45 | public boolean onInterceptTouchEvent(MotionEvent ev) {
46 | return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev);
47 | }
48 |
49 | // Return false if we're scrolling in the x direction
50 | class YScrollDetector extends GestureDetector.SimpleOnGestureListener {
51 | @Override
52 | public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
53 | if (Math.abs(distanceY) > Math.abs(distanceX)) {
54 | return true;
55 | }
56 | return false;
57 | }
58 | }
59 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/ui/view/SquareCarView.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.ui.view;
21 |
22 | import android.content.Context;
23 | import android.support.v7.widget.CardView;
24 | import android.util.AttributeSet;
25 |
26 | /**
27 | * Author:Vv on .
28 | * Mail:envyfan@qq.com
29 | * Description:
30 | */
31 | public class SquareCarView extends CardView {
32 | public SquareCarView(Context context) {
33 | this(context, null);
34 | }
35 |
36 | public SquareCarView(Context context, AttributeSet attrs) {
37 | this(context, attrs, 0);
38 | }
39 |
40 | public SquareCarView(Context context, AttributeSet attrs, int defStyleAttr) {
41 | super(context, attrs, defStyleAttr);
42 | }
43 |
44 | @Override
45 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
46 |
47 | setMeasuredDimension(getDefaultSize(0, widthMeasureSpec), getDefaultSize(0, heightMeasureSpec));
48 |
49 | // Children are just made to fill our space.
50 | int childWidthSize = getMeasuredWidth();
51 | int childHeightSize = getMeasuredHeight();
52 | //高度和宽度一样
53 | widthMeasureSpec = MeasureSpec.makeMeasureSpec(childWidthSize, MeasureSpec.EXACTLY);
54 | heightMeasureSpec = MeasureSpec.makeMeasureSpec(childWidthSize/4*3, MeasureSpec.EXACTLY);
55 | super.onMeasure(widthMeasureSpec, heightMeasureSpec);
56 | }
57 |
58 |
59 | }
60 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/utils/DoubleClickExitHelper.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.utils;
21 |
22 | import android.app.Activity;
23 | import android.os.Handler;
24 | import android.os.Looper;
25 | import android.view.KeyEvent;
26 | import android.widget.Toast;
27 |
28 | import com.vv.androidreview.R;
29 | import com.vv.androidreview.base.system.AppManager;
30 |
31 |
32 | /**
33 | * Author:Vv on 2015/7/21 15:30
34 | * Mail:envyfan@qq.com
35 | * Description:双击退出
36 | */
37 | public class DoubleClickExitHelper {
38 | private final Activity mActivity;
39 |
40 | private boolean isOnKeyBacking;
41 | private Handler mHandler;
42 | private Toast mBackToast;
43 |
44 | public DoubleClickExitHelper(Activity activity) {
45 | mActivity = activity;
46 | mHandler = new Handler(Looper.getMainLooper());
47 | }
48 |
49 | /**
50 | * Activity onKeyDown事件
51 | * */
52 | public boolean onKeyDown(int keyCode, KeyEvent event) {
53 | if(keyCode != KeyEvent.KEYCODE_BACK) {
54 | return false;
55 | }
56 | if(isOnKeyBacking) {
57 | mHandler.removeCallbacks(onBackTimeRunnable);
58 | if(mBackToast != null){
59 | mBackToast.cancel();
60 | }
61 | // �?�?
62 | AppManager.getAppManager().AppExit(mActivity);
63 | return true;
64 | } else {
65 | isOnKeyBacking = true;
66 | if(mBackToast == null) {
67 | mBackToast = Toast.makeText(mActivity, R.string.tip_double_click_exit, Toast.LENGTH_SHORT);
68 | }
69 | mBackToast.show();
70 | mHandler.postDelayed(onBackTimeRunnable, 2000);
71 | return true;
72 | }
73 | }
74 |
75 | private Runnable onBackTimeRunnable = new Runnable() {
76 |
77 | @Override
78 | public void run() {
79 | isOnKeyBacking = false;
80 | if(mBackToast != null){
81 | mBackToast.cancel();
82 | }
83 | }
84 | };
85 | }
86 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/utils/PermissionsChecker.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.utils;
21 |
22 | import android.content.Context;
23 | import android.content.pm.PackageManager;
24 | import android.support.v4.content.ContextCompat;
25 |
26 | /**
27 | * 检查权限的工具类
28 | *
29 | * Created by wangchenlong on 16/1/26.
30 | */
31 | public class PermissionsChecker {
32 | private final Context mContext;
33 |
34 | public PermissionsChecker(Context context) {
35 | mContext = context.getApplicationContext();
36 | }
37 |
38 | // 判断权限集合
39 | public boolean lacksPermissions(String... permissions) {
40 | for (String permission : permissions) {
41 | if (lacksPermission(permission)) {
42 | return true;
43 | }
44 | }
45 | return false;
46 | }
47 |
48 | // 判断是否缺少权限
49 | private boolean lacksPermission(String permission) {
50 | return ContextCompat.checkSelfPermission(mContext, permission) ==
51 | PackageManager.PERMISSION_DENIED;
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/app/src/main/java/com/vv/androidreview/utils/ToastHelper.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016. Vv
3 | *
4 | * This file is part of AndroidReview (Android面试复习)
5 | *
6 | * AndroidReview is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * AndroidReview is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with AndroidReview. If not, see .
18 | */
19 |
20 | package com.vv.androidreview.utils;
21 |
22 | import android.content.Context;
23 | import android.widget.Toast;
24 |
25 | /**
26 | * Author:Vv on 2016/1/17.
27 | * Mail:envyfan@qq.com
28 | * Description:
29 | */
30 | public class ToastHelper {
31 |
32 | public static void showString(Context context,String msg){
33 | Toast.makeText(context,msg,Toast.LENGTH_SHORT).show();
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/app/src/main/res/color/bt_next.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/main/res/color/bt_next_text.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/color/primarybar_txt.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bt_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
23 |
27 |
31 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bt_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
23 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/circle_false.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/circle_stroke.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
23 |
24 |
25 |
26 |
29 |
32 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/circle_true.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/progressloading.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
23 |
29 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/tab_icon_other.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/tab_icon_review.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/tab_icon_test.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_app_start.xml:
--------------------------------------------------------------------------------
1 |
19 |
20 |
26 |
27 |
33 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_create_table.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
26 |
27 |
28 |
37 |
38 |
46 |
59 |
66 |
73 |
74 |
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
26 |
27 |
28 |
29 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
19 |
20 |
27 |
28 |
29 |
30 |
35 |
36 |
40 |
41 |
42 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_suggest.xml:
--------------------------------------------------------------------------------
1 |
19 |
20 |
25 |
26 |
27 |
28 |
35 |
36 |
42 |
43 |
44 |
51 |
52 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_version_note.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
27 |
28 |
29 |
30 |
35 |
36 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/carview_review.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
21 |
22 |
32 |
33 |
34 |
41 |
42 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_fav_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
25 |
29 |
42 |
43 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_review.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
25 |
26 |
30 |
31 |
42 |
43 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_review_content_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
24 |
25 |
29 |
30 |
41 |
42 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_test.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
26 |
27 |
31 |
32 |
33 |
34 |
38 |
39 |
49 |
50 |
63 |
64 |
65 |
79 |
80 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/include_toolbar.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
27 |
28 |
32 |
33 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/itme_note_text.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
26 |
27 |
34 |
35 |
43 |
44 |
53 |
54 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/list_content_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
28 |
29 |
38 |
39 |
50 |
51 |
52 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/list_fav_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
27 |
28 |
41 |
42 |
43 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/list_footer.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
26 |
27 |
32 |
33 |
38 |
39 |
49 |
50 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/list_review_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
25 |
26 |
34 |
35 |
39 |
40 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/list_review_item_gv.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
25 |
26 |
34 |
35 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/loading.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
24 |
25 |
31 |
32 |
38 |
39 |
45 |
46 |
54 |
55 |
56 |
69 |
70 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/tab_indicator.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
25 |
26 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/test_answer_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
30 |
40 |
41 |
49 |
50 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_cache.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_suggest.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/bg_start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/bg_start.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/edt_gb.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/edt_gb.9.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_top_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/ic_top_back.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_about_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_about_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_blog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_blog.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_cache_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_cache_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_create_table_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_create_table_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_false.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_fav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_fav.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_fav_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_fav_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_fav_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_fav_select.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_github.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_layout_setting_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_layout_setting_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_loading.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_mail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_mail.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_other_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_other_off.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_other_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_other_on.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_qq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_qq.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_review_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_review_off.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_review_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_review_on.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_suggest_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_suggest_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_test_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_test_off.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_test_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_test_on.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_true.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/icon_update_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/icon_update_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/pagefailed_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/pagefailed_bg.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/submit_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-hdpi/submit_36dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/bg_start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/bg_start.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/edt_gb.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/edt_gb.9.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_top_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/ic_top_back.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_about_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_about_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_blog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_blog.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_cache_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_cache_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_create_table_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_create_table_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_false.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_fav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_fav.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_fav_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_fav_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_fav_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_fav_select.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_github.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_layout_setting_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_layout_setting_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_loading.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_mail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_mail.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_other_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_other_off.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_other_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_other_on.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_qq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_qq.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_review_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_review_off.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_review_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_review_on.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_suggest_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_suggest_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_test_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_test_off.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_test_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_test_on.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_true.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_update_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/icon_update_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/pagefailed_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/pagefailed_bg.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/submit_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xhdpi/submit_36dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/bg_start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/bg_start.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/edt_gb.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/edt_gb.9.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_top_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/ic_top_back.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_about_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_about_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_blog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_blog.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_cache_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_cache_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_create_table_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_create_table_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_false.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_fav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_fav.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_fav_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_fav_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_fav_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_fav_select.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_github.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_layout_setting_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_layout_setting_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_loading.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_mail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_mail.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_other_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_other_off.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_other_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_other_on.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_qq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_qq.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_review_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_review_off.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_review_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_review_on.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_suggest_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_suggest_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_test_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_test_off.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_test_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_test_on.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_true.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_update_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/icon_update_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/submit_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxhdpi/submit_36dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/bg_start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/bg_start.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/edt_gb.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/edt_gb.9.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_about_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_about_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_blog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_blog.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_cache_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_cache_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_create_table_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_create_table_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_false.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_fav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_fav.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_fav_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_fav_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_fav_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_fav_select.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_github.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_layout_setting_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_layout_setting_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_loading.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_mail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_mail.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_other_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_other_off.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_other_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_other_on.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_qq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_qq.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_review_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_review_off.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_review_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_review_on.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_suggest_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_suggest_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_test_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_test_off.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_test_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_test_on.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_true.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/icon_update_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/icon_update_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/me.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/me.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/submit_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/app/src/main/res/mipmap-xxxhdpi/submit_36dp.png
--------------------------------------------------------------------------------
/app/src/main/res/values-v19/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
23 |
26 |
27 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
31 |
32 |
--------------------------------------------------------------------------------
/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
19 |
20 |
21 |
24 | 64dp
25 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/values/arrays.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
23 | @color/red
24 | @color/blue
25 | @color/yellow
26 | @color/green
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 | #FFC93437
23 | #FF375BF1
24 | #FFF7D23E
25 | #FF34A350
26 | #000000
27 | #ffffff
28 | #9e9e9e
29 |
30 |
31 | #9e9e9e
32 | #795548
33 | #bf360c
34 | #e65100
35 | #0d5320
36 | #01579b
37 | #6a1b9a
38 | #b0120a
39 | #c41411
40 | #d81b60
41 |
42 | #1e000000
43 |
44 |
45 | #3F51B5
46 | #5c6bc0
47 | #f4f4f4
48 | #19000000
49 |
50 | #b16e09
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
19 |
20 |
21 |
22 | 16dp
23 | 16dp
24 |
25 | 120dp
26 | 100dp
27 | 35dp
28 | 35dp
29 |
30 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
19 |
20 |
21 | Android面试复习
22 |
23 | 再按一次退出
24 | 复习
25 | 测试
26 | 其他
27 | 网络不太好请重新尝试
28 | 加载中
29 | 收藏的题目
30 | 建表/插入默认数据
31 | 意见反馈
32 | 提交
33 | 关于
34 | V.v
35 | 已经全部加载完
36 | 加载失败请重试
37 | 答案:
38 | 答案
39 | 下一题
40 | (。﹏。*) \n题库已经没有题目了
41 | 再做一遍
42 | Sorry,不能提交空白信息T_T
43 | 非常感谢您的建议,我会做得更好
44 | 信息反馈失败请重试T_T
45 | 您宝贵的意见正在提交中哦,请不要重复提交
46 | 隐藏
47 | 显示
48 | 取消收藏
49 | 收藏成功
50 | 作者:
51 | 来源:
52 | V1.0.0
53 | 留下您的QQ或邮箱(选填)
54 | 您的建议是我最大的动力
55 | 其他内容
56 | 缓存设置
57 | 设置缓存有效期
58 | 开启后正文缓存将会在设定的时间内失效
59 | 意见反馈
60 | 更新
61 | 关于
62 | 应用需要必要的运行权限
63 | 设置
64 | 帮助
65 | 当前应用缺少必要权限。\n\n请点击\"设置\"-\"权限\"-打开所需权限。\n\n最后点击两次后退按钮,即可返回。
66 | 退出
67 | 缓存有效时间不能为空哦
68 | 执行
69 | 更新日志
70 |
71 |
72 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
19 |
20 |
21 |
28 |
29 |
32 |
33 |
38 |
39 |
40 |
43 |
44 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/app/src/test/java/com/vv/androidreview/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.vv.androidreview;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:1.5.0'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | //Bmob的maven仓库地址,必须填写
19 | maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
20 | }
21 | }
22 |
23 | task clean(type: Delete) {
24 | delete rootProject.buildDir
25 | }
26 |
--------------------------------------------------------------------------------
/build/intermediates/dex-cache/cache.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/develop.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Oct 21 11:34:03 PDT 2015
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip
7 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/local.properties:
--------------------------------------------------------------------------------
1 | ## This file is automatically generated by Android Studio.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file should *NOT* be checked into Version Control Systems,
5 | # as it contains information specific to your local configuration.
6 | #
7 | # Location of the SDK. This is only used by Gradle.
8 | # For customization when using a Version Control System, please read the
9 | # header note.
10 | sdk.dir=E\:\\android-sdks
--------------------------------------------------------------------------------
/pic/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/1.png
--------------------------------------------------------------------------------
/pic/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/2.png
--------------------------------------------------------------------------------
/pic/23d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/23d.png
--------------------------------------------------------------------------------
/pic/2qq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/2qq.png
--------------------------------------------------------------------------------
/pic/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/3.png
--------------------------------------------------------------------------------
/pic/312w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/312w.png
--------------------------------------------------------------------------------
/pic/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/4.png
--------------------------------------------------------------------------------
/pic/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/5.png
--------------------------------------------------------------------------------
/pic/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/6.png
--------------------------------------------------------------------------------
/pic/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/7.png
--------------------------------------------------------------------------------
/pic/abccc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/abccc.png
--------------------------------------------------------------------------------
/pic/dfv4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/dfv4.png
--------------------------------------------------------------------------------
/pic/pics.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/pics.png
--------------------------------------------------------------------------------
/pic/ss.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/ss.png
--------------------------------------------------------------------------------
/pic/v110.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/envyfan/AndroidReview/4e054290df4abfaec2e1938af5b75beb8bef0803/pic/v110.png
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------