├── base
├── .gitignore
├── src
│ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── res
│ │ │ ├── values
│ │ │ │ ├── keys.xml
│ │ │ │ ├── strings.xml
│ │ │ │ ├── dimens_sp.xml
│ │ │ │ ├── styles.xml
│ │ │ │ └── dimens_dp.xml
│ │ │ ├── anim
│ │ │ │ ├── activity_close_exit.xml
│ │ │ │ ├── activity_open_enter.xml
│ │ │ │ └── activity_open_exit.xml
│ │ │ └── layout
│ │ │ │ └── def_ids.xml
│ │ └── java
│ │ │ └── wiki
│ │ │ └── tony
│ │ │ └── andboot
│ │ │ └── base
│ │ │ ├── helper
│ │ │ ├── NotificationHelper.java
│ │ │ ├── UIHelper.java
│ │ │ └── ToastHelper.java
│ │ │ ├── ui
│ │ │ ├── activity
│ │ │ │ ├── InitResources.java
│ │ │ │ ├── BaseActivity.java
│ │ │ │ └── BaseFragmentActivity.java
│ │ │ ├── dialog
│ │ │ │ ├── InitResources.java
│ │ │ │ └── BaseDialog.java
│ │ │ └── fragment
│ │ │ │ ├── InitResources.java
│ │ │ │ └── BaseFragment.java
│ │ │ ├── service
│ │ │ └── BaseService.java
│ │ │ ├── BaseApp.java
│ │ │ └── AppManager.java
│ ├── test
│ │ └── java
│ │ │ └── wiki
│ │ │ └── tony
│ │ │ └── andboot
│ │ │ └── base
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── wiki
│ │ └── tony
│ │ └── andboot
│ │ └── base
│ │ └── ApplicationTest.java
├── proguard-rules.pro
└── build.gradle
├── data
├── .gitignore
├── src
│ ├── main
│ │ ├── res
│ │ │ └── values
│ │ │ │ └── strings.xml
│ │ ├── java
│ │ │ └── wiki
│ │ │ │ └── tony
│ │ │ │ └── andboot
│ │ │ │ └── data
│ │ │ │ ├── repository
│ │ │ │ ├── UserRepository.java
│ │ │ │ └── impl
│ │ │ │ │ └── UserRepositoryImpl.java
│ │ │ │ └── entity
│ │ │ │ └── User.java
│ │ └── AndroidManifest.xml
│ ├── test
│ │ └── java
│ │ │ └── wiki
│ │ │ └── tony
│ │ │ └── andboot
│ │ │ └── data
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── wiki
│ │ └── tony
│ │ └── andboot
│ │ └── data
│ │ └── ApplicationTest.java
├── build.gradle
└── proguard-rules.pro
├── settings.gradle
├── app
├── tony_dev.jks
├── tony_prod.jks
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── values
│ │ │ │ ├── strings.xml
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ └── styles.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── layout
│ │ │ │ ├── activity_start.xml
│ │ │ │ ├── view_main_menu.xml
│ │ │ │ └── activity_main.xml
│ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ ├── java
│ │ │ └── wiki
│ │ │ │ └── tony
│ │ │ │ └── andboot
│ │ │ │ ├── ui
│ │ │ │ ├── presenter
│ │ │ │ │ ├── LoginPresenter.java
│ │ │ │ │ ├── MainPresenter.java
│ │ │ │ │ └── impl
│ │ │ │ │ │ ├── LoginPresenterImpl.java
│ │ │ │ │ │ └── MainPresenterImpl.java
│ │ │ │ ├── activity
│ │ │ │ │ ├── LoginActivity.java
│ │ │ │ │ ├── GuideActivity.java
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── StartActivity.java
│ │ │ │ └── view
│ │ │ │ │ └── MainMenuView.java
│ │ │ │ ├── bean
│ │ │ │ ├── Constants.java
│ │ │ │ └── Apis.java
│ │ │ │ ├── api
│ │ │ │ └── UserApi.java
│ │ │ │ ├── di
│ │ │ │ ├── module
│ │ │ │ │ ├── ApiModule.java
│ │ │ │ │ ├── RepositoryModule.java
│ │ │ │ │ ├── AppModule.java
│ │ │ │ │ ├── PresenterModule.java
│ │ │ │ │ ├── PreferenceModule.java
│ │ │ │ │ └── RetrofitModule.java
│ │ │ │ └── component
│ │ │ │ │ └── AppComponent.java
│ │ │ │ ├── Settings.java
│ │ │ │ ├── AppEnv.java
│ │ │ │ └── AppContext.java
│ │ └── AndroidManifest.xml
│ ├── test
│ │ └── java
│ │ │ └── wiki
│ │ │ └── tony
│ │ │ └── andboot
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── wiki
│ │ └── tony
│ │ └── andboot
│ │ └── ApplicationTest.java
├── .gitignore
├── proguard-rules.pro
└── build.gradle
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── .gitignore
├── gradle.properties
├── README.md
├── dependencies.gradle
├── gradlew.bat
└── gradlew
/base/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/data/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':base', ':data'
2 |
--------------------------------------------------------------------------------
/app/tony_dev.jks:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonybase/android-boot/HEAD/app/tony_dev.jks
--------------------------------------------------------------------------------
/app/tony_prod.jks:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonybase/android-boot/HEAD/app/tony_prod.jks
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | AndBoot
3 |
4 |
--------------------------------------------------------------------------------
/data/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | data
3 |
4 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonybase/android-boot/HEAD/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/base/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonybase/android-boot/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonybase/android-boot/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonybase/android-boot/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonybase/android-boot/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonybase/android-boot/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/base/src/main/res/values/keys.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/base/src/main/java/wiki/tony/andboot/base/helper/NotificationHelper.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.base.helper;
2 |
3 | /**
4 | * Created by Tony on 10/5/15.
5 | */
6 | public class NotificationHelper {
7 | }
8 |
--------------------------------------------------------------------------------
/data/src/main/java/wiki/tony/andboot/data/repository/UserRepository.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.data.repository;
2 |
3 | /**
4 | * Created by tony on 3/10/16.
5 | */
6 | public interface UserRepository {
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/ui/presenter/LoginPresenter.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.ui.presenter;
2 |
3 | /**
4 | * Created by Tony on 3/17/16.
5 | */
6 | public interface LoginPresenter {
7 |
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Dec 28 10:00:20 PST 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.10-all.zip
7 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_start.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/data/src/main/java/wiki/tony/andboot/data/repository/impl/UserRepositoryImpl.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.data.repository.impl;
2 |
3 |
4 | import wiki.tony.andboot.data.repository.UserRepository;
5 |
6 | /**
7 | * Created by Tony on 3/18/16.
8 | */
9 | public class UserRepositoryImpl implements UserRepository {
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/bean/Constants.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.bean;
2 |
3 | /**
4 | * App 常量
5 | *
6 | * Created by tony on 3/10/16.
7 | */
8 | public class Constants {
9 |
10 | public static final String PREFS_DEFAULT = "default";
11 | public static final String PREFS_USER = "user";
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/data/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/base/src/main/res/anim/activity_close_exit.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
8 |
--------------------------------------------------------------------------------
/base/src/main/res/anim/activity_open_enter.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
8 |
--------------------------------------------------------------------------------
/base/src/main/res/anim/activity_open_exit.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
8 |
--------------------------------------------------------------------------------
/base/src/main/java/wiki/tony/andboot/base/ui/activity/InitResources.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.base.ui.activity;
2 |
3 | /**
4 | * 初始化资源
5 | *
6 | * Created by Tony on 9/30/15.
7 | */
8 | public interface InitResources {
9 |
10 | void beforeInitView();
11 |
12 | void initView();
13 |
14 | void initListener();
15 |
16 | void initData();
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/base/src/main/java/wiki/tony/andboot/base/ui/dialog/InitResources.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.base.ui.dialog;
2 |
3 | /**
4 | * 初始化资源
5 | *
6 | * Created by Tony on 9/30/15.
7 | */
8 | public interface InitResources {
9 |
10 | void beforeInitView();
11 |
12 | void initView();
13 |
14 | void initListener();
15 |
16 | void initData();
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/base/src/main/java/wiki/tony/andboot/base/ui/fragment/InitResources.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.base.ui.fragment;
2 |
3 | /**
4 | * 初始化资源
5 | *
6 | * Created by Tony on 9/30/15.
7 | */
8 | public interface InitResources {
9 |
10 | int getLayoutResourceId();
11 |
12 | void initView();
13 |
14 | void initListener();
15 |
16 | void initData();
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/app/src/test/java/wiki/tony/andboot/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot;
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 | }
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/base/src/test/java/wiki/tony/andboot/base/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.base;
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 | }
--------------------------------------------------------------------------------
/data/src/test/java/wiki/tony/andboot/data/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.data;
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 | }
--------------------------------------------------------------------------------
/app/src/androidTest/java/wiki/tony/andboot/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/base/src/main/res/layout/def_ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/base/src/androidTest/java/wiki/tony/andboot/base/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.base;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/data/src/androidTest/java/wiki/tony/andboot/data/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.data;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/base/src/main/java/wiki/tony/andboot/base/service/BaseService.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.base.service;
2 |
3 | import android.app.Service;
4 |
5 | /**
6 | * 后台服务 - 基类
7 | *
8 | * Created by zhihui_chen on 14-9-9.
9 | */
10 | public abstract class BaseService extends Service {
11 |
12 | @Override
13 | public void onCreate() {
14 | super.onCreate();
15 | }
16 |
17 | @Override
18 | public void onDestroy() {
19 | super.onDestroy();
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/ui/presenter/MainPresenter.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.ui.presenter;
2 |
3 |
4 | import java.util.List;
5 |
6 | import wiki.tony.andboot.data.entity.User;
7 |
8 | /**
9 | * Created by Tony on 3/17/16.
10 | */
11 | public interface MainPresenter {
12 | void setView(View view);
13 |
14 | void loadUsers();
15 |
16 | interface View {
17 | void onUserLoaded(List users);
18 |
19 | void onUserLoadedError(Throwable error);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/base/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | AndBoot
3 |
4 | 当前网络不可用,请检查网络设置
5 | 网络异常,无法连接到服务器
6 | 网络异常,连接服务器超时
7 | 网络异常,连接服务器失败
8 | 网络异常,连接服务器失败
9 | 接口错误,转换数据失败
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/api/UserApi.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.api;
2 |
3 | import java.util.List;
4 |
5 | import retrofit2.http.GET;
6 | import retrofit2.http.Path;
7 | import rx.Observable;
8 | import wiki.tony.andboot.data.entity.User;
9 |
10 | /**
11 | * Created by Tony on 3/10/16.
12 | */
13 | public interface UserApi {
14 |
15 | @GET("/repos/{owner}/{repo}/contributors")
16 | Observable> loadUsers(
17 | @Path("owner") String owner, @Path("repo") String repo);
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/di/module/ApiModule.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.di.module;
2 |
3 |
4 | import javax.inject.Singleton;
5 |
6 | import dagger.Module;
7 | import dagger.Provides;
8 | import retrofit2.Retrofit;
9 | import wiki.tony.andboot.api.UserApi;
10 |
11 | /**
12 | * Created by Tony on 3/18/16.
13 | */
14 | @Module
15 | public class ApiModule {
16 |
17 | @Provides
18 | @Singleton
19 | UserApi userApi(Retrofit retrofit) {
20 | return retrofit.create(UserApi.class);
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/view_main_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/di/module/RepositoryModule.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.di.module;
2 |
3 |
4 | import javax.inject.Singleton;
5 |
6 | import dagger.Module;
7 | import dagger.Provides;
8 | import wiki.tony.andboot.data.repository.UserRepository;
9 | import wiki.tony.andboot.data.repository.impl.UserRepositoryImpl;
10 |
11 | /**
12 | * Created by Tony on 3/18/16.
13 | */
14 | @Module
15 | public class RepositoryModule {
16 |
17 | @Provides
18 | @Singleton
19 | UserRepository userRepository() {
20 | return new UserRepositoryImpl();
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/ui/activity/LoginActivity.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.ui.activity;
2 |
3 |
4 | import wiki.tony.andboot.base.ui.activity.BaseActivity;
5 |
6 | /**
7 | * Created by Tony on 3/19/16.
8 | */
9 | public class LoginActivity extends BaseActivity {
10 |
11 | @Override
12 | public void beforeInitView() {
13 |
14 | }
15 |
16 | @Override
17 | public void initView() {
18 |
19 | }
20 |
21 | @Override
22 | public void initListener() {
23 |
24 | }
25 |
26 | @Override
27 | public void initData() {
28 |
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #built application files
2 | #*.apk
3 | *.ap_
4 |
5 | # files for the dex VM
6 | *.dex
7 |
8 | # Java class files
9 | *.class
10 |
11 | # generated files
12 | bin/
13 | gen/
14 |
15 | # Local configuration file (sdk path, etc)
16 | local.properties
17 |
18 | # Windows thumbnail db
19 | Thumbs.db
20 |
21 | # OSX files
22 | .DS_Store
23 |
24 | # Eclipse project files
25 | .classpath
26 | .project
27 |
28 | # Android Studio
29 | *.iml
30 | build/
31 | .idea
32 | .idea/compiler.xml
33 | .idea/misc.xml
34 | .idea/workspace.xml
35 | .idea/libraries/
36 |
37 | # Gradle Files
38 | .gradle
39 |
40 | # Log Files
41 | *.log
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | #built application files
2 | #*.apk
3 | *.ap_
4 |
5 | # files for the dex VM
6 | *.dex
7 |
8 | # Java class files
9 | *.class
10 |
11 | # generated files
12 | bin/
13 | gen/
14 |
15 | # Local configuration file (sdk path, etc)
16 | local.properties
17 |
18 | # Windows thumbnail db
19 | Thumbs.db
20 |
21 | # OSX files
22 | .DS_Store
23 |
24 | # Eclipse project files
25 | .classpath
26 | .project
27 |
28 | # Android Studio
29 | *.iml
30 | build/
31 | .idea
32 | .idea/compiler.xml
33 | .idea/misc.xml
34 | .idea/workspace.xml
35 | .idea/libraries/
36 |
37 | # Gradle Files
38 | .gradle
39 |
40 | # Log Files
41 | *.log
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/bean/Apis.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.bean;
2 |
3 | import wiki.tony.andboot.AppEnv;
4 |
5 | /**
6 | * Api 定义
7 | *
8 | * Created by Tony on 10/6/15.
9 | */
10 | public class Apis {
11 |
12 | /**
13 | * 测试环境API
14 | */
15 | public static final String API_DEV = "https://api.github.com";
16 |
17 | /**
18 | * 生产环境API
19 | */
20 | public static final String API_PROD = "https://api.github.com";
21 |
22 | /**
23 | * API地址
24 | */
25 | public static final String BASE_API = AppEnv.ACTIVE_DEV ? API_DEV : API_PROD;
26 |
27 | }
28 |
29 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/ui/activity/GuideActivity.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.ui.activity;
2 |
3 |
4 | import wiki.tony.andboot.base.ui.activity.BaseActivity;
5 |
6 | /**
7 | * 引导页面
8 | *
9 | * Created by tony on 3/10/16.
10 | */
11 | public class GuideActivity extends BaseActivity {
12 |
13 | @Override
14 | public void beforeInitView() {
15 |
16 | }
17 |
18 | @Override
19 | public void initView() {
20 |
21 | }
22 |
23 | @Override
24 | public void initListener() {
25 |
26 | }
27 |
28 | @Override
29 | public void initData() {
30 |
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/base/src/main/java/wiki/tony/andboot/base/BaseApp.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.base;
2 |
3 | import android.app.Application;
4 |
5 | /**
6 | * Application - 基类
7 | *
8 | * Created by Tony on 9/30/15.
9 | */
10 | public class BaseApp extends Application {
11 |
12 | /**
13 | * 应用启动
14 | */
15 | @Override
16 | public void onCreate() {
17 | super.onCreate();
18 |
19 | }
20 |
21 | /**
22 | * 应用销毁
23 | */
24 | @Override
25 | public void onTerminate() {
26 | super.onTerminate();
27 |
28 | // exit
29 | AppManager.exitApp();
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/ui/presenter/impl/LoginPresenterImpl.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.ui.presenter.impl;
2 |
3 | import wiki.tony.andboot.api.UserApi;
4 | import wiki.tony.andboot.data.repository.UserRepository;
5 | import wiki.tony.andboot.ui.presenter.LoginPresenter;
6 |
7 | /**
8 | * Created by Tony on 3/17/16.
9 | */
10 | public class LoginPresenterImpl implements LoginPresenter {
11 |
12 | private UserApi mUserApi;
13 | private UserRepository mUserRepository;
14 |
15 | public LoginPresenterImpl(UserApi userApi, UserRepository userRepository) {
16 | mUserApi = userApi;
17 | mUserRepository = userRepository;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/data/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.2"
6 |
7 | defaultConfig {
8 | minSdkVersion 14
9 | targetSdkVersion 23
10 | versionCode 1
11 | versionName "1.0"
12 | }
13 | buildTypes {
14 | release {
15 | minifyEnabled false
16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
17 | }
18 | }
19 | }
20 |
21 | dependencies {
22 | compile fileTree(dir: 'libs', include: ['*.jar'])
23 | testCompile 'junit:junit:4.12'
24 | compile 'com.android.support:appcompat-v7:23.3.0'
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/di/module/AppModule.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.di.module;
2 |
3 | import android.content.Context;
4 |
5 | import dagger.Module;
6 | import dagger.Provides;
7 | import wiki.tony.andboot.AppContext;
8 |
9 | /**
10 | * Created by Tony on 3/18/16.
11 | */
12 | @Module
13 | public class AppModule {
14 |
15 | private AppContext mContext;
16 |
17 | public AppModule(AppContext context) {
18 | mContext = context;
19 | }
20 |
21 | @Provides
22 | Context context() {
23 | return mContext.getApplicationContext();
24 | }
25 |
26 | @Provides
27 | AppContext appContext() {
28 | return mContext;
29 | }
30 |
31 | }
--------------------------------------------------------------------------------
/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 /Users/tony/Library/Android/sdk/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 |
--------------------------------------------------------------------------------
/base/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 /Users/tony/Library/Android/sdk/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 |
--------------------------------------------------------------------------------
/data/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 /Users/tony/Library/Android/sdk/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/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/data/src/main/java/wiki/tony/andboot/data/entity/User.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.data.entity;
2 |
3 | /**
4 | * Created by Tony on 3/10/16.
5 | */
6 | public class User {
7 |
8 | private String login;
9 | private int contributions;
10 |
11 | public String getLogin() {
12 | return login;
13 | }
14 |
15 | public void setLogin(String login) {
16 | this.login = login;
17 | }
18 |
19 | public int getContributions() {
20 | return contributions;
21 | }
22 |
23 | public void setContributions(int contributions) {
24 | this.contributions = contributions;
25 | }
26 |
27 | @Override
28 | public String toString() {
29 | return "User{" +
30 | "login='" + login + '\'' +
31 | ", contributions=" + contributions +
32 | '}';
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/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
--------------------------------------------------------------------------------
/base/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion rootProject.ext.compile_sdk_version
5 | buildToolsVersion rootProject.ext.build_tools_version
6 |
7 | defaultConfig {
8 | minSdkVersion rootProject.ext.min_sdk_version
9 | targetSdkVersion rootProject.ext.target_sdk_version
10 | versionCode 1
11 | versionName "1.0"
12 | }
13 | buildTypes {
14 | release {
15 | minifyEnabled false
16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
17 | }
18 | }
19 | }
20 |
21 | dependencies {
22 | Map dependency = rootProject.ext.dependencies;
23 |
24 | compile fileTree(dir: 'libs', include: ['*.jar'])
25 | compile dependency.v4
26 | compile dependency.v7
27 | compile dependency.gson
28 | compile dependency.guava
29 | compile dependency.logger
30 | compile dependency.junit
31 | }
32 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/di/module/PresenterModule.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.di.module;
2 |
3 | import javax.inject.Singleton;
4 |
5 | import dagger.Module;
6 | import dagger.Provides;
7 | import wiki.tony.andboot.api.UserApi;
8 | import wiki.tony.andboot.data.repository.UserRepository;
9 | import wiki.tony.andboot.ui.presenter.LoginPresenter;
10 | import wiki.tony.andboot.ui.presenter.MainPresenter;
11 | import wiki.tony.andboot.ui.presenter.impl.LoginPresenterImpl;
12 | import wiki.tony.andboot.ui.presenter.impl.MainPresenterImpl;
13 |
14 | /**
15 | * Created by Tony on 3/18/16.
16 | */
17 | @Module
18 | public class PresenterModule {
19 |
20 | @Provides
21 | @Singleton
22 | MainPresenter mainPresenter(UserApi userApi, UserRepository userRepository) {
23 | return new MainPresenterImpl(userApi, userRepository);
24 | }
25 |
26 | @Provides
27 | @Singleton
28 | LoginPresenter loginPresenter(UserApi userApi, UserRepository userRepository) {
29 | return new LoginPresenterImpl(userApi, userRepository);
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/ui/view/MainMenuView.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.ui.view;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 | import android.view.View;
6 | import android.widget.FrameLayout;
7 |
8 | import wiki.tony.andboot.R;
9 |
10 | /**
11 | * Created by Tony on 3/14/16.
12 | */
13 | public class MainMenuView extends FrameLayout implements View.OnClickListener {
14 |
15 | View action_settings;
16 |
17 | public MainMenuView(Context context, AttributeSet attrs) {
18 | super(context, attrs);
19 |
20 | initView();
21 | }
22 |
23 | private void initView() {
24 | View.inflate(getContext(), R.layout.view_main_menu, this);
25 |
26 | action_settings = findViewById(R.id.action_settings);
27 | }
28 |
29 | @Override
30 | public void onClick(View v) {
31 | switch (v.getId()) {
32 | case R.id.action_settings:
33 | actionSettings();
34 | break;
35 | }
36 | }
37 |
38 | private void actionSettings() {
39 |
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
19 |
20 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/di/module/PreferenceModule.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.di.module;
2 |
3 | import android.content.Context;
4 | import android.content.SharedPreferences;
5 | import android.preference.PreferenceManager;
6 |
7 | import javax.inject.Named;
8 | import javax.inject.Singleton;
9 |
10 | import dagger.Module;
11 | import dagger.Provides;
12 | import wiki.tony.andboot.Settings;
13 | import wiki.tony.andboot.bean.Constants;
14 |
15 | import static android.content.Context.MODE_PRIVATE;
16 |
17 | /**
18 | * Created by Tony on 3/19/16.
19 | */
20 | @Module
21 | public class PreferenceModule {
22 |
23 | @Provides
24 | @Named(Constants.PREFS_DEFAULT)
25 | SharedPreferences defaultPrefs(Context context) {
26 | return PreferenceManager.getDefaultSharedPreferences(context);
27 | }
28 |
29 | @Provides
30 | @Named(Constants.PREFS_USER)
31 | SharedPreferences userPrefs(Context context) {
32 | return context.getSharedPreferences("user", MODE_PRIVATE);
33 | }
34 |
35 | @Provides
36 | @Singleton
37 | Settings settings(@Named(Constants.PREFS_DEFAULT) SharedPreferences prefs) {
38 | return new Settings(prefs);
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/di/component/AppComponent.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.di.component;
2 |
3 |
4 | import javax.inject.Singleton;
5 |
6 | import dagger.Component;
7 | import wiki.tony.andboot.AppContext;
8 | import wiki.tony.andboot.di.module.ApiModule;
9 | import wiki.tony.andboot.di.module.AppModule;
10 | import wiki.tony.andboot.di.module.PreferenceModule;
11 | import wiki.tony.andboot.di.module.PresenterModule;
12 | import wiki.tony.andboot.di.module.RepositoryModule;
13 | import wiki.tony.andboot.di.module.RetrofitModule;
14 | import wiki.tony.andboot.ui.activity.MainActivity;
15 | import wiki.tony.andboot.ui.activity.StartActivity;
16 |
17 | /**
18 | * Created by Tony on 3/18/16.
19 | */
20 | @Singleton
21 | @Component(
22 | modules = {
23 | AppModule.class,
24 | ApiModule.class,
25 | RetrofitModule.class,
26 | PreferenceModule.class,
27 | RepositoryModule.class,
28 | PresenterModule.class
29 | })
30 | public interface AppComponent {
31 |
32 | void inject(AppContext context);
33 |
34 | void inject(StartActivity activity);
35 |
36 | void inject(MainActivity activity);
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/base/src/main/java/wiki/tony/andboot/base/ui/activity/BaseActivity.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.base.ui.activity;
2 |
3 | import android.app.Activity;
4 | import android.os.Bundle;
5 |
6 | import wiki.tony.andboot.base.AppManager;
7 | import wiki.tony.andboot.base.R;
8 | import wiki.tony.andboot.base.helper.UIHelper;
9 |
10 | /**
11 | * Activity - 基类
12 | * 用于继承使用
13 | *
14 | * Created by zhihui_chen on 14-8-4.
15 | */
16 | public abstract class BaseActivity extends Activity implements InitResources {
17 |
18 | @Override
19 | public void onCreate(Bundle savedInstanceState) {
20 | super.onCreate(savedInstanceState);
21 |
22 | // register
23 | AppManager.addActivity(this);
24 |
25 | // init resources
26 | beforeInitView();
27 | initView();
28 | initListener();
29 | initData();
30 | }
31 |
32 | @Override
33 | public void setContentView(int layoutResID) {
34 | super.setContentView(layoutResID);
35 |
36 | // bind back action
37 | UIHelper.bindActionBack(this, findViewById(R.id.action_back));
38 | }
39 |
40 | @Override
41 | protected void onDestroy() {
42 | super.onDestroy();
43 |
44 | AppManager.removeActivity(this);
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/base/src/main/java/wiki/tony/andboot/base/ui/dialog/BaseDialog.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.base.ui.dialog;
2 |
3 | import android.app.Dialog;
4 | import android.content.Context;
5 | import android.os.Bundle;
6 |
7 | import wiki.tony.andboot.base.R;
8 | import wiki.tony.andboot.base.helper.UIHelper;
9 |
10 |
11 | /**
12 | * 对话框 - 基类
13 | *
14 | * Created by zhihui_chen on 14-9-9.
15 | */
16 | public abstract class BaseDialog extends Dialog implements InitResources {
17 |
18 | public BaseDialog(Context context) {
19 | this(context, R.style.customDialog);
20 | }
21 |
22 | public BaseDialog(Context context, int theme) {
23 | super(context, theme);
24 | }
25 |
26 | @Override
27 | protected void onCreate(Bundle savedInstanceState) {
28 | super.onCreate(savedInstanceState);
29 |
30 | // init resources
31 | beforeInitView();
32 | initView();
33 | initListener();
34 | initData();
35 | }
36 |
37 | @Override
38 | protected void onStart() {
39 | super.onStart();
40 |
41 | // 绑定返回Action
42 | UIHelper.bindActionBack(this, findViewById(R.id.action_back));
43 | }
44 |
45 | /**
46 | * 对话框大小
47 | *
48 | * @param width
49 | * @param height
50 | */
51 | public void setSize(int width, int height) {
52 | getWindow().setLayout(width, height);
53 | }
54 |
55 | }
56 |
--------------------------------------------------------------------------------
/base/src/main/java/wiki/tony/andboot/base/ui/fragment/BaseFragment.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.base.ui.fragment;
2 |
3 | import android.os.Bundle;
4 | import android.support.v4.app.Fragment;
5 | import android.view.LayoutInflater;
6 | import android.view.View;
7 | import android.view.ViewGroup;
8 |
9 | import wiki.tony.andboot.base.R;
10 | import wiki.tony.andboot.base.helper.UIHelper;
11 | import wiki.tony.andlog.Logger;
12 | import wiki.tony.andlog.LoggerFactory;
13 |
14 | /**
15 | * Fragment - 基类
16 | *
17 | * Created by zhihui_chen on 14-8-4.
18 | */
19 | public abstract class BaseFragment extends Fragment implements InitResources {
20 |
21 | private final Logger logger = LoggerFactory.getLogger(BaseFragment.class);
22 |
23 | public String getFragmentTitle() {
24 | return null;
25 | }
26 |
27 | @Override
28 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
29 | return inflater.inflate(getLayoutResourceId(), container, false);
30 | }
31 |
32 | @Override
33 | public void onActivityCreated(Bundle savedInstanceState) {
34 | super.onActivityCreated(savedInstanceState);
35 |
36 | // bind back action
37 | UIHelper.bindActionBack(getActivity(), getView().findViewById(R.id.action_back));
38 |
39 | // init resources
40 | initView();
41 | initListener();
42 | initData();
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/base/src/main/res/values/dimens_sp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
30 |
31 | 10sp
32 | 11sp
33 | 12sp
34 | 13sp
35 | 14sp
36 | 15sp
37 | 16sp
38 | 17sp
39 | 18sp
40 | 19sp
41 | 20sp
42 | 21sp
43 | 22sp
44 | 23sp
45 | 24sp
46 | 25sp
47 | 26sp
48 | 27sp
49 | 28sp
50 | 29sp
51 | 30sp
52 |
53 |
54 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/Settings.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot;
2 |
3 | import android.content.SharedPreferences;
4 |
5 | /**
6 | * 设置选项
7 | *
8 | * Created by Tony on 10/24/15.
9 | */
10 | public class Settings {
11 | private static final String SETTING_FIRST_OPEN = "setting_first_open";
12 | private static final String SETTING_BEFORE_VERSION = "setting_before_version";
13 |
14 | private SharedPreferences mPrefs;
15 |
16 | public Settings(SharedPreferences prefs) {
17 | mPrefs = prefs;
18 | }
19 |
20 | /**
21 | * 是否首次打开应用
22 | *
23 | * @return
24 | */
25 | public boolean isFirstOpen() {
26 | return mPrefs.getBoolean(SETTING_FIRST_OPEN, true);
27 | }
28 |
29 | /**
30 | * 设置是否首次打开
31 | *
32 | * @param isFirstOpen
33 | */
34 | public void setFirstOpen(boolean isFirstOpen) {
35 | mPrefs.edit()
36 | .putBoolean(SETTING_FIRST_OPEN, isFirstOpen)
37 | .commit();
38 | }
39 |
40 | /**
41 | * 获取上一次版本号
42 | *
43 | * @return
44 | */
45 | public int getBeforeVersion() {
46 | return mPrefs.getInt(SETTING_BEFORE_VERSION, AppEnv.VERSION_CODE);
47 | }
48 |
49 | /**
50 | * 设置上一次版本号
51 | */
52 | public void setBeforeVersion(int version) {
53 | int before = mPrefs.getInt(SETTING_BEFORE_VERSION, 0);
54 | if (before != version) {
55 | mPrefs.edit()
56 | .putInt(SETTING_BEFORE_VERSION, version)
57 | .commit();
58 | }
59 | }
60 |
61 | }
62 |
--------------------------------------------------------------------------------
/app/src/main/java/wiki/tony/andboot/ui/activity/MainActivity.java:
--------------------------------------------------------------------------------
1 | package wiki.tony.andboot.ui.activity;
2 |
3 | import android.view.View;
4 |
5 | import java.util.List;
6 |
7 | import javax.inject.Inject;
8 |
9 | import wiki.tony.andboot.AppContext;
10 | import wiki.tony.andboot.R;
11 | import wiki.tony.andboot.base.helper.ToastHelper;
12 | import wiki.tony.andboot.base.ui.activity.BaseActivity;
13 | import wiki.tony.andboot.data.entity.User;
14 | import wiki.tony.andboot.ui.presenter.MainPresenter;
15 | import wiki.tony.andlog.Logger;
16 | import wiki.tony.andlog.LoggerFactory;
17 |
18 | /**
19 | * App 主界面
20 | *
21 | * Created by tony on 3/10/16.
22 | */
23 | public class MainActivity extends BaseActivity implements MainPresenter.View, View.OnClickListener {
24 |
25 | private Logger mLogger = LoggerFactory.getLogger(MainActivity.class);
26 |
27 | @Inject
28 | protected MainPresenter mPresenter;
29 |
30 | @Override
31 | public void beforeInitView() {
32 | setContentView(R.layout.activity_main);
33 |
34 | AppContext.from(this).getComponent().inject(this);
35 | }
36 |
37 | @Override
38 | public void initView() {
39 | mPresenter.setView(this);
40 | }
41 |
42 | @Override
43 | public void initListener() {
44 |
45 | }
46 |
47 | @Override
48 | public void initData() {
49 | mPresenter.loadUsers();
50 | mLogger.i(mPresenter);
51 | }
52 |
53 | @Override
54 | public void onClick(View v) {
55 | // presenter.loadUsers();
56 | }
57 |
58 | @Override
59 | public void onUserLoaded(List users) {
60 | mLogger.d(users);
61 | }
62 |
63 | @Override
64 | public void onUserLoadedError(Throwable e) {
65 |
66 | ToastHelper.showMessage(this, e.getMessage());
67 | }
68 |
69 | }
70 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | # AndBoot
3 |
4 | dagger2 + rxjava + retrofit / MVP
5 |
6 | # Dependencies
7 |
8 | dependencies.gradle
9 |
10 | // build.gradle
11 | Map dependency = rootProject.ext.dependencies;
12 |
13 | compile dependency.v4
14 | compile dependency.v7
15 | compile dependency.gson
16 | compile dependency.guava
17 | compile dependency.logger
18 | compile dependency.junit
19 |
20 | # Tools (guava)
21 |
22 | Strings
23 | emptyToNull(String)
24 | nullToEmpty(String)
25 | isNullOrEmpty(String)
26 | ...
27 |
28 | Lists
29 | newArrayList()
30 | newLinkedList()
31 | newCopyOnWriteArrayList()
32 | ...
33 |
34 | Sets
35 | newHashSet()
36 | newTreeSet()
37 | newLinkedHashSet()
38 | newIdentityHashSet()
39 | newCopyOnWriteArraySet()
40 | ...
41 |
42 | Maps
43 | newHashMap()
44 | newLinkedHashMap()
45 | newConcurrentHashSet()
46 | newCopyOnWriteArraySet()
47 | ...
48 |
49 | Queues
50 | newArrayDeque()
51 | newPriorityQueue()
52 | newSynchronousQueue()
53 | newLinkedBlockingDeque()
54 | newConcurrentLinkedQueue()
55 | newPriorityBlockingQueue()
56 | ...
57 |
58 | Caches
59 | Cache