diff --git a/res/layout/network_request_dialog_title.xml b/res/layout/network_request_dialog_title.xml index fa0108531fd..7b97eff9a3f 100644 --- a/res/layout/network_request_dialog_title.xml +++ b/res/layout/network_request_dialog_title.xml @@ -30,6 +30,8 @@ android:layout_weight="1" android:textSize="18sp" android:gravity="center_vertical" + android:maxLines="1" + android:ellipsize="end" style="@style/info_label"/> See less - - Choose a device + + Device to use with %1$s No devices found. Make sure devices are turned on and available to connect. diff --git a/src/com/android/settings/wifi/NetworkRequestDialogFragment.java b/src/com/android/settings/wifi/NetworkRequestDialogFragment.java index 0ed85447c2e..59a3b5a6118 100644 --- a/src/com/android/settings/wifi/NetworkRequestDialogFragment.java +++ b/src/com/android/settings/wifi/NetworkRequestDialogFragment.java @@ -20,6 +20,7 @@ import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.DialogInterface; +import android.content.Intent; import android.graphics.drawable.Drawable; import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; @@ -77,6 +78,9 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp /** Delayed time to stop scanning wifi. */ private static final int DELAY_TIME_STOP_SCAN_MS = 30 * 1000; + @VisibleForTesting + final static String EXTRA_APP_NAME = "com.android.settings.wifi.extra.APP_NAME"; + private List mAccessPointList; private FilterWifiTracker mFilterWifiTracker; private AccessPointAdapter mDialogAdapter; @@ -96,7 +100,8 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp final View customTitle = inflater.inflate(R.layout.network_request_dialog_title, null); final TextView title = customTitle.findViewById(R.id.network_request_title_text); - title.setText(R.string.network_connection_request_dialog_title); + title.setText(getTitle()); + final ProgressBar progressBar = customTitle.findViewById( R.id.network_request_title_progress); progressBar.setVisibility(View.VISIBLE); @@ -118,6 +123,16 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp return dialog; } + private String getTitle() { + final Intent intent = getActivity().getIntent(); + String appName = ""; + if (intent != null) { + appName = intent.getStringExtra(EXTRA_APP_NAME); + } + + return getString(R.string.network_connection_request_dialog_title, appName); + } + @NonNull List getAccessPointList() { // Initials list for adapter, in case of display crashing. diff --git a/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java index 17516e90284..6cdcf1d180d 100644 --- a/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java +++ b/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java @@ -27,16 +27,19 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.DialogInterface; +import android.content.Intent; import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.net.wifi.WifiManager.NetworkRequestUserSelectionCallback; import android.os.Bundle; import android.widget.Button; +import android.widget.TextView; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.FragmentActivity; +import com.android.settings.R; import com.android.settings.testutils.shadow.ShadowAlertDialogCompat; import com.android.settings.wifi.NetworkRequestErrorDialogFragment.ERROR_DIALOG_TYPE; import com.android.settingslib.wifi.AccessPoint; @@ -63,6 +66,7 @@ public class NetworkRequestDialogFragmentTest { private static final String KEY_SSID = "key_ssid"; private static final String KEY_SECURITY = "key_security"; + private static final String TEST_APP_NAME = "TestAppName"; private FragmentActivity mActivity; private NetworkRequestDialogFragment networkRequestDialogFragment; @@ -71,7 +75,9 @@ public class NetworkRequestDialogFragmentTest { @Before public void setUp() { - mActivity = Robolectric.setupActivity(FragmentActivity.class); + mActivity = Robolectric.buildActivity(FragmentActivity.class, + new Intent().putExtra(NetworkRequestDialogFragment.EXTRA_APP_NAME, + TEST_APP_NAME)).setup().get(); networkRequestDialogFragment = spy(NetworkRequestDialogFragment.newInstance()); mContext = spy(RuntimeEnvironment.application); @@ -87,6 +93,17 @@ public class NetworkRequestDialogFragmentTest { assertThat(alertDialog.isShowing()).isTrue(); } + @Test + public void display_shouldShowTitleWithAppName() { + networkRequestDialogFragment.show(mActivity.getSupportFragmentManager(), /* tag */ null); + final AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog(); + + final String targetTitle = mContext.getString( + R.string.network_connection_request_dialog_title, TEST_APP_NAME); + final TextView view = alertDialog.findViewById(R.id.network_request_title_text); + assertThat(view.getText()).isEqualTo(targetTitle); + } + @Test public void clickPositiveButton_shouldCloseTheDialog() { networkRequestDialogFragment.show(mActivity.getSupportFragmentManager(), null);