Android Open Source - AndroidShoppingList G C M Intent Service






From Project

Back to project page AndroidShoppingList.

License

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.

Java Source Code

/**
 * 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);
  }

}




Java Source Code List

com.github.riotopsys.shoppinglist.AppKeys.java
com.github.riotopsys.shoppinglist.GCMIntentService.java
com.github.riotopsys.shoppinglist.IConfigurations.java
com.github.riotopsys.shoppinglist.activity.ListItemEdit.java
com.github.riotopsys.shoppinglist.activity.ShoppingListPreview.java
com.github.riotopsys.shoppinglist.adapter.ShoppingListAdapter.java
com.github.riotopsys.shoppinglist.adapter.ShoppingListCollectionAdapter.java
com.github.riotopsys.shoppinglist.comparator.ListItemNameComparator.java
com.github.riotopsys.shoppinglist.comparator.ListNameComparator.java
com.github.riotopsys.shoppinglist.fragment.ShoppingListFragment.java
com.github.riotopsys.shoppinglist.listener.CheckedChangeListener.java
com.github.riotopsys.shoppinglist.model.DatabaseHelper.java
com.github.riotopsys.shoppinglist.model.DigestRecord.java
com.github.riotopsys.shoppinglist.model.PersistedRecord.java
com.github.riotopsys.shoppinglist.model.ShoppingListCollection.java
com.github.riotopsys.shoppinglist.model.ShoppingListItem.java
com.github.riotopsys.shoppinglist.model.ShoppingList.java
com.github.riotopsys.shoppinglist.model.Work.java
com.github.riotopsys.shoppinglist.server.DigestCollection.java
com.github.riotopsys.shoppinglist.server.RestHelper.java
com.github.riotopsys.shoppinglist.server.RestResult.java
com.github.riotopsys.shoppinglist.server.ServerInterfaceService.java
com.github.riotopsys.shoppinglist.server.ServerTask.java
com.github.riotopsys.shoppinglist.server.UrlBuilder.java
com.github.riotopsys.shoppinglist.server.work.Operations.java
com.github.riotopsys.shoppinglist.server.work.WorkQueue.java
com.github.riotopsys.shoppinglist.utils.AccountUtils.java