Show "Forget" button for ephemeral networks.

- Move forget button preference handling logic to
WifiDetailPreferenceController
- Remove unnecessary updateInfo call in onResume since
NETWORK_STATE_CHANGED_ACTION is a sticky broadcast
- Populate network state fields and set up initial wifi state
when the Preference is displayed instead of waiting for onResume

Bug: 37751816
Test: m RunSettingsRoboTests && manually tested on device
Change-Id: I509013c72a0d26fc9a3feca564d92a0ab8414d1e
This commit is contained in:
Amin Shaikh
2017-05-02 16:33:37 -07:00
parent efed517a8a
commit dec19d10c2
3 changed files with 128 additions and 91 deletions

View File

@@ -17,17 +17,13 @@ package com.android.settings.wifi.details;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
import android.net.NetworkRequest;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.widget.Button;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.applications.LayoutPreference;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.vpn2.ConnectivityManagerWrapperImpl;
@@ -46,7 +42,6 @@ public class WifiNetworkDetailsFragment extends DashboardFragment {
private static final String TAG = "WifiNetworkDetailsFrg";
private AccessPoint mAccessPoint;
private Button mForgetButton;
private WifiDetailPreferenceController mWifiDetailPreferenceController;
@Override
@@ -55,26 +50,6 @@ public class WifiNetworkDetailsFragment extends DashboardFragment {
super.onAttach(context);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Header Title set automatically from launching Preference
LayoutPreference buttonsPreference = ((LayoutPreference) findPreference(
WifiDetailPreferenceController.KEY_BUTTONS_PREF));
buttonsPreference.setVisible(mWifiDetailPreferenceController.canForgetNetwork());
mForgetButton = (Button) buttonsPreference.findViewById(R.id.left_button);
mForgetButton.setText(R.string.forget);
mForgetButton.setOnClickListener(view -> forgetNetwork());
}
private void forgetNetwork() {
mMetricsFeatureProvider.action(getActivity(), MetricsProto.MetricsEvent.ACTION_WIFI_FORGET);
mWifiDetailPreferenceController.forgetNetwork();
}
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.WIFI_NETWORK_DETAILS;
@@ -100,7 +75,8 @@ public class WifiNetworkDetailsFragment extends DashboardFragment {
this,
new Handler(Looper.getMainLooper()), // UI thread.
getLifecycle(),
context.getSystemService(WifiManager.class));
context.getSystemService(WifiManager.class),
mMetricsFeatureProvider);
ArrayList<PreferenceController> controllers = new ArrayList(1);
controllers.add(mWifiDetailPreferenceController);