Sprachauswahl funktioniert jetzt

This commit is contained in:
JG-Cody 2021-05-31 22:27:43 +02:00
parent e673ca3fb0
commit ba63df8864
6 changed files with 135 additions and 71 deletions

View File

@ -1,53 +1,41 @@
package de.jg_cody.Teraplex; package de.jg_cody.Teraplex;
import android.content.Context; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.Color;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.preference.Preference;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.style.ForegroundColorSpan; import android.text.style.ForegroundColorSpan;
import android.util.Log; import android.util.Log;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; 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 android.widget.Toast;
import com.google.android.material.floatingactionbutton.FloatingActionButton; import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.navigation.NavigationView; import androidx.appcompat.widget.Toolbar;
import com.google.android.material.snackbar.Snackbar; import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.widget.AppCompatSpinner;
import androidx.fragment.app.FragmentTransaction; import androidx.fragment.app.FragmentTransaction;
import androidx.navigation.NavController; import androidx.navigation.NavController;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration; import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI; 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 com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.List; 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.Credits.CreditsFragment;
import de.jg_cody.Teraplex.ui.Einstellungen.EinstellungenFragment; import de.jg_cody.Teraplex.ui.Einstellungen.EinstellungenFragment;
import de.jg_cody.Teraplex.ui.Konsole.KonsoleFragment; import de.jg_cody.Teraplex.ui.Konsole.KonsoleFragment;
import de.jg_cody.Teraplex.ui.home.HomeFragment; import de.jg_cody.Teraplex.ui.home.HomeFragment;
import static java.security.AccessController.getContext;
public class MainActivity extends AppCompatActivity implements AddButtonDialog.AddButtonDialogListener { public class MainActivity extends AppCompatActivity implements AddButtonDialog.AddButtonDialogListener {
@ -62,6 +50,14 @@ public class MainActivity extends AppCompatActivity implements AddButtonDialog.A
.commit(); .commit();
NonDeveloperMessage.maybeShow(this);*/ 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); setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar); Toolbar toolbar = findViewById(R.id.toolbar);
@ -73,6 +69,7 @@ public class MainActivity extends AppCompatActivity implements AddButtonDialog.A
openDialog1(); openDialog1();
} }
}); });
FloatingActionButton removefab = findViewById(R.id.removebutton_fab); FloatingActionButton removefab = findViewById(R.id.removebutton_fab);
removefab.setOnClickListener(new View.OnClickListener() { removefab.setOnClickListener(new View.OnClickListener() {
@Override @Override
@ -106,6 +103,7 @@ public class MainActivity extends AppCompatActivity implements AddButtonDialog.A
} }
/*static public class DemoPreferenceFragment extends PreferenceFragmentCompat { /*static public class DemoPreferenceFragment extends PreferenceFragmentCompat {
@Override @Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
@ -159,6 +157,7 @@ public class MainActivity extends AppCompatActivity implements AddButtonDialog.A
AddButtonsDialog AddButtonsDialog = new AddButtonsDialog(); AddButtonsDialog AddButtonsDialog = new AddButtonsDialog();
AddButtonsDialog.show(getSupportFragmentManager(), "example dialog"); AddButtonsDialog.show(getSupportFragmentManager(), "example dialog");
} }
public void openDialog2() { public void openDialog2() {
AddButtonDialog AddButtonDialog = new AddButtonDialog(); AddButtonDialog AddButtonDialog = new AddButtonDialog();
AddButtonDialog.show(getSupportFragmentManager(), "example dialog"); AddButtonDialog.show(getSupportFragmentManager(), "example dialog");

View File

@ -2,6 +2,8 @@ package de.jg_cody.Teraplex.ui.Einstellungen;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -18,8 +20,12 @@ import androidx.lifecycle.ViewModelProvider;
import com.rarepebble.colorpicker.ColorPickerView; import com.rarepebble.colorpicker.ColorPickerView;
import java.util.Locale;
import de.jg_cody.Teraplex.R; import de.jg_cody.Teraplex.R;
import static android.content.Context.MODE_PRIVATE;
public class EinstellungenFragment extends Fragment { public class EinstellungenFragment extends Fragment {
private EinstellungenViewModel einstellungenViewModel; 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; 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();
}
} }

View File

@ -15,10 +15,10 @@
android:src="@drawable/background" android:src="@drawable/background"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="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_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" /> app:layout_constraintVertical_bias="1.0" />
<TextView <TextView
android:id="@+id/text_einstellungen" android:id="@+id/text_einstellungen"
@ -38,7 +38,7 @@
android:id="@+id/background" android:id="@+id/background"
android:layout_width="193dp" android:layout_width="193dp"
android:layout_height="33dp" android:layout_height="33dp"
android:layout_marginTop="100dp" android:layout_marginTop="50dp"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:text="HINTERGRUND" android:text="HINTERGRUND"
android:textAlignment="center" android:textAlignment="center"
@ -66,12 +66,12 @@
android:id="@+id/sprache" android:id="@+id/sprache"
android:layout_width="193dp" android:layout_width="193dp"
android:layout_height="33dp" android:layout_height="33dp"
android:layout_marginTop="50dp"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:text="SPRACHE" android:text="SPRACHE"
android:textAlignment="center" android:textAlignment="center"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textSize="20dp" android:textSize="20dp"
app:layout_constraintBottom_toTopOf="@+id/reset_settings"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/background" /> app:layout_constraintTop_toBottomOf="@+id/background" />
@ -80,15 +80,15 @@
android:id="@+id/reset_settings" android:id="@+id/reset_settings"
android:layout_width="225dp" android:layout_width="225dp"
android:layout_height="51dp" android:layout_height="51dp"
android:layout_marginTop="50dp"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:text="EINSTELLUNGEN ZURÜCKSETZEN" android:text="EINSTELLUNGEN ZURÜCKSETZEN"
android:textAlignment="center" android:textAlignment="center"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textSize="20dp" android:textSize="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/spSprachen" /> app:layout_constraintTop_toTopOf="@+id/Background" />
<TextView <TextView
android:id="@+id/nightmode" android:id="@+id/nightmode"
@ -104,33 +104,6 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button_reset" /> app:layout_constraintTop_toBottomOf="@+id/button_reset" />
<Spinner
android:id="@+id/spThemes"
android:layout_width="150dp"
android:layout_height="35dp"
android:layout_alignParentRight="true"
android:background="@color/purple_200"
android:entries="@array/theme_array"
android:spinnerMode="dialog"
android:textSize="20dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/colors" />
<Spinner
android:id="@+id/spSprachen"
android:layout_width="150dp"
android:layout_height="35dp"
android:layout_alignParentRight="true"
android:background="@color/purple_200"
android:entries="@array/language_array"
android:spinnerMode="dialog"
android:textSize="20dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sprache" />
<Button <Button
android:id="@+id/button_reset" android:id="@+id/button_reset"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -148,13 +121,23 @@
android:text="COLORPICKER" android:text="COLORPICKER"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/spThemes" /> app:layout_constraintTop_toBottomOf="@+id/colors" />
<Button <Button
android:id="@+id/button_pickimage" android:id="@+id/button_language"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SPRACHE"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sprache" />
<Button
android:id="@+id/button_pickimage2"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="GRAFIK WÄHLEN" android:text="GRAFIK WÄHLEN"
app:layout_constraintBottom_toTopOf="@+id/sprache"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498" app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Teraplex</string>
</resources>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Teraplex</string>
<string name="navigation_drawer_open">NAVIGATION ÖFFNEN</string>
<string name="navigation_drawer_close">NAVIGATION SCHLIESSEN</string>
<string name="nav_header_title">ANDROID STUDIO</string>
<string name="login_ipadresse">IP-ADRESSE</string>
<string name="login_benutzername">BENUTZERNAME</string>
<string name="login_passwort">PASSWORT</string>
<string name="menu_home">HOME</string>
<string name="menu_konsole">KONSOLE</string>
<string name="menu_kueche">KÜCHE</string>
<string name="menu_zeitsteuerung">AUSLOGGEN</string>
<string name="menu_schlafzimmer">SCHLAFZIMMER</string>
<string name="menu_flur">FLUR</string>
<string name="menu_küche">KÜCHE</string>
<string name="menu_einstellungen">EINSTELLUNG</string>
<string name="menu_frage">FRAGE</string>
<string name="menu_credits">CREDITS</string>
<string name="menu_logout">AUSLOGGEN</string>
<string name="menu_sprache">SPRACHE</string>
<string name="menu_schliessen">SCHLIESSEN</string>
<string name="colorpicker">WÄHLE DEINE FARBE</string>
<string name="ok">OK</string>
<string name="action_logout">AUSLOGGEN</string>
</resources>

View File

@ -11,26 +11,26 @@
<string name="SSH_Command">Navigation header</string> <string name="SSH_Command">Navigation header</string>
<string name="action_logout">logout</string> <string name="action_logout">logout</string>
<string name="login_ipadresse">IP-ADRESSE</string> <string name="login_ipadresse">IP-ADDRESS</string>
<string name="login_benutzername">BENUTZERNAME</string> <string name="login_benutzername">USERNAME</string>
<string name="login_passwort">PASSWORT</string> <string name="login_passwort">PASSWORD</string>
<string name="menu_home">HOME</string> <string name="menu_home">HOME</string>
<string name="menu_konsole">KONSOLE</string> <string name="menu_konsole">CONSOLE</string>
<string name="menu_kueche">KÜCHE</string> <string name="menu_kueche">KITCHEN</string>
<string name="menu_zeitsteuerung">ZEITSTEUERUNG</string> <string name="menu_zeitsteuerung">TIME-CONTROL</string>
<string name="menu_schlafzimmer">SCHLAFZIMMER</string> <string name="menu_schlafzimmer">BEDROOM</string>
<string name="menu_flur">FLUR</string> <string name="menu_flur">HALL</string>
<string name="menu_küche">KÜCHE</string> <string name="menu_küche">KITCHEN</string>
<string name="menu_einstellungen">EINSTELLUNGEN</string> <string name="menu_einstellungen">SETTINGS</string>
<string name="menu_frage">FRAGE</string> <string name="menu_frage">QUESTION</string>
<string name="menu_credits">CREDITS</string> <string name="menu_credits">CREDITS</string>
<string name="menu_logout">LOGOUT</string> <string name="menu_logout">LOGOUT</string>
<string name="menu_sprache">SPRACHE</string> <string name="menu_sprache">LANGUAGE</string>
<string name="menu_schliessen">SCHLIESSEN</string> <string name="menu_schliessen">CLOSE</string>
<string name="colorpicker">WÄHLE DEINE FARBE</string> <string name="colorpicker">CHOOSE YOUR COLOR</string>
<string name="ok">OK</string> <string name="ok">OK</string>
<string-array name="theme_array"> <string-array name="theme_array">