[Network Connection] Implement dialog title for new design

Change title to contain app name from intent.

Bug: 123158944
Test: atest NetworkRequestDialogFragmentTest
Change-Id: If3acea5adec8a5e2bbf712735fda9e6975e71984
This commit is contained in:
cosmohsieh
2019-01-21 17:14:04 +08:00
parent 32d561653c
commit 6897c55396
4 changed files with 38 additions and 4 deletions

View File

@@ -30,6 +30,8 @@
android:layout_weight="1" android:layout_weight="1"
android:textSize="18sp" android:textSize="18sp"
android:gravity="center_vertical" android:gravity="center_vertical"
android:maxLines="1"
android:ellipsize="end"
style="@style/info_label"/> style="@style/info_label"/>
<ProgressBar <ProgressBar

View File

@@ -10447,8 +10447,8 @@
<!-- See less items in contextual homepage [CHAR LIMIT=30]--> <!-- See less items in contextual homepage [CHAR LIMIT=30]-->
<string name="see_less">See less</string> <string name="see_less">See less</string>
<!-- Title for Network connection request Dialog [CHAR LIMIT=30] --> <!-- Title for Network connection request Dialog [CHAR LIMIT=60] -->
<string name="network_connection_request_dialog_title">Choose a device</string> <string name="network_connection_request_dialog_title">Device to use with <xliff:g id="appName" example="ThirdPartyAppName">%1$s</xliff:g></string>
<!-- Message for Network connection timeout Dialog [CHAR LIMIT=NONE] --> <!-- Message for Network connection timeout Dialog [CHAR LIMIT=NONE] -->
<string name="network_connection_timeout_dialog_message">No devices found. Make sure devices are turned on and available to connect.</string> <string name="network_connection_timeout_dialog_message">No devices found. Make sure devices are turned on and available to connect.</string>
<!-- OK button for Network connection timeout Dialog [CHAR LIMIT=30] --> <!-- OK button for Network connection timeout Dialog [CHAR LIMIT=30] -->

View File

@@ -20,6 +20,7 @@ import android.app.Dialog;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.net.wifi.ScanResult; import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration;
@@ -77,6 +78,9 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp
/** Delayed time to stop scanning wifi. */ /** Delayed time to stop scanning wifi. */
private static final int DELAY_TIME_STOP_SCAN_MS = 30 * 1000; 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<AccessPoint> mAccessPointList; private List<AccessPoint> mAccessPointList;
private FilterWifiTracker mFilterWifiTracker; private FilterWifiTracker mFilterWifiTracker;
private AccessPointAdapter mDialogAdapter; 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 View customTitle = inflater.inflate(R.layout.network_request_dialog_title, null);
final TextView title = customTitle.findViewById(R.id.network_request_title_text); 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( final ProgressBar progressBar = customTitle.findViewById(
R.id.network_request_title_progress); R.id.network_request_title_progress);
progressBar.setVisibility(View.VISIBLE); progressBar.setVisibility(View.VISIBLE);
@@ -118,6 +123,16 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp
return dialog; 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 @NonNull
List<AccessPoint> getAccessPointList() { List<AccessPoint> getAccessPointList() {
// Initials list for adapter, in case of display crashing. // Initials list for adapter, in case of display crashing.

View File

@@ -27,16 +27,19 @@ import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent;
import android.net.wifi.ScanResult; import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.net.wifi.WifiManager.NetworkRequestUserSelectionCallback; import android.net.wifi.WifiManager.NetworkRequestUserSelectionCallback;
import android.os.Bundle; import android.os.Bundle;
import android.widget.Button; import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat; import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import com.android.settings.wifi.NetworkRequestErrorDialogFragment.ERROR_DIALOG_TYPE; import com.android.settings.wifi.NetworkRequestErrorDialogFragment.ERROR_DIALOG_TYPE;
import com.android.settingslib.wifi.AccessPoint; 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_SSID = "key_ssid";
private static final String KEY_SECURITY = "key_security"; private static final String KEY_SECURITY = "key_security";
private static final String TEST_APP_NAME = "TestAppName";
private FragmentActivity mActivity; private FragmentActivity mActivity;
private NetworkRequestDialogFragment networkRequestDialogFragment; private NetworkRequestDialogFragment networkRequestDialogFragment;
@@ -71,7 +75,9 @@ public class NetworkRequestDialogFragmentTest {
@Before @Before
public void setUp() { 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()); networkRequestDialogFragment = spy(NetworkRequestDialogFragment.newInstance());
mContext = spy(RuntimeEnvironment.application); mContext = spy(RuntimeEnvironment.application);
@@ -87,6 +93,17 @@ public class NetworkRequestDialogFragmentTest {
assertThat(alertDialog.isShowing()).isTrue(); 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 @Test
public void clickPositiveButton_shouldCloseTheDialog() { public void clickPositiveButton_shouldCloseTheDialog() {
networkRequestDialogFragment.show(mActivity.getSupportFragmentManager(), null); networkRequestDialogFragment.show(mActivity.getSupportFragmentManager(), null);