OSDN Git Service

Add a hidden flag to PnoNetwork
authorNingyuan Wang <nywang@google.com>
Sat, 21 Jan 2017 00:27:51 +0000 (16:27 -0800)
committerNingyuan Wang <nywang@google.com>
Sat, 21 Jan 2017 01:12:01 +0000 (17:12 -0800)
We need to specify are the requested networks are hidden when
requesting a PNO scan.

Bug: 33398008
Change-Id: Iab773c59cb4d4ee95bd038eb0445606c8cfdd09e
Test: compile, unit tests

scanning/pno_network.cpp
scanning/pno_network.h
tests/scan_settings_unittest.cpp

index b3c8625..d63f6b3 100644 (file)
@@ -29,11 +29,15 @@ namespace wifi {
 namespace wificond {
 
 status_t PnoNetwork::writeToParcel(::android::Parcel* parcel) const {
+  RETURN_IF_FAILED(parcel->writeInt32(is_hidden_ ? 1 : 0));
   RETURN_IF_FAILED(parcel->writeByteVector(ssid_));
   return ::android::OK;
 }
 
 status_t PnoNetwork::readFromParcel(const ::android::Parcel* parcel) {
+  int32_t is_hidden = 0;
+  RETURN_IF_FAILED(parcel->readInt32(&is_hidden));
+  is_hidden_ = (is_hidden != 0);
   RETURN_IF_FAILED(parcel->readByteVector(&ssid_));
   return ::android::OK;
 }
index 6239096..6156c6c 100644 (file)
@@ -32,11 +32,13 @@ class PnoNetwork : public ::android::Parcelable {
  public:
   PnoNetwork() = default;
   bool operator==(const PnoNetwork& rhs) const {
-    return ssid_ == rhs.ssid_;
+    return is_hidden_ == rhs.is_hidden_ &&
+           ssid_ == rhs.ssid_;
   }
   ::android::status_t writeToParcel(::android::Parcel* parcel) const override;
   ::android::status_t readFromParcel(const ::android::Parcel* parcel) override;
 
+  bool is_hidden_;
   std::vector<uint8_t> ssid_;
 };
 
index 7a5ba4d..fdeae98 100644 (file)
@@ -114,6 +114,7 @@ TEST_F(ScanSettingsTest, PnoNetworkParcelableTest) {
   PnoNetwork pno_network;
   pno_network.ssid_ =
       vector<uint8_t>(kFakeSsid, kFakeSsid + sizeof(kFakeSsid));
+  pno_network.is_hidden_ = true;
 
   Parcel parcel;
   EXPECT_EQ(::android::OK, pno_network.writeToParcel(&parcel));
@@ -131,8 +132,10 @@ TEST_F(ScanSettingsTest, PnoSettingsParcelableTest) {
   PnoNetwork network, network1;
   network.ssid_ =
       vector<uint8_t>(kFakeSsid, kFakeSsid + sizeof(kFakeSsid));
+  network.is_hidden_ = true;
   network1.ssid_ =
       vector<uint8_t>(kFakeSsid1, kFakeSsid1 + sizeof(kFakeSsid1));
+  network1.is_hidden_ = false;
 
   pno_settings.interval_ms_ = kFakePnoIntervalMs;
   pno_settings.min_2g_rssi_ = kFakePnoMin2gRssi;