Commit 5bdaddb5 authored by Conley Owens's avatar Conley Owens Committed by Commit Bot

Remove the PhysicalWeb diagnostics page

Just one more step in Removing the Physical Web from Chrome.

BUG=826540

Change-Id: I617bfd3d82acae53f3654a59f51a03ff8c6b5f96
Reviewed-on: https://chromium-review.googlesource.com/988835Reviewed-by: default avatarBernhard Bauer <bauerb@chromium.org>
Reviewed-by: default avatarMatt Reynolds <mattreynolds@chromium.org>
Reviewed-by: default avatarTommy Nyquist <nyquist@chromium.org>
Commit-Queue: Conley Owens <cco3@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549299}
parent 95af9924
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2016 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/toolbar_height_no_shadow"
android:background="@color/ntp_bg"
android:focusable="true"
android:focusableInTouchMode="true" >
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:paddingStart="40dp"
android:paddingEnd="40dp"
android:orientation="vertical" >
<!--suppress HardcodedText -->
<Button
android:id="@+id/physical_web_launch"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Browse the Physical Web" />
<TextView
android:id="@+id/physical_web_diagnostics_text"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
</LinearLayout>
</ScrollView>
......@@ -185,11 +185,6 @@
<!-- Bookmark widget colors -->
<color name="bookmark_widget_pressed_highlight">@color/black_alpha_11</color>
<!-- Physical Web diagnostics colors -->
<color name="physical_web_diags_success_color">#00933B</color>
<color name="physical_web_diags_failure_color">#F90101</color>
<color name="physical_web_diags_indeterminate_color">#F2B50F</color>
<!-- Payments UI colors -->
<color name="payments_section_edit_background">@color/google_grey_100</color>
<color name="payments_section_chevron">#B2B2B2</color>
......
......@@ -61,7 +61,6 @@ public class UrlConstants {
public static final String INTERESTS_HOST = "interests";
public static final String INTERESTS_URL = "chrome-native://interests/";
public static final String PHYSICAL_WEB_DIAGNOSTICS_HOST = "physical-web-diagnostics";
public static final String PHYSICAL_WEB_URL = "chrome://physical-web/";
public static final String GOOGLE_ACCOUNT_ACTIVITY_CONTROLS_URL =
......
......@@ -18,7 +18,6 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPage;
import org.chromium.chrome.browser.download.DownloadPage;
import org.chromium.chrome.browser.feed.FeedNewTabPage;
import org.chromium.chrome.browser.history.HistoryPage;
import org.chromium.chrome.browser.physicalweb.PhysicalWebDiagnosticsPage;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
......@@ -62,14 +61,16 @@ public class NativePageFactory {
new RecentTabsManager(tab, tab.getProfile(), activity);
return new RecentTabsPage(activity, recentTabsManager);
}
protected NativePage buildPhysicalWebDiagnosticsPage(Activity activity, Tab tab) {
return new PhysicalWebDiagnosticsPage(activity, new TabShim(tab));
}
}
enum NativePageType {
NONE, CANDIDATE, NTP, BOOKMARKS, RECENT_TABS, PHYSICAL_WEB, DOWNLOADS, HISTORY,
NONE,
CANDIDATE,
NTP,
BOOKMARKS,
RECENT_TABS,
DOWNLOADS,
HISTORY,
}
private static NativePageType nativePageType(String url, NativePage candidatePage,
......@@ -96,12 +97,6 @@ public class NativePageFactory {
return NativePageType.HISTORY;
} else if (UrlConstants.RECENT_TABS_HOST.equals(host) && !isIncognito) {
return NativePageType.RECENT_TABS;
} else if (UrlConstants.PHYSICAL_WEB_DIAGNOSTICS_HOST.equals(host)) {
if (ChromeFeatureList.isEnabled("PhysicalWeb")) {
return NativePageType.PHYSICAL_WEB;
} else {
return NativePageType.NONE;
}
} else {
return NativePageType.NONE;
}
......@@ -152,9 +147,6 @@ public class NativePageFactory {
case RECENT_TABS:
page = sNativePageBuilder.buildRecentTabsPage(activity, tab);
break;
case PHYSICAL_WEB:
page = sNativePageBuilder.buildPhysicalWebDiagnosticsPage(activity, tab);
break;
default:
assert false;
return null;
......
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.physicalweb;
import android.app.Activity;
import android.content.res.Resources;
import android.os.Build;
import android.text.Html;
import android.text.util.Linkify;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.BasicNativePage;
import org.chromium.chrome.browser.NativePageHost;
import org.chromium.chrome.browser.UrlConstants;
import org.chromium.components.location.LocationUtils;
import java.util.HashSet;
import java.util.Set;
/**
* Provides diagnostic information about the Physical Web feature.
*/
public class PhysicalWebDiagnosticsPage extends BasicNativePage {
private String mSuccessColor;
private String mFailureColor;
private String mIndeterminateColor;
private View mPageView;
private Button mLaunchButton;
private TextView mDiagnosticsText;
/**
* Create a new instance of the Physical Web diagnostics page.
* @param activity The activity to get context and manage fragments.
* @param host A NativePageHost to load urls.
*/
public PhysicalWebDiagnosticsPage(Activity activity, NativePageHost host) {
super(activity, host);
}
@Override
@SuppressWarnings("deprecation") // Update usage of Html.fromHtml when API min is 24
protected void initialize(final Activity activity, NativePageHost host) {
Resources resources = activity.getResources();
mSuccessColor = colorToHexValue(ApiCompatibilityUtils.getColor(resources,
R.color.physical_web_diags_success_color));
mFailureColor = colorToHexValue(ApiCompatibilityUtils.getColor(resources,
R.color.physical_web_diags_failure_color));
mIndeterminateColor = colorToHexValue(ApiCompatibilityUtils.getColor(resources,
R.color.physical_web_diags_indeterminate_color));
LayoutInflater inflater = LayoutInflater.from(activity);
mPageView = inflater.inflate(R.layout.physical_web_diagnostics, null);
mLaunchButton = (Button) mPageView.findViewById(R.id.physical_web_launch);
mLaunchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PhysicalWebUma.onActivityReferral(PhysicalWebUma.DIAGNOSTICS_REFERER);
PhysicalWeb.showUrlList();
}
});
mDiagnosticsText = (TextView) mPageView.findViewById(R.id.physical_web_diagnostics_text);
mDiagnosticsText.setAutoLinkMask(Linkify.WEB_URLS);
mDiagnosticsText.setText(Html.fromHtml(createDiagnosticsReportHtml()));
}
@Override
public String getTitle() {
return "Physical Web Diagnostics";
}
@Override
public String getHost() {
return UrlConstants.PHYSICAL_WEB_DIAGNOSTICS_HOST;
}
@Override
public View getView() {
return mPageView;
}
private void appendResult(StringBuilder sb, boolean success, String successMessage,
String failureMessage) {
int successValue = (success ? Utils.RESULT_SUCCESS : Utils.RESULT_FAILURE);
appendResult(sb, successValue, successMessage, failureMessage, null);
}
private void appendResult(StringBuilder sb, int successValue, String successMessage,
String failureMessage, String indeterminateMessage) {
String color;
String message;
switch (successValue) {
case Utils.RESULT_SUCCESS:
color = mSuccessColor;
message = successMessage;
break;
case Utils.RESULT_FAILURE:
color = mFailureColor;
message = failureMessage;
break;
case Utils.RESULT_INDETERMINATE:
color = mIndeterminateColor;
message = indeterminateMessage;
break;
default:
return;
}
sb.append(String.format("<font color=\"%s\">%s</font><br/>", color, message));
}
private void appendPrerequisitesReport(StringBuilder sb) {
boolean isSdkVersionCorrect = isSdkVersionCorrect();
boolean isDataConnectionActive = Utils.isDataConnectionActive();
int bluetoothStatus = Utils.getBluetoothEnabledStatus();
LocationUtils locationUtils = LocationUtils.getInstance();
boolean isLocationServicesEnabled = locationUtils.isSystemLocationSettingEnabled();
boolean isLocationPermissionGranted = locationUtils.hasAndroidLocationPermission();
boolean isPreferenceEnabled = PhysicalWeb.isPhysicalWebPreferenceEnabled();
boolean isOnboarding = PhysicalWeb.isOnboarding();
int prerequisitesResult = Utils.RESULT_SUCCESS;
if (!isSdkVersionCorrect
|| !isDataConnectionActive
|| bluetoothStatus == Utils.RESULT_FAILURE
|| !isLocationServicesEnabled
|| !isLocationPermissionGranted
|| !isPreferenceEnabled) {
prerequisitesResult = Utils.RESULT_FAILURE;
mLaunchButton.setEnabled(false);
} else if (bluetoothStatus == Utils.RESULT_INDETERMINATE) {
prerequisitesResult = Utils.RESULT_INDETERMINATE;
mLaunchButton.setEnabled(false);
}
sb.append("<h2>Status</h2>");
sb.append("Physical Web is ");
appendResult(sb, prerequisitesResult != Utils.RESULT_FAILURE, "ON", "OFF");
sb.append("<h2>Prerequisites</h2>");
sb.append("Android SDK version: ");
appendResult(sb, isSdkVersionCorrect, "Compatible", "Incompatible");
sb.append("Data connection: ");
appendResult(sb, isDataConnectionActive, "Connected", "Not connected");
sb.append("Location services: ");
appendResult(sb, isLocationServicesEnabled, "Enabled", "Disabled");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
sb.append("Location app permission: ");
appendResult(sb, isLocationPermissionGranted, "Granted", "Not granted");
}
sb.append("Physical Web privacy settings: ");
String preferenceDisabledMessage = (isOnboarding ? "Default (off)" : "Off");
appendResult(sb, isPreferenceEnabled, "On", preferenceDisabledMessage);
sb.append("Bluetooth: ");
appendResult(sb, bluetoothStatus, "Enabled", "Disabled", "Unknown");
// Append instructions for how to verify Bluetooth is enabled when we are unable to check
// programmatically.
if (bluetoothStatus == Utils.RESULT_INDETERMINATE) {
sb.append("<br/>To verify Bluetooth is enabled on this device, check that the "
+ "Bluetooth icon is shown in the status bar.");
}
}
private void appendUrlManagerReport(StringBuilder sb) {
UrlManager urlManager = UrlManager.getInstance();
Set<String> nearbyUrls = new HashSet<>(urlManager.getNearbyUrls());
Set<String> resolvedUrls = new HashSet<>(urlManager.getResolvedUrls());
Set<String> union = new HashSet<>(nearbyUrls);
union.addAll(resolvedUrls);
sb.append("<h2>Nearby web pages</h2>");
if (union.isEmpty()) {
sb.append("No nearby web pages found<br/>");
} else {
for (String url : union) {
boolean isNearby = nearbyUrls.contains(url);
boolean isResolved = resolvedUrls.contains(url);
sb.append(url);
if (!isNearby) {
sb.append(" : LOST");
} else if (!isResolved) {
sb.append(" : UNRESOLVED");
}
sb.append("<br/>");
}
}
}
private String createDiagnosticsReportHtml() {
StringBuilder sb = new StringBuilder();
appendPrerequisitesReport(sb);
sb.append("<br/>");
appendUrlManagerReport(sb);
return sb.toString();
}
private boolean isSdkVersionCorrect() {
return (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT);
}
private static String colorToHexValue(int color) {
return "#" + Integer.toHexString(color & 0x00ffffff);
}
}
......@@ -940,7 +940,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/physicalweb/NearbySubscription.java",
"java/src/org/chromium/chrome/browser/physicalweb/PhysicalWeb.java",
"java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebBleClient.java",
"java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebDiagnosticsPage.java",
"java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebUma.java",
"java/src/org/chromium/chrome/browser/physicalweb/PwsClient.java",
"java/src/org/chromium/chrome/browser/physicalweb/PwsClientImpl.java",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment