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 f8ac19b..eadebbf 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/CouponFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/CouponFragment.java @@ -53,7 +53,8 @@ public class CouponFragment extends Fragment { this.backButton = view.findViewById(R.id.coupon_back_button); this.backButton.setOnClickListener(v -> { StatisticFragment statisticFragment = new StatisticFragment(); - ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, statisticFragment).addToBackStack(null).commit(); + if (getActivity() != null) + getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, statisticFragment).addToBackStack(null).commit(); }); this.couponRecyclerView.setLayoutManager(this.layoutManager); 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 082b306..95fc7d5 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java @@ -91,7 +91,8 @@ public class HomeFragment extends Fragment implements LocationListener { this.imageButton = view.findViewById(R.id.location_list_button); this.imageButton.setOnClickListener(v -> { LocationFragment locationFragment = new LocationFragment(); - ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, locationFragment).addToBackStack(null).commit(); + if (getActivity() != null) + getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, locationFragment).addToBackStack(null).commit(); }); // set up the route stop button 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 88b9eb2..1b531a4 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/LocationDetailFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/LocationDetailFragment.java @@ -12,7 +12,6 @@ import android.widget.ImageView; import android.widget.TextView; import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentActivity; import com.a1.nextlocation.R; import com.a1.nextlocation.data.Data; @@ -50,20 +49,20 @@ public class LocationDetailFragment extends Fragment { this.titelText.setText(location.getName()); double currentDistanceToLocation = 0.0; - if(Data.INSTANCE.getLocation() != null){ + if (Data.INSTANCE.getLocation() != null) { currentDistanceToLocation = Location.getDistance(Data.INSTANCE.getLocation().getLatitude(), Data.INSTANCE.getLocation().getLongitude(), this.location.getLat(), this.location.getLong()); } //Adds distance text from the current distance of the user to the opened location String detailText; - if(getContext().getSharedPreferences("Settings", Context.MODE_PRIVATE).getBoolean("imperialSwitch", false)){ - if(currentDistanceToLocation > 1609) - detailText = location.getDescription() + String.format("%.3f",currentDistanceToLocation * 0.000621371192) + "mi"; + if (getContext().getSharedPreferences("Settings", Context.MODE_PRIVATE).getBoolean("imperialSwitch", false)) { + if (currentDistanceToLocation > 1609) + detailText = location.getDescription() + String.format("%.3f", currentDistanceToLocation * 0.000621371192) + "mi"; else - detailText = location.getDescription() + String.format("%.2f",currentDistanceToLocation * 1.0936133) + "yd"; + detailText = location.getDescription() + String.format("%.2f", currentDistanceToLocation * 1.0936133) + "yd"; } else { - if(currentDistanceToLocation > 1000) - detailText = location.getDescription() + String.format("%.3f",currentDistanceToLocation / 1000) + "km"; + if (currentDistanceToLocation > 1000) + detailText = location.getDescription() + String.format("%.3f", currentDistanceToLocation / 1000) + "km"; else detailText = location.getDescription() + currentDistanceToLocation + "m"; } @@ -74,7 +73,8 @@ public class LocationDetailFragment extends Fragment { this.backButton = view.findViewById(R.id.detail_location_back_button); this.backButton.setOnClickListener(v -> { LocationFragment locationFragment = new LocationFragment(); - ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, locationFragment).addToBackStack(null).commit(); + if (getActivity() != null) + getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, locationFragment).addToBackStack(null).commit(); }); //Logs the location 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 88cdde4..45767b9 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/LocationFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/LocationFragment.java @@ -43,7 +43,8 @@ public class LocationFragment extends Fragment { this.backButton = view.findViewById(R.id.location_back_button); this.backButton.setOnClickListener(v -> { HomeFragment homeFragment = new HomeFragment(); - ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, homeFragment).addToBackStack(null).commit(); + if (getActivity() != null) + getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, homeFragment).addToBackStack(null).commit(); }); //Loads the location list @@ -58,7 +59,8 @@ public class LocationFragment extends Fragment { //Gives the clicked location to the adapter locationBundle.putParcelable("location", this.locationList.get(clickedPosition)); locationDetailFragment.setArguments(locationBundle); - ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, locationDetailFragment).addToBackStack(null).commit(); + if (getActivity() != null) + getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, locationDetailFragment).addToBackStack(null).commit(); }); this.locationRecyclerView.setLayoutManager(this.layoutManager); 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 99086b3..7194086 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/RouteDetailFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/RouteDetailFragment.java @@ -14,7 +14,6 @@ import android.widget.TextView; import android.widget.Toast; import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentActivity; import com.a1.nextlocation.R; import com.a1.nextlocation.data.Location; @@ -64,10 +63,10 @@ public class RouteDetailFragment extends Fragment { TextView routeDetailText = view.findViewById(R.id.route_detail_tekst); StringBuilder locations = new StringBuilder(); - for(Location location : this.route.getLocations()){ + for (Location location : this.route.getLocations()) { locations.append("
•").append(location.getName()); } - String detailText = this.route.getDescription() + "

