From d052804b5274acc48c0b377a1a4aa5ccce7d09e6 Mon Sep 17 00:00:00 2001 From: Mohamed Ali <55451465+dawood-ali@users.noreply.github.com> Date: Thu, 10 Mar 2022 17:34:01 -0700 Subject: [PATCH 01/12] Create android.yml --- .github/workflows/android.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/android.yml diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 000000000..806986630 --- /dev/null +++ b/.github/workflows/android.yml @@ -0,0 +1,26 @@ +name: Android CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: set up JDK 11 + uses: actions/setup-java@v2 + with: + java-version: '11' + distribution: 'temurin' + cache: gradle + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Build with Gradle + run: ./gradlew build From 8b8b41b204725bfc2e5ee0bab97add39bce964fa Mon Sep 17 00:00:00 2001 From: Mohamed Ali <55451465+dawood-ali@users.noreply.github.com> Date: Thu, 10 Mar 2022 17:35:55 -0700 Subject: [PATCH 02/12] initial commit --- app/build.gradle | 42 ++++++++++++++++++- .../example/simpleparadox/listycity/City.java | 2 +- .../simpleparadox/listycity/CustomList.java | 23 +++++++++- app/src/test/java/customListTest.java | 29 +++++++++++++ 4 files changed, 91 insertions(+), 5 deletions(-) create mode 100644 app/src/test/java/customListTest.java diff --git a/app/build.gradle b/app/build.gradle index 0d17b9380..4aa607dc0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,29 +1,67 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 + compileSdkVersion 32 buildToolsVersion "29.0.2" defaultConfig { applicationId "com.example.simpleparadox.listycity" minSdkVersion 15 - targetSdkVersion 29 + targetSdkVersion 32 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } + + testOptions{ + unitTests.all{ + useJUnitPlatform() + } + } + buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} +task javadoc(type: Javadoc) { + + doFirst { + configurations.implementation + .filter { it.name.endsWith('.aar') } + .each { aar -> + copy { + from zipTree(aar) + include "**/classes.jar" + into "$buildDir/tmp/aarsToJars/${aar.name.replace('.aar', '')}/" + } + } + } + + configurations.implementation.setCanBeResolved(true) + source = android.sourceSets.main.java.srcDirs + classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + classpath += configurations.implementation + classpath += fileTree(dir: "$buildDir/tmp/aarsToJars/") + destinationDir = file("${project.buildDir}/outputs/javadoc/") + failOnError false + exclude '**/BuildConfig.java' + exclude '**/R.java' } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' + implementation 'androidx.test.ext:junit:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.0.1' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.0.1' } diff --git a/app/src/main/java/com/example/simpleparadox/listycity/City.java b/app/src/main/java/com/example/simpleparadox/listycity/City.java index fb6fbd1d1..969fbce4c 100644 --- a/app/src/main/java/com/example/simpleparadox/listycity/City.java +++ b/app/src/main/java/com/example/simpleparadox/listycity/City.java @@ -4,7 +4,7 @@ public class City { private String city; private String province; - City(String city, String province){ + public City(String city, String province){ this.city = city; this.province = province; } diff --git a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java index 1a7af1f60..568be57a4 100644 --- a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java +++ b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java @@ -1,3 +1,5 @@ + + package com.example.simpleparadox.listycity; import android.content.Context; @@ -10,8 +12,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.w3c.dom.Text; - import java.util.ArrayList; public class CustomList extends ArrayAdapter { @@ -47,4 +47,23 @@ public View getView(int position, @Nullable View convertView, @NonNull ViewGroup return view; } + + /** + * this function gets the size of the list + * @return + */ + + public int getCount() { + return cities.size(); + } + + /** + * this function would add a city object to the list. + */ + + public void addCity(City city) { + + return; + + } } diff --git a/app/src/test/java/customListTest.java b/app/src/test/java/customListTest.java new file mode 100644 index 000000000..c41d009bf --- /dev/null +++ b/app/src/test/java/customListTest.java @@ -0,0 +1,29 @@ +import static org.junit.Assert.assertEquals; + +import com.example.simpleparadox.listycity.City; +import com.example.simpleparadox.listycity.CustomList; + +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; + +public class customListTest { + + private CustomList customList; + + @Before + public void createList() { + customList= new CustomList(null, new ArrayList<>()); + } + + @Test + public void addCityTest() { + int listSize = customList.getCount(); + customList.addCity(new City("Halifax" , "NS")); + + assertEquals(customList.getCount(), listSize + 1); + } + +} + From 30eb4677683bf3f9aa20c0f08e6eda040f0316c4 Mon Sep 17 00:00:00 2001 From: Mohamed Ali <55451465+dawood-ali@users.noreply.github.com> Date: Thu, 10 Mar 2022 17:36:36 -0700 Subject: [PATCH 03/12] initial commit 2 --- app/src/test/java/customListTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/test/java/customListTest.java b/app/src/test/java/customListTest.java index c41d009bf..55599393f 100644 --- a/app/src/test/java/customListTest.java +++ b/app/src/test/java/customListTest.java @@ -24,6 +24,7 @@ public void addCityTest() { assertEquals(customList.getCount(), listSize + 1); } + //yeerr } From 410372eda11e83af3aad3b51558bda9f7828c4c3 Mon Sep 17 00:00:00 2001 From: Mohamed Ali <55451465+dawood-ali@users.noreply.github.com> Date: Thu, 10 Mar 2022 17:45:03 -0700 Subject: [PATCH 04/12] created test package --- .../{ => com/example/simpleparadox/tests}/customListTest.java | 2 ++ 1 file changed, 2 insertions(+) rename app/src/test/java/{ => com/example/simpleparadox/tests}/customListTest.java (93%) diff --git a/app/src/test/java/customListTest.java b/app/src/test/java/com/example/simpleparadox/tests/customListTest.java similarity index 93% rename from app/src/test/java/customListTest.java rename to app/src/test/java/com/example/simpleparadox/tests/customListTest.java index 55599393f..4d3806c94 100644 --- a/app/src/test/java/customListTest.java +++ b/app/src/test/java/com/example/simpleparadox/tests/customListTest.java @@ -1,3 +1,5 @@ +package com.example.simpleparadox.tests; + import static org.junit.Assert.assertEquals; import com.example.simpleparadox.listycity.City; From d9b1b79e81e5c97b79320d30647f5e1efd8126b9 Mon Sep 17 00:00:00 2001 From: Mohamed Ali <55451465+dawood-ali@users.noreply.github.com> Date: Thu, 10 Mar 2022 17:50:14 -0700 Subject: [PATCH 05/12] changed gradle i dont know --- app/build.gradle | 44 ++----------------- .../simpleparadox/tests/customListTest.java | 2 +- 2 files changed, 4 insertions(+), 42 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4aa607dc0..e1558670d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,67 +1,29 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 32 + compileSdkVersion 29 buildToolsVersion "29.0.2" defaultConfig { applicationId "com.example.simpleparadox.listycity" minSdkVersion 15 - targetSdkVersion 32 + targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } - - testOptions{ - unitTests.all{ - useJUnitPlatform() - } - } - buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } -} -task javadoc(type: Javadoc) { - - doFirst { - configurations.implementation - .filter { it.name.endsWith('.aar') } - .each { aar -> - copy { - from zipTree(aar) - include "**/classes.jar" - into "$buildDir/tmp/aarsToJars/${aar.name.replace('.aar', '')}/" - } - } - } - - configurations.implementation.setCanBeResolved(true) - source = android.sourceSets.main.java.srcDirs - classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) - classpath += configurations.implementation - classpath += fileTree(dir: "$buildDir/tmp/aarsToJars/") - destinationDir = file("${project.buildDir}/outputs/javadoc/") - failOnError false - exclude '**/BuildConfig.java' - exclude '**/R.java' } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' - implementation 'androidx.test.ext:junit:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.0.1' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.0.1' -} +} \ No newline at end of file diff --git a/app/src/test/java/com/example/simpleparadox/tests/customListTest.java b/app/src/test/java/com/example/simpleparadox/tests/customListTest.java index 4d3806c94..cd8572b0c 100644 --- a/app/src/test/java/com/example/simpleparadox/tests/customListTest.java +++ b/app/src/test/java/com/example/simpleparadox/tests/customListTest.java @@ -16,7 +16,7 @@ public class customListTest { @Before public void createList() { - customList= new CustomList(null, new ArrayList<>()); + customList= new CustomList(null, new ArrayList()); } @Test From c76eeab7340f13dd512e292bccd8e3c951fdd0d0 Mon Sep 17 00:00:00 2001 From: Mohamed Ali <55451465+dawood-ali@users.noreply.github.com> Date: Thu, 10 Mar 2022 17:52:13 -0700 Subject: [PATCH 06/12] test implemented --- .../java/com/example/simpleparadox/listycity/CustomList.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java index 568be57a4..1fc4680a9 100644 --- a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java +++ b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java @@ -63,6 +63,7 @@ public int getCount() { public void addCity(City city) { + cities.add(city); return; } From aeb1a1881a0a66f13d8b9568ab96ba725e1afecd Mon Sep 17 00:00:00 2001 From: Mohamed Ali <55451465+dawood-ali@users.noreply.github.com> Date: Thu, 10 Mar 2022 18:02:11 -0700 Subject: [PATCH 07/12] hascity not implemented --- .../example/simpleparadox/listycity/CustomList.java | 9 +++++++++ .../example/simpleparadox/tests/customListTest.java | 13 ++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java index 1fc4680a9..4e873e4ed 100644 --- a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java +++ b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java @@ -67,4 +67,13 @@ public void addCity(City city) { return; } + + public boolean hasCity(City city) { + +// if (cities.contains(city)) { +// +// return true; +// } + return false; + } } diff --git a/app/src/test/java/com/example/simpleparadox/tests/customListTest.java b/app/src/test/java/com/example/simpleparadox/tests/customListTest.java index cd8572b0c..fbd2408d6 100644 --- a/app/src/test/java/com/example/simpleparadox/tests/customListTest.java +++ b/app/src/test/java/com/example/simpleparadox/tests/customListTest.java @@ -1,6 +1,7 @@ package com.example.simpleparadox.tests; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import com.example.simpleparadox.listycity.City; import com.example.simpleparadox.listycity.CustomList; @@ -26,7 +27,17 @@ public void addCityTest() { assertEquals(customList.getCount(), listSize + 1); } - //yeerr + + + @Test + public void hasCityTest() { + + City city = new City("Edmonton", "AB"); + + customList.addCity(city); + + assertTrue(customList.hasCity(city)); + } } From 22f4dd14e96d5bb9dfedddc48c7a875828118b31 Mon Sep 17 00:00:00 2001 From: Mohamed Ali <55451465+dawood-ali@users.noreply.github.com> Date: Thu, 10 Mar 2022 18:02:36 -0700 Subject: [PATCH 08/12] hasCity implemented --- .../com/example/simpleparadox/listycity/CustomList.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java index 4e873e4ed..302a39a7b 100644 --- a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java +++ b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java @@ -70,10 +70,10 @@ public void addCity(City city) { public boolean hasCity(City city) { -// if (cities.contains(city)) { -// -// return true; -// } + if (cities.contains(city)) { + + return true; + } return false; } } From 5127cc14fc1e91ffe127e81a989962974560d319 Mon Sep 17 00:00:00 2001 From: Mohamed Ali <55451465+dawood-ali@users.noreply.github.com> Date: Thu, 10 Mar 2022 18:04:39 -0700 Subject: [PATCH 09/12] deleteCity not implemented --- .../example/simpleparadox/listycity/CustomList.java | 5 +++++ .../example/simpleparadox/tests/customListTest.java | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java index 302a39a7b..f54ae88fe 100644 --- a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java +++ b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java @@ -76,4 +76,9 @@ public boolean hasCity(City city) { } return false; } + + public boolean deleteCity(City city) { + + return false; + } } diff --git a/app/src/test/java/com/example/simpleparadox/tests/customListTest.java b/app/src/test/java/com/example/simpleparadox/tests/customListTest.java index fbd2408d6..02d9d28db 100644 --- a/app/src/test/java/com/example/simpleparadox/tests/customListTest.java +++ b/app/src/test/java/com/example/simpleparadox/tests/customListTest.java @@ -39,5 +39,15 @@ public void hasCityTest() { assertTrue(customList.hasCity(city)); } + @Test + public void deleteCityTest() { + + City city = new City("Edmonton", "AB"); + + customList.addCity(city); + + assertTrue(customList.deleteCity(city)); + } + } From 5cc25000ae9c3d82dbd4ea63aebb16936f4590d7 Mon Sep 17 00:00:00 2001 From: Mohamed Ali <55451465+dawood-ali@users.noreply.github.com> Date: Thu, 10 Mar 2022 18:07:33 -0700 Subject: [PATCH 10/12] deleteCity implemented --- .../java/com/example/simpleparadox/listycity/CustomList.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java index f54ae88fe..d8300fd04 100644 --- a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java +++ b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java @@ -79,6 +79,8 @@ public boolean hasCity(City city) { public boolean deleteCity(City city) { - return false; + cities.remove(city); + + return !hasCity(city); } } From 43b577ba5f733d3ae9fd611b2a36fccb240c95c2 Mon Sep 17 00:00:00 2001 From: Mohamed Ali <55451465+dawood-ali@users.noreply.github.com> Date: Thu, 10 Mar 2022 18:09:52 -0700 Subject: [PATCH 11/12] countCities not implemented --- .../com/example/simpleparadox/listycity/CustomList.java | 5 +++++ .../com/example/simpleparadox/tests/customListTest.java | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java index d8300fd04..e65ac5470 100644 --- a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java +++ b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java @@ -83,4 +83,9 @@ public boolean deleteCity(City city) { return !hasCity(city); } + + public int countCities() { + + return 0; + } } diff --git a/app/src/test/java/com/example/simpleparadox/tests/customListTest.java b/app/src/test/java/com/example/simpleparadox/tests/customListTest.java index 02d9d28db..3e953ebfd 100644 --- a/app/src/test/java/com/example/simpleparadox/tests/customListTest.java +++ b/app/src/test/java/com/example/simpleparadox/tests/customListTest.java @@ -49,5 +49,13 @@ public void deleteCityTest() { assertTrue(customList.deleteCity(city)); } + @Test + public void countCities() { + + customList.addCity(new City("Edmonton", "AB")); + + assertEquals(customList.countCities(), 1); + } + } From 63867b682c1ba93ab3a741d897aff209633c4ba5 Mon Sep 17 00:00:00 2001 From: Mohamed Ali <55451465+dawood-ali@users.noreply.github.com> Date: Thu, 10 Mar 2022 18:10:19 -0700 Subject: [PATCH 12/12] countCities implemented --- .../java/com/example/simpleparadox/listycity/CustomList.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java index e65ac5470..fff8a73f5 100644 --- a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java +++ b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java @@ -86,6 +86,6 @@ public boolean deleteCity(City city) { public int countCities() { - return 0; + return cities.size(); } }