From ba63df886424d68437329dc3a1336241a4e72a2d Mon Sep 17 00:00:00 2001 From: JG-Cody Date: Mon, 31 May 2021 22:27:43 +0200 Subject: [PATCH] Sprachauswahl funktioniert jetzt --- .../de/jg_cody/Teraplex/MainActivity.java | 43 ++++++++------- .../Einstellungen/EinstellungenFragment.java | 52 ++++++++++++++++++ .../res/layout/fragment_einstellungen.xml | 53 +++++++------------ app/src/main/res/values-b+tlh/strings.xml | 4 ++ app/src/main/res/values-de-rDE/strings.xml | 26 +++++++++ app/src/main/res/values/strings.xml | 28 +++++----- 6 files changed, 135 insertions(+), 71 deletions(-) create mode 100644 app/src/main/res/values-b+tlh/strings.xml create mode 100644 app/src/main/res/values-de-rDE/strings.xml diff --git a/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java b/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java index 8a88052..8afb0f3 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java +++ b/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java @@ -1,53 +1,41 @@ package de.jg_cody.Teraplex; -import android.content.Context; +import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; +import android.content.res.Configuration; import android.content.res.Resources; -import android.graphics.Color; import android.net.Uri; import android.os.Build; import android.os.Bundle; -import android.preference.Preference; import android.text.SpannableString; import android.text.style.ForegroundColorSpan; import android.util.Log; import android.util.TypedValue; +import android.view.Menu; import android.view.MenuItem; import android.view.View; -import android.view.Menu; -import android.widget.ArrayAdapter; -import android.widget.Button; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; import android.widget.Toast; -import com.google.android.material.floatingactionbutton.FloatingActionButton; -import com.google.android.material.navigation.NavigationView; -import com.google.android.material.snackbar.Snackbar; - -import androidx.appcompat.widget.AppCompatSpinner; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.drawerlayout.widget.DrawerLayout; import androidx.fragment.app.FragmentTransaction; import androidx.navigation.NavController; import androidx.navigation.Navigation; import androidx.navigation.ui.AppBarConfiguration; import androidx.navigation.ui.NavigationUI; -import androidx.drawerlayout.widget.DrawerLayout; -import androidx.appcompat.app.AppCompatActivity; -import androidx.appcompat.widget.Toolbar; -import java.util.ArrayList; -import java.util.List; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.navigation.NavigationView; + +import java.util.Locale; import de.jg_cody.Teraplex.ui.Credits.CreditsFragment; import de.jg_cody.Teraplex.ui.Einstellungen.EinstellungenFragment; import de.jg_cody.Teraplex.ui.Konsole.KonsoleFragment; import de.jg_cody.Teraplex.ui.home.HomeFragment; -import static java.security.AccessController.getContext; - public class MainActivity extends AppCompatActivity implements AddButtonDialog.AddButtonDialogListener { @@ -62,6 +50,14 @@ public class MainActivity extends AppCompatActivity implements AddButtonDialog.A .commit(); NonDeveloperMessage.maybeShow(this);*/ } + SharedPreferences p = getSharedPreferences("SETTINGS", Activity.MODE_PRIVATE); + String Language = p.getString("My_Lang", ""); + Locale locale = new Locale(Language); + Locale.setDefault(locale); + Configuration config = new Configuration(); + config.locale = locale; + getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); + setContentView(R.layout.activity_main); Toolbar toolbar = findViewById(R.id.toolbar); @@ -73,6 +69,7 @@ public class MainActivity extends AppCompatActivity implements AddButtonDialog.A openDialog1(); } }); + FloatingActionButton removefab = findViewById(R.id.removebutton_fab); removefab.setOnClickListener(new View.OnClickListener() { @Override @@ -106,6 +103,7 @@ public class MainActivity extends AppCompatActivity implements AddButtonDialog.A } + /*static public class DemoPreferenceFragment extends PreferenceFragmentCompat { @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { @@ -159,6 +157,7 @@ public class MainActivity extends AppCompatActivity implements AddButtonDialog.A AddButtonsDialog AddButtonsDialog = new AddButtonsDialog(); AddButtonsDialog.show(getSupportFragmentManager(), "example dialog"); } + public void openDialog2() { AddButtonDialog AddButtonDialog = new AddButtonDialog(); AddButtonDialog.show(getSupportFragmentManager(), "example dialog"); diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenFragment.java index 6676545..2835c63 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenFragment.java @@ -2,6 +2,8 @@ package de.jg_cody.Teraplex.ui.Einstellungen; import android.app.AlertDialog; import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.content.res.Configuration; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -18,8 +20,12 @@ import androidx.lifecycle.ViewModelProvider; import com.rarepebble.colorpicker.ColorPickerView; +import java.util.Locale; + import de.jg_cody.Teraplex.R; +import static android.content.Context.MODE_PRIVATE; + public class EinstellungenFragment extends Fragment { private EinstellungenViewModel einstellungenViewModel; @@ -56,7 +62,53 @@ public class EinstellungenFragment extends Fragment { } } }); + Button Language = root.findViewById(R.id.button_language); + Language.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + showChangeLanguageDialog(); + + } + }); + return root; } + private void showChangeLanguageDialog() { + final String[] listItems = {"GERMAN", "ENGLISCH", "KLINGONISCH"}; + AlertDialog.Builder mBuilder = new AlertDialog.Builder(getContext()); + mBuilder.setTitle("CHOOSE LANGUAGE"); + mBuilder.setSingleChoiceItems(listItems, -5, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + if (i == 0) { + setLocale("de"); + startActivity(getActivity().getIntent()); + getActivity().finish(); + } else if (i == 1) { + setLocale("en"); + startActivity(getActivity().getIntent()); + getActivity().finish(); + } else if (i == 2) { + setLocale("tlh"); + startActivity(getActivity().getIntent()); + getActivity().finish(); + } + dialogInterface.dismiss(); + } + }); + AlertDialog mDialog = mBuilder.create(); + mDialog.show(); + } + + private void setLocale(String lang) { + Locale locale = new Locale(lang); + Locale.setDefault(locale); + Configuration config = new Configuration(); + config.locale = locale; + getContext().getResources().updateConfiguration(config, getContext().getResources().getDisplayMetrics()); + SharedPreferences.Editor editor = getContext().getSharedPreferences("SETTINGS", MODE_PRIVATE).edit(); + editor.putString("My_Lang", lang); + editor.apply(); + } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_einstellungen.xml b/app/src/main/res/layout/fragment_einstellungen.xml index d427e14..3dc09bc 100644 --- a/app/src/main/res/layout/fragment_einstellungen.xml +++ b/app/src/main/res/layout/fragment_einstellungen.xml @@ -15,10 +15,10 @@ android:src="@drawable/background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.5" + app:layout_constraintHorizontal_bias="1.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.0" /> + app:layout_constraintVertical_bias="1.0" /> @@ -80,15 +80,15 @@ android:id="@+id/reset_settings" android:layout_width="225dp" android:layout_height="51dp" - android:layout_marginTop="50dp" android:gravity="center_horizontal" android:text="EINSTELLUNGEN ZURÜCKSETZEN" android:textAlignment="center" android:textColor="#FFFFFF" android:textSize="20dp" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/spSprachen" /> + app:layout_constraintTop_toTopOf="@+id/Background" /> - - - -