Skip to content

Instantly share code, notes, and snippets.

@Axxiss
Axxiss / sync-adapter.xml
Created May 21, 2012 13:33
Sync adapter definition
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="com.acme.provider.visiostorm"
android:accountType="com.acme.app.authenticator"
/>
@Axxiss
Axxiss / SyncService.java
Created May 21, 2012 13:31
Sync service
public class SyncService extends Service {
/** Lock to synchronize access to SyncAdapter*/
private static final Object syncLock = new Object();
/** SyncAdapter used to sync data with server */
private static SyncAdapter sSyncAdapter = null;
@Override
public void onCreate(){
@Axxiss
Axxiss / syncLog.java
Created May 21, 2012 13:25
Log synchornization
public static void syncLog(Context context, String user, String authToken) {
Log.i(TAG, "Syncing VisioStorm log");
ContentResolver cr = context.getContentResolver();
Cursor cursor = PendingMovie.getAll(cr);
API.setUser(user);
API.setAuthToken(authToken);
@Axxiss
Axxiss / SyncAdapter.java
Created May 21, 2012 13:22
Sync adapter
public class SyncAdapter extends AbstractThreadedSyncAdapter {
private final static String TAG = "SyncAdapter";
private AccountManager mAccountManager;
public SyncAdapter(Context context, boolean autoInitialize) {
super(context, autoInitialize);
mAccountManager = AccountManager.get(context);
}
@Axxiss
Axxiss / services.xml
Created May 21, 2012 13:09
Service definition on AndroidManifest
<service
android:name=".authenticator.AuthenticationService"
android:exported="true" >
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator" />
</intent-filter>
<meta-data
android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticator" />
@Axxiss
Axxiss / RestClient.java
Created May 9, 2012 07:31
Restful client
public class RestClient {
private static final String TAG = "RestClient";
private static final String USER_AGENT = "VisioStorm Android";
/** Methods supported by RestClient */
public enum RequestMethod {
GET, POST
}
<provider
android:name=".provider.AcmeProvider"
android:authorities="com.acme.provider.myapp"
android:label="Log"
android:enabled="true"/>
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
int count;
switch (uriMatcher.match(uri)) {
case LOG_LIST:
count = dbLogs.delete(TABLE_NAME, selection, selectionArgs);
break;
case LOG_ITEM:
String segment = uri.getPathSegments().get(1);
@Override
public boolean onCreate() {
Context context = getContext();
AcmeDatabaseHelper helper = new AcmeDatabaseHelper(context);
dbLogs = helper.getWritableDatabase();
return dbLogs == null ? false : true;
}
@Override
public String getType(Uri uri) {
switch (uriMatcher.match(uri)) {
case LOG_LIST: return CONTENT_TYPE_LIST;
case LOG_ITEM: return CONTENT_TYPE_ITEM;
default: throw new IllegalArgumentException("Unsupported URI: " + uri);
}
}