├── .gitignore ├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTestMock │ └── java │ │ └── com │ │ └── example │ │ └── ericliu │ │ └── weather2016 │ │ ├── ApplicationTest.java │ │ ├── MainActivityViewModelTest.java │ │ ├── SearchWeatherTest.java │ │ └── stub │ │ └── RemoteWeatherRepoTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── ericliu │ │ │ └── weather2016 │ │ │ ├── application │ │ │ └── MyApplication.java │ │ │ ├── common │ │ │ └── NetworkConstants.java │ │ │ ├── dagger │ │ │ └── module │ │ │ │ ├── AppModule.java │ │ │ │ └── NetModule.java │ │ │ ├── framework │ │ │ ├── mvp │ │ │ │ ├── DisplayView.java │ │ │ │ ├── Presenter.java │ │ │ │ ├── RequestResult.java │ │ │ │ ├── RequestStatus.java │ │ │ │ ├── StubPresenter.java │ │ │ │ ├── ViewModel.java │ │ │ │ └── base │ │ │ │ │ └── BasePresenter.java │ │ │ └── repository │ │ │ │ ├── Repository.java │ │ │ │ ├── RepositoryResult.java │ │ │ │ └── Specification.java │ │ │ ├── model │ │ │ ├── JSONHandler.java │ │ │ ├── Weather.java │ │ │ ├── WeatherResult.java │ │ │ └── WeatherSpecification.java │ │ │ ├── repo │ │ │ ├── DbWeatherRepo.java │ │ │ └── RemoteWeatherRepo.java │ │ │ ├── ui │ │ │ ├── MainActivity.java │ │ │ ├── presenter │ │ │ │ └── MainActivityPresenter.java │ │ │ └── viewmodel │ │ │ │ └── MainActivityViewModel.java │ │ │ └── util │ │ │ ├── EspressoIdlingResource.java │ │ │ ├── NetworkUtil.java │ │ │ ├── SimpleCountingIdlingResource.java │ │ │ └── ThreadUtil.java │ └── res │ │ ├── layout-land │ │ └── activity_main.xml │ │ ├── layout │ │ └── activity_main.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 │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── mock │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── ericliu │ │ │ └── weather2016 │ │ │ ├── dagger │ │ │ ├── component │ │ │ │ └── RepoComponent.java │ │ │ └── module │ │ │ │ └── RepoModule.java │ │ │ └── repo │ │ │ ├── FakeDbWeatherRepo.java │ │ │ └── FakeRemoteWeatherRepo.java │ └── res │ │ └── raw │ │ └── weather_by_city.json │ ├── prod │ └── java │ │ └── com │ │ └── example │ │ └── ericliu │ │ └── weather2016 │ │ └── dagger │ │ ├── component │ │ └── RepoComponent.java │ │ └── module │ │ └── RepoModule.java │ └── test │ └── java │ └── com │ └── example │ └── ericliu │ └── weather2016 │ ├── ExampleUnitTest.java │ └── ui │ └── presenter │ └── MainActivityPresenterTest.java ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/README.md -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/build.gradle -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/proguard-rules.pro -------------------------------------------------------------------------------- /app/src/androidTestMock/java/com/example/ericliu/weather2016/ApplicationTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/androidTestMock/java/com/example/ericliu/weather2016/ApplicationTest.java -------------------------------------------------------------------------------- /app/src/androidTestMock/java/com/example/ericliu/weather2016/MainActivityViewModelTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/androidTestMock/java/com/example/ericliu/weather2016/MainActivityViewModelTest.java -------------------------------------------------------------------------------- /app/src/androidTestMock/java/com/example/ericliu/weather2016/SearchWeatherTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/androidTestMock/java/com/example/ericliu/weather2016/SearchWeatherTest.java -------------------------------------------------------------------------------- /app/src/androidTestMock/java/com/example/ericliu/weather2016/stub/RemoteWeatherRepoTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/androidTestMock/java/com/example/ericliu/weather2016/stub/RemoteWeatherRepoTest.java -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/application/MyApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/application/MyApplication.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/common/NetworkConstants.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/common/NetworkConstants.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/dagger/module/AppModule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/dagger/module/AppModule.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/dagger/module/NetModule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/dagger/module/NetModule.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/framework/mvp/DisplayView.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/framework/mvp/DisplayView.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/framework/mvp/Presenter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/framework/mvp/Presenter.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/framework/mvp/RequestResult.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/framework/mvp/RequestResult.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/framework/mvp/RequestStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/framework/mvp/RequestStatus.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/framework/mvp/StubPresenter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/framework/mvp/StubPresenter.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/framework/mvp/ViewModel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/framework/mvp/ViewModel.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/framework/mvp/base/BasePresenter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/framework/mvp/base/BasePresenter.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/framework/repository/Repository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/framework/repository/Repository.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/framework/repository/RepositoryResult.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/framework/repository/RepositoryResult.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/framework/repository/Specification.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/framework/repository/Specification.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/model/JSONHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/model/JSONHandler.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/model/Weather.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/model/Weather.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/model/WeatherResult.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/model/WeatherResult.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/model/WeatherSpecification.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/model/WeatherSpecification.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/repo/DbWeatherRepo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/repo/DbWeatherRepo.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/repo/RemoteWeatherRepo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/repo/RemoteWeatherRepo.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/ui/MainActivity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/ui/MainActivity.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/ui/presenter/MainActivityPresenter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/ui/presenter/MainActivityPresenter.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/ui/viewmodel/MainActivityViewModel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/ui/viewmodel/MainActivityViewModel.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/util/EspressoIdlingResource.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/util/EspressoIdlingResource.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/util/NetworkUtil.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/util/NetworkUtil.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/util/SimpleCountingIdlingResource.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/util/SimpleCountingIdlingResource.java -------------------------------------------------------------------------------- /app/src/main/java/com/example/ericliu/weather2016/util/ThreadUtil.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/java/com/example/ericliu/weather2016/util/ThreadUtil.java -------------------------------------------------------------------------------- /app/src/main/res/layout-land/activity_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/res/layout-land/activity_main.xml -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/res/layout/activity_main.xml -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/res/values-w820dp/dimens.xml -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/res/values/colors.xml -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/res/values/dimens.xml -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/main/res/values/styles.xml -------------------------------------------------------------------------------- /app/src/mock/java/com/example/ericliu/weather2016/dagger/component/RepoComponent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/mock/java/com/example/ericliu/weather2016/dagger/component/RepoComponent.java -------------------------------------------------------------------------------- /app/src/mock/java/com/example/ericliu/weather2016/dagger/module/RepoModule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/mock/java/com/example/ericliu/weather2016/dagger/module/RepoModule.java -------------------------------------------------------------------------------- /app/src/mock/java/com/example/ericliu/weather2016/repo/FakeDbWeatherRepo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/mock/java/com/example/ericliu/weather2016/repo/FakeDbWeatherRepo.java -------------------------------------------------------------------------------- /app/src/mock/java/com/example/ericliu/weather2016/repo/FakeRemoteWeatherRepo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/mock/java/com/example/ericliu/weather2016/repo/FakeRemoteWeatherRepo.java -------------------------------------------------------------------------------- /app/src/mock/res/raw/weather_by_city.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/mock/res/raw/weather_by_city.json -------------------------------------------------------------------------------- /app/src/prod/java/com/example/ericliu/weather2016/dagger/component/RepoComponent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/prod/java/com/example/ericliu/weather2016/dagger/component/RepoComponent.java -------------------------------------------------------------------------------- /app/src/prod/java/com/example/ericliu/weather2016/dagger/module/RepoModule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/prod/java/com/example/ericliu/weather2016/dagger/module/RepoModule.java -------------------------------------------------------------------------------- /app/src/test/java/com/example/ericliu/weather2016/ExampleUnitTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/test/java/com/example/ericliu/weather2016/ExampleUnitTest.java -------------------------------------------------------------------------------- /app/src/test/java/com/example/ericliu/weather2016/ui/presenter/MainActivityPresenterTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/app/src/test/java/com/example/ericliu/weather2016/ui/presenter/MainActivityPresenterTest.java -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ericliu001/Weather2016/HEAD/gradlew.bat -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | --------------------------------------------------------------------------------