Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 33cf140d authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge "Merge "Support Background Service Limitations." am: a0f863d4 am:...

Merge "Merge "Support Background Service Limitations." am: a0f863d4 am: b7471342 am: 7f0e5de1"
parents 8968ed9e 8281e1fc
Loading
Loading
Loading
Loading
+25 −1
Original line number Diff line number Diff line
@@ -22,11 +22,15 @@ import android.content.ComponentName;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.database.Cursor;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase;
import android.os.Build;
import android.os.IBinder;
import android.os.PowerManager;
import android.os.RemoteException;
import android.util.Log;

@@ -216,11 +220,31 @@ public class WapPushManager extends Service {
                intent.setClassName(mContext, lastapp.className);
                intent.setComponent(new ComponentName(lastapp.packageName,
                        lastapp.className));
                PackageManager pm = mContext.getPackageManager();
                PowerManager powerManager =
                        (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
                try {
                    ApplicationInfo appInfo = pm.getApplicationInfo(lastapp.packageName, 0);
                    if (appInfo.targetSdkVersion < Build.VERSION_CODES.O ||
                            powerManager.isIgnoringBatteryOptimizations(lastapp.packageName)) {
                        if (mContext.startService(intent) == null) {
                            Log.w(LOG_TAG, "invalid name " +
                                    lastapp.packageName + "/" + lastapp.className);
                            return WapPushManagerParams.INVALID_RECEIVER_NAME;
                        }
                    } else {
                        if (mContext.startForegroundService(intent) == null) {
                            Log.w(LOG_TAG, "invalid name " +
                                    lastapp.packageName + "/" + lastapp.className);
                            return WapPushManagerParams.INVALID_RECEIVER_NAME;
                        }
                    }

                } catch (NameNotFoundException e) {
                    Log.w(LOG_TAG, "invalid name " +
                            lastapp.packageName + "/" + lastapp.className);
                    return WapPushManagerParams.INVALID_RECEIVER_NAME;
                }
            }

            return WapPushManagerParams.MESSAGE_HANDLED