diff --git a/app/src/androidTest/java/com/a1/nextlocation/CouponFragmentTest.java b/app/src/androidTest/java/com/a1/nextlocation/CouponFragmentTest.java new file mode 100644 index 0000000..e5d4342 --- /dev/null +++ b/app/src/androidTest/java/com/a1/nextlocation/CouponFragmentTest.java @@ -0,0 +1,47 @@ +package com.a1.nextlocation; + +import androidx.test.espresso.Root; +import androidx.test.espresso.contrib.RecyclerViewActions; +import androidx.test.espresso.matcher.RootMatchers; +import androidx.test.espresso.matcher.ViewMatchers; +import androidx.test.rule.ActivityTestRule; + +import com.a1.nextlocation.fragments.CouponFragment; +import com.a1.nextlocation.fragments.LocationFragment; + +import org.junit.Rule; +import org.junit.Test; + +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.matcher.ViewMatchers.isChecked; +import static androidx.test.espresso.matcher.ViewMatchers.isClickable; +import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; +import static androidx.test.espresso.matcher.ViewMatchers.withContentDescription; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; + +public class CouponFragmentTest { + + @Rule + public ActivityTestRule mActivityTestRule = new ActivityTestRule<>(MainActivity.class); + + @Test + public void clickBackButton() throws Exception{ + mActivityTestRule.getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.mainActivity, new CouponFragment()).commit(); + onView(withId(R.id.coupon_back_button)).perform(click()); + onView(withId(R.id.statisticsFragment)).check(matches(isDisplayed())); + } + + @Test + public void clickDetailButton() throws Exception{ + mActivityTestRule.getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.mainActivity, new CouponFragment()).commit(); + onView(withId(R.id.coupon_recyclerview)).perform(RecyclerViewActions.actionOnItemAtPosition(1, click())); + onView(withText("activeren")).inRoot(RootMatchers.isDialog()).perform(click()); + onView(withText("Klaar")).inRoot(RootMatchers.isDialog()).check(matches(isDisplayed())); + + + } + +} diff --git a/app/src/androidTest/java/com/a1/nextlocation/LocationDetailFragment.java b/app/src/androidTest/java/com/a1/nextlocation/LocationDetailFragment.java new file mode 100644 index 0000000..aae88e4 --- /dev/null +++ b/app/src/androidTest/java/com/a1/nextlocation/LocationDetailFragment.java @@ -0,0 +1,26 @@ +package com.a1.nextlocation; + +import androidx.test.rule.ActivityTestRule; + +import com.a1.nextlocation.fragments.CouponFragment; + +import org.junit.Rule; +import org.junit.Test; + +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; +import static androidx.test.espresso.matcher.ViewMatchers.withId; + +public class LocationDetailFragment { + @Rule + public ActivityTestRule mActivityTestRule = new ActivityTestRule<>(MainActivity.class); + + @Test + public void clickBackButton() throws Exception{ + mActivityTestRule.getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.mainActivity, new com.a1.nextlocation.fragments.LocationDetailFragment()).commit(); + onView(withId(R.id.detail_location_back_button)).perform(click()); + onView(withId(R.id.locationFragment)).check(matches(isDisplayed())); + } +} diff --git a/app/src/androidTest/java/com/a1/nextlocation/LocationFragmentTest.java b/app/src/androidTest/java/com/a1/nextlocation/LocationFragmentTest.java index 611a1d7..06935e2 100644 --- a/app/src/androidTest/java/com/a1/nextlocation/LocationFragmentTest.java +++ b/app/src/androidTest/java/com/a1/nextlocation/LocationFragmentTest.java @@ -25,14 +25,14 @@ public class LocationFragmentTest { @Test public void clickBackButton() throws Exception{ mActivityTestRule.getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.mainActivity, new LocationFragment()).commit(); - onView(withId(R.id.locationBackButton)).perform(click()); + onView(withId(R.id.location_back_button)).perform(click()); onView(withId(R.id.homeFragment)).check(matches(isDisplayed())); } @Test public void clickDetailButton() throws Exception{ mActivityTestRule.getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.mainActivity, new LocationFragment()).commit(); - onView(withId(R.id.locationRecyclerView)).perform(RecyclerViewActions.actionOnItemAtPosition(1, click())); + onView(withId(R.id.location_recyclerview)).perform(RecyclerViewActions.actionOnItemAtPosition(1, click())); onView(withId(R.id.locationDetailFragment)).check(matches(isDisplayed())); } diff --git a/app/src/androidTest/java/com/a1/nextlocation/RouteFragmentTest.java b/app/src/androidTest/java/com/a1/nextlocation/RouteFragmentTest.java new file mode 100644 index 0000000..49e9e61 --- /dev/null +++ b/app/src/androidTest/java/com/a1/nextlocation/RouteFragmentTest.java @@ -0,0 +1,37 @@ +package com.a1.nextlocation; + +import androidx.test.espresso.contrib.RecyclerViewActions; +import androidx.test.rule.ActivityTestRule; + +import com.a1.nextlocation.fragments.LocationFragment; +import com.a1.nextlocation.fragments.RouteFragment; + +import org.junit.Rule; +import org.junit.Test; + +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; +import static androidx.test.espresso.matcher.ViewMatchers.withId; + +public class RouteFragmentTest { + @Rule + public ActivityTestRule mActivityTestRule = new ActivityTestRule<>(MainActivity.class); + + @Test + public void clickBackButton() throws Exception{ + mActivityTestRule.getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.mainActivity, new RouteFragment()).commit(); + onView(withId(R.id.route_back_button)).perform(click()); + onView(withId(R.id.homeFragment)).check(matches(isDisplayed())); + + } + + @Test + public void clickDetailButton() throws Exception{ + mActivityTestRule.getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.mainActivity, new RouteFragment()).commit(); + onView(withId(R.id.route_recyclerview)).perform(RecyclerViewActions.actionOnItemAtPosition(0, click())); + onView(withId(R.id.routeDetailFragment)).check(matches(isDisplayed())); + + } +} diff --git a/app/src/main/java/com/a1/nextlocation/MainActivity.java b/app/src/main/java/com/a1/nextlocation/MainActivity.java index 9f7821e..a615490 100644 --- a/app/src/main/java/com/a1/nextlocation/MainActivity.java +++ b/app/src/main/java/com/a1/nextlocation/MainActivity.java @@ -1,9 +1,7 @@ package com.a1.nextlocation; -import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentTransaction; import android.os.Bundle; import android.util.Log; @@ -38,7 +36,7 @@ public class MainActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - BottomNavigationView bottomNav = findViewById(R.id.navbar); + BottomNavigationView bottomNav = findViewById(R.id.navigation_bar); bottomNav.setOnNavigationItemSelectedListener(navListener); diff --git a/app/src/main/java/com/a1/nextlocation/fragments/CouponFragment.java b/app/src/main/java/com/a1/nextlocation/fragments/CouponFragment.java index 1faea7f..984e38c 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/CouponFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/CouponFragment.java @@ -1,7 +1,6 @@ package com.a1.nextlocation.fragments; import android.app.AlertDialog; -import android.content.DialogInterface; import android.os.Bundle; import androidx.fragment.app.Fragment; @@ -38,11 +37,11 @@ public class CouponFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_coupon, container, false); - this.couponRecyclerView = view.findViewById(R.id.couponRecyclerView); + this.couponRecyclerView = view.findViewById(R.id.coupon_recyclerview); this.couponRecyclerView.setHasFixedSize(true); this.layoutManager = new LinearLayoutManager(this.getContext()); - this.imageButton = view.findViewById(R.id.couponBackButton); + this.imageButton = view.findViewById(R.id.coupon_back_button); this.imageButton.setOnClickListener(v -> { StatisticFragment statisticFragment = new StatisticFragment(); ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, statisticFragment).addToBackStack(null).commit(); diff --git a/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java b/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java index 621d02b..237d7ca 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java @@ -5,7 +5,6 @@ package com.a1.nextlocation.fragments; import android.Manifest; import android.content.Context; import android.content.pm.PackageManager; -import android.content.res.Resources; import android.location.Location; import android.location.LocationManager; import android.os.Bundle; @@ -23,17 +22,13 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import com.a1.nextlocation.R; -import com.a1.nextlocation.data.Route; -import com.a1.nextlocation.recyclerview.CouponListManager; import com.a1.nextlocation.recyclerview.CustomOverlay; import com.a1.nextlocation.recyclerview.LocationListManager; -import com.a1.nextlocation.recyclerview.RouteListManager; import org.osmdroid.api.IMapController; import org.osmdroid.config.Configuration; import org.osmdroid.util.GeoPoint; import org.osmdroid.views.MapView; -import org.osmdroid.views.overlay.Overlay; import org.osmdroid.views.overlay.OverlayItem; import org.osmdroid.views.overlay.compass.CompassOverlay; import org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider; @@ -87,7 +82,7 @@ public class HomeFragment extends Fragment { Configuration.getInstance().setUserAgentValue(userAgent); // create the map view - mapView = view.findViewById(R.id.mapView); + mapView = view.findViewById(R.id.map_view); mapView.setDestroyMode(false); mapView.setTag("mapView"); mapView.setMultiTouchControls(true); diff --git a/app/src/main/java/com/a1/nextlocation/fragments/LocationDetailFragment.java b/app/src/main/java/com/a1/nextlocation/fragments/LocationDetailFragment.java index 62b6313..82bcabb 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/LocationDetailFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/LocationDetailFragment.java @@ -19,20 +19,17 @@ public class LocationDetailFragment extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - } @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_location_detail, container, false); -// -// this.imageButton = view.findViewById(R.id.detail_location_back_button); -// this.imageButton.setOnClickListener(v -> { -// LocationFragment locationFragment = new LocationFragment(); -// ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, locationFragment).addToBackStack(null).commit(); -// }); + this.imageButton = view.findViewById(R.id.detail_location_back_button); + this.imageButton.setOnClickListener(v -> { + LocationFragment locationFragment = new LocationFragment(); + ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, locationFragment).addToBackStack(null).commit(); + }); return view; } diff --git a/app/src/main/java/com/a1/nextlocation/fragments/LocationFragment.java b/app/src/main/java/com/a1/nextlocation/fragments/LocationFragment.java index 237622d..03afb8e 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/LocationFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/LocationFragment.java @@ -14,11 +14,9 @@ import android.widget.ImageButton; import com.a1.nextlocation.R; import com.a1.nextlocation.data.Location; -import com.a1.nextlocation.recyclerview.CouponAdapter; import com.a1.nextlocation.recyclerview.LocationAdapter; import com.a1.nextlocation.recyclerview.LocationListManager; -import java.util.ArrayList; import java.util.List; public class LocationFragment extends Fragment { @@ -38,11 +36,11 @@ public class LocationFragment extends Fragment { View view = inflater.inflate(R.layout.fragment_location, container, false); - this.locationRecyclerView = view.findViewById(R.id.locationRecyclerView); + this.locationRecyclerView = view.findViewById(R.id.location_recyclerview); this.locationRecyclerView.setHasFixedSize(true); this.layoutManager = new LinearLayoutManager(this.getContext()); - this.imageButton = view.findViewById(R.id.locationBackButton); + this.imageButton = view.findViewById(R.id.location_back_button); this.imageButton.setOnClickListener(v -> { HomeFragment homeFragment = new HomeFragment(); ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, homeFragment).addToBackStack(null).commit(); diff --git a/app/src/main/java/com/a1/nextlocation/fragments/RouteDetailFragment.java b/app/src/main/java/com/a1/nextlocation/fragments/RouteDetailFragment.java index d79bfa2..30a4caa 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/RouteDetailFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/RouteDetailFragment.java @@ -3,10 +3,12 @@ package com.a1.nextlocation.fragments; import android.os.Bundle; import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageButton; import android.widget.TextView; import com.a1.nextlocation.R; @@ -16,6 +18,7 @@ public class RouteDetailFragment extends Fragment { private Route route; private TextView routeDetailText; + private ImageButton imageButton; @Override public void onCreate(Bundle savedInstanceState) { @@ -33,6 +36,12 @@ public class RouteDetailFragment extends Fragment { this.routeDetailText = view.findViewById(R.id.routeDetailText); this.routeDetailText.setText(this.route.getName()); + this.imageButton = view.findViewById(R.id.route_detail_back_button); + this.imageButton.setOnClickListener(v -> { + RouteFragment routeFragment = new RouteFragment(); + ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, routeFragment).addToBackStack(null).commit(); + }); + return view; } diff --git a/app/src/main/java/com/a1/nextlocation/fragments/RouteFragment.java b/app/src/main/java/com/a1/nextlocation/fragments/RouteFragment.java index 752b7d6..e9e6f85 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/RouteFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/RouteFragment.java @@ -13,13 +13,13 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageButton; import com.a1.nextlocation.R; import com.a1.nextlocation.data.Route; import com.a1.nextlocation.recyclerview.RouteAdapter; import com.a1.nextlocation.recyclerview.RouteListManager; -import java.util.ArrayList; import java.util.List; import com.a1.nextlocation.data.Location; import com.a1.nextlocation.data.Route; @@ -34,6 +34,7 @@ public class RouteFragment extends Fragment { private RecyclerView.LayoutManager layoutManager; private List routeList; private RouteAdapter routeAdapter; + private ImageButton imageButton; @Override public void onCreate(Bundle savedInstanceState) { @@ -46,7 +47,7 @@ public class RouteFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_route, container, false); - this.routeRecyclerView = view.findViewById(R.id.routeRecyclerView); + this.routeRecyclerView = view.findViewById(R.id.route_recyclerview); this.routeRecyclerView.setHasFixedSize(true); this.layoutManager = new LinearLayoutManager(this.getContext()); @@ -62,6 +63,12 @@ public class RouteFragment extends Fragment { ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, routeDetailFragment).addToBackStack(null).commit(); }); + this.imageButton = view.findViewById(R.id.route_back_button); + this.imageButton.setOnClickListener(v -> { + HomeFragment homeFragment = new HomeFragment(); + ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, homeFragment).addToBackStack(null).commit(); + }); + this.routeRecyclerView.setLayoutManager(this.layoutManager); this.routeRecyclerView.setAdapter(this.routeAdapter); return view; diff --git a/app/src/main/java/com/a1/nextlocation/fragments/SettingsFragment.java b/app/src/main/java/com/a1/nextlocation/fragments/SettingsFragment.java index 721ba3e..0b80f41 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/SettingsFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/SettingsFragment.java @@ -5,11 +5,13 @@ import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; +import android.widget.ImageView; import android.widget.Spinner; import com.a1.nextlocation.MainActivity; @@ -17,6 +19,8 @@ import com.a1.nextlocation.R; public class SettingsFragment extends Fragment { + private ImageView imageButton; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -36,6 +40,12 @@ public class SettingsFragment extends Fragment { // Inflate the layout for this fragment Spinner dropdown = view.findViewById(R.id.dropdown_menu_Settings); + this.imageButton = view.findViewById(R.id.route_detail_back_button); + this.imageButton.setOnClickListener(v -> { + HomeFragment homeFragment = new HomeFragment(); + ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, homeFragment).addToBackStack(null).commit(); + }); + String[] items = new String[]{"Nederlands", "Engels", "Chinees"}; ArrayAdapter arrayAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_dropdown_item, items); diff --git a/app/src/main/res/layout-land/fragment_location_detail.xml b/app/src/main/res/layout-land/fragment_location_detail.xml index 675f626..6e87547 100644 --- a/app/src/main/res/layout-land/fragment_location_detail.xml +++ b/app/src/main/res/layout-land/fragment_location_detail.xml @@ -12,7 +12,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" - android:text="Locatie detail" + android:text="@string/locatie_detail" android:textColor="@color/white" android:textSize="30sp" app:layout_constraintEnd_toEndOf="parent" @@ -35,7 +35,7 @@ android:layout_height="283dp" android:layout_marginEnd="30dp" android:background="@color/secondaryColour" - android:text="Detail tekst" + android:text="@string/locatie_detail_tekst" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/detail_location_name" /> diff --git a/app/src/main/res/layout-land/fragment_route_detail.xml b/app/src/main/res/layout-land/fragment_route_detail.xml index b5863ad..e13fce8 100644 --- a/app/src/main/res/layout-land/fragment_route_detail.xml +++ b/app/src/main/res/layout-land/fragment_route_detail.xml @@ -7,20 +7,33 @@ android:background="@color/primaryColour" tools:context=".fragments.RouteDetailFragment"> +