package com.example.shiburagi.language;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
private final String prefs_key = "language_prefs";
private final String locale_key = "locale";
private static Locale defaultLocale;
@Override
protected void onCreate(Bundle savedInstanceState) {
if (MainActivity.defaultLocale == null)
MainActivity.defaultLocale = Locale.getDefault();
String localeCode = getSharedPreferences(prefs_key, MODE_PRIVATE).getString(locale_key, null);
setLocale(localeCode);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void japaneseLanguage(View view) {
SharedPreferences.Editor editor = getSharedPreferences(prefs_key, MODE_PRIVATE).edit();
editor.putString(locale_key, "ja");
editor.apply();
restart();
}
public void defaultLanguage(View view) {
SharedPreferences.Editor editor = getSharedPreferences(prefs_key, MODE_PRIVATE).edit();
editor.remove(locale_key);
editor.apply();
restart();
}
private void restart(){
startActivity(new Intent(this, MainActivity.class));
finish();
}
private void setLocale(String code) {
Locale locale;
if (code != null)
locale = new Locale(code);
else
locale = MainActivity.defaultLocale;
Locale.setDefault(locale);
Configuration configuration = new Configuration();
configuration.locale = locale;
getBaseContext().getResources().updateConfiguration(
configuration,
getBaseContext().getResources().getDisplayMetrics()
);
}
}