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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/VisibleNetworks.java

Issue 2884013002: Add method to convert visible networks into Proto (Closed)
Patch Set: Add method to convert visible networks into Proto and corresponding tests. Created 3 years, 7 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 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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.omnibox.geo; 5 package org.chromium.chrome.browser.omnibox.geo;
6 6
7 import android.support.annotation.IntDef; 7 import android.support.annotation.IntDef;
8 8
9 import org.chromium.base.ApiCompatibilityUtils; 9 import org.chromium.base.ApiCompatibilityUtils;
10 10
(...skipping 15 matching lines...) Expand all
26 @Nullable 26 @Nullable
27 private final VisibleCell mConnectedCell; 27 private final VisibleCell mConnectedCell;
28 @Nullable 28 @Nullable
29 private final Set<VisibleWifi> mAllVisibleWifis; 29 private final Set<VisibleWifi> mAllVisibleWifis;
30 @Nullable 30 @Nullable
31 private final Set<VisibleCell> mAllVisibleCells; 31 private final Set<VisibleCell> mAllVisibleCells;
32 32
33 private VisibleNetworks(@Nullable VisibleWifi connectedWifi, 33 private VisibleNetworks(@Nullable VisibleWifi connectedWifi,
34 @Nullable VisibleCell connectedCell, @Nullable Set<VisibleWifi> allV isibleWifis, 34 @Nullable VisibleCell connectedCell, @Nullable Set<VisibleWifi> allV isibleWifis,
35 @Nullable Set<VisibleCell> allVisibleCells) { 35 @Nullable Set<VisibleCell> allVisibleCells) {
36 this.mConnectedWifi = connectedWifi; 36 mConnectedWifi = connectedWifi;
37 this.mConnectedCell = connectedCell; 37 mConnectedCell = connectedCell;
38 this.mAllVisibleWifis = allVisibleWifis; 38 mAllVisibleWifis = allVisibleWifis;
39 this.mAllVisibleCells = allVisibleCells; 39 mAllVisibleCells = allVisibleCells;
40 } 40 }
41 41
42 public static VisibleNetworks create(@Nullable VisibleWifi connectedWifi, 42 public static VisibleNetworks create(@Nullable VisibleWifi connectedWifi,
43 @Nullable VisibleCell connectedCell, @Nullable Set<VisibleWifi> allV isibleWifis, 43 @Nullable VisibleCell connectedCell, @Nullable Set<VisibleWifi> allV isibleWifis,
44 @Nullable Set<VisibleCell> allVisibleCells) { 44 @Nullable Set<VisibleCell> allVisibleCells) {
45 return new VisibleNetworks(connectedWifi, connectedCell, allVisibleWifis , allVisibleCells); 45 return new VisibleNetworks(connectedWifi, connectedCell, allVisibleWifis , allVisibleCells);
46 } 46 }
47 47
48 /** 48 /**
49 * Returns the connected {@link VisibleWifi} or null if the connected wifi i s unknown. 49 * Returns the connected {@link VisibleWifi} or null if the connected wifi i s unknown.
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 * Compares the specified object with this VisibleNetworks for equality. Re turns 94 * Compares the specified object with this VisibleNetworks for equality. Re turns
95 * {@code true} if the given object is a VisibleNetworks and has identical v alues for 95 * {@code true} if the given object is a VisibleNetworks and has identical v alues for
96 * all of its fields. 96 * all of its fields.
97 */ 97 */
98 @Override 98 @Override
99 public boolean equals(Object object) { 99 public boolean equals(Object object) {
100 if (!(object instanceof VisibleNetworks)) { 100 if (!(object instanceof VisibleNetworks)) {
101 return false; 101 return false;
102 } 102 }
103 VisibleNetworks that = (VisibleNetworks) object; 103 VisibleNetworks that = (VisibleNetworks) object;
104 return ApiCompatibilityUtils.objectEquals(this.mConnectedWifi, that.conn ectedWifi()) 104 return ApiCompatibilityUtils.objectEquals(mConnectedWifi, that.connected Wifi())
105 && ApiCompatibilityUtils.objectEquals(this.mConnectedCell, that. connectedCell()) 105 && ApiCompatibilityUtils.objectEquals(mConnectedCell, that.conne ctedCell())
106 && ApiCompatibilityUtils.objectEquals(this.mAllVisibleWifis, tha t.allVisibleWifis()) 106 && ApiCompatibilityUtils.objectEquals(mAllVisibleWifis, that.all VisibleWifis())
107 && ApiCompatibilityUtils.objectEquals( 107 && ApiCompatibilityUtils.objectEquals(mAllVisibleCells, that.all VisibleCells());
108 this.mAllVisibleCells, that.allVisibleCells());
109 } 108 }
110 109
111 private static int objectsHashCode(Object o) { 110 private static int objectsHashCode(Object o) {
112 return o != null ? o.hashCode() : 0; 111 return o != null ? o.hashCode() : 0;
113 } 112 }
114 113
115 private static int objectsHash(Object... a) { 114 private static int objectsHash(Object... a) {
116 return Arrays.hashCode(a); 115 return Arrays.hashCode(a);
117 } 116 }
118 117
119 @Override 118 @Override
120 public int hashCode() { 119 public int hashCode() {
121 return objectsHash(this.mConnectedWifi, this.mConnectedCell, 120 return objectsHash(mConnectedWifi, mConnectedCell, objectsHashCode(mAllV isibleWifis),
122 objectsHashCode(this.mAllVisibleWifis), objectsHashCode(this.mAl lVisibleCells)); 121 objectsHashCode(mAllVisibleCells));
123 } 122 }
124 123
125 /** 124 /**
126 * Specification of a visible wifi. 125 * Specification of a visible wifi.
127 */ 126 */
128 public static class VisibleWifi { 127 public static class VisibleWifi {
129 public static final VisibleWifi NO_WIFI_INFO = VisibleWifi.create(null, null, null, null); 128 public static final VisibleWifi NO_WIFI_INFO = VisibleWifi.create(null, null, null, null);
130 129
131 @Nullable 130 @Nullable
132 private final String mSsid; 131 private final String mSsid;
133 @Nullable 132 @Nullable
134 private final String mBssid; 133 private final String mBssid;
135 @Nullable 134 @Nullable
136 private final Integer mLevel; 135 private final Integer mLevel;
137 @Nullable 136 @Nullable
138 private final Long mTimestampMs; 137 private final Long mTimestampMs;
139 138
140 private VisibleWifi(@Nullable String ssid, @Nullable String bssid, @Null able Integer level, 139 private VisibleWifi(@Nullable String ssid, @Nullable String bssid, @Null able Integer level,
141 @Nullable Long timestampMs) { 140 @Nullable Long timestampMs) {
142 this.mSsid = ssid; 141 mSsid = ssid;
143 this.mBssid = bssid; 142 mBssid = bssid;
144 this.mLevel = level; 143 mLevel = level;
145 this.mTimestampMs = timestampMs; 144 mTimestampMs = timestampMs;
146 } 145 }
147 146
148 public static VisibleWifi create(@Nullable String ssid, @Nullable String bssid, 147 public static VisibleWifi create(@Nullable String ssid, @Nullable String bssid,
149 @Nullable Integer level, @Nullable Long timestampMs) { 148 @Nullable Integer level, @Nullable Long timestampMs) {
150 return new VisibleWifi(ssid, bssid, level, timestampMs); 149 return new VisibleWifi(ssid, bssid, level, timestampMs);
151 } 150 }
152 151
153 /** 152 /**
154 * Returns the SSID of the visible Wifi, or null if unknown. 153 * Returns the SSID of the visible Wifi, or null if unknown.
155 */ 154 */
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 * {@code true} if the given object is a VisibleWifi and has identical v alues for 186 * {@code true} if the given object is a VisibleWifi and has identical v alues for
188 * all of its fields except level and timestampMs. 187 * all of its fields except level and timestampMs.
189 */ 188 */
190 @Override 189 @Override
191 public boolean equals(Object object) { 190 public boolean equals(Object object) {
192 if (!(object instanceof VisibleWifi)) { 191 if (!(object instanceof VisibleWifi)) {
193 return false; 192 return false;
194 } 193 }
195 194
196 VisibleWifi that = (VisibleWifi) object; 195 VisibleWifi that = (VisibleWifi) object;
197 return ApiCompatibilityUtils.objectEquals(this.mSsid, that.ssid()) 196 return ApiCompatibilityUtils.objectEquals(mSsid, that.ssid())
198 && ApiCompatibilityUtils.objectEquals(this.mBssid, that.bssi d()); 197 && ApiCompatibilityUtils.objectEquals(mBssid, that.bssid());
199 } 198 }
200 199
201 @Override 200 @Override
202 public int hashCode() { 201 public int hashCode() {
203 return VisibleNetworks.objectsHash(this.mSsid, this.mBssid); 202 return VisibleNetworks.objectsHash(mSsid, mBssid);
203 }
204
205 /**
206 * Encodes a VisibleWifi into its corresponding PartnerLocationDescripto r.VisibleNetwork
207 * proto.
208 */
209 public PartnerLocationDescriptor.VisibleNetwork toProto(boolean connecte d) {
210 PartnerLocationDescriptor.VisibleNetwork visibleNetwork =
211 new PartnerLocationDescriptor.VisibleNetwork();
212
213 PartnerLocationDescriptor.VisibleNetwork.WiFi wifi =
214 new PartnerLocationDescriptor.VisibleNetwork.WiFi();
215
216 String bssid = bssid();
217 if (bssid != null) {
218 wifi.bssid = bssid();
Ted C 2017/05/17 17:44:25 what is the default value for wifi.bssid? Is it n
lbargu 2017/05/18 12:42:48 Sorry, forgot this is nano protos. Should be ok to
219 }
220 Integer level = level();
221 if (level != null) {
222 wifi.levelDbm = level();
223 }
224 visibleNetwork.wifi = wifi;
225
226 Long timestampMs = timestampMs();
227 if (timestampMs != null) {
228 visibleNetwork.timestampMs = timestampMs;
229 }
230 visibleNetwork.connected = connected;
231 return visibleNetwork;
dougt 2017/05/17 20:51:17 two questions: Can any of these accessors return
lbargu 2017/05/18 12:42:48 Done.
204 } 232 }
205 } 233 }
206 234
207 /** 235 /**
208 * Specification of a visible cell. 236 * Specification of a visible cell.
209 */ 237 */
210 public static class VisibleCell { 238 public static class VisibleCell {
211 public static final VisibleCell UNKNOWN_VISIBLE_CELL = 239 public static final VisibleCell UNKNOWN_VISIBLE_CELL =
212 VisibleCell.builder(VisibleCell.UNKNOWN_RADIO_TYPE).build(); 240 VisibleCell.builder(VisibleCell.UNKNOWN_RADIO_TYPE).build();
213 public static final VisibleCell UNKNOWN_MISSING_LOCATION_PERMISSION_VISI BLE_CELL = 241 public static final VisibleCell UNKNOWN_MISSING_LOCATION_PERMISSION_VISI BLE_CELL =
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 @Nullable 273 @Nullable
246 private final Integer mPrimaryScramblingCode; 274 private final Integer mPrimaryScramblingCode;
247 @Nullable 275 @Nullable
248 private final Integer mPhysicalCellId; 276 private final Integer mPhysicalCellId;
249 @Nullable 277 @Nullable
250 private final Integer mTrackingAreaCode; 278 private final Integer mTrackingAreaCode;
251 @Nullable 279 @Nullable
252 private Long mTimestampMs; 280 private Long mTimestampMs;
253 281
254 private VisibleCell(Builder builder) { 282 private VisibleCell(Builder builder) {
255 this.mRadioType = builder.mRadioType; 283 mRadioType = builder.mRadioType;
256 this.mCellId = builder.mCellId; 284 mCellId = builder.mCellId;
257 this.mLocationAreaCode = builder.mLocationAreaCode; 285 mLocationAreaCode = builder.mLocationAreaCode;
258 this.mMobileCountryCode = builder.mMobileCountryCode; 286 mMobileCountryCode = builder.mMobileCountryCode;
259 this.mMobileNetworkCode = builder.mMobileNetworkCode; 287 mMobileNetworkCode = builder.mMobileNetworkCode;
260 this.mPrimaryScramblingCode = builder.mPrimaryScramblingCode; 288 mPrimaryScramblingCode = builder.mPrimaryScramblingCode;
261 this.mPhysicalCellId = builder.mPhysicalCellId; 289 mPhysicalCellId = builder.mPhysicalCellId;
262 this.mTrackingAreaCode = builder.mTrackingAreaCode; 290 mTrackingAreaCode = builder.mTrackingAreaCode;
263 this.mTimestampMs = builder.mTimestampMs; 291 mTimestampMs = builder.mTimestampMs;
264 } 292 }
265 293
266 /** 294 /**
267 * Returns the radio type of the visible cell. 295 * Returns the radio type of the visible cell.
268 */ 296 */
269 @RadioType 297 @RadioType
270 public int radioType() { 298 public int radioType() {
271 return mRadioType; 299 return mRadioType;
272 } 300 }
273 301
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 * Compares the specified object with this VisibleCell for equality. Re turns 368 * Compares the specified object with this VisibleCell for equality. Re turns
341 * {@code true} if the given object is a VisibleWifi and has identical v alues for 369 * {@code true} if the given object is a VisibleWifi and has identical v alues for
342 * all of its fields except timestampMs. 370 * all of its fields except timestampMs.
343 */ 371 */
344 @Override 372 @Override
345 public boolean equals(Object object) { 373 public boolean equals(Object object) {
346 if (!(object instanceof VisibleCell)) { 374 if (!(object instanceof VisibleCell)) {
347 return false; 375 return false;
348 } 376 }
349 VisibleCell that = (VisibleCell) object; 377 VisibleCell that = (VisibleCell) object;
350 return ApiCompatibilityUtils.objectEquals(this.mRadioType, that.radi oType()) 378 return ApiCompatibilityUtils.objectEquals(mRadioType, that.radioType ())
351 && ApiCompatibilityUtils.objectEquals(this.mCellId, that.cel lId()) 379 && ApiCompatibilityUtils.objectEquals(mCellId, that.cellId() )
352 && ApiCompatibilityUtils.objectEquals( 380 && ApiCompatibilityUtils.objectEquals(
353 this.mLocationAreaCode, that.locationAreaCode()) 381 mLocationAreaCode, that.locationAreaCode())
354 && ApiCompatibilityUtils.objectEquals( 382 && ApiCompatibilityUtils.objectEquals(
355 this.mMobileCountryCode, that.mobileCountryCode() ) 383 mMobileCountryCode, that.mobileCountryCode())
356 && ApiCompatibilityUtils.objectEquals( 384 && ApiCompatibilityUtils.objectEquals(
357 this.mMobileNetworkCode, that.mobileNetworkCode() ) 385 mMobileNetworkCode, that.mobileNetworkCode())
358 && ApiCompatibilityUtils.objectEquals( 386 && ApiCompatibilityUtils.objectEquals(
359 this.mPrimaryScramblingCode, that.primaryScrambli ngCode()) 387 mPrimaryScramblingCode, that.primaryScramblingCod e())
388 && ApiCompatibilityUtils.objectEquals(mPhysicalCellId, that. physicalCellId())
360 && ApiCompatibilityUtils.objectEquals( 389 && ApiCompatibilityUtils.objectEquals(
361 this.mPhysicalCellId, that.physicalCellId()) 390 mTrackingAreaCode, that.trackingAreaCode());
362 && ApiCompatibilityUtils.objectEquals(
363 this.mTrackingAreaCode, that.trackingAreaCode());
364 } 391 }
365 392
366 @Override 393 @Override
367 public int hashCode() { 394 public int hashCode() {
368 return VisibleNetworks.objectsHash(this.mRadioType, this.mCellId, 395 return VisibleNetworks.objectsHash(mRadioType, mCellId, mLocationAre aCode,
369 this.mLocationAreaCode, this.mMobileCountryCode, this.mMobil eNetworkCode, 396 mMobileCountryCode, mMobileNetworkCode, mPrimaryScramblingCo de, mPhysicalCellId,
370 this.mPrimaryScramblingCode, this.mPhysicalCellId, this.mTra ckingAreaCode); 397 mTrackingAreaCode);
371 } 398 }
372 399
373 /** 400 /**
401 * Encodes a VisibleCell into its corresponding PartnerLocationDescripto r.VisibleNetwork
402 * proto.
403 */
404 public PartnerLocationDescriptor.VisibleNetwork toProto(boolean connecte d) {
405 PartnerLocationDescriptor.VisibleNetwork visibleNetwork =
406 new PartnerLocationDescriptor.VisibleNetwork();
407
408 PartnerLocationDescriptor.VisibleNetwork.Cell cell =
409 new PartnerLocationDescriptor.VisibleNetwork.Cell();
410
411 switch (radioType()) {
412 case VisibleCell.CDMA_RADIO_TYPE:
413 cell.type = PartnerLocationDescriptor.VisibleNetwork.Cell.CD MA;
414 break;
415 case VisibleCell.GSM_RADIO_TYPE:
416 cell.type = PartnerLocationDescriptor.VisibleNetwork.Cell.GS M;
417 break;
418 case VisibleCell.LTE_RADIO_TYPE:
419 cell.type = PartnerLocationDescriptor.VisibleNetwork.Cell.LT E;
420 break;
421 case VisibleCell.WCDMA_RADIO_TYPE:
422 cell.type = PartnerLocationDescriptor.VisibleNetwork.Cell.WC DMA;
423 break;
424 case VisibleCell.UNKNOWN_RADIO_TYPE:
425 cell.type = PartnerLocationDescriptor.VisibleNetwork.Cell.UN KNOWN;
426 break;
427 case VisibleCell.UNKNOWN_MISSING_LOCATION_PERMISSION_RADIO_TYPE:
428 cell.type = PartnerLocationDescriptor.VisibleNetwork.Cell.UN KNOWN;
429 break;
430 default:
Ted C 2017/05/17 17:44:25 should we just fall through these? case VisibleCe
lbargu 2017/05/18 12:42:48 Done.
431 cell.type = PartnerLocationDescriptor.VisibleNetwork.Cell.UN KNOWN;
432 break;
433 }
434
435 Integer cellId = cellId();
436 if (cellId != null) {
437 cell.cellId = cellId;
dougt 2017/05/17 20:51:17 same nullable question here.
lbargu 2017/05/18 12:42:48 Done.
438 }
439 Integer locationAreaCode = locationAreaCode();
440 if (locationAreaCode != null) {
441 cell.locationAreaCode = locationAreaCode;
442 }
443 Integer mobileCountryCode = mobileCountryCode();
444 if (mobileCountryCode != null) {
445 cell.mobileCountryCode = mobileCountryCode;
446 }
447 Integer mobileNetworkCode = mobileNetworkCode();
448 if (mobileNetworkCode != null) {
449 cell.mobileNetworkCode = mobileNetworkCode;
450 }
451 Integer primaryScramblingCode = primaryScramblingCode();
452 if (primaryScramblingCode != null) {
453 cell.primaryScramblingCode = primaryScramblingCode;
454 }
455 Integer physicalCellId = physicalCellId();
456 if (physicalCellId != null) {
457 cell.physicalCellId = physicalCellId;
458 }
459 Integer trackingAreaCode = trackingAreaCode();
460 if (trackingAreaCode != null) {
461 cell.trackingAreaCode = trackingAreaCode;
462 }
463
464 visibleNetwork.cell = cell;
465
466 Long timestampMs = timestampMs();
467 if (timestampMs != null) {
468 visibleNetwork.timestampMs = timestampMs;
469 }
470 visibleNetwork.connected = connected;
471 return visibleNetwork;
472 }
473
474 /**
374 * A {@link VisibleCell} builder. 475 * A {@link VisibleCell} builder.
375 */ 476 */
376 public static class Builder { 477 public static class Builder {
377 @RadioType 478 @RadioType
378 private int mRadioType; 479 private int mRadioType;
379 @Nullable 480 @Nullable
380 private Integer mCellId; 481 private Integer mCellId;
381 @Nullable 482 @Nullable
382 private Integer mLocationAreaCode; 483 private Integer mLocationAreaCode;
383 @Nullable 484 @Nullable
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 mTimestampMs = timestampMs; 538 mTimestampMs = timestampMs;
438 return this; 539 return this;
439 } 540 }
440 541
441 public VisibleCell build() { 542 public VisibleCell build() {
442 return new VisibleCell(this); 543 return new VisibleCell(this);
443 } 544 }
444 } 545 }
445 } 546 }
446 } 547 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698