Skip to content

Commit

Permalink
Hold a full wakeLock when restoring on KitKat+
Browse files Browse the repository at this point in the history
  • Loading branch information
jberkel committed Nov 18, 2014
1 parent be6bee4 commit 6b70acd
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 8 deletions.
8 changes: 6 additions & 2 deletions src/main/java/com/zegoggles/smssync/service/ServiceBase.java
Expand Up @@ -113,7 +113,7 @@ protected Preferences getPreferences() {
protected void acquireLocks() {
if (mWakeLock == null) {
PowerManager pMgr = (PowerManager) getSystemService(POWER_SERVICE);
mWakeLock = pMgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
mWakeLock = pMgr.newWakeLock(wakeLockType(), TAG);
}
mWakeLock.acquire();

Expand All @@ -127,6 +127,10 @@ protected void acquireLocks() {
}
}

protected int wakeLockType() {
return PowerManager.PARTIAL_WAKE_LOCK;
}

@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
private int getWifiLockType() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1 ?
Expand Down Expand Up @@ -178,7 +182,7 @@ protected WifiManager getWifiManager() {
return (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
}

protected Notification createNotification(int resId) {
protected @NotNull Notification createNotification(int resId) {
Notification n = new Notification(R.drawable.ic_notification,
getString(resId),
System.currentTimeMillis());
Expand Down
20 changes: 14 additions & 6 deletions src/main/java/com/zegoggles/smssync/service/SmsRestoreService.java
Expand Up @@ -3,6 +3,7 @@
import android.annotation.TargetApi;
import android.content.Intent;
import android.os.Build;
import android.os.PowerManager;
import android.provider.Telephony;
import android.util.Log;
import com.fsck.k9.mail.MessagingException;
Expand Down Expand Up @@ -56,16 +57,13 @@ public void onDestroy() {
}

/**
* Android KitKat requires SMS Backup+ to be the default SMS application in order to
* Android KitKat and above require SMS Backup+ to be the default SMS application in order to
* write to the SMS Provider.
*/
@TargetApi(Build.VERSION_CODES.KITKAT)
private boolean canWriteToSmsProvider() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
return true;
} else {
return getPackageName().equals(Telephony.Sms.getDefaultSmsPackage(this));
}
return Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT ||
getPackageName().equals(Telephony.Sms.getDefaultSmsPackage(this));
}

@Override
Expand Down Expand Up @@ -158,6 +156,16 @@ public boolean accept(File dir, String name) {
return mState;
}

@Override protected int wakeLockType() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// hold a full wake lock when restoring on newer version of Android, since
// the user needs to switch back the sms app afterwards
return PowerManager.FULL_WAKE_LOCK;
} else {
return super.wakeLockType();
}
}

public static boolean isServiceWorking() {
return service != null && service.isWorking();
}
Expand Down

0 comments on commit 6b70acd

Please sign in to comment.