123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 |
- diff --git a/platform/android/java/src/com/google/android/vending/expansion/downloader/DownloaderClientMarshaller.java b/platform/android/java/src/com/google/android/vending/expansion/downloader/DownloaderClientMarshaller.java
- index ad6ea0de6..452c7d148 100644
- --- a/platform/android/java/src/com/google/android/vending/expansion/downloader/DownloaderClientMarshaller.java
- +++ b/platform/android/java/src/com/google/android/vending/expansion/downloader/DownloaderClientMarshaller.java
- @@ -32,6 +32,9 @@ import android.os.Messenger;
- import android.os.RemoteException;
- import android.util.Log;
-
- +// -- GODOT start --
- +import java.lang.ref.WeakReference;
- +// -- GODOT end --
-
-
- /**
- @@ -118,29 +121,46 @@ public class DownloaderClientMarshaller {
- /**
- * Target we publish for clients to send messages to IncomingHandler.
- */
- - final Messenger mMessenger = new Messenger(new Handler() {
- + // -- GODOT start --
- + private final MessengerHandlerClient mMsgHandler = new MessengerHandlerClient(this);
- + final Messenger mMessenger = new Messenger(mMsgHandler);
- +
- + private static class MessengerHandlerClient extends Handler {
- + private final WeakReference<Stub> mDownloader;
- + public MessengerHandlerClient(Stub downloader) {
- + mDownloader = new WeakReference<>(downloader);
- + }
- +
- @Override
- public void handleMessage(Message msg) {
- - switch (msg.what) {
- - case MSG_ONDOWNLOADPROGRESS:
- - Bundle bun = msg.getData();
- - if ( null != mContext ) {
- - bun.setClassLoader(mContext.getClassLoader());
- - DownloadProgressInfo dpi = (DownloadProgressInfo) msg.getData()
- - .getParcelable(PARAM_PROGRESS);
- - mItf.onDownloadProgress(dpi);
- - }
- - break;
- - case MSG_ONDOWNLOADSTATE_CHANGED:
- - mItf.onDownloadStateChanged(msg.getData().getInt(PARAM_NEW_STATE));
- - break;
- - case MSG_ONSERVICECONNECTED:
- - mItf.onServiceConnected(
- - (Messenger) msg.getData().getParcelable(PARAM_MESSENGER));
- - break;
- + Stub downloader = mDownloader.get();
- + if (downloader != null) {
- + downloader.handleMessage(msg);
- }
- }
- - });
- + }
- +
- + private void handleMessage(Message msg) {
- + switch (msg.what) {
- + case MSG_ONDOWNLOADPROGRESS:
- + Bundle bun = msg.getData();
- + if (null != mContext) {
- + bun.setClassLoader(mContext.getClassLoader());
- + DownloadProgressInfo dpi = (DownloadProgressInfo)msg.getData()
- + .getParcelable(PARAM_PROGRESS);
- + mItf.onDownloadProgress(dpi);
- + }
- + break;
- + case MSG_ONDOWNLOADSTATE_CHANGED:
- + mItf.onDownloadStateChanged(msg.getData().getInt(PARAM_NEW_STATE));
- + break;
- + case MSG_ONSERVICECONNECTED:
- + mItf.onServiceConnected(
- + (Messenger)msg.getData().getParcelable(PARAM_MESSENGER));
- + break;
- + }
- + }
- + // -- GODOT end --
-
- public Stub(IDownloaderClient itf, Class<?> downloaderService) {
- mItf = itf;
- diff --git a/platform/android/java/src/com/google/android/vending/expansion/downloader/DownloaderServiceMarshaller.java b/platform/android/java/src/com/google/android/vending/expansion/downloader/DownloaderServiceMarshaller.java
- index 979352299..3771d19c9 100644
- --- a/platform/android/java/src/com/google/android/vending/expansion/downloader/DownloaderServiceMarshaller.java
- +++ b/platform/android/java/src/com/google/android/vending/expansion/downloader/DownloaderServiceMarshaller.java
- @@ -25,6 +25,9 @@ import android.os.Message;
- import android.os.Messenger;
- import android.os.RemoteException;
-
- +// -- GODOT start --
- +import java.lang.ref.WeakReference;
- +// -- GODOT end --
-
-
- /**
- @@ -108,32 +111,49 @@ public class DownloaderServiceMarshaller {
-
- private static class Stub implements IStub {
- private IDownloaderService mItf = null;
- - final Messenger mMessenger = new Messenger(new Handler() {
- + // -- GODOT start --
- + private final MessengerHandlerServer mMsgHandler = new MessengerHandlerServer(this);
- + final Messenger mMessenger = new Messenger(mMsgHandler);
- +
- + private static class MessengerHandlerServer extends Handler {
- + private final WeakReference<Stub> mDownloader;
- + public MessengerHandlerServer(Stub downloader) {
- + mDownloader = new WeakReference<>(downloader);
- + }
- +
- @Override
- public void handleMessage(Message msg) {
- - switch (msg.what) {
- - case MSG_REQUEST_ABORT_DOWNLOAD:
- - mItf.requestAbortDownload();
- - break;
- - case MSG_REQUEST_CONTINUE_DOWNLOAD:
- - mItf.requestContinueDownload();
- - break;
- - case MSG_REQUEST_PAUSE_DOWNLOAD:
- - mItf.requestPauseDownload();
- - break;
- - case MSG_SET_DOWNLOAD_FLAGS:
- - mItf.setDownloadFlags(msg.getData().getInt(PARAMS_FLAGS));
- - break;
- - case MSG_REQUEST_DOWNLOAD_STATE:
- - mItf.requestDownloadStatus();
- - break;
- - case MSG_REQUEST_CLIENT_UPDATE:
- - mItf.onClientUpdated((Messenger) msg.getData().getParcelable(
- - PARAM_MESSENGER));
- - break;
- + Stub downloader = mDownloader.get();
- + if (downloader != null) {
- + downloader.handleMessage(msg);
- }
- }
- - });
- + }
- +
- + private void handleMessage(Message msg) {
- + switch (msg.what) {
- + case MSG_REQUEST_ABORT_DOWNLOAD:
- + mItf.requestAbortDownload();
- + break;
- + case MSG_REQUEST_CONTINUE_DOWNLOAD:
- + mItf.requestContinueDownload();
- + break;
- + case MSG_REQUEST_PAUSE_DOWNLOAD:
- + mItf.requestPauseDownload();
- + break;
- + case MSG_SET_DOWNLOAD_FLAGS:
- + mItf.setDownloadFlags(msg.getData().getInt(PARAMS_FLAGS));
- + break;
- + case MSG_REQUEST_DOWNLOAD_STATE:
- + mItf.requestDownloadStatus();
- + break;
- + case MSG_REQUEST_CLIENT_UPDATE:
- + mItf.onClientUpdated((Messenger)msg.getData().getParcelable(
- + PARAM_MESSENGER));
- + break;
- + }
- + }
- + // -- GODOT end --
-
- public Stub(IDownloaderService itf) {
- mItf = itf;
- diff --git a/platform/android/java/src/com/google/android/vending/expansion/downloader/Helpers.java b/platform/android/java/src/com/google/android/vending/expansion/downloader/Helpers.java
- index e4b1b0f1c..36cd6aacf 100644
- --- a/platform/android/java/src/com/google/android/vending/expansion/downloader/Helpers.java
- +++ b/platform/android/java/src/com/google/android/vending/expansion/downloader/Helpers.java
- @@ -24,7 +24,10 @@ import android.os.StatFs;
- import android.os.SystemClock;
- import android.util.Log;
-
- -import com.android.vending.expansion.downloader.R;
- +// -- GODOT start --
- +//import com.android.vending.expansion.downloader.R;
- +import org.godotengine.godot.R;
- +// -- GODOT end --
-
- import java.io.File;
- import java.text.SimpleDateFormat;
- @@ -146,12 +149,14 @@ public class Helpers {
- }
- return "";
- }
- - return String.format("%.2f",
- + // -- GODOT start --
- + return String.format(Locale.ENGLISH, "%.2f",
- (float) overallProgress / (1024.0f * 1024.0f))
- + "MB /" +
- - String.format("%.2f", (float) overallTotal /
- + String.format(Locale.ENGLISH, "%.2f", (float) overallTotal /
- (1024.0f * 1024.0f))
- + "MB";
- + // -- GODOT end --
- }
-
- /**
- @@ -184,7 +189,9 @@ public class Helpers {
- }
-
- public static String getSpeedString(float bytesPerMillisecond) {
- - return String.format("%.2f", bytesPerMillisecond * 1000 / 1024);
- + // -- GODOT start --
- + return String.format(Locale.ENGLISH, "%.2f", bytesPerMillisecond * 1000 / 1024);
- + // -- GODOT end --
- }
-
- public static String getTimeRemaining(long durationInMilliseconds) {
- diff --git a/platform/android/java/src/com/google/android/vending/expansion/downloader/SystemFacade.java b/platform/android/java/src/com/google/android/vending/expansion/downloader/SystemFacade.java
- index 12edd97ab..a0e1165cc 100644
- --- a/platform/android/java/src/com/google/android/vending/expansion/downloader/SystemFacade.java
- +++ b/platform/android/java/src/com/google/android/vending/expansion/downloader/SystemFacade.java
- @@ -26,6 +26,10 @@ import android.net.NetworkInfo;
- import android.telephony.TelephonyManager;
- import android.util.Log;
-
- +// -- GODOT start --
- +import android.annotation.SuppressLint;
- +// -- GODOT end --
- +
- /**
- * Contains useful helper functions, typically tied to the application context.
- */
- @@ -51,6 +55,7 @@ class SystemFacade {
- return null;
- }
-
- + @SuppressLint("MissingPermission")
- NetworkInfo activeInfo = connectivity.getActiveNetworkInfo();
- if (activeInfo == null) {
- if (Constants.LOGVV) {
- @@ -69,6 +74,7 @@ class SystemFacade {
- return false;
- }
-
- + @SuppressLint("MissingPermission")
- NetworkInfo info = connectivity.getActiveNetworkInfo();
- boolean isMobile = (info != null && info.getType() == ConnectivityManager.TYPE_MOBILE);
- TelephonyManager tm = (TelephonyManager) mContext
- diff --git a/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloadNotification.java b/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloadNotification.java
- index f1536e80e..4b214b22d 100644
- --- a/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloadNotification.java
- +++ b/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloadNotification.java
- @@ -16,7 +16,11 @@
-
- package com.google.android.vending.expansion.downloader.impl;
-
- -import com.android.vending.expansion.downloader.R;
- +// -- GODOT start --
- +//import com.android.vending.expansion.downloader.R;
- +import org.godotengine.godot.R;
- +// -- GODOT end --
- +
- import com.google.android.vending.expansion.downloader.DownloadProgressInfo;
- import com.google.android.vending.expansion.downloader.DownloaderClientMarshaller;
- import com.google.android.vending.expansion.downloader.Helpers;
- diff --git a/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloadThread.java b/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloadThread.java
- index b2e0e7af0..c114b8a64 100644
- --- a/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloadThread.java
- +++ b/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloadThread.java
- @@ -146,8 +146,12 @@ public class DownloadThread {
-
- try {
- PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
- - wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Constants.TAG);
- - wakeLock.acquire();
- + // -- GODOT start --
- + //wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Constants.TAG);
- + //wakeLock.acquire();
- + wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "org.godot.game:wakelock");
- + wakeLock.acquire(20 * 60 * 1000L /*20 minutes*/);
- + // -- GODOT end --
-
- if (Constants.LOGV) {
- Log.v(Constants.TAG, "initiating download for " + mInfo.mFileName);
- diff --git a/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloaderService.java b/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloaderService.java
- index 4babe476f..8d41a7690 100644
- --- a/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloaderService.java
- +++ b/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloaderService.java
- @@ -50,6 +50,10 @@ import android.provider.Settings.Secure;
- import android.telephony.TelephonyManager;
- import android.util.Log;
-
- +// -- GODOT start --
- +import android.annotation.SuppressLint;
- +// -- GODOT end --
- +
- import java.io.File;
-
- /**
- @@ -578,6 +582,7 @@ public abstract class DownloaderService extends CustomIntentService implements I
- Log.w(Constants.TAG,
- "couldn't get connectivity manager to poll network state");
- } else {
- + @SuppressLint("MissingPermission")
- NetworkInfo activeInfo = mConnectivityManager
- .getActiveNetworkInfo();
- updateNetworkState(activeInfo);
|