[ProviderModel] Cherry-pick from master ag/15207286, ag/15216391 and ag/15205988

Should not show pwd dialog if it is a saved Wi-Fi entry

The dialog should be scrollable in landscape mode

Fix dialog's UI layout
    - Move down the dialog to overlay the gesture navigation bar.
    - Mobile data layout need to align UX figma

Bug: 192803404
Test: atest InternetDialogTest
Change-Id: Ib5ac6ee909e666b66b41fd0069f6c9528858dd37
Merged-In: Ib5ac6ee909e666b66b41fd0069f6c9528858dd37
This commit is contained in:
Zoey Chen
2021-08-13 14:29:52 +08:00
parent 5dbe2af746
commit 51b6659ae1
5 changed files with 316 additions and 301 deletions

View File

@@ -27,15 +27,16 @@
android:layout_width="match_parent"
style="@style/Widget.SliceView.Panel"
android:gravity="center_vertical|center_horizontal"
android:layout_marginTop="20dp"
android:layout_height="64dp"
android:layout_marginTop="24dp"
android:layout_marginBottom="24dp"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/internet_dialog_title"
android:gravity="center_vertical|center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="32dp"
android:textColor="?android:attr/textColorPrimary"
android:fontFamily="google-sans"
android:textSize="24sp"/>
@@ -44,7 +45,8 @@
android:id="@+id/internet_dialog_subtitle"
android:gravity="center_vertical|center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="8dp"
android:ellipsize="end"
android:maxLines="1"
android:fontFamily="google-sans"
@@ -56,296 +58,309 @@
android:layout_height="1dp"
android:background="?android:attr/listDivider"/>
<LinearLayout
android:id="@+id/internet_list"
<androidx.core.widget.NestedScrollView
android:id="@+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/mobile_network_layout"
android:layout_width="match_parent"
android:layout_height="88dp"
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical|center_horizontal"
android:orientation="horizontal"
android:layout_marginRight="@dimen/settingslib_switchbar_margin"
android:layout_marginLeft="@dimen/settingslib_switchbar_margin"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
android:paddingStart="@dimen/settingslib_switchbar_padding_left"
android:paddingEnd="@dimen/settingslib_switchbar_padding_right">
<FrameLayout
android:layout_width="36dp"
android:layout_height="36dp"
android:clickable="false"
android:layout_gravity="center_vertical|start">
<ImageView
android:id="@+id/signal_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</FrameLayout>
<LinearLayout
android:layout_weight="1"
android:id="@+id/mobile_network_list"
android:orientation="vertical"
android:clickable="false"
android:layout_marginLeft="3dp"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="start|center_vertical">
<TextView
android:id="@+id/mobile_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:ellipsize="end"
android:maxLines="1"
android:textColor="?android:attr/textColorPrimary"
android:textSize="16sp"
android:fontFamily="google-sans"/>
<TextView
android:id="@+id/mobile_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:ellipsize="end"
android:maxLines="1"
android:textColor="?android:attr/textColorTertiary"
android:textSize="14sp"
android:fontFamily="google-sans"/>
</LinearLayout>
<FrameLayout
android:layout_width="48dp"
android:layout_height="48dp">
<Switch
android:id="@+id/mobile_toggle"
android:layout_gravity="center"
android:layout_width="48dp"
android:layout_height="wrap_content"
android:track="@drawable/settingslib_track_selector"
android:thumb="@drawable/settingslib_thumb_selector"
android:theme="@style/MainSwitch.Settingslib"/>
</FrameLayout>
</LinearLayout>
<ProgressBar
android:id="@+id/wifi_searching_progress"
android:indeterminate="true"
android:id="@+id/scroll_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="1dp"
android:maxHeight="1dp"
style="@*android:style/Widget.Material.ProgressBar.Horizontal"/>
<LinearLayout
android:id="@+id/turn_on_wifi_layout"
android:layout_width="match_parent"
android:layout_height="48dp"
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
android:gravity="center"
android:orientation="horizontal"
android:layout_marginTop="8dp"
android:layout_marginRight="@dimen/settingslib_switchbar_margin"
android:layout_marginLeft="@dimen/settingslib_switchbar_margin"
android:paddingStart="@dimen/settingslib_switchbar_padding_left"
android:paddingEnd="@dimen/settingslib_switchbar_padding_right">
<FrameLayout
android:layout_weight="1"
android:orientation="vertical"
android:clickable="false"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<TextView
android:text="@string/turn_on_wifi"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="start|center_vertical"
android:textColor="?android:attr/textColorPrimary"
android:textSize="16sp"
android:fontFamily="google-sans"/>
</FrameLayout>
<FrameLayout
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp">
<Switch
android:id="@+id/wifi_toggle"
android:layout_gravity="center"
android:layout_width="48dp"
android:layout_height="wrap_content"
android:track="@drawable/settingslib_track_selector"
android:thumb="@drawable/settingslib_thumb_selector"
android:theme="@style/MainSwitch.Settingslib"/>
</FrameLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/wifi_connected_layout"
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_gravity="center_vertical|start"
android:clickable="true"
android:focusable="true"
android:visibility="gone"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"
android:layout_marginTop="8dp"
android:layout_marginRight="@dimen/settingslib_switchbar_margin"
android:layout_marginLeft="@dimen/settingslib_switchbar_margin"
android:paddingStart="@dimen/settingslib_switchbar_padding_left"
android:paddingEnd="@dimen/settingslib_switchbar_padding_right">
<FrameLayout
android:layout_width="24dp"
android:layout_height="24dp"
android:clickable="false"
android:layout_gravity="center_vertical|start">
<ImageView
android:id="@+id/wifi_connected_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</FrameLayout>
android:orientation="vertical">
<LinearLayout
android:layout_weight="3"
android:id="@+id/wifi_connected_list"
android:orientation="vertical"
android:clickable="false"
android:layout_width="wrap_content"
android:layout_height="72dp"
android:gravity="start|center_vertical">
<TextView
android:id="@+id/wifi_connected_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="16dp"
android:ellipsize="end"
android:maxLines="1"
android:textColor="?android:attr/textColorPrimary"
android:textSize="14sp"
android:fontFamily="google-sans"/>
<TextView
android:id="@+id/wifi_connected_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="16dp"
android:ellipsize="end"
android:maxLines="1"
android:textColor="?android:attr/textColorTertiary"
android:textSize="14sp"
android:fontFamily="google-sans"/>
</LinearLayout>
<FrameLayout
android:layout_width="24dp"
android:layout_height="match_parent"
android:layout_marginRight="5dp"
android:clickable="false"
android:gravity="center">
<ImageView
android:id="@+id/wifi_settings_icon"
android:src="@drawable/ic_settings_24dp"
android:layout_width="24dp"
android:layout_gravity="center"
android:layout_height="wrap_content"/>
</FrameLayout>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/wifi_list_layout"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:overScrollMode="never"
android:nestedScrollingEnabled="false"/>
</LinearLayout>
<LinearLayout
android:id="@+id/see_all_layout"
android:layout_width="match_parent"
android:layout_height="64dp"
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical|center_horizontal"
android:orientation="horizontal"
android:paddingStart="@dimen/settingslib_switchbar_padding_left"
android:paddingEnd="@dimen/settingslib_switchbar_padding_right">
<FrameLayout
android:layout_width="24dp"
android:layout_height="24dp"
android:clickable="false"
android:layout_gravity="center_vertical|start"
android:layout_marginStart="16dp">
<ImageView
android:id="@+id/arrow_forward"
android:src="@drawable/ic_arrow_forward"
android:layout_width="wrap_content"
android:id="@+id/internet_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</FrameLayout>
android:orientation="vertical">
<FrameLayout
android:orientation="vertical"
android:clickable="false"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp">
<TextView
android:text="@string/see_all_networks"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="start|center_vertical"
android:textColor="?android:attr/textColorPrimary"
android:textSize="14sp"
android:fontFamily="google-sans"/>
</FrameLayout>
<LinearLayout
android:id="@+id/mobile_network_layout"
android:layout_width="match_parent"
android:layout_height="88dp"
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
android:layout_gravity="center_vertical|start"
android:orientation="horizontal"
android:layout_marginRight="@dimen/settingslib_switchbar_margin"
android:layout_marginLeft="@dimen/settingslib_switchbar_margin"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
android:paddingStart="19dp"
android:paddingEnd="@dimen/settingslib_switchbar_padding_right">
</LinearLayout>
<FrameLayout
android:layout_width="24dp"
android:layout_height="24dp"
android:clickable="false"
android:layout_gravity="center_vertical|start">
<ImageView
android:id="@+id/signal_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</FrameLayout>
<Space
android:id="@+id/space"
android:layout_width="match_parent"
android:layout_height="28dp"
android:visibility="gone"/>
<LinearLayout
android:layout_weight="1"
android:id="@+id/mobile_network_list"
android:orientation="vertical"
android:clickable="false"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="start|center_vertical">
<TextView
android:id="@+id/mobile_title"
android:layout_marginLeft="17dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:ellipsize="end"
android:maxLines="1"
android:textColor="?android:attr/textColorPrimary"
android:textSize="16sp"
android:fontFamily="google-sans"/>
<TextView
android:id="@+id/mobile_summary"
android:layout_marginLeft="17dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:ellipsize="end"
android:maxLines="1"
android:textColor="?android:attr/textColorTertiary"
android:textSize="14sp"
android:fontFamily="google-sans"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginBottom="25dp"
android:gravity="end"
android:orientation="horizontal">
<Button
style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
android:id="@+id/done"
android:layout_width="60dp"
android:layout_height="30dp"
android:layout_marginRight="24dp"
android:layout_gravity="end"
android:background="@drawable/internet_dialog_footer_background"
android:textColor="?android:attr/textColorPrimary"
android:text="@string/inline_done_button"
android:textSize="14sp"
android:fontFamily="google-sans"/>
</LinearLayout>
<FrameLayout
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="end|center_vertical">
<Switch
android:id="@+id/mobile_toggle"
android:layout_gravity="center"
android:layout_width="48dp"
android:layout_height="wrap_content"
android:track="@drawable/settingslib_track_selector"
android:thumb="@drawable/settingslib_thumb_selector"
android:theme="@style/MainSwitch.Settingslib"/>
</FrameLayout>
</LinearLayout>
<ProgressBar
android:id="@+id/wifi_searching_progress"
android:indeterminate="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="1dp"
android:maxHeight="1dp"
style="@*android:style/Widget.Material.ProgressBar.Horizontal"/>
<LinearLayout
android:id="@+id/turn_on_wifi_layout"
android:layout_width="match_parent"
android:layout_height="48dp"
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
android:gravity="center"
android:orientation="horizontal"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:layout_marginRight="@dimen/settingslib_switchbar_margin"
android:layout_marginLeft="@dimen/settingslib_switchbar_margin"
android:paddingStart="@dimen/settingslib_switchbar_padding_left"
android:paddingEnd="@dimen/settingslib_switchbar_padding_right">
<FrameLayout
android:layout_weight="1"
android:orientation="vertical"
android:clickable="false"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<TextView
android:text="@string/turn_on_wifi"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="start|center_vertical"
android:textColor="?android:attr/textColorPrimary"
android:textSize="16sp"
android:fontFamily="google-sans"/>
</FrameLayout>
<FrameLayout
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp">
<Switch
android:id="@+id/wifi_toggle"
android:layout_gravity="center"
android:layout_width="48dp"
android:layout_height="wrap_content"
android:track="@drawable/settingslib_track_selector"
android:thumb="@drawable/settingslib_thumb_selector"
android:theme="@style/MainSwitch.Settingslib"/>
</FrameLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/wifi_connected_layout"
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_gravity="center_vertical|start"
android:clickable="true"
android:focusable="true"
android:visibility="gone"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"
android:layout_marginRight="@dimen/settingslib_switchbar_margin"
android:layout_marginLeft="@dimen/settingslib_switchbar_margin"
android:paddingStart="@dimen/settingslib_switchbar_padding_left"
android:paddingEnd="@dimen/settingslib_switchbar_padding_right">
<FrameLayout
android:layout_width="24dp"
android:layout_height="24dp"
android:clickable="false"
android:layout_gravity="center_vertical|start">
<ImageView
android:id="@+id/wifi_connected_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</FrameLayout>
<LinearLayout
android:layout_weight="3"
android:id="@+id/wifi_connected_list"
android:orientation="vertical"
android:clickable="false"
android:layout_width="wrap_content"
android:layout_height="72dp"
android:gravity="start|center_vertical">
<TextView
android:id="@+id/wifi_connected_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="16dp"
android:ellipsize="end"
android:maxLines="1"
android:textColor="?android:attr/textColorPrimary"
android:textSize="14sp"
android:fontFamily="google-sans"/>
<TextView
android:id="@+id/wifi_connected_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="16dp"
android:ellipsize="end"
android:maxLines="1"
android:textColor="?android:attr/textColorTertiary"
android:textSize="14sp"
android:fontFamily="google-sans"/>
</LinearLayout>
<FrameLayout
android:layout_width="24dp"
android:layout_height="match_parent"
android:layout_marginRight="5dp"
android:clickable="false"
android:gravity="center">
<ImageView
android:id="@+id/wifi_settings_icon"
android:src="@drawable/ic_settings_24dp"
android:layout_width="24dp"
android:layout_gravity="center"
android:layout_height="wrap_content"/>
</FrameLayout>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/wifi_list_layout"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:overScrollMode="never"
android:nestedScrollingEnabled="false"/>
</LinearLayout>
<LinearLayout
android:id="@+id/see_all_layout"
android:layout_width="match_parent"
android:layout_height="64dp"
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical|center_horizontal"
android:orientation="horizontal"
android:paddingStart="@dimen/settingslib_switchbar_padding_left"
android:paddingEnd="@dimen/settingslib_switchbar_padding_right">
<FrameLayout
android:layout_width="24dp"
android:layout_height="24dp"
android:clickable="false"
android:layout_gravity="center_vertical|start"
android:layout_marginStart="16dp">
<ImageView
android:id="@+id/arrow_forward"
android:src="@drawable/ic_arrow_forward"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</FrameLayout>
<FrameLayout
android:orientation="vertical"
android:clickable="false"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp">
<TextView
android:text="@string/see_all_networks"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="start|center_vertical"
android:textColor="?android:attr/textColorPrimary"
android:textSize="14sp"
android:fontFamily="google-sans"/>
</FrameLayout>
</LinearLayout>
<Space
android:id="@+id/space"
android:layout_width="match_parent"
android:layout_height="28dp"
android:visibility="gone"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginBottom="25dp"
android:gravity="end"
android:orientation="horizontal">
<Button
style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
android:id="@+id/done"
android:layout_width="60dp"
android:layout_height="30dp"
android:layout_marginRight="24dp"
android:layout_gravity="end"
android:background="@drawable/internet_dialog_footer_background"
android:textColor="?android:attr/textColorPrimary"
android:text="@string/inline_done_button"
android:textSize="14sp"
android:fontFamily="google-sans"/>
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>

