/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.wifi;
import com.android.settings.R;
import com.android.settingslib.wifi.AccessPoint;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.os.SystemProperties;
import java.lang.reflect.Field;
class WifiDialog extends AlertDialog implements WifiConfigUiBase {
static final int BUTTON_SUBMIT = DialogInterface.BUTTON_POSITIVE;
static final int BUTTON_FORGET = DialogInterface.BUTTON_NEUTRAL;
private final boolean mEdit;
private final boolean mModify;
private final DialogInterface.OnClickListener mListener;
private final AccessPoint mAccessPoint;
private View mView;
private WifiConfigController mController;
private boolean mHideSubmitButton;
private boolean mHideForgetButton;
public WifiDialog(Context context, DialogInterface.OnClickListener listener,
AccessPoint accessPoint, boolean edit, boolean modify,
boolean hideSubmitButton, boolean hideForgetButton) {
this(context, listener, accessPoint, edit, modify);
mHideSubmitButton = hideSubmitButton;
mHideForgetButton = hideForgetButton;
}
public WifiDialog(Context context, DialogInterface.OnClickListener listener,
AccessPoint accessPoint, boolean edit, boolean modify) {
super(context);
mEdit = edit;
mModify = modify;
mListener = listener;
mAccessPoint = accessPoint;
mHideSubmitButton = false;
mHideForgetButton = false;
}
@Override
public WifiConfigController getController() {
return mController;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
mView = getLayoutInflater().inflate(R.layout.wifi_dialog, null);
setView(mView);
/// M: modify IP to IPv4 @{
modifyIpTitle(mView);
/// @}
setInverseBackgroundForced(true);
mController = new WifiConfigController(this, mView, mAccessPoint, mEdit, mModify);
super.onCreate(savedInstanceState);
String firstCradmnc = SystemProperties.get("persist.sys.ecid.first-mnc","");
String firstCradmcc = SystemProperties.get("persist.sys.ecid.first-mcc","");
try {
if((firstCradmnc.equals("01") && firstCradmcc.equals("525")) || (firstCradmnc.equals("02") && firstCradmcc.equals("525"))){
Field mAlert1 = AlertDialog.class.getDeclaredField("mAlert");
mAlert1.setAccessible(true);
Object alertController1 = mAlert1.get(this);
Field mTitleView1 = alertController1.getClass().getDeclaredField("mTitleView");
mTitleView1.setAccessible(true);
TextView title1 = (TextView) mTitleView1.get(alertController1);
if(title1.getText().toString().equals("Singtel WIFI") && !mAccessPoint.isSaved()){
mController.setEAPMethod(4);
mController.showEapFieldsByMethod(4);
mView.findViewById(R.id.wifi_advanced_toggle).setVisibility(View.GONE);
}
}
// movistart & VIVO start
if(firstCradmnc.equals("00") && firstCradmcc.equals("740")){
Field mAlertMOV = AlertDialog.class.getDeclaredField("mAlert");
mAlertMOV.setAccessible(true);
Object alertControllerMOV = mAlertMOV.get(this);
Field mTitleViewMOV = alertControllerMOV.getClass().getDeclaredField("mTitleView");
mTitleViewMOV.setAccessible(true);
TextView titleMOV = (TextView) mTitleViewMOV.get(alertControllerMOV);
if((titleMOV.getText().toString().equals("MOVISTAR WIFI") || titleMOV.getText().toString().equals("VIVO-WIFI") )&& mAccessPoint.isSaved()){
mController.hideForgetButton();
}
}
// movistart & VIVO end
}catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
if (mHideSubmitButton) {
mController.hideSubmitButton();
//lubo
try {
if((firstCradmnc.equals("01") && firstCradmcc.equals("525")) || (firstCradmnc.equals("02") && firstCradmcc.equals("525"))){
Field mAlert = AlertDialog.class.getDeclaredField("mAlert");
mAlert.setAccessible(true);
Object alertController = mAlert.get(this);
Field mTitleView = alertController.getClass().getDeclaredField("mTitleView");
mTitleView.setAccessible(true);
TextView title = (TextView) mTitleView.get(alertController);
if(title.getText().toString().equals("Singtel WIFI")){
mController.showEapFieldsByMethod(4);
mView.findViewById(R.id.wifi_advanced_toggle).setVisibility(View.GONE);
}
}
}catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} else {
/* During creation, the submit button can be unavailable to determine
* visibility. Right after creation, update button visibility */
mController.enableSubmitIfAppropriate();
}
if (mHideForgetButton) {
mController.hideForgetButton();
}
}
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
mController.updatePassword();
}
@Override
public boolean isEdit() {
return mEdit;
}
@Override
public Button getSubmitButton() {
return getButton(BUTTON_SUBMIT);
}
@Override
public Button getForgetButton() {
return getButton(BUTTON_FORGET);
}
@Override
public Button getCancelButton() {
return getButton(BUTTON_NEGATIVE);
}
@Override
public void setSubmitButton(CharSequence text) {
setButton(BUTTON_SUBMIT, text, mListener);
}
@Override
public void setForgetButton(CharSequence text) {
setButton(BUTTON_FORGET, text, mListener);
}
@Override
public void setCancelButton(CharSequence text) {
setButton(BUTTON_NEGATIVE, text, mListener);
}
/**
* restrict static IP to IPv4
* @param view current view
*/
private void modifyIpTitle(View view) {
TextView ipSettingsView = (TextView) mView.findViewById(R.id.wifi_ip_settings);
ipSettingsView.setText(ipSettingsView.getText().toString().replace("IP", "IPv4"));
TextView ipAddressView = (TextView) mView.findViewById(R.id.wifi_ip_address);
ipAddressView.setText(ipAddressView.getText().toString().replace("IP", "IPv4"));
}
}
一键复制
编辑
Web IDE
原始数据
按行查看
历史