Browse Source

fix compatibility for Android API 14 with supporting API 23

using ``NotificationCompat`` in ``support-v4`` library will increase APK filesize a little bit, but it guarantees to run OK with API 4+
tested with API 19 and 23 devices
volzhs 9 years ago
parent
commit
ff67c256f5

+ 1 - 1
platform/android/AndroidManifest.xml.template

@@ -200,6 +200,6 @@ $$ADD_PERMISSION_CHUNKS$$
 <uses-permission android:name="godot.custom.18"/>
 <uses-permission android:name="godot.custom.19"/>
 
-<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19"/>
+<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="23"/>
          
 </manifest> 

+ 1 - 1
platform/android/build.gradle.template

@@ -17,7 +17,7 @@ allprojects {
 }
 
 dependencies {
-
+	compile 'com.android.support:support-v4:23.+'
 	$$GRADLE_DEPENDENCIES$$    
 }
 

+ 3 - 3
platform/android/java/src/com/android/vending/licensing/LicenseChecker.java

@@ -146,11 +146,11 @@ public class LicenseChecker implements ServiceConnection {
             if (mService == null) {
                 Log.i(TAG, "Binding to licensing service.");
                 try {
+                    Intent serviceIntent = new Intent(new String(Base64.decode("Y29tLmFuZHJvaWQudmVuZGluZy5saWNlbnNpbmcuSUxpY2Vuc2luZ1NlcnZpY2U=")));
+					serviceIntent.setPackage("com.android.vending");
                     boolean bindResult = mContext
                             .bindService(
-                                    new Intent(
-                                            new String(
-                                                    Base64.decode("Y29tLmFuZHJvaWQudmVuZGluZy5saWNlbnNpbmcuSUxpY2Vuc2luZ1NlcnZpY2U="))),
+                                    serviceIntent,
                                     this, // ServiceConnection.
                                     Context.BIND_AUTO_CREATE);
 

+ 5 - 4
platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloadNotification.java

@@ -27,6 +27,7 @@ import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.content.Context;
 import android.os.Messenger;
+import android.support.v4.app.NotificationCompat;
 
 /**
  * This class handles displaying the notification associated with the download
@@ -48,8 +49,8 @@ public class DownloadNotification implements IDownloaderClient {
 
     private IDownloaderClient mClientProxy;
     final ICustomNotification mCustomNotification;
-    private Notification.Builder mNotificationBuilder;
-    private Notification.Builder mCurrentNotificationBuilder;
+    private NotificationCompat.Builder mNotificationBuilder;
+    private NotificationCompat.Builder mCurrentNotificationBuilder;
     private CharSequence mLabel;
     private String mCurrentText;
     private PendingIntent mContentIntent;
@@ -185,7 +186,7 @@ public class DownloadNotification implements IDownloaderClient {
 
         void setTimeRemaining(long timeRemaining);
 
-        Notification.Builder updateNotification(Context c);
+		NotificationCompat.Builder updateNotification(Context c);
     }
 
     /**
@@ -218,7 +219,7 @@ public class DownloadNotification implements IDownloaderClient {
                 mContext.getSystemService(Context.NOTIFICATION_SERVICE);
         mCustomNotification = CustomNotificationFactory
                 .createCustomNotification();
-        mNotificationBuilder = new Notification.Builder(ctx);
+        mNotificationBuilder = new NotificationCompat.Builder(ctx);
         mCurrentNotificationBuilder = mNotificationBuilder;
 
     }

+ 4 - 3
platform/android/java/src/com/google/android/vending/expansion/downloader/impl/V14CustomNotification.java

@@ -22,6 +22,7 @@ import com.google.android.vending.expansion.downloader.Helpers;
 import android.app.Notification;
 import android.app.PendingIntent;
 import android.content.Context;
+import android.support.v4.app.NotificationCompat;
 
 public class V14CustomNotification implements DownloadNotification.ICustomNotification {
 
@@ -53,13 +54,13 @@ public class V14CustomNotification implements DownloadNotification.ICustomNotifi
         mCurrentKB = currentBytes;
     }
 
-    void setProgress(Notification.Builder builder) {
+    void setProgress(NotificationCompat.Builder builder) {
 
     }
 
     @Override
-    public Notification.Builder updateNotification(Context c) {
-        Notification.Builder builder = new Notification.Builder(c);
+    public NotificationCompat.Builder updateNotification(Context c) {
+		NotificationCompat.Builder builder = new NotificationCompat.Builder(c);
         builder.setContentTitle(mTitle);
         if (mTotalKB > 0 && -1 != mCurrentKB) {
             builder.setProgress((int) (mTotalKB >> 8), (int) (mCurrentKB >> 8), false);