|
@@ -0,0 +1,140 @@
|
|
|
+package com.wdkl.app.ncs.callingbed.helper;
|
|
|
+
|
|
|
+import android.app.Activity;
|
|
|
+import android.app.AlertDialog;
|
|
|
+import android.os.Handler;
|
|
|
+import android.util.Log;
|
|
|
+import android.view.Gravity;
|
|
|
+import android.view.LayoutInflater;
|
|
|
+import android.view.View;
|
|
|
+import android.view.Window;
|
|
|
+import android.view.WindowManager;
|
|
|
+import android.widget.AdapterView;
|
|
|
+import android.widget.ArrayAdapter;
|
|
|
+import android.widget.Button;
|
|
|
+import android.widget.RadioButton;
|
|
|
+import android.widget.RadioGroup;
|
|
|
+import android.widget.Spinner;
|
|
|
+import android.widget.Toast;
|
|
|
+
|
|
|
+import com.wdkl.app.ncs.callingbed.R;
|
|
|
+import com.wdkl.app.ncs.callingbed.settings.SettingConfig;
|
|
|
+
|
|
|
+
|
|
|
+public class LanguageSetDialogHelper {
|
|
|
+
|
|
|
+ private static AlertDialog dialog;
|
|
|
+ private static int selectIndex;
|
|
|
+
|
|
|
+ public static void showDialog(final Activity activity) {
|
|
|
+ if (dialog != null && dialog.isShowing()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ final int originIndex = LocaleMangerUtils.getCurrentLocaleIndex();
|
|
|
+ selectIndex = originIndex;
|
|
|
+
|
|
|
+ View contentView = LayoutInflater.from(activity).inflate(R.layout.language_set_dialog, null);
|
|
|
+ AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
|
+ builder.setView(contentView);
|
|
|
+
|
|
|
+ RadioButton btnYes = contentView.findViewById(R.id.rb_language_yes);
|
|
|
+ RadioButton btnNo = contentView.findViewById(R.id.rb_language_no);
|
|
|
+ final int mode = SettingConfig.getLanguageMode(activity);
|
|
|
+ if (mode == 0) {
|
|
|
+ btnYes.setChecked(true);
|
|
|
+ } else {
|
|
|
+ btnNo.setChecked(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ Button buttonCancel = contentView.findViewById(R.id.cancel_button);
|
|
|
+ Button buttonConfirm = contentView.findViewById(R.id.confirm_button);
|
|
|
+ Spinner spinner = contentView.findViewById(R.id.spinner_language_select);
|
|
|
+ ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(activity,
|
|
|
+ R.array.language_list, R.layout.spinner_item);
|
|
|
+ adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
|
+ spinner.setAdapter(adapter);
|
|
|
+ spinner.setSelection(originIndex);
|
|
|
+ spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
|
|
+ @Override
|
|
|
+ public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
|
|
+ Log.d("languageId", "pos: " + position + ", originIndex: " + originIndex);
|
|
|
+ selectIndex = position;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onNothingSelected(AdapterView<?> parent) {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ RadioGroup languageGroup = contentView.findViewById(R.id.group_language_mode);
|
|
|
+ languageGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
|
|
|
+ @Override
|
|
|
+ public void onCheckedChanged(RadioGroup group, int checkedId) {
|
|
|
+ if (checkedId == R.id.rb_language_yes) {
|
|
|
+ SettingConfig.setLanguageMode(activity, 0);
|
|
|
+ } else {
|
|
|
+ SettingConfig.setLanguageMode(activity, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ buttonCancel.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ if (dialog != null) {
|
|
|
+ dialog.dismiss();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ buttonConfirm.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ SettingConfig.setLanguageId(activity, selectIndex);
|
|
|
+
|
|
|
+ if (SettingConfig.getLanguageMode(activity) == 1) {
|
|
|
+ if (selectIndex != originIndex) {
|
|
|
+ Toast.makeText(activity, "restart now...", Toast.LENGTH_LONG).show();
|
|
|
+ new Handler().postDelayed(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ AppUpdateHelper.restartApp(activity);
|
|
|
+ }
|
|
|
+ }, 3000);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ Toast.makeText(activity, "restart now...", Toast.LENGTH_LONG).show();
|
|
|
+ new Handler().postDelayed(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ AppUpdateHelper.restartApp(activity);
|
|
|
+ }
|
|
|
+ }, 3000);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (dialog != null) {
|
|
|
+ dialog.dismiss();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ dialog = builder.create();
|
|
|
+ //dialog.setCanceledOnTouchOutside(false);
|
|
|
+ //dialog.setCancelable(false);
|
|
|
+ dialog.show();
|
|
|
+
|
|
|
+ //设置dialog宽高及位置
|
|
|
+ try {
|
|
|
+ Window window = dialog.getWindow();
|
|
|
+ WindowManager.LayoutParams lp = window.getAttributes();
|
|
|
+ lp.width = 480;
|
|
|
+ lp.height = 420;
|
|
|
+ lp.gravity = Gravity.CENTER;
|
|
|
+ window.setAttributes(lp);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|