[Wi-Fi] Create WifiNetworkDetailsFragment related version 2 files for WifiTracker2 development
Create below version 2 files for WifiTracker2 development, we can check the feature flag only a few times and easily remove version 1 files in the future. src/com/android/settings/wifi/details2/ src/com/android/settings/wifi/savedaccesspoints2/ tests/robotests/src/com/android/settings/wifi/details2/ tests/robotests/src/com/android/settings/wifi/savedaccesspoints2/ Bug: 143326832 Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi.details2 make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi.savedaccesspoints2 Change-Id: I4d2caf1ce313871605252395764b02747240f217
This commit is contained in:
@@ -0,0 +1,167 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.details2;
|
||||
|
||||
import static com.android.settings.wifi.WifiSettings.WIFI_DIALOG_ID;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.wifi.WifiConfigUiBase;
|
||||
import com.android.settings.wifi.WifiDialog;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.wifi.AccessPoint;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Detail page for the currently connected wifi network.
|
||||
*
|
||||
* <p>The AccessPoint should be saved to the intent Extras when launching this class via
|
||||
* {@link AccessPoint#saveWifiState(Bundle)} in order to properly render this page.
|
||||
*/
|
||||
public class WifiNetworkDetailsFragment2 extends DashboardFragment implements
|
||||
WifiDialog.WifiDialogListener {
|
||||
|
||||
private static final String TAG = "WifiNetworkDetailsFrg2";
|
||||
|
||||
private AccessPoint mAccessPoint;
|
||||
private WifiDetailPreferenceController2 mWifiDetailPreferenceController2;
|
||||
private List<WifiDialog.WifiDialogListener> mWifiDialogListeners = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
mAccessPoint = new AccessPoint(context, getArguments());
|
||||
super.onAttach(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetricsCategory() {
|
||||
return SettingsEnums.WIFI_NETWORK_DETAILS;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getLogTag() {
|
||||
return TAG;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getPreferenceScreenResId() {
|
||||
return R.xml.wifi_network_details_fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDialogMetricsCategory(int dialogId) {
|
||||
if (dialogId == WIFI_DIALOG_ID) {
|
||||
return SettingsEnums.DIALOG_WIFI_AP_EDIT;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(int dialogId) {
|
||||
if (getActivity() == null || mWifiDetailPreferenceController2 == null
|
||||
|| mAccessPoint == null) {
|
||||
return null;
|
||||
}
|
||||
return WifiDialog.createModal(getActivity(), this, mAccessPoint,
|
||||
WifiConfigUiBase.MODE_MODIFY);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
MenuItem item = menu.add(0, Menu.FIRST, 0, R.string.wifi_modify);
|
||||
item.setIcon(com.android.internal.R.drawable.ic_mode_edit);
|
||||
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem menuItem) {
|
||||
switch (menuItem.getItemId()) {
|
||||
case Menu.FIRST:
|
||||
if (!mWifiDetailPreferenceController2.canModifyNetwork()) {
|
||||
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getContext(),
|
||||
RestrictedLockUtilsInternal.getDeviceOwner(getContext()));
|
||||
} else {
|
||||
showDialog(WIFI_DIALOG_ID);
|
||||
}
|
||||
return true;
|
||||
default:
|
||||
return super.onOptionsItemSelected(menuItem);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
|
||||
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||
final ConnectivityManager cm = context.getSystemService(ConnectivityManager.class);
|
||||
|
||||
mWifiDetailPreferenceController2 = WifiDetailPreferenceController2.newInstance(
|
||||
mAccessPoint,
|
||||
cm,
|
||||
context,
|
||||
this,
|
||||
new Handler(Looper.getMainLooper()), // UI thread.
|
||||
getSettingsLifecycle(),
|
||||
context.getSystemService(WifiManager.class),
|
||||
mMetricsFeatureProvider);
|
||||
|
||||
controllers.add(mWifiDetailPreferenceController2);
|
||||
controllers.add(new AddDevicePreferenceController2(context).init(mAccessPoint));
|
||||
|
||||
final WifiMeteredPreferenceController2 meteredPreferenceController2 =
|
||||
new WifiMeteredPreferenceController2(context, mAccessPoint.getConfig());
|
||||
controllers.add(meteredPreferenceController2);
|
||||
|
||||
final WifiPrivacyPreferenceController2 privacyController2 =
|
||||
new WifiPrivacyPreferenceController2(context);
|
||||
privacyController2.setWifiConfiguration(mAccessPoint.getConfig());
|
||||
privacyController2.setIsEphemeral(mAccessPoint.isEphemeral());
|
||||
privacyController2.setIsPasspoint(
|
||||
mAccessPoint.isPasspoint() || mAccessPoint.isPasspointConfig());
|
||||
controllers.add(privacyController2);
|
||||
|
||||
// Sets callback listener for wifi dialog.
|
||||
mWifiDialogListeners.add(mWifiDetailPreferenceController2);
|
||||
mWifiDialogListeners.add(privacyController2);
|
||||
mWifiDialogListeners.add(meteredPreferenceController2);
|
||||
|
||||
return controllers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSubmit(WifiDialog dialog) {
|
||||
for (WifiDialog.WifiDialogListener listener : mWifiDialogListeners) {
|
||||
listener.onSubmit(dialog);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user