From 14abb912b359c72c67c88c83b2ec2a138c3a6aab Mon Sep 17 00:00:00 2001 From: Evgenij Vasilev Date: Fri, 22 Jul 2016 15:18:18 +0300 Subject: [PATCH 1/6] Prepare & clean the project --- app/src/main/res/layout/fragment_content.xml | 21 ++++--- app/src/main/res/values/strings.xml | 2 +- .../DeveloperSettingsModelImplTest.java | 55 +------------------ .../DeveloperSettingsPresenterTest.java | 16 ------ dependencies.gradle | 2 +- 5 files changed, 16 insertions(+), 80 deletions(-) diff --git a/app/src/main/res/layout/fragment_content.xml b/app/src/main/res/layout/fragment_content.xml index ff2c028..9040c93 100644 --- a/app/src/main/res/layout/fragment_content.xml +++ b/app/src/main/res/layout/fragment_content.xml @@ -1,14 +1,19 @@ - + android:layout_height="match_parent"> - + - + - \ No newline at end of file + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7474f04..f04ecce 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,4 +1,4 @@ - Yamblz + ViewGroups HW Hello diff --git a/app/src/test/java/ru/yandex/yamblz/developer_settings/DeveloperSettingsModelImplTest.java b/app/src/test/java/ru/yandex/yamblz/developer_settings/DeveloperSettingsModelImplTest.java index ad17f4a..e670f2c 100644 --- a/app/src/test/java/ru/yandex/yamblz/developer_settings/DeveloperSettingsModelImplTest.java +++ b/app/src/test/java/ru/yandex/yamblz/developer_settings/DeveloperSettingsModelImplTest.java @@ -5,80 +5,27 @@ import org.junit.Before; import org.junit.Test; -import java.text.SimpleDateFormat; -import java.util.Date; - -import hu.supercluster.paperwork.Paperwork; - import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; public class DeveloperSettingsModelImplTest { private DeveloperSettingsModelImpl developerSettingsModel; private DeveloperSettings developerSettings; - private Paperwork paperwork; @Before public void beforeEachTest() { developerSettings = mock(DeveloperSettings.class); - paperwork = mock(Paperwork.class); developerSettingsModel = new DeveloperSettingsModelImpl( mock(App.class), developerSettings, - mock(LeakCanaryProxy.class), - paperwork + mock(LeakCanaryProxy.class) ); } - @Test - public void testGetGitSha() { - when(paperwork.get("gitSha")).thenReturn("abc123"); - - assertThat(developerSettingsModel.getGitSha()).isEqualTo("abc123"); - verify(paperwork).get("gitSha"); - verifyNoMoreInteractions(paperwork); - } - - @Test - public void getGitSha_shouldReturnSameResultForSeveralCalls() { - when(paperwork.get("gitSha")).thenReturn("abc123"); - - String sha1 = developerSettingsModel.getGitSha(); - String sha2 = developerSettingsModel.getGitSha(); - String sha3 = developerSettingsModel.getGitSha(); - - assertThat(sha1).isEqualTo(sha2).isEqualTo(sha3).isEqualTo("abc123"); - } - - @Test - public void testGetBuildDate() { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String date = dateFormat.format(new Date()); - when(paperwork.get("buildDate")).thenReturn(date); - - assertThat(developerSettingsModel.getBuildDate()).isEqualTo(date); - verify(paperwork).get("buildDate"); - verifyNoMoreInteractions(paperwork); - } - - @Test - public void getBuildDate_shouldReturnSameResultForSeveralCalls() { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String date = dateFormat.format(new Date()); - when(paperwork.get("buildDate")).thenReturn(date); - - String buildDate1 = developerSettingsModel.getBuildDate(); - String buildDate2 = developerSettingsModel.getBuildDate(); - String buildDate3 = developerSettingsModel.getBuildDate(); - - assertThat(buildDate1).isEqualTo(buildDate2).isEqualTo(buildDate3).isEqualTo(date); - } - @Test public void getBuildVersionCode_shouldNotBeNull() { assertThat(developerSettingsModel.getBuildVersionCode()).isNotNull(); diff --git a/app/src/test/java/ru/yandex/yamblz/ui/presenters/DeveloperSettingsPresenterTest.java b/app/src/test/java/ru/yandex/yamblz/ui/presenters/DeveloperSettingsPresenterTest.java index 0622e59..299e6bf 100644 --- a/app/src/test/java/ru/yandex/yamblz/ui/presenters/DeveloperSettingsPresenterTest.java +++ b/app/src/test/java/ru/yandex/yamblz/ui/presenters/DeveloperSettingsPresenterTest.java @@ -26,22 +26,6 @@ public void beforeEachTest() { developerSettingsView = mock(DeveloperSettingsView.class); } - @Test - public void bindView_shouldSendGitShaToTheView() { - when(developerSettingsModel.getGitSha()).thenReturn("test git sha"); - - developerSettingsPresenter.bindView(developerSettingsView); - verify(developerSettingsView).changeGitSha("test git sha"); - } - - @Test - public void bindView_shouldSendBuildDateToTheView() { - when(developerSettingsModel.getBuildDate()).thenReturn("test build date"); - - developerSettingsPresenter.bindView(developerSettingsView); - verify(developerSettingsView).changeBuildDate("test build date"); - } - @Test public void bindView_shouldSendBuildVersionCodeToTheView() { when(developerSettingsModel.getBuildVersionCode()).thenReturn("test build version code"); diff --git a/dependencies.gradle b/dependencies.gradle index b3a6224..c9ff72a 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,7 +7,7 @@ ext.versions = [ compileSdk : 23, buildTools : '23.0.3', - androidGradlePlugin : '2.2.0-alpha4', + androidGradlePlugin : '2.1.2', aptGradlePlugin : '1.8', retrolambdaGradlePlugin : '3.2.5', lombokGradlePlugin : '0.2.3.a2', From 531ec1d53da7e8cde528aa806066543a70a0a39d Mon Sep 17 00:00:00 2001 From: Evgenij Vasilev Date: Fri, 22 Jul 2016 15:29:44 +0300 Subject: [PATCH 2/6] Add RelativeLayout --- app/src/main/res/layout/fragment_content.xml | 2 + app/src/main/res/layout/relative_layout.xml | 40 ++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 app/src/main/res/layout/relative_layout.xml diff --git a/app/src/main/res/layout/fragment_content.xml b/app/src/main/res/layout/fragment_content.xml index 9040c93..a44b44c 100644 --- a/app/src/main/res/layout/fragment_content.xml +++ b/app/src/main/res/layout/fragment_content.xml @@ -14,6 +14,8 @@ + + diff --git a/app/src/main/res/layout/relative_layout.xml b/app/src/main/res/layout/relative_layout.xml new file mode 100644 index 0000000..765f80c --- /dev/null +++ b/app/src/main/res/layout/relative_layout.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + From a96310932ccc978a15a35009ac46d0088cd757e0 Mon Sep 17 00:00:00 2001 From: Evgenij Vasilev Date: Fri, 22 Jul 2016 16:08:46 +0300 Subject: [PATCH 3/6] Add TableLayout --- app/src/main/res/layout/fragment_content.xml | 2 ++ app/src/main/res/layout/table_layout.xml | 33 ++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 app/src/main/res/layout/table_layout.xml diff --git a/app/src/main/res/layout/fragment_content.xml b/app/src/main/res/layout/fragment_content.xml index a44b44c..2b819e8 100644 --- a/app/src/main/res/layout/fragment_content.xml +++ b/app/src/main/res/layout/fragment_content.xml @@ -16,6 +16,8 @@ + + diff --git a/app/src/main/res/layout/table_layout.xml b/app/src/main/res/layout/table_layout.xml new file mode 100644 index 0000000..9900cd5 --- /dev/null +++ b/app/src/main/res/layout/table_layout.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + From a9c6785a4ec92b7084706bbc3c9bf54b1d07ebdf Mon Sep 17 00:00:00 2001 From: Evgenij Vasilev Date: Fri, 22 Jul 2016 17:01:24 +0300 Subject: [PATCH 4/6] Add ConstraintLayout --- app/build.gradle | 1 + app/src/main/res/layout/constraint_layout.xml | 41 +++++++++++++++++++ app/src/main/res/layout/fragment_content.xml | 2 + dependencies.gradle | 3 ++ 4 files changed, 47 insertions(+) create mode 100644 app/src/main/res/layout/constraint_layout.xml diff --git a/app/build.gradle b/app/build.gradle index 445372a..223b9ae 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -92,6 +92,7 @@ dependencies { compile libraries.supportDesign compile libraries.supportRecyclerView compile libraries.supportCardView + compile libraries.supportConstraintLayout compile libraries.butterKnife apt libraries.butterKnifeCompiler diff --git a/app/src/main/res/layout/constraint_layout.xml b/app/src/main/res/layout/constraint_layout.xml new file mode 100644 index 0000000..25bb1d2 --- /dev/null +++ b/app/src/main/res/layout/constraint_layout.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_content.xml b/app/src/main/res/layout/fragment_content.xml index 2b819e8..36381a0 100644 --- a/app/src/main/res/layout/fragment_content.xml +++ b/app/src/main/res/layout/fragment_content.xml @@ -18,6 +18,8 @@ + + diff --git a/dependencies.gradle b/dependencies.gradle index c9ff72a..352107a 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -23,6 +23,7 @@ ext.versions = [ supportLibs : '23.4.0', butterKnife : '8.0.1', timber : '4.1.2', + supportConstraintLayout : '1.0.0-alpha1', espresso : '2.2.1', stetho : '1.3.1', @@ -63,6 +64,8 @@ ext.libraries = [ supportRecyclerView : "com.android.support:recyclerview-v7:$versions.supportLibs", supportCardView : "com.android.support:cardview-v7:$versions.supportLibs", + supportConstraintLayout : "com.android.support.constraint:constraint-layout:$versions.supportConstraintLayout", + butterKnife : "com.jakewharton:butterknife:$versions.butterKnife", butterKnifeCompiler : "com.jakewharton:butterknife-compiler:$versions.butterKnife", timber : "com.jakewharton.timber:timber:$versions.timber", From ca8d70bc83d009304638a91b41da525df6df8efe Mon Sep 17 00:00:00 2001 From: Evgenij Vasilev Date: Fri, 22 Jul 2016 18:17:32 +0300 Subject: [PATCH 5/6] Add FlexboxLayout --- app/build.gradle | 2 ++ app/src/main/res/layout/flexbox_layout.xml | 25 ++++++++++++++++++++ app/src/main/res/layout/fragment_content.xml | 2 ++ dependencies.gradle | 2 ++ 4 files changed, 31 insertions(+) create mode 100644 app/src/main/res/layout/flexbox_layout.xml diff --git a/app/build.gradle b/app/build.gradle index 223b9ae..32d1ed5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -94,6 +94,8 @@ dependencies { compile libraries.supportCardView compile libraries.supportConstraintLayout + compile libraries.flexbox + compile libraries.butterKnife apt libraries.butterKnifeCompiler diff --git a/app/src/main/res/layout/flexbox_layout.xml b/app/src/main/res/layout/flexbox_layout.xml new file mode 100644 index 0000000..0349211 --- /dev/null +++ b/app/src/main/res/layout/flexbox_layout.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_content.xml b/app/src/main/res/layout/fragment_content.xml index 36381a0..37f0f48 100644 --- a/app/src/main/res/layout/fragment_content.xml +++ b/app/src/main/res/layout/fragment_content.xml @@ -20,6 +20,8 @@ + + diff --git a/dependencies.gradle b/dependencies.gradle index 352107a..227ddea 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -24,6 +24,7 @@ ext.versions = [ butterKnife : '8.0.1', timber : '4.1.2', supportConstraintLayout : '1.0.0-alpha1', + flexbox : '0.2.2', espresso : '2.2.1', stetho : '1.3.1', @@ -65,6 +66,7 @@ ext.libraries = [ supportCardView : "com.android.support:cardview-v7:$versions.supportLibs", supportConstraintLayout : "com.android.support.constraint:constraint-layout:$versions.supportConstraintLayout", + flexbox : "com.google.android:flexbox:$versions.flexbox", butterKnife : "com.jakewharton:butterknife:$versions.butterKnife", butterKnifeCompiler : "com.jakewharton:butterknife-compiler:$versions.butterKnife", From 2960bc2d952e46f299ba1c3aac216f7c51bc8a89 Mon Sep 17 00:00:00 2001 From: Evgenij Vasilev Date: Fri, 22 Jul 2016 19:24:12 +0300 Subject: [PATCH 6/6] Measure performance via HierarchyViewer --- app/src/main/res/layout/fragment_content.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/res/layout/fragment_content.xml b/app/src/main/res/layout/fragment_content.xml index 37f0f48..7d3f468 100644 --- a/app/src/main/res/layout/fragment_content.xml +++ b/app/src/main/res/layout/fragment_content.xml @@ -10,16 +10,24 @@ android:gravity="center_horizontal" android:orientation="vertical"> + + + + + + + +