mirror of
https://github.com/moparisthebest/k-9
synced 2024-11-11 03:55:04 -05:00
49 lines
1.5 KiB
Java
49 lines
1.5 KiB
Java
package com.fsck.k9.helper;
|
|
|
|
import java.lang.reflect.Constructor;
|
|
import java.lang.reflect.Method;
|
|
import android.content.ContentResolver;
|
|
import android.content.Context;
|
|
import android.os.Handler;
|
|
|
|
public class AutoSyncSdk3 implements IAutoSync
|
|
{
|
|
private Method mGetListenForNetworkTickles;
|
|
private Object mQueryMap;
|
|
|
|
public void initialize(Context context) throws NoSuchMethodException
|
|
{
|
|
/*
|
|
* There's no documented/official way to query the state of the
|
|
* auto-sync setting for a normal application in SDK 1.5/API 3.
|
|
*
|
|
* We use reflection to get an Sync.Settings.QueryMap" object, so we
|
|
* can call its getListenForNetworkTickles() method. This will return
|
|
* the current auto-sync state.
|
|
*/
|
|
try
|
|
{
|
|
Class<?> clazz = Class.forName("android.provider.Sync$Settings$QueryMap");
|
|
Constructor<?> c = clazz.getConstructor(ContentResolver.class, boolean.class, Handler.class);
|
|
mQueryMap = c.newInstance(context.getContentResolver(), true, null);
|
|
mGetListenForNetworkTickles = mQueryMap.getClass().getMethod("getListenForNetworkTickles");
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
throw new NoSuchMethodException();
|
|
}
|
|
}
|
|
|
|
public boolean getMasterSyncAutomatically()
|
|
{
|
|
try
|
|
{
|
|
return (Boolean) mGetListenForNetworkTickles.invoke(mQueryMap);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
}
|