Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(301)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebDiagnosticsPage.java

Issue 2261883002: Use BasicNativePage in PhysicalWebDiagnostics (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.physicalweb; 5 package org.chromium.chrome.browser.physicalweb;
6 6
7 import android.content.Context; 7 import android.app.Activity;
8 import android.content.Intent; 8 import android.content.Intent;
9 import android.content.res.Resources; 9 import android.content.res.Resources;
10 import android.os.Build; 10 import android.os.Build;
11 import android.text.Html; 11 import android.text.Html;
12 import android.text.util.Linkify; 12 import android.text.util.Linkify;
13 import android.view.LayoutInflater; 13 import android.view.LayoutInflater;
14 import android.view.View; 14 import android.view.View;
15 import android.widget.Button; 15 import android.widget.Button;
16 import android.widget.TextView; 16 import android.widget.TextView;
17 17
18 import org.chromium.base.ApiCompatibilityUtils; 18 import org.chromium.base.ApiCompatibilityUtils;
19 import org.chromium.base.ContextUtils;
19 import org.chromium.chrome.R; 20 import org.chromium.chrome.R;
20 import org.chromium.chrome.browser.NativePage; 21 import org.chromium.chrome.browser.BasicNativePage;
21 import org.chromium.chrome.browser.UrlConstants; 22 import org.chromium.chrome.browser.UrlConstants;
23 import org.chromium.chrome.browser.tab.Tab;
22 import org.chromium.components.location.LocationUtils; 24 import org.chromium.components.location.LocationUtils;
23 25
24 import java.util.HashSet; 26 import java.util.HashSet;
25 import java.util.Set; 27 import java.util.Set;
26 28
27 /** 29 /**
28 * Provides diagnostic information about the Physical Web feature. 30 * Provides diagnostic information about the Physical Web feature.
29 */ 31 */
30 public class PhysicalWebDiagnosticsPage implements NativePage { 32 public class PhysicalWebDiagnosticsPage extends BasicNativePage {
31 private final Context mContext; 33 private String mSuccessColor;
32 private final int mBackgroundColor; 34 private String mFailureColor;
33 private final int mThemeColor; 35 private String mIndeterminateColor;
34 private final String mSuccessColor; 36 private View mPageView;
35 private final String mFailureColor; 37 private Button mLaunchButton;
36 private final String mIndeterminateColor; 38 private TextView mDiagnosticsText;
37 private final View mPageView;
38 private final Button mLaunchButton;
39 private final TextView mDiagnosticsText;
40 39
41 public PhysicalWebDiagnosticsPage(Context context) { 40 /**
42 mContext = context; 41 * Create a new instance of the Physical Web diagnostics page.
42 * @param activity The activity to get context and manage fragments.
43 * @param tab The tab to load urls.
44 */
45 public PhysicalWebDiagnosticsPage(Activity activity, Tab tab) {
46 super(activity, tab);
47 }
43 48
44 Resources resources = mContext.getResources(); 49 @Override
45 mBackgroundColor = ApiCompatibilityUtils.getColor(resources, R.color.ntp _bg); 50 protected void initialize(Activity activity, Tab tab) {
46 mThemeColor = ApiCompatibilityUtils.getColor(resources, R.color.default_ primary_color); 51 Resources resources = activity.getResources();
47 mSuccessColor = colorToHexValue(ApiCompatibilityUtils.getColor(resources , 52 mSuccessColor = colorToHexValue(ApiCompatibilityUtils.getColor(resources ,
48 R.color.physical_web_diags_success_color)); 53 R.color.physical_web_diags_success_color));
49 mFailureColor = colorToHexValue(ApiCompatibilityUtils.getColor(resources , 54 mFailureColor = colorToHexValue(ApiCompatibilityUtils.getColor(resources ,
50 R.color.physical_web_diags_failure_color)); 55 R.color.physical_web_diags_failure_color));
51 mIndeterminateColor = colorToHexValue(ApiCompatibilityUtils.getColor(res ources, 56 mIndeterminateColor = colorToHexValue(ApiCompatibilityUtils.getColor(res ources,
52 R.color.physical_web_diags_indeterminate_color)); 57 R.color.physical_web_diags_indeterminate_color));
53 58
54 LayoutInflater inflater = LayoutInflater.from(mContext); 59 LayoutInflater inflater = LayoutInflater.from(activity);
55 mPageView = inflater.inflate(R.layout.physical_web_diagnostics, null); 60 mPageView = inflater.inflate(R.layout.physical_web_diagnostics, null);
56 61
57 mLaunchButton = (Button) mPageView.findViewById(R.id.physical_web_launch ); 62 mLaunchButton = (Button) mPageView.findViewById(R.id.physical_web_launch );
58 mLaunchButton.setOnClickListener(new View.OnClickListener() { 63 mLaunchButton.setOnClickListener(new View.OnClickListener() {
59 @Override 64 @Override
60 public void onClick(View v) { 65 public void onClick(View v) {
61 mContext.startActivity(createListUrlsIntent(mContext)); 66 ContextUtils.getApplicationContext().startActivity(createListUrl sIntent());
62 } 67 }
63 }); 68 });
64 69
65 mDiagnosticsText = (TextView) mPageView.findViewById(R.id.physical_web_d iagnostics_text); 70 mDiagnosticsText = (TextView) mPageView.findViewById(R.id.physical_web_d iagnostics_text);
66 mDiagnosticsText.setAutoLinkMask(Linkify.WEB_URLS); 71 mDiagnosticsText.setAutoLinkMask(Linkify.WEB_URLS);
67 mDiagnosticsText.setText(Html.fromHtml(createDiagnosticsReportHtml())); 72 mDiagnosticsText.setText(Html.fromHtml(createDiagnosticsReportHtml()));
68 } 73 }
69 74
75 @Override
76 public String getTitle() {
77 return "Physical Web Diagnostics";
78 }
79
80 @Override
81 public String getHost() {
82 return UrlConstants.PHYSICAL_WEB_HOST;
83 }
84
85 @Override
86 public View getView() {
87 return mPageView;
88 }
89
70 private void appendResult(StringBuilder sb, boolean success, String successM essage, 90 private void appendResult(StringBuilder sb, boolean success, String successM essage,
71 String failureMessage) { 91 String failureMessage) {
72 int successValue = (success ? Utils.RESULT_SUCCESS : Utils.RESULT_FAILUR E); 92 int successValue = (success ? Utils.RESULT_SUCCESS : Utils.RESULT_FAILUR E);
73 appendResult(sb, successValue, successMessage, failureMessage, null); 93 appendResult(sb, successValue, successMessage, failureMessage, null);
74 } 94 }
75 95
76 private void appendResult(StringBuilder sb, int successValue, String success Message, 96 private void appendResult(StringBuilder sb, int successValue, String success Message,
77 String failureMessage, String indeterminateMessage) { 97 String failureMessage, String indeterminateMessage) {
78 String color; 98 String color;
79 String message; 99 String message;
(...skipping 12 matching lines...) Expand all
92 break; 112 break;
93 default: 113 default:
94 return; 114 return;
95 } 115 }
96 116
97 sb.append(String.format("<font color=\"%s\">%s</font><br/>", color, mess age)); 117 sb.append(String.format("<font color=\"%s\">%s</font><br/>", color, mess age));
98 } 118 }
99 119
100 private void appendPrerequisitesReport(StringBuilder sb) { 120 private void appendPrerequisitesReport(StringBuilder sb) {
101 boolean isSdkVersionCorrect = isSdkVersionCorrect(); 121 boolean isSdkVersionCorrect = isSdkVersionCorrect();
102 boolean isDataConnectionActive = Utils.isDataConnectionActive(mContext); 122 boolean isDataConnectionActive = Utils.isDataConnectionActive();
103 int bluetoothStatus = Utils.getBluetoothEnabledStatus(mContext); 123 int bluetoothStatus = Utils.getBluetoothEnabledStatus();
104 LocationUtils locationUtils = LocationUtils.getInstance(); 124 LocationUtils locationUtils = LocationUtils.getInstance();
105 boolean isLocationServicesEnabled = locationUtils.isSystemLocationSettin gEnabled(); 125 boolean isLocationServicesEnabled = locationUtils.isSystemLocationSettin gEnabled();
106 boolean isLocationPermissionGranted = locationUtils.hasAndroidLocationPe rmission(); 126 boolean isLocationPermissionGranted = locationUtils.hasAndroidLocationPe rmission();
107 boolean isPreferenceEnabled = PhysicalWeb.isPhysicalWebPreferenceEnabled (); 127 boolean isPreferenceEnabled = PhysicalWeb.isPhysicalWebPreferenceEnabled ();
108 boolean isOnboarding = PhysicalWeb.isOnboarding(); 128 boolean isOnboarding = PhysicalWeb.isOnboarding();
109 129
110 int prerequisitesResult = Utils.RESULT_SUCCESS; 130 int prerequisitesResult = Utils.RESULT_SUCCESS;
111 if (!isSdkVersionCorrect 131 if (!isSdkVersionCorrect
112 || !isDataConnectionActive 132 || !isDataConnectionActive
113 || bluetoothStatus == Utils.RESULT_FAILURE 133 || bluetoothStatus == Utils.RESULT_FAILURE
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 appendPrerequisitesReport(sb); 208 appendPrerequisitesReport(sb);
189 sb.append("<br/>"); 209 sb.append("<br/>");
190 appendUrlManagerReport(sb); 210 appendUrlManagerReport(sb);
191 return sb.toString(); 211 return sb.toString();
192 } 212 }
193 213
194 private boolean isSdkVersionCorrect() { 214 private boolean isSdkVersionCorrect() {
195 return (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT); 215 return (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT);
196 } 216 }
197 217
198 private static Intent createListUrlsIntent(Context context) { 218 private static Intent createListUrlsIntent() {
199 Intent intent = new Intent(context, ListUrlsActivity.class); 219 return new Intent(ContextUtils.getApplicationContext(), ListUrlsActivity .class)
200 intent.putExtra(ListUrlsActivity.REFERER_KEY, ListUrlsActivity.DIAGNOSTI CS_REFERER); 220 .putExtra(ListUrlsActivity.REFERER_KEY, ListUrlsActivity.DIAGNOS TICS_REFERER);
201 return intent;
202 } 221 }
203 222
204 private static String colorToHexValue(int color) { 223 private static String colorToHexValue(int color) {
205 return "#" + Integer.toHexString(color & 0x00ffffff); 224 return "#" + Integer.toHexString(color & 0x00ffffff);
206 } 225 }
207
208 // NativePage overrides
209
210 @Override
211 public void destroy() {
212 // nothing to do
213 }
214
215 @Override
216 public String getUrl() {
217 return UrlConstants.PHYSICAL_WEB_URL;
218 }
219
220 @Override
221 public String getTitle() {
222 return "Physical Web Diagnostics";
223 }
224
225 @Override
226 public int getBackgroundColor() {
227 return mBackgroundColor;
228 }
229
230 @Override
231 public int getThemeColor() {
232 return mThemeColor;
233 }
234
235 @Override
236 public boolean needsToolbarShadow() {
237 return true;
238 }
239
240 @Override
241 public View getView() {
242 return mPageView;
243 }
244
245 @Override
246 public String getHost() {
247 return UrlConstants.PHYSICAL_WEB_HOST;
248 }
249
250 @Override
251 public void updateForUrl(String url) {
252 // nothing to do
253 }
254 } 226 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698