" + getResources().getString(R.string.following_locations) + "" + locations + "

" + getResources().getString(R.string.start_location) + ": " + route.getLocations().get(0).getName() + "
" + "" + getResources().getString(R.string.end_location) + ": " + route.getLocations().get(route.getLocations().size()-1).getName(); + String detailText = this.route.getDescription() + "

" + getResources().getString(R.string.following_locations) + "" + locations + "

" + getResources().getString(R.string.start_location) + ": " + route.getLocations().get(0).getName() + "
" + "" + getResources().getString(R.string.end_location) + ": " + route.getLocations().get(route.getLocations().size() - 1).getName(); routeDetailText.setText(Html.fromHtml(detailText)); //sets the text of the totaldistance @@ -80,7 +79,8 @@ public class RouteDetailFragment extends Fragment { ImageButton backButton = view.findViewById(R.id.route_detail_back_button); backButton.setOnClickListener(v -> { RouteFragment routeFragment = new RouteFragment(); - ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, routeFragment).addToBackStack(null).commit(); + if (getActivity() != null) + getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, routeFragment).addToBackStack(null).commit(); }); Button startButton = view.findViewById(R.id.start_route_button); 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 00675de..e0cea4f 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/RouteFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/RouteFragment.java @@ -9,7 +9,6 @@ import android.widget.ImageButton; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -49,13 +48,15 @@ public class RouteFragment extends Fragment { Bundle routeBundle = new Bundle(); routeBundle.putParcelable("route", this.routeList.get(clickedPosition)); routeDetailFragment.setArguments(routeBundle); - ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, routeDetailFragment).addToBackStack(null).commit(); + if (getActivity() != null) + getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, routeDetailFragment).addToBackStack(null).commit(); }); ImageButton backButton = view.findViewById(R.id.route_back_button); backButton.setOnClickListener(v -> { HomeFragment homeFragment = new HomeFragment(); - ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, homeFragment).addToBackStack(null).commit(); + if (getActivity() != null) + getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, homeFragment).addToBackStack(null).commit(); }); routeRecyclerView.setLayoutManager(layoutManager); 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 ecc623d..401f70e 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/SettingsFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/SettingsFragment.java @@ -5,7 +5,6 @@ import android.content.Context; import android.content.SharedPreferences; import android.content.res.Configuration; import android.os.Bundle; -import android.preference.PreferenceManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -17,10 +16,8 @@ import android.widget.Spinner; import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.widget.SwitchCompat; import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentTransaction; -import com.a1.nextlocation.MainActivity; import com.a1.nextlocation.R; import org.jetbrains.annotations.NotNull; @@ -66,7 +63,8 @@ public class SettingsFragment extends Fragment { ImageView backButton = view.findViewById(R.id.settings_back_button); backButton.setOnClickListener(v -> { HomeFragment homeFragment = new HomeFragment(); - ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, homeFragment).addToBackStack(null).commit(); + if (getActivity() != null) + getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, homeFragment).addToBackStack(null).commit(); }); SharedPreferences sharedPreferences = getContext().getSharedPreferences("Settings", Context.MODE_PRIVATE); @@ -87,24 +85,25 @@ public class SettingsFragment extends Fragment { fontSwitch.setChecked(sharedPreferences.getBoolean("fontSwitch", false)); //Initial check to see what setting was last chosen - if (fontSwitch.isChecked()){ + if (fontSwitch.isChecked()) { requireActivity().setTheme(R.style.Theme_NextLocationBig); - }else if (!fontSwitch.isChecked()){ + } else if (!fontSwitch.isChecked()) { requireActivity().setTheme(R.style.Theme_NextLocation); } //Changes the font settings depending on the state of the toggle fontSwitch.setOnClickListener(view1 -> { - if(fontSwitch.isChecked()) - { + if (fontSwitch.isChecked()) { requireActivity().setTheme(R.style.Theme_NextLocationBig); + getActivity().recreate(); } if(!fontSwitch.isChecked()) { - requireActivity().setTheme(R.style.Theme_NextLocation);; + requireActivity().setTheme(R.style.Theme_NextLocation); + getActivity().recreate(); } - editor.putBoolean("fontSwitch",fontSwitch.isChecked()); + editor.putBoolean("fontSwitch", fontSwitch.isChecked()); editor.apply(); editor.commit(); }); @@ -117,12 +116,12 @@ public class SettingsFragment extends Fragment { editor.apply(); editor.commit(); - if (colorBlindMode.isChecked()){ + if (colorBlindMode.isChecked()) { requireActivity().setTheme(R.style.Theme_NextLocation); AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); getActivity().recreate(); System.out.println("AAN"); - }else if (!colorBlindMode.isChecked()){ + } else if (!colorBlindMode.isChecked()) { requireActivity().setTheme(R.style.Theme_NextLocation); AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); getActivity().recreate(); diff --git a/app/src/main/java/com/a1/nextlocation/fragments/StatisticFragment.java b/app/src/main/java/com/a1/nextlocation/fragments/StatisticFragment.java index 854213e..8d18b5a 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/StatisticFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/StatisticFragment.java @@ -58,21 +58,24 @@ public class StatisticFragment extends Fragment { ImageView backButton = view.findViewById(R.id.statistics_back_button); backButton.setOnClickListener(v -> { HomeFragment homeFragment = new HomeFragment(); - ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, homeFragment).addToBackStack(null).commit(); + if (getActivity() != null) + getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, homeFragment).addToBackStack(null).commit(); }); //Initialises the coupon button ImageView couponButton = view.findViewById(R.id.coupon_button); couponButton.setOnClickListener(v -> { CouponFragment couponFragment = new CouponFragment(); - ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, couponFragment).addToBackStack(null).commit(); + if (getActivity() != null) + getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, couponFragment).addToBackStack(null).commit(); }); //Makes the constraintlayout clickable and opens the same layout as the coupon button ConstraintLayout constraintLayout = view.findViewById(R.id.Box4); constraintLayout.setOnClickListener(v -> { CouponFragment couponFragment = new CouponFragment(); - ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, couponFragment).addToBackStack(null).commit(); + if (getActivity() != null) + getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, couponFragment).addToBackStack(null).commit(); }); return view; } diff --git a/app/src/main/res/layout/coupon_item.xml b/app/src/main/res/layout/coupon_item.xml index 9a9a437..3616344 100644 --- a/app/src/main/res/layout/coupon_item.xml +++ b/app/src/main/res/layout/coupon_item.xml @@ -5,6 +5,15 @@ android:id="@+id/couponItem" android:layout_height="wrap_content"> + + diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index d71b96b..240c76e 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -15,8 +15,7 @@ android:layout_height="wrap_content" android:layout_marginStart="10dp" android:layout_marginTop="10dp" - android:backgroundTint="@color/primaryColour" - android:src="@drawable/ic_back_button_24" + android:background="@drawable/ic_back_button_24" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/fragment_statistic.xml b/app/src/main/res/layout/fragment_statistic.xml index 48e16cc..61e16ab 100644 --- a/app/src/main/res/layout/fragment_statistic.xml +++ b/app/src/main/res/layout/fragment_statistic.xml @@ -267,8 +267,6 @@ android:layout_marginStart="10dp" android:layout_marginTop="10dp" android:background="@drawable/ic_back_button_24" - android:backgroundTint="@color/buttonColour" - android:src="@drawable/ic_back_button_24" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/help_popup.xml b/app/src/main/res/layout/help_popup.xml index fda4ba9..144a348 100644 --- a/app/src/main/res/layout/help_popup.xml +++ b/app/src/main/res/layout/help_popup.xml @@ -22,24 +22,28 @@ android:paddingVertical="10dp"/> + android:layout_height="400dp" + android:layout_marginHorizontal="10dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/helpPopTitle" + app:layout_constraintBottom_toTopOf="@id/help_ok_button" + > + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/helpPopTitle" /> @@ -48,11 +52,13 @@ android:id="@+id/help_ok_button" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginEnd="16dp" android:backgroundTint="@color/buttonColour" + android:textColor="@color/primaryColour" android:text="ok" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="@+id/helpPopTitle" /> + app:layout_constraintTop_toBottomOf="@id/scrollView2" + app:layout_constraintStart_toStartOf="parent" /> diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 5306d31..2d9f2ee 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -2,7 +2,7 @@