diff --git a/README.md b/README.md
index 0483dd17..f85813fe 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@ Mobile Messaging SDK is designed and developed to easily enable push notificatio
## Quick start guide
-1. Make sure to setup application at Infobip portal, if you haven't already.
+1. Make sure to setup application at Infobip portal, if you haven't already.
2. Add dependencies to `app/build.gradle`
```groovy
dependencies {
@@ -24,7 +24,8 @@ Mobile Messaging SDK is designed and developed to easily enable push notificatio
}
```
-3. Add `HMS App ID` and Infobip `Application Code` obtained in step 1 to `values/strings.xml`
+3. `Configure Huawei application`
+4. Add HMS App ID and Infobip `Application Code` obtained in step 1 to `values/strings.xml`
```groovy
SENDER ID
@@ -32,8 +33,9 @@ Mobile Messaging SDK is designed and developed to easily enable push notificatio
...
```
+ HMS App ID could be taken from Huawei Developer Console - Application settings
-4. Add code to `MainActivity#onCreate`
+5. Add code to `MainActivity#onCreate`
```java
public class MainActivity extends AppCompatActivity {
diff --git a/infobip-mobile-messaging-huawei-sdk/src/main/java/org/infobip/mobile/messaging/cloud/PlayServicesSupport.java b/infobip-mobile-messaging-huawei-sdk/src/main/java/org/infobip/mobile/messaging/cloud/PlayServicesSupport.java
index c961e4e0..7e09f030 100644
--- a/infobip-mobile-messaging-huawei-sdk/src/main/java/org/infobip/mobile/messaging/cloud/PlayServicesSupport.java
+++ b/infobip-mobile-messaging-huawei-sdk/src/main/java/org/infobip/mobile/messaging/cloud/PlayServicesSupport.java
@@ -8,7 +8,6 @@
import android.support.v4.content.LocalBroadcastManager;
import com.huawei.hms.api.ConnectionResult;
-import com.huawei.hms.api.HuaweiApiAvailability;
import org.infobip.mobile.messaging.BroadcastParameter;
import org.infobip.mobile.messaging.Event;
@@ -16,6 +15,7 @@
import org.infobip.mobile.messaging.MobileMessagingCore;
import org.infobip.mobile.messaging.logging.MobileMessagingLogger;
import org.infobip.mobile.messaging.mobileapi.InternalSdkError;
+import org.infobip.mobile.messaging.mobileapi.apiavailability.ApiAvailability;
/**
* @author mstipanov
@@ -28,15 +28,15 @@ public class PlayServicesSupport {
private static Boolean isPlayServicesAvailable;
private final Handler handler = new Handler(Looper.getMainLooper());
+ private static ApiAvailability apiAvailability = new ApiAvailability();
+
/**
* Check the device to make sure it has the Google Play Services APK. If
* it doesn't, display a dialog that allows users to download the APK from
* the Google Play Store or enable it in the device's system settings.
*/
public void checkPlayServicesAndTryToAcquireToken(final Context context, boolean shouldResetToken, @Nullable MobileMessaging.InitListener initListener) {
- HuaweiApiAvailability apiAvailability = HuaweiApiAvailability.getInstance();
- int errorCode = apiAvailability.isHuaweiMobileServicesAvailable(context);
- String errorStr = apiAvailability.getErrorString(errorCode);
+ int errorCode = apiAvailability.checkServicesStatus(context);
isPlayServicesAvailable = errorCode == ConnectionResult.SUCCESS;
if (errorCode != ConnectionResult.SUCCESS) {
@@ -82,13 +82,13 @@ public void run() {
}
}
+
public static boolean isPlayServicesAvailable(Context context) {
if (isPlayServicesAvailable != null) {
return isPlayServicesAvailable;
}
- HuaweiApiAvailability apiAvailability = HuaweiApiAvailability.getInstance();
- isPlayServicesAvailable = apiAvailability.isHuaweiMobileServicesAvailable(context) == ConnectionResult.SUCCESS;
+ isPlayServicesAvailable = apiAvailability.isServicesAvailable(context);
return isPlayServicesAvailable;
}
}
diff --git a/infobip-mobile-messaging-huawei-sdk/src/main/java/org/infobip/mobile/messaging/mobileapi/apiavailability/ApiAvailability.java b/infobip-mobile-messaging-huawei-sdk/src/main/java/org/infobip/mobile/messaging/mobileapi/apiavailability/ApiAvailability.java
new file mode 100644
index 00000000..4337da75
--- /dev/null
+++ b/infobip-mobile-messaging-huawei-sdk/src/main/java/org/infobip/mobile/messaging/mobileapi/apiavailability/ApiAvailability.java
@@ -0,0 +1,37 @@
+package org.infobip.mobile.messaging.mobileapi.apiavailability;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+
+import com.huawei.hms.api.ConnectionResult;
+import com.huawei.hms.api.HuaweiApiAvailability;
+
+public class ApiAvailability {
+
+ /**
+ * Chack ApiAvailability status and return ConnectionResult code
+ * @param context
+ * @return
+ */
+ public int checkServicesStatus(Context context) {
+ HuaweiApiAvailability apiAvailability = HuaweiApiAvailability.getInstance();
+ return apiAvailability.isHuaweiMobileServicesAvailable(context);
+ }
+
+ public boolean isServicesAvailable(Context context) {
+ return checkServicesStatus(context) == ConnectionResult.SUCCESS;
+ }
+
+ public boolean isUserResolvableError(int errorCode) {
+ HuaweiApiAvailability apiAvailability = HuaweiApiAvailability.getInstance();
+ return apiAvailability.isUserResolvableError(errorCode);
+ }
+
+ public Dialog getErrorDialog(Activity activity, int errorCode, int platformError, DialogInterface.OnCancelListener listner) {
+ HuaweiApiAvailability apiAvailability = HuaweiApiAvailability.getInstance();
+ return apiAvailability.getErrorDialog(activity, errorCode, platformError, listner);
+ }
+
+}