fix crash from language change

This commit is contained in:
CiufudeanDani 2022-04-19 13:07:16 +03:00
parent 0e9ae233de
commit ad5b4327d1
2 changed files with 52 additions and 102 deletions

View File

@ -2,16 +2,13 @@ package com.safemobile.safedispatch;
import java.util.Locale; import java.util.Locale;
/** fix import */
import com.safemobile.adapters.LanguageSpinnerAdapter; import com.safemobile.adapters.LanguageSpinnerAdapter;
import com.safemobile.lib.AppParams; import com.safemobile.lib.AppParams;
import com.safemobile.lib.SM; import com.safemobile.lib.SM;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.os.Bundle; import android.os.Bundle;
@ -73,52 +70,49 @@ public class SetupActivity extends Activity {
setContentView(R.layout.tabsetup); setContentView(R.layout.tabsetup);
layoutSpinnerLanguage = (LinearLayout) findViewById(R.id.layoutSpinnerLanguage); layoutSpinnerLanguage = findViewById(R.id.layoutSpinnerLanguage);
layoutSpinnerLanguage.setOnClickListener(LanguageListener); layoutSpinnerLanguage.setOnClickListener(LanguageListener);
imageLanguage = (ImageView) findViewById(R.id.imageLanguage); imageLanguage = findViewById(R.id.imageLanguage);
textViewSpinnerLanguage = (TextView) findViewById(R.id.textViewSpinnerLanguage); textViewSpinnerLanguage = findViewById(R.id.textViewSpinnerLanguage);
// change spinner icon and selected language according to tmpLanguage // change spinner icon and selected language according to tmpLanguage
if (AppParams.LANGUAGETMP.equals("en")){ switch (AppParams.LANGUAGETMP) {
imageLanguage.setImageResource(R.drawable.en); case "en":
textViewSpinnerLanguage.setText(getString(R.string.en)); imageLanguage.setImageResource(R.drawable.en);
} textViewSpinnerLanguage.setText(getString(R.string.en));
else if (AppParams.LANGUAGETMP.equals("de")){ break;
imageLanguage.setImageResource(R.drawable.de); case "de":
textViewSpinnerLanguage.setText(getString(R.string.de)); imageLanguage.setImageResource(R.drawable.de);
} textViewSpinnerLanguage.setText(getString(R.string.de));
else if (AppParams.LANGUAGETMP.equals("tr")){ break;
imageLanguage.setImageResource(R.drawable.tr); case "tr":
textViewSpinnerLanguage.setText(getString(R.string.tr)); imageLanguage.setImageResource(R.drawable.tr);
} textViewSpinnerLanguage.setText(getString(R.string.tr));
else if (AppParams.LANGUAGETMP.equals("ro")){ break;
imageLanguage.setImageResource(R.drawable.ro); case "ro":
textViewSpinnerLanguage.setText(getString(R.string.ro)); imageLanguage.setImageResource(R.drawable.ro);
} textViewSpinnerLanguage.setText(getString(R.string.ro));
else if(AppParams.LANGUAGETMP.equals("es")){ break;
imageLanguage.setImageResource(R.drawable.es); case "es":
textViewSpinnerLanguage.setText(getString(R.string.es)); imageLanguage.setImageResource(R.drawable.es);
} textViewSpinnerLanguage.setText(getString(R.string.es));
else if(AppParams.LANGUAGETMP.equals("ru")){ break;
imageLanguage.setImageResource(R.drawable.ru); case "ru":
textViewSpinnerLanguage.setText(getString(R.string.ru)); imageLanguage.setImageResource(R.drawable.ru);
textViewSpinnerLanguage.setText(getString(R.string.ru));
break;
} }
// get visual elements // get visual elements
appServerIP = (EditText) findViewById(R.id.appServerIP); appServerIP = findViewById(R.id.appServerIP);
appServerPort = (EditText) findViewById(R.id.appServerPort); appServerPort = findViewById(R.id.appServerPort);
// hide path layout used only on Pad/Pod // hide path layout used only on Pad/Pod
layoutPath = (LinearLayout) findViewById(R.id.layoutPath); layoutPath = findViewById(R.id.layoutPath);
layoutPath.setVisibility(View.GONE); layoutPath.setVisibility(View.GONE);
btn_save = (Button) findViewById(R.id.btn_save); btn_save = findViewById(R.id.btn_save);
btn_save.setOnClickListener(new OnClickListener() { btn_save.setOnClickListener(v -> saveSettings());
@Override
public void onClick(View v) {
saveSettings();
}
});
// set values // set values
if(!AppParams.IP.equals("n/a")) if(!AppParams.IP.equals("n/a"))
@ -134,46 +128,31 @@ public class SetupActivity extends Activity {
AlertDialog.Builder builder = new AlertDialog.Builder(this); AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(getString(R.string.exit)) builder.setMessage(getString(R.string.exit))
.setCancelable(false) .setCancelable(false)
.setNeutralButton(getString(R.string.logout), new DialogInterface.OnClickListener() { .setNeutralButton(getString(R.string.logout), (dialog, id) -> parentTab.whenBackPressed(AppParams.ActivityResult.logout))
public void onClick(DialogInterface dialog, int id) { .setPositiveButton(getString(R.string.ext), (dialog, id) -> parentTab.whenBackPressed(AppParams.ActivityResult.exit))
parentTab.whenBackPressed(AppParams.ActivityResult.logout); .setNegativeButton(getString(R.string.cancel), (dialog, id) -> dialog.cancel());
}
})
.setPositiveButton(getString(R.string.ext), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
parentTab.whenBackPressed(AppParams.ActivityResult.exit);
}
})
.setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create(); AlertDialog alert = builder.create();
alert.show(); alert.show();
} }
// listener when select language pressed // listener when select language pressed
private OnClickListener LanguageListener = new OnClickListener() { private final OnClickListener LanguageListener = new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
final LanguageSpinnerAdapter adapter = new LanguageSpinnerAdapter(context, android.R.layout.simple_spinner_item, Languages, getLayoutInflater()); final LanguageSpinnerAdapter adapter = new LanguageSpinnerAdapter(context, android.R.layout.simple_spinner_item, Languages, getLayoutInflater());
AlertDialog.Builder builder = new AlertDialog.Builder(context); AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(getString(R.string.selLanguage)); builder.setTitle(getString(R.string.selLanguage));
builder.setAdapter(adapter , new DialogInterface.OnClickListener() { builder.setAdapter(adapter , (dialog, which) -> {
@Override textViewSpinnerLanguage.setText(adapter.getItem(which));
public void onClick(DialogInterface dialog, int which) { switch(which)
textViewSpinnerLanguage.setText(adapter.getItem(which)); {
switch(which) case 0: imageLanguage.setImageResource(R.drawable.en); AppParams.LANGUAGETMP = "en"; onCreate(savedInstanceState); parentTab.changeLanguage(); break;
{ case 1: imageLanguage.setImageResource(R.drawable.de); AppParams.LANGUAGETMP = "de"; onCreate(savedInstanceState); parentTab.changeLanguage(); break;
case 0: imageLanguage.setImageResource(R.drawable.en); AppParams.LANGUAGETMP = "en"; onCreate(savedInstanceState); parentTab.changeLanguage(); break; case 2: imageLanguage.setImageResource(R.drawable.tr); AppParams.LANGUAGETMP = "tr"; onCreate(savedInstanceState); parentTab.changeLanguage(); break;
case 1: imageLanguage.setImageResource(R.drawable.de); AppParams.LANGUAGETMP = "de"; onCreate(savedInstanceState); parentTab.changeLanguage(); break; case 3: imageLanguage.setImageResource(R.drawable.ro); AppParams.LANGUAGETMP = "ro"; onCreate(savedInstanceState); parentTab.changeLanguage(); break;
case 2: imageLanguage.setImageResource(R.drawable.tr); AppParams.LANGUAGETMP = "tr"; onCreate(savedInstanceState); parentTab.changeLanguage(); break; case 4: imageLanguage.setImageResource(R.drawable.ru); AppParams.LANGUAGETMP = "ru"; onCreate(savedInstanceState); parentTab.changeLanguage(); break;
case 3: imageLanguage.setImageResource(R.drawable.ro); AppParams.LANGUAGETMP = "ro"; onCreate(savedInstanceState); parentTab.changeLanguage(); break; case 5: imageLanguage.setImageResource(R.drawable.es); AppParams.LANGUAGETMP = "es"; onCreate(savedInstanceState); parentTab.changeLanguage(); break;
case 4: imageLanguage.setImageResource(R.drawable.ru); AppParams.LANGUAGETMP = "ru"; onCreate(savedInstanceState); parentTab.changeLanguage(); break;
case 5: imageLanguage.setImageResource(R.drawable.es); AppParams.LANGUAGETMP = "es"; onCreate(savedInstanceState); parentTab.changeLanguage(); break;
}
} }
}); });
@ -215,12 +194,12 @@ public class SetupActivity extends Activity {
String oldIP = AppParams.IP; String oldIP = AppParams.IP;
String oldPort = AppParams.PORT; String oldPort = AppParams.PORT;
editor.putString("ip", appServerIP.getText().toString()); editor.putString("ip", appServerIP.getText().toString());
editor.putString("port", appServerPort.getText().toString()); editor.putString("port", appServerPort.getText().toString());
editor.putString("language", AppParams.LANGUAGETMP); editor.putString("language", AppParams.LANGUAGETMP);
Boolean result = editor.commit(); boolean result = editor.commit();
// saved completed // saved completed
if(result) if (result)
Toast.makeText(context, "Settings saved successfully.", Toast.LENGTH_LONG).show(); Toast.makeText(context, "Settings saved successfully.", Toast.LENGTH_LONG).show();
else else
Toast.makeText(context, "Settings failed to complete!", Toast.LENGTH_LONG).show(); Toast.makeText(context, "Settings failed to complete!", Toast.LENGTH_LONG).show();
@ -265,31 +244,4 @@ public class SetupActivity extends Activity {
//showDialog(result); //showDialog(result);
} }
public void showDialog(Boolean result)
{
Dialog dialog = new Dialog(context);
if(result)
dialog.setTitle("Save Completed");
else
dialog.setTitle("Save Failed");
dialog.setContentView(R.layout.dialog);
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
TextView text = (TextView) dialog.findViewById(R.id.text);
ImageView image = (ImageView) dialog.findViewById(R.id.image);
if(result)
{
image.setImageResource(R.drawable.error);
text.setText("Settings saved successfully.");
}
else
{
image.setImageResource(R.drawable.error);
text.setText("Settings failed to complete!");
}
dialog.show();
}
} }

View File

@ -737,8 +737,6 @@ public class TabLayoutActivity extends AbstractSDParentActivity {
getBaseContext().getResources().updateConfiguration(configuration, getBaseContext().getResources().updateConfiguration(configuration,
getBaseContext().getResources().getDisplayMetrics()); getBaseContext().getResources().getDisplayMetrics());
if (getHistoryActivity() != null)
getHistoryActivity().onCreate(getHistoryActivity().savedInstanceState);
// change UI for RadioActivity and MessageActivity // change UI for RadioActivity and MessageActivity
if (getRadioActivity() != null) if (getRadioActivity() != null)
getRadioActivity().onCreate(getRadioActivity().savedInstanceState); getRadioActivity().onCreate(getRadioActivity().savedInstanceState);