/* IRKitAccessPointSettingFragment.java Copyright (c) 2014 NTT DOCOMO,INC. Released under the MIT license http://opensource.org/licenses/mit-license.php */ package org.deviceconnect.android.deviceplugin.irkit.settings.fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import android.widget.RadioGroup; import org.deviceconnect.android.deviceplugin.irkit.IRKitManager.WiFiSecurityType; import org.deviceconnect.android.deviceplugin.irkit.R; import org.deviceconnect.android.deviceplugin.irkit.network.WiFiUtil; import org.deviceconnect.android.deviceplugin.irkit.settings.activity.IRKitSettingActivity; /** * IRKit が接続するアクセスポイントの SSID、セキュリティー、パスワード等を入力するフラグメント. * @author NTT DOCOMO, INC. */ public class IRKitAccessPointSettingFragment extends IRKitBaseFragment { /** * SSID. */ private static final String KEY_SSID = "ssid"; /** * PASS. */ private static final String KEY_PASS = "pass"; /** * タイプ. */ private static final String KEY_TYPE = "type"; @Override public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) { View root = inflater.inflate(R.layout.irkit_settings_step_2, null); EditText ssidText = (EditText) root.findViewById(R.id.inputSSID); EditText passwordText = (EditText) root.findViewById(R.id.inputPassword); RadioGroup radioGroup = (RadioGroup) root.findViewById(R.id.radioGroupSecurity); int typeId = -1; if (savedInstanceState != null) { ssidText.setText(savedInstanceState.getString(KEY_SSID)); passwordText.setText(savedInstanceState.getString(KEY_PASS)); typeId = savedInstanceState.getInt(KEY_TYPE); } else { IRKitSettingActivity a = (IRKitSettingActivity) getActivity(); String ssid = a.getSSID(); if (ssid == null) { ssid = WiFiUtil.getCurrentSSID(a); } ssidText.setText(ssid); passwordText.setText(a.getPassword()); WiFiSecurityType type = a.getSecType(); switch (type) { case NONE: typeId = R.id.radioButton1; break; case WEP: typeId = R.id.radioButton2; break; case WPA2: default: typeId = R.id.radioButton3; break; } } radioGroup.check(typeId); return root; } @Override public void onDisapper() { super.onDisapper(); IRKitSettingActivity a = (IRKitSettingActivity) getActivity(); if (a == null) { return; } saveInfo(null, a); } /** * 情報を保存する. * * @param outState バンドル * @param activity アクティビティ */ private void saveInfo(final Bundle outState, final IRKitSettingActivity activity) { View root = getView(); if (root == null) { return; } EditText ssidText = (EditText) root.findViewById(R.id.inputSSID); EditText passwordText = (EditText) root.findViewById(R.id.inputPassword); RadioGroup radioGroup = (RadioGroup) root.findViewById(R.id.radioGroupSecurity); if (activity != null) { activity.setSSID(ssidText.getText().toString().trim()); activity.setPassword(passwordText.getText().toString()); WiFiSecurityType type = null; int typeId = radioGroup.getCheckedRadioButtonId(); switch (typeId) { case R.id.radioButton1: type = WiFiSecurityType.NONE; break; case R.id.radioButton2: type = WiFiSecurityType.WEP; break; case R.id.radioButton3: default: type = WiFiSecurityType.WPA2; break; } activity.setSecType(type); } else { outState.putString(KEY_SSID, ssidText.getText().toString().trim()); outState.putString(KEY_TYPE, passwordText.getText().toString()); outState.putInt(KEY_TYPE, radioGroup.getCheckedRadioButtonId()); } } @Override public void onSaveInstanceState(final Bundle outState) { super.onSaveInstanceState(outState); saveInfo(outState, null); } }