13d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang/* 23d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * Copyright (C) 2016 The Android Open Source Project 33d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * 43d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * Licensed under the Apache License, Version 2.0 (the "License"); 53d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * you may not use this file except in compliance with the License. 63d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * You may obtain a copy of the License at 73d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * 83d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * http://www.apache.org/licenses/LICENSE-2.0 93d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * 103d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * Unless required by applicable law or agreed to in writing, software 113d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * distributed under the License is distributed on an "AS IS" BASIS, 123d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * See the License for the specific language governing permissions and 143d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * limitations under the License. 153d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang */ 163d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang 173d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wangpackage com.android.server.wifi.wificond; 183d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang 193d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wangimport android.os.Parcel; 203d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wangimport android.os.Parcelable; 213d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wangimport android.util.Log; 223d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang 23cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wangimport java.util.Objects; 24cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang 253d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang/** 263d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * ChannelSettings for wificond 273d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * 283d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * @hide 293d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang */ 303d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wangpublic class ChannelSettings implements Parcelable { 313d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang private static final String TAG = "ChannelSettings"; 323d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang 333d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang public int frequency; 343d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang 353d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang /** public constructor */ 363d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang public ChannelSettings() { } 373d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang 38cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang /** override comparator */ 39cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang @Override 40cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang public boolean equals(Object rhs) { 41cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang if (this == rhs) return true; 42cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang if (!(rhs instanceof ChannelSettings)) { 43cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang return false; 44cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang } 45cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang ChannelSettings channel = (ChannelSettings) rhs; 46cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang if (channel == null) { 47cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang return false; 48cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang } 49cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang return frequency == channel.frequency; 50cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang } 51cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang 52cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang /** override hash code */ 53cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang @Override 54cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang public int hashCode() { 55cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang return Objects.hash(frequency); 56cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang } 57cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang 583d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang /** implement Parcelable interface */ 593d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang @Override 603d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang public int describeContents() { 613d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang return 0; 623d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang } 633d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang 643d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang /** 653d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * implement Parcelable interface 663d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * |flags| is ignored. 673d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * */ 683d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang @Override 693d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang public void writeToParcel(Parcel out, int flags) { 703d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang out.writeInt(frequency); 713d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang } 723d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang 733d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang /** implement Parcelable interface */ 743d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang public static final Parcelable.Creator<ChannelSettings> CREATOR = 753d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang new Parcelable.Creator<ChannelSettings>() { 763d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang /** 773d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang * Caller is responsible for providing a valid parcel. 783d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang */ 793d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang @Override 803d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang public ChannelSettings createFromParcel(Parcel in) { 813d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang ChannelSettings result = new ChannelSettings(); 823d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang result.frequency = in.readInt(); 833d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang if (in.dataAvail() != 0) { 843d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang Log.e(TAG, "Found trailing data after parcel parsing."); 853d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang } 863d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang 873d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang return result; 883d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang } 893d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang 903d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang @Override 913d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang public ChannelSettings[] newArray(int size) { 923d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang return new ChannelSettings[size]; 933d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang } 943d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang }; 953d06c9eb56bb3c46f407965a5d2478cf7fd82408Ningyuan Wang} 96