diff --git a/app/src/main/java/com/example/mampfmobil/ui/DecideFragment.java b/app/src/main/java/com/example/mampfmobil/ui/DecideFragment.java index 827e67abd217f273302759df7f474430d9510cfd..2ec099dc0c4f4249fbb56d753a7e5ac50a7390a2 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/DecideFragment.java +++ b/app/src/main/java/com/example/mampfmobil/ui/DecideFragment.java @@ -1,5 +1,6 @@ package com.example.mampfmobil.ui; +import androidx.appcompat.app.AppCompatDelegate; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import androidx.lifecycle.ViewModelProvider; @@ -7,11 +8,13 @@ import androidx.lifecycle.ViewModelProvider; import android.content.Intent; import android.content.res.Configuration; import android.content.res.Resources; +import android.os.Build; import android.os.Bundle; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -43,6 +46,26 @@ public class DecideFragment extends Fragment { ImageButton deButton = rootView.findViewById(R.id.imageView); ImageButton enButton = rootView.findViewById(R.id.imageView2); + ImageButton darkMode = rootView.findViewById(R.id.imageButton); + + darkMode.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // Den Dark Mode programmgesteuert aktivieren + setDarkMode(true); + } + }); + + ImageButton lightMode = rootView.findViewById(R.id.imageButton2); + + lightMode.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // Den Dark Mode programmgesteuert aktivieren + setDarkMode(false); + } + }); + deButton.setOnClickListener(new View.OnClickListener() { @Override @@ -112,12 +135,38 @@ public class DecideFragment extends Fragment { configuration.setLocale(locale); resources.updateConfiguration(configuration, resources.getDisplayMetrics()); - // Hier müssen Sie den Fragments-Wechsel aktualisieren, um sicherzustellen, - // dass die Ansichten und Texte entsprechend der geänderten Sprache aktualisiert werden - FragmentManager fragmentManager = requireActivity().getSupportFragmentManager(); - FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); - fragmentTransaction.replace(R.id.container, new DecideFragment()); - fragmentTransaction.commit(); + recreateActivity(); // Aktivität neu starten, um die Änderungen anzuwenden + } + + private void setDarkMode(boolean enabled) { + + if (enabled) { + + Log.d("myTag", "YES"); + // Dark Mode aktivieren + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + } else { + Log.d("myTag", "NO "); + // Dark Mode deaktivieren + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + } + + recreateActivity(); // Aktivität neu starten, um den Dark Mode anzuwenden + + } + + private void recreateActivity() { + // Aktivität neu starten + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + requireActivity().recreate(); + } else { + Intent intent = requireActivity().getIntent(); + intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); + requireActivity().finish(); + requireActivity().overridePendingTransition(0, 0); + startActivity(intent); + requireActivity().overridePendingTransition(0, 0); + } } } \ No newline at end of file diff --git a/app/src/main/res/drawable/darkmode.png b/app/src/main/res/drawable/darkmode.png new file mode 100644 index 0000000000000000000000000000000000000000..7e8436a0bd8ebb2007731c46e352e36c546e587a Binary files /dev/null and b/app/src/main/res/drawable/darkmode.png differ diff --git a/app/src/main/res/drawable/lightmode.png b/app/src/main/res/drawable/lightmode.png new file mode 100644 index 0000000000000000000000000000000000000000..a810a1c35d5888c1a3fe734cc8f79c0986cc2b09 Binary files /dev/null and b/app/src/main/res/drawable/lightmode.png differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 06ea6cae22113f243efe317f984f7742418737e8..bad97d63dc8bac143e499f7ff3a349305c72700f 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -3,8 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/container" android:layout_width="match_parent" - android:layout_height="match_parent" - android:paddingTop="?attr/actionBarSize"> + android:layout_height="match_parent"> <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/nav_view" diff --git a/app/src/main/res/layout/fragment_decide.xml b/app/src/main/res/layout/fragment_decide.xml index f92c6142f8d916519adb6d443c34487a39aaff5c..8fda7891c84f99a87c2adad79054e3d376b2205f 100644 --- a/app/src/main/res/layout/fragment_decide.xml +++ b/app/src/main/res/layout/fragment_decide.xml @@ -68,5 +68,26 @@ app:layout_constraintStart_toEndOf="@+id/DelivererButton" app:layout_constraintTop_toBottomOf="@+id/DelivererButton" /> + <ImageButton + android:id="@+id/imageButton" + android:layout_width="87dp" + android:layout_height="83dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:scaleType="fitCenter" + android:src="@drawable/darkmode" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <ImageButton + android:id="@+id/imageButton2" + android:layout_width="87dp" + android:layout_height="83dp" + android:layout_marginTop="16dp" + android:scaleType="fitCenter" + android:src="@drawable/lightmode" + app:layout_constraintEnd_toStartOf="@+id/imageButton" + app:layout_constraintTop_toTopOf="parent" /> + </androidx.constraintlayout.widget.ConstraintLayout> </FrameLayout> \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index f8c6127d327620c93d2b2d00342a68e97b98a48d..b1361292d171b5a83123e0ff19fd74bf1b57e900 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -7,4 +7,5 @@ <color name="teal_700">#FF018786</color> <color name="black">#FF000000</color> <color name="white">#FFFFFFFF</color> + <color name="dark_grey">#5A5A5A</color> </resources> \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index e6d0eed14c71f7ed6149c0a30780f1e7c7f582a4..b05bf7a9605ecc50030f4f398388c09d05b11b01 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -5,6 +5,7 @@ <item name="colorPrimary">@color/purple_500</item> <item name="colorPrimaryVariant">@color/purple_700</item> <item name="colorOnPrimary">@color/white</item> + <!-- Secondary brand color. --> <item name="colorSecondary">@color/teal_200</item> <item name="colorSecondaryVariant">@color/teal_700</item> @@ -12,5 +13,6 @@ <!-- Status bar color. --> <item name="android:statusBarColor">?attr/colorPrimaryVariant</item> <!-- Customize your theme here. --> + </style> </resources> \ No newline at end of file