diff --git a/app/src/main/java/com/a1/nextlocation/MainActivity.java b/app/src/main/java/com/a1/nextlocation/MainActivity.java index ef12e7d..f6b5992 100644 --- a/app/src/main/java/com/a1/nextlocation/MainActivity.java +++ b/app/src/main/java/com/a1/nextlocation/MainActivity.java @@ -28,8 +28,9 @@ import java.io.File; import java.util.Arrays; import java.util.Locale; -public class MainActivity extends AppCompatActivity { +public class MainActivity extends AppCompatActivity implements Refreshable{ private static final String TAG = MainActivity.class.getName(); + private BottomNavigationView bottomNav; /** * onCreate method that creates the main activity @@ -38,12 +39,14 @@ public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + + // initialize saved language from sharedPreferences + setLocale(loadLocale()); + setContentView(R.layout.activity_main); - - BottomNavigationView bottomNav = findViewById(R.id.navigation_bar); + bottomNav = findViewById(R.id.navigation_bar); bottomNav.setOnNavigationItemSelectedListener(navListener); - /*System.out.println(Arrays.toString(getFilesDir().listFiles())); FileIO fileIO = new FileIO<>(); fileIO.writeFileData(new Route("TERSTSET"), getApplicationContext()); @@ -56,10 +59,9 @@ public class MainActivity extends AppCompatActivity { RouteListManager.INSTANCE.setContext(this); RouteListManager.INSTANCE.load(); - // initialize saved language from sharedPreferences - setLocale(loadLocale()); - - getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, new HomeFragment()).commit(); + if (savedInstanceState == null) { + getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, new HomeFragment()).commit(); + } } /** @@ -105,4 +107,14 @@ public class MainActivity extends AppCompatActivity { getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, selectedFragment).commit(); return true; }; + + /** + * refreshes bottom navigation + */ + @Override + public void refresh() { + bottomNav.getMenu().clear(); + bottomNav.inflateMenu(R.menu.navmenu); + bottomNav.setSelectedItemId(R.id.settings); + } } \ No newline at end of file diff --git a/app/src/main/java/com/a1/nextlocation/Refreshable.java b/app/src/main/java/com/a1/nextlocation/Refreshable.java new file mode 100644 index 0000000..9e416c8 --- /dev/null +++ b/app/src/main/java/com/a1/nextlocation/Refreshable.java @@ -0,0 +1,5 @@ +package com.a1.nextlocation; + +public interface Refreshable { + void refresh(); +} 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 ff52861..4a1f1c0 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/SettingsFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/SettingsFragment.java @@ -22,16 +22,24 @@ import android.widget.Spinner; import com.a1.nextlocation.MainActivity; import com.a1.nextlocation.R; +import com.a1.nextlocation.Refreshable; + +import org.jetbrains.annotations.NotNull; import java.util.Locale; public class SettingsFragment extends Fragment { private SharedPreferences.Editor editor; - private ImageView imageButton; - SwitchCompat fontChanger; + private Refreshable refreshable; + + @Override + public void onAttach(@NotNull Context context) { + super.onAttach(context); + refreshable = (Refreshable) context; + } @Override public void onCreate(Bundle savedInstanceState) { @@ -87,7 +95,7 @@ public class SettingsFragment extends Fragment { private void initializeLanguageDropdown(View view) { Spinner languageDropdown = view.findViewById(R.id.dropdown_menu_Settings); - String[] items = new String[]{"Nederlands", "Engels", "Chinees"}; + String[] items = new String[]{getResources().getString(R.string.Dutch), getResources().getString(R.string.English), getResources().getString(R.string.Chinese)}; ArrayAdapter arrayAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_dropdown_item, items); languageDropdown.setAdapter(arrayAdapter); @@ -99,15 +107,11 @@ public class SettingsFragment extends Fragment { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { setLocale(dropdownPositionToLanguage(id)); + // refresh fragment on language change if (id != previousID) { - Fragment currentFragment = getActivity().getSupportFragmentManager().findFragmentById(R.id.fragment_layout); - FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); - fragmentTransaction.detach(currentFragment); - fragmentTransaction.attach(currentFragment); - fragmentTransaction.commit(); + refresh(); } } - @Override public void onNothingSelected(AdapterView parent) { } @@ -157,6 +161,8 @@ public class SettingsFragment extends Fragment { fragmentTransaction.detach(currentFragment); fragmentTransaction.attach(currentFragment); fragmentTransaction.commit(); + + refreshable.refresh(); } /** diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 893ffe7..f8405ae 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -20,4 +20,7 @@ activeren Klaar annuleren + Engels + Nederlands + Chinees \ 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 1e72755..8f787d1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -19,4 +19,7 @@ Done cancel Route stopped! + Dutch + English + Chinese \ No newline at end of file