Merge "Fix testcase error"
diff --git a/res/layout/face_enroll_introduction.xml b/res/layout/face_enroll_introduction.xml
index 4096925..b5f13db 100644
--- a/res/layout/face_enroll_introduction.xml
+++ b/res/layout/face_enroll_introduction.xml
@@ -50,12 +50,14 @@
android:layout_height="wrap_content"
android:layout_weight="1">
- <ImageView
+ <com.google.android.setupdesign.view.IllustrationVideoView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/face_enroll_introduction_animation"
style="@style/SudContentIllustration"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:contentDescription="@null"
- android:src="@drawable/face_enroll_introduction" />
+ app:sudVideo="@raw/face_enroll_introduction_animation" />
</com.google.android.setupdesign.view.FillContentLayout>
diff --git a/res/raw/face_enroll_introduction_animation.mp4 b/res/raw/face_enroll_introduction_animation.mp4
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/raw/face_enroll_introduction_animation.mp4
diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
index 7be441a..671624e 100644
--- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
@@ -173,7 +173,7 @@
// fall through
case WifiManager.NETWORK_STATE_CHANGED_ACTION:
case WifiManager.RSSI_CHANGED_ACTION:
- updateInfo();
+ updateLiveNetworkInfo();
break;
}
}
@@ -336,7 +336,7 @@
mNetwork = mWifiManager.getCurrentNetwork();
mLinkProperties = mConnectivityManager.getLinkProperties(mNetwork);
mNetworkCapabilities = mConnectivityManager.getNetworkCapabilities(mNetwork);
- updateInfo();
+ updateLiveNetworkInfo();
mContext.registerReceiver(mReceiver, mFilter);
mConnectivityManager.registerNetworkCallback(mNetworkRequest, mNetworkCallback,
mHandler);
@@ -353,7 +353,30 @@
mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
}
- private void updateInfo() {
+ // TODO(b/124707751): Refactoring the code later, keeping it currently for stability.
+ protected void updateSavedNetworkInfo() {
+ mSignalStrengthPref.setVisible(false);
+ mFrequencyPref.setVisible(false);
+ mTxLinkSpeedPref.setVisible(false);
+ mRxLinkSpeedPref.setVisible(false);
+
+ // MAC Address Pref
+ mMacAddressPref.setSummary(mWifiConfig.getRandomizedMacAddress().toString());
+
+ // TODO(b/124700353): Change header to data usage chart
+ mEntityHeaderController.setSummary(mAccessPoint.getSettingsSummary())
+ .done(mFragment.getActivity(), true /* rebind */);
+
+ updateIpLayerInfo();
+
+ // Update whether the forget button should be displayed.
+ mButtonsPref.setButton1Visible(canForgetNetwork());
+
+ // TODO(b/124700405): Check if showing share button is fine to added for saved network
+ mButtonsPref.setButton3Visible(false);
+ }
+
+ private void updateLiveNetworkInfo() {
// No need to fetch LinkProperties and NetworkCapabilities, they are updated by the
// callbacks. mNetwork doesn't change except in onResume.
mNetworkInfo = mConnectivityManager.getNetworkInfo(mNetwork);
diff --git a/src/com/android/settings/wifi/details/WifiDetailSavedNetworkPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailSavedNetworkPreferenceController.java
new file mode 100644
index 0000000..3407890
--- /dev/null
+++ b/src/com/android/settings/wifi/details/WifiDetailSavedNetworkPreferenceController.java
@@ -0,0 +1,66 @@
+/*
+ * 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.details;
+
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.wifi.WifiManager;
+import android.os.Handler;
+
+import androidx.fragment.app.Fragment;
+
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.wifi.AccessPoint;
+
+public class WifiDetailSavedNetworkPreferenceController extends WifiDetailPreferenceController {
+
+ WifiDetailSavedNetworkPreferenceController(AccessPoint accessPoint,
+ ConnectivityManager connectivityManager, Context context,
+ Fragment fragment, Handler handler,
+ Lifecycle lifecycle,
+ WifiManager wifiManager,
+ MetricsFeatureProvider metricsFeatureProvider,
+ IconInjector injector) {
+ super(accessPoint, connectivityManager, context, fragment, handler, lifecycle, wifiManager,
+ metricsFeatureProvider, injector);
+ }
+
+ public static WifiDetailSavedNetworkPreferenceController newInstance(
+ AccessPoint accessPoint,
+ ConnectivityManager connectivityManager,
+ Context context,
+ Fragment fragment,
+ Handler handler,
+ Lifecycle lifecycle,
+ WifiManager wifiManager,
+ MetricsFeatureProvider metricsFeatureProvider) {
+ return new WifiDetailSavedNetworkPreferenceController(
+ accessPoint, connectivityManager, context, fragment, handler, lifecycle,
+ wifiManager, metricsFeatureProvider, new IconInjector(context));
+ }
+
+ @Override
+ public void onPause() {
+ // Do nothing
+ }
+
+ @Override
+ public void onResume() {
+ updateSavedNetworkInfo();
+ }
+}
diff --git a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
index ab470bf..fd2e14a 100644
--- a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
+++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
@@ -51,6 +51,9 @@
private static final String TAG = "WifiNetworkDetailsFrg";
+ // Extra for if current fragment shows saved network status or not.
+ public static final String EXTRA_IS_SAVED_NETWORK = "SavedNetwork";
+
private AccessPoint mAccessPoint;
private WifiDetailPreferenceController mWifiDetailPreferenceController;
@@ -122,15 +125,31 @@
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
final ConnectivityManager cm = context.getSystemService(ConnectivityManager.class);
- mWifiDetailPreferenceController = WifiDetailPreferenceController.newInstance(
- mAccessPoint,
- cm,
- context,
- this,
- new Handler(Looper.getMainLooper()), // UI thread.
- getSettingsLifecycle(),
- context.getSystemService(WifiManager.class),
- mMetricsFeatureProvider);
+
+ final boolean isDisplaySavedNetworkDetails =
+ getArguments().getBoolean(EXTRA_IS_SAVED_NETWORK, false /* defaultValue */);
+ if (isDisplaySavedNetworkDetails) {
+ mWifiDetailPreferenceController =
+ WifiDetailSavedNetworkPreferenceController.newInstance(
+ mAccessPoint,
+ cm,
+ context,
+ this,
+ new Handler(Looper.getMainLooper()), // UI thread.
+ getSettingsLifecycle(),
+ context.getSystemService(WifiManager.class),
+ mMetricsFeatureProvider);
+ } else {
+ mWifiDetailPreferenceController = WifiDetailPreferenceController.newInstance(
+ mAccessPoint,
+ cm,
+ context,
+ this,
+ new Handler(Looper.getMainLooper()), // UI thread.
+ getSettingsLifecycle(),
+ context.getSystemService(WifiManager.class),
+ mMetricsFeatureProvider);
+ }
controllers.add(mWifiDetailPreferenceController);
controllers.add(new WifiMeteredPreferenceController(context, mAccessPoint.getConfig()));
diff --git a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java
index 7b2574f..6a9e8a2 100644
--- a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java
+++ b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java
@@ -23,13 +23,18 @@
import android.content.DialogInterface;
import android.net.wifi.WifiManager;
import android.os.Bundle;
+import android.util.FeatureFlagUtils;
import android.util.Log;
import com.android.settings.R;
+import com.android.settings.core.FeatureFlags;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.development.featureflags.FeatureFlagPersistent;
import com.android.settings.wifi.WifiConfigUiBase;
import com.android.settings.wifi.WifiDialog;
import com.android.settings.wifi.WifiSettings;
+import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
import com.android.settingslib.wifi.AccessPoint;
import com.android.settingslib.wifi.AccessPointPreference;
@@ -95,7 +100,23 @@
mAccessPointSavedState = null;
}
- showDialog(WifiSettings.WIFI_DIALOG_ID);
+ if (usingDetailsFragment(getContext())) {
+ if (mSelectedAccessPoint == null) {
+ mSelectedAccessPoint = new AccessPoint(getActivity(), mAccessPointSavedState);
+ }
+ final Bundle savedState = new Bundle();
+ mSelectedAccessPoint.saveWifiState(savedState);
+ savedState.putBoolean(WifiNetworkDetailsFragment.EXTRA_IS_SAVED_NETWORK, true);
+
+ new SubSettingLauncher(getContext())
+ .setTitleText(mSelectedAccessPoint.getTitle())
+ .setDestination(WifiNetworkDetailsFragment.class.getName())
+ .setArguments(savedState)
+ .setSourceMetricsCategory(getMetricsCategory())
+ .launch();
+ } else {
+ showDialog(WifiSettings.WIFI_DIALOG_ID);
+ }
}
@Override
@@ -166,4 +187,15 @@
public void onCancel(DialogInterface dialog) {
mSelectedAccessPoint = null;
}
+
+ /**
+ * Checks if showing WifiNetworkDetailsFragment when clicking saved network item.
+ */
+ public static boolean usingDetailsFragment(Context context) {
+ if (FeatureFlagUtils.isEnabled(context, FeatureFlags.MOBILE_NETWORK_V2)
+ && FeatureFlagPersistent.isEnabled(context, FeatureFlags.NETWORK_INTERNET_V2)) {
+ return false; // TODO(b/124695272): mark true when UI is ready.
+ }
+ return false;
+ }
}