NPE check in VpnSettings.
Bug: 3368545 Also fix a couple of bugs in TetherSettings: Bug: 3090156 - view was being reused without removing from old dialog Bug: 3368493 - preference being removed a second time Change-Id: I8fe513d41e1f3af6994783be5ead69b6bd205711
This commit is contained in:
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package com.android.settings;
|
package com.android.settings;
|
||||||
|
|
||||||
import com.android.settings.bluetooth.BluetoothSettings;
|
|
||||||
import com.android.settings.wifi.WifiApEnabler;
|
import com.android.settings.wifi.WifiApEnabler;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@@ -35,6 +34,10 @@ import android.os.Environment;
|
|||||||
import android.preference.CheckBoxPreference;
|
import android.preference.CheckBoxPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.preference.PreferenceScreen;
|
import android.preference.PreferenceScreen;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.view.ViewParent;
|
||||||
import android.webkit.WebView;
|
import android.webkit.WebView;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@@ -86,8 +89,10 @@ public class TetherSettings extends SettingsPreferenceFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityCreated(Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
super.onActivityCreated(savedInstanceState);
|
Bundle savedInstanceState) {
|
||||||
|
View view = super.onCreateView(inflater, container, savedInstanceState);
|
||||||
|
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
mBluetoothPan = new BluetoothPan(activity);
|
mBluetoothPan = new BluetoothPan(activity);
|
||||||
|
|
||||||
@@ -108,7 +113,6 @@ public class TetherSettings extends SettingsPreferenceFragment {
|
|||||||
boolean wifiAvailable = mWifiRegexs.length != 0;
|
boolean wifiAvailable = mWifiRegexs.length != 0;
|
||||||
boolean bluetoothAvailable = mBluetoothRegexs.length != 0;
|
boolean bluetoothAvailable = mBluetoothRegexs.length != 0;
|
||||||
|
|
||||||
|
|
||||||
if (!usbAvailable || Utils.isMonkeyRunning()) {
|
if (!usbAvailable || Utils.isMonkeyRunning()) {
|
||||||
getPreferenceScreen().removePreference(mUsbTether);
|
getPreferenceScreen().removePreference(mUsbTether);
|
||||||
}
|
}
|
||||||
@@ -144,6 +148,8 @@ public class TetherSettings extends SettingsPreferenceFragment {
|
|||||||
*/
|
*/
|
||||||
mWifiApEnabler = new WifiApEnabler(activity, mEnableWifiAp);
|
mWifiApEnabler = new WifiApEnabler(activity, mEnableWifiAp);
|
||||||
mView = new WebView(activity);
|
mView = new WebView(activity);
|
||||||
|
|
||||||
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -181,7 +187,11 @@ public class TetherSettings extends SettingsPreferenceFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mView.loadUrl(url);
|
mView.loadUrl(url);
|
||||||
|
// Detach from old parent first
|
||||||
|
ViewParent parent = mView.getParent();
|
||||||
|
if (parent != null && parent instanceof ViewGroup) {
|
||||||
|
((ViewGroup) parent).removeView(mView);
|
||||||
|
}
|
||||||
return new AlertDialog.Builder(getActivity())
|
return new AlertDialog.Builder(getActivity())
|
||||||
.setCancelable(true)
|
.setCancelable(true)
|
||||||
.setTitle(R.string.tethering_help_button_text)
|
.setTitle(R.string.tethering_help_button_text)
|
||||||
|
@@ -725,6 +725,8 @@ public class VpnSettings extends SettingsPreferenceFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void startVpnEditor(final VpnProfile profile, boolean add) {
|
private void startVpnEditor(final VpnProfile profile, boolean add) {
|
||||||
|
if (getActivity() == null) return;
|
||||||
|
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
args.putParcelable(KEY_VPN_PROFILE, profile);
|
args.putParcelable(KEY_VPN_PROFILE, profile);
|
||||||
// TODO: Show different titles for add and edit.
|
// TODO: Show different titles for add and edit.
|
||||||
|
Reference in New Issue
Block a user