kopia lustrzana https://github.com/SP8EBC/MeteoSystem
165 wiersze
5.9 KiB
Java
165 wiersze
5.9 KiB
Java
package cc.pogoda.mobile.meteosystem.activity;
|
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
import android.app.AlertDialog;
|
|
import android.content.DialogInterface;
|
|
import android.os.Bundle;
|
|
import android.text.Editable;
|
|
import android.text.TextWatcher;
|
|
import android.view.View;
|
|
import android.widget.AdapterView;
|
|
import android.widget.ArrayAdapter;
|
|
import android.widget.CompoundButton;
|
|
import android.widget.EditText;
|
|
import android.widget.Spinner;
|
|
import android.widget.Switch;
|
|
import android.widget.TextView;
|
|
|
|
import cc.pogoda.mobile.meteosystem.R;
|
|
import cc.pogoda.mobile.meteosystem.config.AppConfiguration;
|
|
import cc.pogoda.mobile.meteosystem.file.ConfigurationFile;
|
|
|
|
public class SettingsActivity extends AppCompatActivity {
|
|
|
|
Switch windspdUnitSwitch;
|
|
|
|
TextView windspdUnitDisplayTv;
|
|
|
|
ConfigurationFile confFile;
|
|
|
|
Spinner language;
|
|
|
|
EditText enditTextMinutesPeriod;
|
|
|
|
AppCompatActivity act;
|
|
|
|
private static String languageNameFromShort(String shortName) {
|
|
switch (shortName) {
|
|
case "en-rUS": return "English";
|
|
case "pl": return "Polski";
|
|
case "cs": return "Čeština";
|
|
case "uk": return "Українська мова";
|
|
case "ru": return "Русский";
|
|
case "lv": return "Latviešu";
|
|
case "de": return "Deutsch";
|
|
default: return "AUTO";
|
|
}
|
|
}
|
|
|
|
private void updateWindspdUnitTv(boolean b) {
|
|
if (windspdUnitDisplayTv != null) {
|
|
if (b) {
|
|
windspdUnitDisplayTv.setText(R.string.knots_long);
|
|
}
|
|
else {
|
|
windspdUnitDisplayTv.setText(R.string.meters_per_second);
|
|
}
|
|
|
|
confFile.storeToFile();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_settings);
|
|
|
|
confFile = new ConfigurationFile(getBaseContext());
|
|
|
|
act = this;
|
|
|
|
windspdUnitDisplayTv = (TextView) findViewById(R.id.textViewSettingsWindspeedUnitDisp);
|
|
updateWindspdUnitTv(AppConfiguration.replaceMsWithKnots);
|
|
|
|
windspdUnitSwitch = (Switch) findViewById(R.id.switchKnots);
|
|
if (windspdUnitSwitch != null) {
|
|
windspdUnitSwitch.setChecked(AppConfiguration.replaceMsWithKnots);
|
|
windspdUnitSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
|
@Override
|
|
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
|
|
AppConfiguration.replaceMsWithKnots = b;
|
|
|
|
updateWindspdUnitTv(b);
|
|
}
|
|
});
|
|
}
|
|
|
|
enditTextMinutesPeriod = (EditText) findViewById(R.id.editTextNumberSettingsMinTimeRes);
|
|
enditTextMinutesPeriod.setText(Integer.toString(AppConfiguration.decimationPeriod));
|
|
if (enditTextMinutesPeriod != null) {
|
|
enditTextMinutesPeriod.addTextChangedListener(new TextWatcher() {
|
|
@Override
|
|
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
|
if (i2 > 0) {
|
|
try {
|
|
int newValue = Integer.valueOf(String.valueOf(charSequence), 10);
|
|
|
|
if (newValue > 60) {
|
|
newValue = 60;
|
|
|
|
enditTextMinutesPeriod.setText(Integer.toString(newValue));
|
|
}
|
|
|
|
AppConfiguration.decimationPeriod = newValue;
|
|
|
|
confFile.storeToFile();
|
|
}
|
|
catch (NumberFormatException e) {
|
|
AppConfiguration.decimationPeriod = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void afterTextChanged(Editable editable) {
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
language = (Spinner) findViewById(R.id.spinnerSettingsLanguage);
|
|
if (language != null) {
|
|
ArrayAdapter spinnerLanguageAdapter = ArrayAdapter.createFromResource(getBaseContext(), R.array.languages, R.layout.spinner_item);
|
|
|
|
int currentLanguagePosition = spinnerLanguageAdapter.getPosition(SettingsActivity.languageNameFromShort(AppConfiguration.locale));
|
|
|
|
language.setAdapter(spinnerLanguageAdapter);
|
|
|
|
// if an item has been found (if no -1 is returned by 'getPosition'
|
|
if (currentLanguagePosition >= 0) {
|
|
language.setSelection(currentLanguagePosition);
|
|
}
|
|
|
|
language.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
|
@Override
|
|
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
|
|
String languageSelected = adapterView.getItemAtPosition(i).toString();
|
|
|
|
switch (languageSelected) {
|
|
case "English": AppConfiguration.locale = "en-rUS"; break;
|
|
case "Polski": AppConfiguration.locale = "pl"; break;
|
|
case "Čeština": AppConfiguration.locale = "cs"; break;
|
|
case "Українська мова": AppConfiguration.locale = "uk"; break;
|
|
case "Русский": AppConfiguration.locale = "ru"; break;
|
|
case "Latviešu": AppConfiguration.locale = "lv"; break;
|
|
case "Deutsch": AppConfiguration.locale = "de"; break;
|
|
default: AppConfiguration.locale = "default";
|
|
}
|
|
|
|
confFile.storeToFile();
|
|
}
|
|
|
|
@Override
|
|
public void onNothingSelected(AdapterView<?> adapterView) {
|
|
|
|
}
|
|
});
|
|
}
|
|
}
|
|
} |