Back to project page AndroidShoppingList.
The source code is released under:
Apache License
If you think the Android project AndroidShoppingList listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/** * Copyright 2012 C. A. Fitzgerald/*from w w w . ja v a 2 s . c om*/ * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.github.riotopsys.shoppinglist; import java.sql.SQLException; import java.util.UUID; import android.content.Context; import android.content.Intent; import android.util.Log; import com.github.riotopsys.shoppinglist.model.DatabaseHelper; import com.github.riotopsys.shoppinglist.model.PersistedRecord; import com.github.riotopsys.shoppinglist.model.ShoppingList; import com.github.riotopsys.shoppinglist.model.ShoppingListItem; import com.github.riotopsys.shoppinglist.server.ServerInterfaceService; import com.github.riotopsys.shoppinglist.server.ServerTask; import com.google.android.gcm.GCMBaseIntentService; import com.j256.ormlite.android.apptools.OpenHelperManager; public class GCMIntentService extends GCMBaseIntentService { @Override protected void onError(Context arg0, String arg1) { Log.i(TAG, String.format("%s %s", "onError", arg1)); } @Override protected void onMessage(Context ctx, Intent intent) { Log.i(TAG, String.format("%s %s", "onMessage", intent.getStringExtra("guid"))); if ( intent.hasExtra("total_deleted")){ Intent i = new Intent(this, ServerInterfaceService.class); i.putExtra(AppKeys.SERVER_TASK_KEY, ServerTask.SYNC); startService(i); return; } UUID guid = UUID.fromString(intent.getStringExtra("guid")); DatabaseHelper databaseHelper = OpenHelperManager.getHelper(this, DatabaseHelper.class); try { PersistedRecord record; if ( intent.hasExtra("deleted")){ record = databaseHelper.getShoppingListItem(guid); if (record == null) { record = databaseHelper.getShoppingList(guid); } if ( record != null ){ databaseHelper.delete(record); } } else { //create a new record if ( intent.hasExtra("parent")){ record = new ShoppingListItem( intent ); } else { record = new ShoppingList( intent ); } databaseHelper.createOrUpdate( record ); } if ( record == null ){ return; } Intent broadcast; if (record instanceof ShoppingListItem) { broadcast = new Intent(AppKeys.ITEM_UPDATE_ACTION); } else { broadcast = new Intent(AppKeys.LIST_UPDATE_ACTION); } broadcast.putExtra(AppKeys.GUID_KEY, record.getGuid()); sendBroadcast(broadcast); } catch (SQLException e) { throw new RuntimeException(e); } finally { OpenHelperManager.releaseHelper(); } } @Override protected void onRegistered(Context ctx, String reg) { Log.i(TAG, String.format("%s %s", "onRegistered", reg)); Intent i = new Intent(ctx, ServerInterfaceService.class); i.putExtra(AppKeys.SERVER_TASK_KEY, ServerTask.REGISTER); i.putExtra(AppKeys.REG_KEY, reg ); ctx.startService(i); } @Override protected void onUnregistered(Context ctx, String reg) { Log.i(TAG, String.format("%s %s", "onUnregistered", reg)); Intent i = new Intent(ctx, ServerInterfaceService.class); i.putExtra(AppKeys.SERVER_TASK_KEY, ServerTask.UNREGISTER); i.putExtra(AppKeys.REG_KEY, reg ); ctx.startService(i); } }