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
This commit is contained in:
volzhs 2016-05-24 11:22:35 +09:00
parent 160713d4d3
commit ff67c256f5
5 changed files with 14 additions and 12 deletions

View File

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

View File

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

View File

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

View File

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

View File

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