31ce3c5fd0
-fix some menus -fixed bug in out transition curves -detect and remove file:/// in collada -remove multiscript for now -remove dependencies on mouse in OS, moved to Input -avoid fscache from screwing up (fix might make it slower, but it works) -funcref was missing, it's there now
127 lines
5.3 KiB
Java
127 lines
5.3 KiB
Java
/*
|
|
* Copyright (C) 2012 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 com.google.android.vending.expansion.downloader;
|
|
|
|
import android.os.Messenger;
|
|
|
|
/**
|
|
* This interface should be implemented by the client activity for the
|
|
* downloader. It is used to pass status from the service to the client.
|
|
*/
|
|
public interface IDownloaderClient {
|
|
static final int STATE_IDLE = 1;
|
|
static final int STATE_FETCHING_URL = 2;
|
|
static final int STATE_CONNECTING = 3;
|
|
static final int STATE_DOWNLOADING = 4;
|
|
static final int STATE_COMPLETED = 5;
|
|
|
|
static final int STATE_PAUSED_NETWORK_UNAVAILABLE = 6;
|
|
static final int STATE_PAUSED_BY_REQUEST = 7;
|
|
|
|
/**
|
|
* Both STATE_PAUSED_WIFI_DISABLED_NEED_CELLULAR_PERMISSION and
|
|
* STATE_PAUSED_NEED_CELLULAR_PERMISSION imply that Wi-Fi is unavailable and
|
|
* cellular permission will restart the service. Wi-Fi disabled means that
|
|
* the Wi-Fi manager is returning that Wi-Fi is not enabled, while in the
|
|
* other case Wi-Fi is enabled but not available.
|
|
*/
|
|
static final int STATE_PAUSED_WIFI_DISABLED_NEED_CELLULAR_PERMISSION = 8;
|
|
static final int STATE_PAUSED_NEED_CELLULAR_PERMISSION = 9;
|
|
|
|
/**
|
|
* Both STATE_PAUSED_WIFI_DISABLED and STATE_PAUSED_NEED_WIFI imply that
|
|
* Wi-Fi is unavailable and cellular permission will NOT restart the
|
|
* service. Wi-Fi disabled means that the Wi-Fi manager is returning that
|
|
* Wi-Fi is not enabled, while in the other case Wi-Fi is enabled but not
|
|
* available.
|
|
* <p>
|
|
* The service does not return these values. We recommend that app
|
|
* developers with very large payloads do not allow these payloads to be
|
|
* downloaded over cellular connections.
|
|
*/
|
|
static final int STATE_PAUSED_WIFI_DISABLED = 10;
|
|
static final int STATE_PAUSED_NEED_WIFI = 11;
|
|
|
|
static final int STATE_PAUSED_ROAMING = 12;
|
|
|
|
/**
|
|
* Scary case. We were on a network that redirected us to another website
|
|
* that delivered us the wrong file.
|
|
*/
|
|
static final int STATE_PAUSED_NETWORK_SETUP_FAILURE = 13;
|
|
|
|
static final int STATE_PAUSED_SDCARD_UNAVAILABLE = 14;
|
|
|
|
static final int STATE_FAILED_UNLICENSED = 15;
|
|
static final int STATE_FAILED_FETCHING_URL = 16;
|
|
static final int STATE_FAILED_SDCARD_FULL = 17;
|
|
static final int STATE_FAILED_CANCELED = 18;
|
|
|
|
static final int STATE_FAILED = 19;
|
|
|
|
/**
|
|
* Called internally by the stub when the service is bound to the client.
|
|
* <p>
|
|
* Critical implementation detail. In onServiceConnected we create the
|
|
* remote service and marshaler. This is how we pass the client information
|
|
* back to the service so the client can be properly notified of changes. We
|
|
* must do this every time we reconnect to the service.
|
|
* <p>
|
|
* That is, when you receive this callback, you should call
|
|
* {@link DownloaderServiceMarshaller#CreateProxy} to instantiate a member
|
|
* instance of {@link IDownloaderService}, then call
|
|
* {@link IDownloaderService#onClientUpdated} with the Messenger retrieved
|
|
* from your {@link IStub} proxy object.
|
|
*
|
|
* @param m the service Messenger. This Messenger is used to call the
|
|
* service API from the client.
|
|
*/
|
|
void onServiceConnected(Messenger m);
|
|
|
|
/**
|
|
* Called when the download state changes. Depending on the state, there may
|
|
* be user requests. The service is free to change the download state in the
|
|
* middle of a user request, so the client should be able to handle this.
|
|
* <p>
|
|
* The Downloader Library includes a collection of string resources that
|
|
* correspond to each of the states, which you can use to provide users a
|
|
* useful message based on the state provided in this callback. To fetch the
|
|
* appropriate string for a state, call
|
|
* {@link Helpers#getDownloaderStringResourceIDFromState}.
|
|
* <p>
|
|
* What this means to the developer: The application has gotten a message
|
|
* that the download has paused due to lack of WiFi. The developer should
|
|
* then show UI asking the user if they want to enable downloading over
|
|
* cellular connections with appropriate warnings. If the application
|
|
* suddenly starts downloading, the application should revert to showing the
|
|
* progress again, rather than leaving up the download over cellular UI up.
|
|
*
|
|
* @param newState one of the STATE_* values defined in IDownloaderClient
|
|
*/
|
|
void onDownloadStateChanged(int newState);
|
|
|
|
/**
|
|
* Shows the download progress. This is intended to be used to fill out a
|
|
* client UI. This progress should only be shown in a few states such as
|
|
* STATE_DOWNLOADING.
|
|
*
|
|
* @param progress the DownloadProgressInfo object containing the current
|
|
* progress of all downloads.
|
|
*/
|
|
void onDownloadProgress(DownloadProgressInfo progress);
|
|
}
|