File: GetWalletCardsRequest.java

package info (click to toggle)
android-platform-frameworks-base 1%3A14~beta1-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 326,092 kB
  • sloc: java: 2,032,373; xml: 343,016; cpp: 304,181; python: 3,683; ansic: 2,090; sh: 1,871; makefile: 117; sed: 19
file content (137 lines) | stat: -rw-r--r-- 5,292 bytes parent folder | download | duplicates (2)
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/*
 * Copyright 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.service.quickaccesswallet;

import android.annotation.NonNull;
import android.os.Parcel;
import android.os.Parcelable;

/**
 * Represents a request to a {@link QuickAccessWalletService} for {@link WalletCard walletCards}.
 * Wallet cards may represent anything that a user might carry in their wallet -- a credit card,
 * library card, a transit pass, etc. This request contains the desired size of the card images and
 * icons as well as the maximum number of cards that may be returned in the {@link
 * GetWalletCardsResponse}.
 *
 * <p>Cards may be displayed with an optional icon and label. The icon and label should communicate
 * the same idea. For example, if a card can be used at an NFC terminal, the icon could be an NFC
 * icon and the label could inform the user how to interact with the NFC terminal.
 *
 * <p>The maximum number of cards that may be displayed in the wallet is provided in {@link
 * #getMaxCards()}. The {@link QuickAccessWalletService} may provide up to this many cards in the
 * {@link GetWalletCardsResponse#getWalletCards()}. If the list of cards provided exceeds this
 * number, some of the cards may not be shown to the user.
 */
public final class GetWalletCardsRequest implements Parcelable {

    private final int mCardWidthPx;
    private final int mCardHeightPx;
    private final int mIconSizePx;
    private final int mMaxCards;

    /**
     * Creates a new GetWalletCardsRequest.
     *
     * @param cardWidthPx  The width of the card image in pixels.
     * @param cardHeightPx The height of the card image in pixels.
     * @param iconSizePx   The width and height of the optional card icon in pixels.
     * @param maxCards     The maximum number of cards that may be provided in the response.
     */
    public GetWalletCardsRequest(int cardWidthPx, int cardHeightPx, int iconSizePx, int maxCards) {
        this.mCardWidthPx = cardWidthPx;
        this.mCardHeightPx = cardHeightPx;
        this.mIconSizePx = iconSizePx;
        this.mMaxCards = maxCards;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int describeContents() {
        return 0;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void writeToParcel(@NonNull Parcel dest, int flags) {
        dest.writeInt(mCardWidthPx);
        dest.writeInt(mCardHeightPx);
        dest.writeInt(mIconSizePx);
        dest.writeInt(mMaxCards);
    }

    @NonNull
    public static final Creator<GetWalletCardsRequest> CREATOR =
            new Creator<GetWalletCardsRequest>() {
                @Override
                public GetWalletCardsRequest createFromParcel(Parcel source) {
                    int cardWidthPx = source.readInt();
                    int cardHeightPx = source.readInt();
                    int iconSizePx = source.readInt();
                    int maxCards = source.readInt();
                    return new GetWalletCardsRequest(cardWidthPx,
                            cardHeightPx,
                            iconSizePx,
                            maxCards);
                }

                @Override
                public GetWalletCardsRequest[] newArray(int size) {
                    return new GetWalletCardsRequest[size];
                }
            };

    /**
     * The desired width of the {@link WalletCard#getCardImage()}, in pixels. The dimensions of the
     * card image are requested so that it may be rendered without scaling.
     * <p>
     * The {@code cardWidthPx} and {@code cardHeightPx} should be applied to the size of the {@link
     * WalletCard#getCardImage()}. The size of the card image is specified so that it may be
     * rendered accurately and without distortion caused by scaling.
     */
    public int getCardWidthPx() {
        return mCardWidthPx;
    }

    /**
     * The desired height of the {@link WalletCard#getCardImage()}, in pixels. The dimensions of the
     * card image are requested so that it may be rendered without scaling.
     */
    public int getCardHeightPx() {
        return mCardHeightPx;
    }

    /**
     * Wallet cards may be displayed next to an icon. The icon can help to convey additional
     * information about the state of the card. If the provided icon is a bitmap, its width and
     * height should equal iconSizePx so that it is rendered without distortion caused by scaling.
     */
    public int getIconSizePx() {
        return mIconSizePx;
    }

    /**
     * The maximum size of the {@link GetWalletCardsResponse#getWalletCards()}. If the list of cards
     * exceeds this number, not all cards may be displayed.
     */
    public int getMaxCards() {
        return mMaxCards;
    }
}