diff --git a/.gitignore b/.gitignore index 22ffac4..2c6064c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.iml .idea -target/ \ No newline at end of file +target/ +.DS_Store diff --git a/Samples/ActivityFeed/activityfeed/build.gradle b/Samples/ActivityFeed/activityfeed/build.gradle index 91d4c7e..63dc6ec 100644 --- a/Samples/ActivityFeed/activityfeed/build.gradle +++ b/Samples/ActivityFeed/activityfeed/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.application' +apply plugin: 'com.google.gms.google-services' android { compileSdkVersion 23 @@ -24,4 +25,5 @@ dependencies { testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' compile project(':UsergridAndroidSDK') + compile "com.google.firebase:firebase-messaging:9.0.0" } diff --git a/Samples/ActivityFeed/activityfeed/google-services.json b/Samples/ActivityFeed/activityfeed/google-services.json new file mode 100644 index 0000000..d9086f0 --- /dev/null +++ b/Samples/ActivityFeed/activityfeed/google-services.json @@ -0,0 +1,42 @@ +{ + "project_info": { + "project_number": "468982482457", + "firebase_url": "https://activity-feed-727db.firebaseio.com", + "project_id": "activity-feed-727db", + "storage_bucket": "activity-feed-727db.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:468982482457:android:8b607d8ef09dec5c", + "android_client_info": { + "package_name": "org.apache.usergrid.activityfeed" + } + }, + "oauth_client": [ + { + "client_id": "468982482457-l9cjoki8hotacuouj75b73mpbc827bjo.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyAIbLcFcdh64wNWb7CZAt3jyj3tauZujqM" + } + ], + "services": { + "analytics_service": { + "status": 1 + }, + "appinvite_service": { + "status": 1, + "other_platform_oauth_client": [] + }, + "ads_service": { + "status": 2 + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/Samples/ActivityFeed/activityfeed/libs/gcm.jar b/Samples/ActivityFeed/activityfeed/libs/gcm.jar deleted file mode 100755 index ac109a8..0000000 Binary files a/Samples/ActivityFeed/activityfeed/libs/gcm.jar and /dev/null differ diff --git a/Samples/ActivityFeed/activityfeed/src/main/AndroidManifest.xml b/Samples/ActivityFeed/activityfeed/src/main/AndroidManifest.xml index ec275c8..94c884a 100644 --- a/Samples/ActivityFeed/activityfeed/src/main/AndroidManifest.xml +++ b/Samples/ActivityFeed/activityfeed/src/main/AndroidManifest.xml @@ -2,15 +2,14 @@ + + + + + + - - - - - - + - - - - + + + + + + - - + - - - - - - + - - - - + - - - - + + + + + + + diff --git a/Samples/Push/push/src/main/java/org/apache/usergrid/push/MainActivity.java b/Samples/Push/push/src/main/java/org/apache/usergrid/push/MainActivity.java index 084dceb..a15650d 100644 --- a/Samples/Push/push/src/main/java/org/apache/usergrid/push/MainActivity.java +++ b/Samples/Push/push/src/main/java/org/apache/usergrid/push/MainActivity.java @@ -6,45 +6,48 @@ import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; -import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageButton; -import com.google.android.gcm.GCMRegistrar; +import com.google.firebase.iid.FirebaseInstanceId; import org.apache.usergrid.android.UsergridAsync; import org.apache.usergrid.android.UsergridSharedDevice; import org.apache.usergrid.android.callbacks.UsergridResponseCallback; import org.apache.usergrid.java.client.Usergrid; +import org.apache.usergrid.java.client.UsergridClient; import org.apache.usergrid.java.client.UsergridClientConfig; import org.apache.usergrid.java.client.UsergridEnums; import org.apache.usergrid.java.client.UsergridRequest; import org.apache.usergrid.java.client.response.UsergridResponse; +import org.jetbrains.annotations.NotNull; import java.util.HashMap; public class MainActivity extends AppCompatActivity { - public static String ORG_ID = "rwalsh"; - public static String APP_ID = "sandbox"; - public static String BASE_URL = "https://api.usergrid.com"; + public static String ORG_ID = "rjwalsh"; + public static String APP_ID = "sdk.demo"; + public static String BASE_URL = "https://apibaas-trial.apigee.net"; - public static String NOTIFIER_ID = "androidPushNotifier"; - public static String GCM_SENDER_ID = "186455511595"; - public static String GCM_REGISTRATION_ID = ""; + public static String NOTIFIER_ID = "fcmAndroidPush"; + public static String FCM_TOKEN = ""; public static boolean USERGRID_PREFS_NEEDS_REFRESH = false; private static final String USERGRID_PREFS_FILE_NAME = "usergrid_prefs.xml"; + public static UsergridClient initUsergridInstance() { + return Usergrid.initSharedInstance(ORG_ID,APP_ID,BASE_URL); + } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + initUsergridInstance(); retrieveSavedPrefs(); - Usergrid.initSharedInstance(ORG_ID,APP_ID,BASE_URL); - MainActivity.registerPush(this); final ImageButton infoButton = (ImageButton) findViewById(R.id.infoButton); if( infoButton != null ) { @@ -81,14 +84,24 @@ public void onClick(View v) { protected void onResume() { if( USERGRID_PREFS_NEEDS_REFRESH ) { Usergrid.setConfig(new UsergridClientConfig(ORG_ID,APP_ID,BASE_URL)); - if( GCM_REGISTRATION_ID != null && !GCM_REGISTRATION_ID.isEmpty() ) { - UsergridAsync.applyPushToken(this, GCM_REGISTRATION_ID, MainActivity.NOTIFIER_ID, new UsergridResponseCallback() { + if( FCM_TOKEN != null && !FCM_TOKEN.isEmpty() ) { + UsergridAsync.applyPushToken(this, FCM_TOKEN, MainActivity.NOTIFIER_ID, new UsergridResponseCallback() { @Override public void onResponse(@NonNull UsergridResponse response) { } }); } this.savePrefs(); USERGRID_PREFS_NEEDS_REFRESH = false; + } else { + try { + FCM_TOKEN = FirebaseInstanceId.getInstance().getToken(); + if( FCM_TOKEN != null ) { + UsergridAsync.applyPushToken(this, FCM_TOKEN, MainActivity.NOTIFIER_ID, new UsergridResponseCallback() { + @Override + public void onResponse(@NotNull UsergridResponse response) { } + }); + } + } catch (Exception ignored) { } } super.onResume(); } @@ -99,21 +112,9 @@ protected void onDestroy() { super.onDestroy(); } - public static void registerPush(Context context) { - final String regId = GCMRegistrar.getRegistrationId(context); - if ("".equals(regId)) { - GCMRegistrar.register(context, GCM_SENDER_ID); - } else { - if (GCMRegistrar.isRegisteredOnServer(context)) { - Log.i("", "Already registered with GCM"); - } else { - MainActivity.registerPush(context, regId); - } - } - } - public static void registerPush(@NonNull final Context context, @NonNull final String registrationId) { - MainActivity.GCM_REGISTRATION_ID = registrationId; + initUsergridInstance(); + MainActivity.FCM_TOKEN = registrationId; UsergridAsync.applyPushToken(context, registrationId, MainActivity.NOTIFIER_ID, new UsergridResponseCallback() { @Override public void onResponse(@NonNull UsergridResponse response) { diff --git a/Samples/Push/push/src/main/java/org/apache/usergrid/push/GCMIntentService.java b/Samples/Push/push/src/main/java/org/apache/usergrid/push/PushMessageListenerService.java similarity index 50% rename from Samples/Push/push/src/main/java/org/apache/usergrid/push/GCMIntentService.java rename to Samples/Push/push/src/main/java/org/apache/usergrid/push/PushMessageListenerService.java index 5faeb01..90519cc 100644 --- a/Samples/Push/push/src/main/java/org/apache/usergrid/push/GCMIntentService.java +++ b/Samples/Push/push/src/main/java/org/apache/usergrid/push/PushMessageListenerService.java @@ -6,55 +6,17 @@ import android.content.Context; import android.content.Intent; import android.support.v4.app.NotificationCompat; -import android.util.Log; -import com.google.android.gcm.GCMBaseIntentService; +import com.google.firebase.messaging.FirebaseMessagingService; +import com.google.firebase.messaging.RemoteMessage; -public class GCMIntentService extends GCMBaseIntentService { - - public GCMIntentService() { - super(MainActivity.GCM_SENDER_ID); - } - - @Override - protected void onRegistered(Context context, String registrationId) { - Log.i(TAG, "Device registered: " + registrationId); - MainActivity.registerPush(context,registrationId); - } - - @Override - protected void onUnregistered(Context context, String registrationId) { - Log.i(TAG, "Device unregistered"); - } - - @Override - protected void onMessage(Context context, Intent intent) { - String message = intent.getExtras().getString("data"); - Log.i(TAG, "Received message: " + message); - generateNotification(context, message); - } - - @Override - protected void onDeletedMessages(Context context, int total) { - Log.i(TAG, "Received deleted messages notification"); - String message = "GCM server deleted " + total +" pending messages!"; - generateNotification(context, message); - } +public class PushMessageListenerService extends FirebaseMessagingService { @Override - public void onError(Context context, String errorId) { - Log.i(TAG, "Received error: " + errorId); + public void onMessageReceived(RemoteMessage message){ + PushMessageListenerService.generateNotification(this,message.getData().get("data")); } - @Override - protected boolean onRecoverableError(Context context, String errorId) { - Log.i(TAG, "Received recoverable error: " + errorId); - return super.onRecoverableError(context, errorId); - } - - /** - * Issues a Notification to inform the user that server has sent a message. - */ private static void generateNotification(Context context, String message) { long when = System.currentTimeMillis(); NotificationManager notificationManager = (NotificationManager) @@ -82,4 +44,5 @@ private static void generateNotification(Context context, String message) { notification.defaults |= Notification.DEFAULT_VIBRATE; notificationManager.notify(0, notification); } -} \ No newline at end of file + +} diff --git a/Samples/Push/push/src/main/java/org/apache/usergrid/push/PushTokenListenerService.java b/Samples/Push/push/src/main/java/org/apache/usergrid/push/PushTokenListenerService.java new file mode 100644 index 0000000..ae13b6d --- /dev/null +++ b/Samples/Push/push/src/main/java/org/apache/usergrid/push/PushTokenListenerService.java @@ -0,0 +1,14 @@ +package org.apache.usergrid.push; + +import com.google.firebase.iid.FirebaseInstanceId; +import com.google.firebase.iid.FirebaseInstanceIdService; + +public class PushTokenListenerService extends FirebaseInstanceIdService { + @Override + public void onTokenRefresh() { + String refreshedToken = FirebaseInstanceId.getInstance().getToken(); + if( refreshedToken != null ) { + MainActivity.registerPush(this,refreshedToken); + } + } +} diff --git a/UsergridAndroidSDK/build.gradle b/UsergridAndroidSDK/build.gradle index ef2db46..1b74bdd 100644 --- a/UsergridAndroidSDK/build.gradle +++ b/UsergridAndroidSDK/build.gradle @@ -7,9 +7,9 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.0' + classpath 'com.android.tools.build:gradle:2.2.3' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2' - classpath "com.github.dcendents:android-maven-gradle-plugin:1.3" + classpath "com.github.dcendents:android-maven-gradle-plugin:1.4.1" } } diff --git a/UsergridAndroidSDK/libs/usergrid-java-client-2.1.0.jar b/UsergridAndroidSDK/libs/usergrid-java-client-2.1.0.jar index d77cd88..649edfa 100644 Binary files a/UsergridAndroidSDK/libs/usergrid-java-client-2.1.0.jar and b/UsergridAndroidSDK/libs/usergrid-java-client-2.1.0.jar differ