summaryrefslogtreecommitdiff
path: root/core/java/com/nvidia/NvCPLSvc/NvAppProfile.java
blob: 1486edbe45c15dd1294dce8ca23e2057fb2981f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.nvidia.NvCPLSvc;

import android.net.ProxyInfo;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.SparseArray;

public class NvAppProfile implements Parcelable {
    public static final Creator<NvAppProfile> CREATOR = new Creator<NvAppProfile>() {
        public NvAppProfile createFromParcel(Parcel parcel) {
            return NvAppProfile.createFromParcel(parcel);
        }

        public NvAppProfile[] newArray(int size) {
            return new NvAppProfile[size];
        }
    };
    public final String pkgName;
    public final String pkgVersion;
    public final int typeId;
    public SparseArray<String> settings;

    public NvAppProfile(int typeId, String pkgName, String pkgVersion,
            SparseArray<String> settings) {
        this.typeId = typeId;
        this.pkgName = pkgName;
        this.pkgVersion = pkgVersion;
        this.settings = settings;
    }

    private static NvAppProfile createFromParcel(Parcel parcel) {
        int typeId = parcel.readInt();
        String pkgName = decodeNull(parcel.readString());
        String pkgVersion = decodeNull(parcel.readString());
        int numSettings = parcel.readInt();
        SparseArray<String> settings = new SparseArray();
        for (int i = 0; i < numSettings; i++) {
            settings.append(parcel.readInt(), parcel.readString());
        }
        return new NvAppProfile(typeId, pkgName, pkgVersion, settings);
    }

    private static String encodeNull(String string) {
        return string != null ? string : "";
    }

    private static String decodeNull(String string) {
        return !string.equals("") ? string : null;
    }

    public int describeContents() {
        return 0;
    }

    public void writeToParcel(Parcel parcel, int flag) {
        parcel.writeInt(this.typeId);
        parcel.writeString(encodeNull(this.pkgName));
        parcel.writeString(encodeNull(this.pkgVersion));
        parcel.writeInt(this.settings.size());
        for (int i = 0; i < this.settings.size(); i++) {
            parcel.writeInt(this.settings.keyAt(i));
            parcel.writeString((String) this.settings.valueAt(i));
        }
    }
}