Merge "Update WifiScanningRequiredFragment dialog to show help page" into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
148af6ba16
@@ -6690,6 +6690,8 @@
|
||||
<string name="help_uri_private_dns" translatable="false"></string>
|
||||
<string name="help_uri_about_phone_v2" translatable="false"></string>
|
||||
<string name="help_uri_wifi_calling" translatable="false"></string>
|
||||
<!-- url for the wifi scanning required dialog help page -->
|
||||
<string name="help_uri_wifi_scanning_required" translatable="false"></string>
|
||||
|
||||
<!-- User account title [CHAR LIMIT=30] -->
|
||||
<string name="user_account_title">Account for content</string>
|
||||
|
@@ -15,24 +15,31 @@
|
||||
*/
|
||||
package com.android.settings.wifi;
|
||||
|
||||
import static com.android.settings.wifi.ConfigureWifiSettings.WIFI_WAKEUP_REQUEST_CODE;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||
import com.android.settingslib.HelpUtils;
|
||||
|
||||
public class WifiScanningRequiredFragment extends InstrumentedDialogFragment implements
|
||||
DialogInterface.OnClickListener {
|
||||
|
||||
private static final String TAG = "WifiScanReqFrag";
|
||||
|
||||
public static WifiScanningRequiredFragment newInstance() {
|
||||
WifiScanningRequiredFragment fragment = new WifiScanningRequiredFragment();
|
||||
return fragment;
|
||||
@@ -40,19 +47,20 @@ public class WifiScanningRequiredFragment extends InstrumentedDialogFragment imp
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
return new AlertDialog.Builder(getContext())
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getContext())
|
||||
.setTitle(R.string.wifi_settings_scanning_required_title)
|
||||
.setView(R.layout.wifi_settings_scanning_required_view)
|
||||
.setNeutralButton(R.string.do_disclosure_learn_more, this)
|
||||
.setPositiveButton(R.string.wifi_settings_scanning_required_turn_on, this)
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.create();
|
||||
.setNegativeButton(R.string.cancel, null);
|
||||
addButtonIfNeeded(builder);
|
||||
|
||||
|
||||
return builder.create();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetricsCategory() {
|
||||
// TODO(b/67070896): add metric code
|
||||
return 0;
|
||||
return MetricsProto.MetricsEvent.WIFI_SCANNING_NEEDED_DIALOG;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -81,7 +89,29 @@ public class WifiScanningRequiredFragment extends InstrumentedDialogFragment imp
|
||||
}
|
||||
}
|
||||
|
||||
void addButtonIfNeeded(AlertDialog.Builder builder) {
|
||||
// Only show "learn more" if there is a help page to show
|
||||
if (!TextUtils.isEmpty(getContext().getString(R.string.help_uri_wifi_scanning_required))) {
|
||||
builder.setNeutralButton(R.string.do_disclosure_learn_more, this);
|
||||
}
|
||||
}
|
||||
|
||||
private void openHelpPage() {
|
||||
// TODO(b/67070896): actually open help page on Pixel only
|
||||
Intent intent = getHelpIntent(getContext());
|
||||
if (intent != null) {
|
||||
try {
|
||||
startActivity(intent);
|
||||
} catch (ActivityNotFoundException e) {
|
||||
Log.e(TAG, "Activity was not found for intent, " + intent.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
Intent getHelpIntent(Context context) {
|
||||
return HelpUtils.getHelpIntent(
|
||||
context,
|
||||
context.getString(R.string.help_uri_wifi_scanning_required),
|
||||
context.getClass().getName());
|
||||
}
|
||||
}
|
||||
|
@@ -18,17 +18,24 @@ package com.android.settings.wifi;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.ArgumentMatchers.isNull;
|
||||
import static org.mockito.ArgumentMatchers.nullable;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Fragment;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.provider.Settings;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
||||
|
||||
@@ -48,6 +55,8 @@ public class WifiScanningRequiredFragmentTest {
|
||||
private ContentResolver mResolver;
|
||||
@Mock
|
||||
Fragment mCallbackFragment;
|
||||
@Mock
|
||||
AlertDialog.Builder mBuilder;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
@@ -81,4 +90,19 @@ public class WifiScanningRequiredFragmentTest {
|
||||
|
||||
verify(mCallbackFragment).onActivityResult(anyInt(), anyInt(), isNull());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void learnMore_launchesHelpWhenIntentFound() {
|
||||
Context context = mock(Context.class);
|
||||
doReturn(context).when(mFragment).getContext();
|
||||
doReturn("").when(context).getString(eq(R.string.help_uri_wifi_scanning_required));
|
||||
mFragment.addButtonIfNeeded(mBuilder);
|
||||
verify(mBuilder, never())
|
||||
.setNeutralButton(anyInt(), nullable(DialogInterface.OnClickListener.class));
|
||||
|
||||
doReturn("help").when(context).getString(eq(R.string.help_uri_wifi_scanning_required));
|
||||
mFragment.addButtonIfNeeded(mBuilder);
|
||||
verify(mBuilder, times(1))
|
||||
.setNeutralButton(anyInt(), nullable(DialogInterface.OnClickListener.class));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user