package android.net;

import android.annotation.Nullable;
import android.content.ComponentName;
import android.os.Parcel;
import android.os.Parcelable;

import java.util.Objects;

Holds metadata about a discovered network scorer/recommendation application.
@hide
/** * Holds metadata about a discovered network scorer/recommendation application. * * @hide */
public final class NetworkScorerAppData implements Parcelable {
UID of the scorer app.
/** UID of the scorer app. */
public final int packageUid; private final ComponentName mRecommendationService;
User visible label in Settings for the recommendation service.
/** User visible label in Settings for the recommendation service. */
private final String mRecommendationServiceLabel;
The ComponentName of the Activity to start before enabling the "connect to open wifi networks automatically" feature.
/** * The {@link ComponentName} of the Activity to start before enabling the "connect to open * wifi networks automatically" feature. */
private final ComponentName mEnableUseOpenWifiActivity;
The NotificationChannel ID used by mRecommendationService to post open network notifications.
/** * The {@link android.app.NotificationChannel} ID used by {@link #mRecommendationService} to * post open network notifications. */
private final String mNetworkAvailableNotificationChannelId; public NetworkScorerAppData(int packageUid, ComponentName recommendationServiceComp, String recommendationServiceLabel, ComponentName enableUseOpenWifiActivity, String networkAvailableNotificationChannelId) { this.packageUid = packageUid; this.mRecommendationService = recommendationServiceComp; this.mRecommendationServiceLabel = recommendationServiceLabel; this.mEnableUseOpenWifiActivity = enableUseOpenWifiActivity; this.mNetworkAvailableNotificationChannelId = networkAvailableNotificationChannelId; } protected NetworkScorerAppData(Parcel in) { packageUid = in.readInt(); mRecommendationService = ComponentName.readFromParcel(in); mRecommendationServiceLabel = in.readString(); mEnableUseOpenWifiActivity = ComponentName.readFromParcel(in); mNetworkAvailableNotificationChannelId = in.readString(); } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(packageUid); ComponentName.writeToParcel(mRecommendationService, dest); dest.writeString(mRecommendationServiceLabel); ComponentName.writeToParcel(mEnableUseOpenWifiActivity, dest); dest.writeString(mNetworkAvailableNotificationChannelId); } @Override public int describeContents() { return 0; } public static final Creator<NetworkScorerAppData> CREATOR = new Creator<NetworkScorerAppData>() { @Override public NetworkScorerAppData createFromParcel(Parcel in) { return new NetworkScorerAppData(in); } @Override public NetworkScorerAppData[] newArray(int size) { return new NetworkScorerAppData[size]; } }; public String getRecommendationServicePackageName() { return mRecommendationService.getPackageName(); } public ComponentName getRecommendationServiceComponent() { return mRecommendationService; } @Nullable public ComponentName getEnableUseOpenWifiActivity() { return mEnableUseOpenWifiActivity; } @Nullable public String getRecommendationServiceLabel() { return mRecommendationServiceLabel; } @Nullable public String getNetworkAvailableNotificationChannelId() { return mNetworkAvailableNotificationChannelId; } @Override public String toString() { return "NetworkScorerAppData{" + "packageUid=" + packageUid + ", mRecommendationService=" + mRecommendationService + ", mRecommendationServiceLabel=" + mRecommendationServiceLabel + ", mEnableUseOpenWifiActivity=" + mEnableUseOpenWifiActivity + ", mNetworkAvailableNotificationChannelId=" + mNetworkAvailableNotificationChannelId + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; NetworkScorerAppData that = (NetworkScorerAppData) o; return packageUid == that.packageUid && Objects.equals(mRecommendationService, that.mRecommendationService) && Objects.equals(mRecommendationServiceLabel, that.mRecommendationServiceLabel) && Objects.equals(mEnableUseOpenWifiActivity, that.mEnableUseOpenWifiActivity) && Objects.equals(mNetworkAvailableNotificationChannelId, that.mNetworkAvailableNotificationChannelId); } @Override public int hashCode() { return Objects.hash(packageUid, mRecommendationService, mRecommendationServiceLabel, mEnableUseOpenWifiActivity, mNetworkAvailableNotificationChannelId); } }