aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/research/UploaderService.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod/research/UploaderService.java')
-rw-r--r--java/src/com/android/inputmethod/research/UploaderService.java45
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;
}