diff options
Diffstat (limited to 'java/src/com/android/inputmethod/research/UploaderService.java')
-rw-r--r-- | java/src/com/android/inputmethod/research/UploaderService.java | 45 |
1 files changed, 26 insertions, 19 deletions
diff --git a/java/src/com/android/inputmethod/research/UploaderService.java b/java/src/com/android/inputmethod/research/UploaderService.java index 89c67fbb2..eb5bdefb7 100644 --- a/java/src/com/android/inputmethod/research/UploaderService.java +++ b/java/src/com/android/inputmethod/research/UploaderService.java @@ -56,7 +56,6 @@ public final class UploaderService extends IntentService { private static final int BUF_SIZE = 1024 * 8; protected static final int TIMEOUT_IN_MS = 1000 * 4; - private boolean mCanUpload; private File mFilesDir; private URL mUrl; @@ -68,14 +67,10 @@ public final class UploaderService extends IntentService { public void onCreate() { super.onCreate(); - mCanUpload = false; mFilesDir = null; mUrl = null; - final PackageManager packageManager = getPackageManager(); - final boolean hasPermission = packageManager.checkPermission(Manifest.permission.INTERNET, - getPackageName()) == PackageManager.PERMISSION_GRANTED; - if (!hasPermission) { + if (!hasUploadingPermission()) { return; } @@ -86,23 +81,39 @@ public final class UploaderService extends IntentService { } mFilesDir = getFilesDir(); mUrl = new URL(urlString); - mCanUpload = true; } catch (MalformedURLException e) { e.printStackTrace(); } } + public boolean isPossibleToUpload() { + return hasUploadingPermission() && mUrl != null && !IS_INHIBITING_AUTO_UPLOAD; + } + + private boolean hasUploadingPermission() { + final PackageManager packageManager = getPackageManager(); + return packageManager.checkPermission(Manifest.permission.INTERNET, + getPackageName()) == PackageManager.PERMISSION_GRANTED; + } + @Override protected void onHandleIntent(Intent intent) { - if (!mCanUpload) { - return; + if (!isPossibleToUpload()) return; + if (isUploadingUnconditionally(intent.getExtras()) || isConvenientToUpload()) { + doUpload(); } - boolean isUploadingUnconditionally = false; - Bundle bundle = intent.getExtras(); - if (bundle != null && bundle.containsKey(EXTRA_UPLOAD_UNCONDITIONALLY)) { - isUploadingUnconditionally = bundle.getBoolean(EXTRA_UPLOAD_UNCONDITIONALLY); + } + + private boolean isUploadingUnconditionally(final Bundle bundle) { + if (bundle == null) return false; + if (bundle.containsKey(EXTRA_UPLOAD_UNCONDITIONALLY)) { + return bundle.getBoolean(EXTRA_UPLOAD_UNCONDITIONALLY); } - doUpload(isUploadingUnconditionally); + return false; + } + + private boolean isConvenientToUpload() { + return isExternallyPowered() && hasWifiConnection(); } private boolean isExternallyPowered() { @@ -120,11 +131,7 @@ public final class UploaderService extends IntentService { return wifiInfo.isConnected(); } - private void doUpload(final boolean isUploadingUnconditionally) { - if (!isUploadingUnconditionally && (!isExternallyPowered() || !hasWifiConnection() - || IS_INHIBITING_AUTO_UPLOAD)) { - return; - } + private void doUpload() { if (mFilesDir == null) { return; } |