// 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 org.chromium.base.VisibleForTesting; /** * Fetches data about the given app. */ @VisibleForTesting public abstract class AppDetailsDelegate { /** * Class to inform when the app's details have been retrieved. */ public interface Observer { /** * Called when the task has finished. * @param data Data about the requested package. Will be null if retrieval failed. */ @VisibleForTesting public void onAppDetailsRetrieved(AppData data); } /** * Retrieves information about the given package asynchronously. When details have been * retrieved, the observer is alerted. * @param observer Informed when the app details have been received. * @param url URL of the page requesting a banner. * @param packageName Name of the app's package. * @param referrer Referrer specified by the page requesting a banner. * @param iconSize Size of the icon to retrieve. */ protected abstract void getAppDetailsAsynchronously( Observer observer, String url, String packageName, String referrer, int iconSize); /** * Destroy the delegate, cleaning up any open hooks. */ public abstract void destroy(); }