View File

@@ -174,10 +174,7 @@ public class InternetAdapter extends RecyclerView.Adapter<InternetAdapter.Intern
Html.fromHtml(wifiEntry.getSummary(false), Html.FROM_HTML_MODE_LEGACY));
mWifiListLayout.setOnClickListener(v -> {
if (!isOpenNetwork(security)) {
// Popup Wi-Fi password dialog condition:
// 1. The access point is a non-open network.
// 2. The Wi-Fi connection is not connected with this access point.
if (wifiEntry.shouldEditBeforeConnect()) {
final Intent intent = new Intent(ACTION_WIFI_DIALOG);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

View File

@@ -15,8 +15,7 @@
*/
package com.android.systemui.qs.tiles.dialog;
import static android.view.WindowInsets.Type.navigationBars;
import static android.view.WindowInsets.Type.statusBars;
import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
import static com.android.systemui.Prefs.Key.QS_HAS_TURNED_OFF_MOBILE_DATA;
@@ -166,7 +165,6 @@ public class InternetDialog extends SystemUIDialog implements
if (!aboveStatusBar) {
getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
}
show();
}
@Override
@@ -179,16 +177,19 @@ public class InternetDialog extends SystemUIDialog implements
mDialogView = LayoutInflater.from(mContext).inflate(R.layout.internet_connectivity_dialog,
null);
final Window window = getWindow();
final WindowManager.LayoutParams lp = window.getAttributes();
lp.gravity = Gravity.BOTTOM;
lp.setFitInsetsTypes(statusBars() | navigationBars());
lp.setFitInsetsSides(WindowInsets.Side.all());
lp.setFitInsetsIgnoringVisibility(true);
window.setAttributes(lp);
final WindowManager.LayoutParams layoutParams = window.getAttributes();
layoutParams.gravity = Gravity.BOTTOM;
// Move down the dialog to overlay the navigation bar.
layoutParams.setFitInsetsTypes(
layoutParams.getFitInsetsTypes() & ~WindowInsets.Type.navigationBars());
layoutParams.setFitInsetsSides(WindowInsets.Side.all());
layoutParams.setFitInsetsIgnoringVisibility(true);
window.setAttributes(layoutParams);
window.setContentView(mDialogView);
window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
window.setWindowAnimations(R.style.Animation_InternetDialog);
window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
window.addFlags(FLAG_LAYOUT_NO_LIMITS);
mInternetDialogTitle = mDialogView.requireViewById(R.id.internet_dialog_title);
mInternetDialogSubTitle = mDialogView.requireViewById(R.id.internet_dialog_subtitle);

View File

@@ -50,6 +50,7 @@ class InternetDialogFactory @Inject constructor(
} else {
internetDialog = InternetDialog(context, this, internetDialogController, aboveStatusBar,
uiEventLogger, handler)
internetDialog?.show()
}
}

View File

@@ -74,6 +74,7 @@ public class InternetDialogTest extends SysuiTestCase {
MockitoAnnotations.initMocks(this);
mInternetDialog = new MockInternetDialog(mContext, mInternetDialogFactory,
mInternetDialogController, true, mUiEventLogger, mHandler);
mInternetDialog.show();
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
when(mMockWifiManager.isWifiEnabled()).thenReturn(true);
when(mMockWifiManager.getConnectionInfo()).thenReturn(mWifiInfo);
@@ -177,8 +178,8 @@ public class InternetDialogTest extends SysuiTestCase {
private String mConnectedWifiSummary;
MockInternetDialog(Context context, InternetDialogFactory internetDialogFactory,
InternetDialogController internetDialogController,
boolean aboveStatusBar, UiEventLogger uiEventLogger, @Main Handler handler) {
InternetDialogController internetDialogController, boolean aboveStatusBar,
UiEventLogger uiEventLogger, @Main Handler handler) {
super(context, internetDialogFactory, internetDialogController, aboveStatusBar,
uiEventLogger, handler);
mAdapter = mInternetAdapter;