| Index: chrome/android/java/src/org/chromium/chrome/browser/banners/AppData.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/banners/AppData.java b/chrome/android/java/src/org/chromium/chrome/browser/banners/AppData.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1934563b3bd355cf984d689ad7d4fade3b29ab96
|
| --- /dev/null
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/banners/AppData.java
|
| @@ -0,0 +1,136 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +package org.chromium.chrome.browser.banners;
|
| +
|
| +import android.app.PendingIntent;
|
| +import android.graphics.drawable.Drawable;
|
| +
|
| +/**
|
| + * Stores information about a particular app.
|
| + */
|
| +public class AppData {
|
| + // Installation states.
|
| + static final int INSTALL_STATE_NOT_INSTALLED = 0;
|
| + static final int INSTALL_STATE_INSTALLING = 1;
|
| + static final int INSTALL_STATE_INSTALLED = 2;
|
| +
|
| + // Immutable data about this app.
|
| + private final String mSiteUrl;
|
| + private final String mPackageName;
|
| +
|
| + // Data returned by the system when queried about the app.
|
| + private String mTitle;
|
| + private String mImageUrl;
|
| + private float mRating;
|
| + private String mInstallButtonText;
|
| + private PendingIntent mDetailsIntent;
|
| + private PendingIntent mInstallIntent;
|
| +
|
| + // Data that can be updated asynchronously.
|
| + private Drawable mIcon;
|
| + private int mInstallState;
|
| +
|
| + /**
|
| + * Creates a new AppData for the given page and package.
|
| + * @param siteUrl URL for the site requesting the banner.
|
| + * @param packageName Name of the package associated with the app.
|
| + */
|
| + public AppData(String siteUrl, String packageName) {
|
| + mSiteUrl = siteUrl;
|
| + mPackageName = packageName;
|
| + mInstallState = INSTALL_STATE_NOT_INSTALLED;
|
| + }
|
| +
|
| + /**
|
| + * Returns the title to display for the app.
|
| + */
|
| + String title() {
|
| + return mTitle;
|
| + }
|
| +
|
| + /**
|
| + * Returns the URL where the app icon can be retrieved from.
|
| + */
|
| + String imageUrl() {
|
| + return mImageUrl;
|
| + }
|
| +
|
| + /**
|
| + * Returns the Drawable depicting the app's icon.
|
| + * @return The Drawable to use as the app icon.
|
| + */
|
| + Drawable icon() {
|
| + return mIcon;
|
| + }
|
| +
|
| + /**
|
| + * Returns how well the app was rated, on a scale from 0 to 5.
|
| + * @return The rating of the app.
|
| + */
|
| + float rating() {
|
| + return mRating;
|
| + }
|
| +
|
| + /**
|
| + * Returns text to display on the install button when the app is not installed on the system.
|
| + * @return The String to display.
|
| + */
|
| + String installButtonText() {
|
| + return mInstallButtonText;
|
| + }
|
| +
|
| + /**
|
| + * Returns the Intent used to send a user to a details page about the app.
|
| + * The IntentSender stored inside dictates what package needs to be launched.
|
| + * @return Intent that triggers the details page.
|
| + */
|
| + PendingIntent detailsIntent() {
|
| + return mDetailsIntent;
|
| + }
|
| +
|
| + /**
|
| + * Returns the PendingIntent that triggers the install.
|
| + * The IntentSender stored inside dictates what package needs to be launched.
|
| + * @return PendingIntent used to trigger the install.
|
| + */
|
| + PendingIntent installIntent() {
|
| + return mInstallIntent;
|
| + }
|
| +
|
| + /**
|
| + * Returns the state of the install.
|
| + * @return INSTALL_STATE_* representing the current phase of the installation.
|
| + */
|
| + int installState() {
|
| + return mInstallState;
|
| + }
|
| +
|
| + /**
|
| + * Stores all of the data about the given app after it's been retrieved.
|
| + * @param title App title.
|
| + * @param imageUrl URL where the icon is located.
|
| + * @param rating Rating of the app.
|
| + * @param installButtonText Text to display on the install button if it's not installed yet.
|
| + * @param detailsIntent Intent to fire to launch the details page for the app
|
| + * @param installIntent Intent to fire to trigger the purchase/install process.
|
| + */
|
| + void setPackageInfo(String title, String imageUrl, float rating, String installButtonText,
|
| + PendingIntent detailsIntent, PendingIntent installIntent) {
|
| + mTitle = title;
|
| + mImageUrl = imageUrl;
|
| + mRating = rating;
|
| + mInstallButtonText = installButtonText;
|
| + mDetailsIntent = detailsIntent;
|
| + mInstallIntent = installIntent;
|
| + }
|
| +
|
| + /**
|
| + * Sets the icon used to depict the app.
|
| + * @param Drawable App icon in Drawable form.
|
| + */
|
| + void setIcon(Drawable icon) {
|
| + mIcon = icon;
|
| + }
|
| +}
|
|
|