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

Commit bb820b9d authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 8385304 from b9573bc0 to sc-qpr3-release

Change-Id: I95ccb4d0d14f533869a0ab4c09c3c894da58acfc
parents b4d6e2ec b9573bc0
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -99,9 +99,9 @@ public class MobileRadioPowerCalculator extends PowerCalculator {
            calculateApp(app, uid, powerPerPacketMah, total, query);
        }

        final long consumptionUC = batteryStats.getMobileRadioMeasuredBatteryConsumptionUC();
        final int powerModel = getPowerModel(consumptionUC, query);
        calculateRemaining(total, powerModel, batteryStats, rawRealtimeUs, consumptionUC);
        final long totalConsumptionUC = batteryStats.getMobileRadioMeasuredBatteryConsumptionUC();
        final int powerModel = getPowerModel(totalConsumptionUC, query);
        calculateRemaining(total, powerModel, batteryStats, rawRealtimeUs, totalConsumptionUC);

        if (total.remainingPowerMah != 0 || total.totalAppPowerMah != 0) {
            builder.getAggregateBatteryConsumerBuilder(
@@ -229,12 +229,13 @@ public class MobileRadioPowerCalculator extends PowerCalculator {

    private void calculateRemaining(PowerAndDuration total,
            @BatteryConsumer.PowerModel int powerModel, BatteryStats batteryStats,
            long rawRealtimeUs, long consumptionUC) {
            long rawRealtimeUs, long totalConsumptionUC) {
        long signalTimeMs = 0;
        double powerMah = 0;

        if (powerModel == BatteryConsumer.POWER_MODEL_MEASURED_ENERGY) {
            powerMah = uCtoMah(consumptionUC);
            powerMah = uCtoMah(totalConsumptionUC) - total.totalAppPowerMah;
            if (powerMah < 0) powerMah = 0;
        }

        for (int i = 0; i < NUM_SIGNAL_STRENGTH_LEVELS; i++) {
+2 −1
Original line number Diff line number Diff line
@@ -166,8 +166,9 @@ public class MobileRadioPowerCalculatorTest {
                .isEqualTo(BatteryConsumer.POWER_MODEL_MEASURED_ENERGY);

        BatteryConsumer deviceConsumer = mStatsRule.getDeviceBatteryConsumer();
        // 10_000_000 micro-Coulomb * 1/1000 milli/micro * 1/3600 hour/second = 2.77778 mAh
        assertThat(deviceConsumer.getConsumedPower(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO))
                .isWithin(PRECISION).of(4.31711);
                .isWithin(PRECISION).of(2.77778);
        assertThat(deviceConsumer.getPowerModel(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO))
                .isEqualTo(BatteryConsumer.POWER_MODEL_MEASURED_ENERGY);

+2 −2
Original line number Diff line number Diff line
@@ -10075,10 +10075,10 @@ public class NotificationManagerService extends SystemService {
                boolean isPrimary, boolean enabled, boolean userSet) {
            super.setPackageOrComponentEnabled(pkgOrComponent, userId, isPrimary, enabled, userSet);

            getContext().sendBroadcastAsUser(
            mContext.sendBroadcastAsUser(
                    new Intent(ACTION_NOTIFICATION_LISTENER_ENABLED_CHANGED)
                            .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY),
                    UserHandle.ALL, null);
                    UserHandle.of(userId), null);
        }

        @Override
+10 −0
Original line number Diff line number Diff line
@@ -21657,6 +21657,16 @@ public class PackageManagerService extends IPackageManager.Stub
                return PackageManager.DELETE_FAILED_INTERNAL_ERROR;
            }
            if (isSystemApp(uninstalledPs)) {
                UserInfo userInfo = mUserManager.getUserInfo(userId);
                if (userInfo == null || !userInfo.isAdmin()) {
                    Slog.w(TAG, "Not removing package " + packageName
                            + " as only admin user may downgrade system apps");
                    EventLog.writeEvent(0x534e4554, "170646036", -1, packageName);
                    return PackageManager.DELETE_FAILED_USER_RESTRICTED;
                }
            }
            disabledSystemPs = mSettings.getDisabledSystemPkgLPr(packageName);
            // Static shared libs can be declared by any package, so let us not
            // allow removing a package if it provides a lib others depend on.
+19 −0
Original line number Diff line number Diff line
@@ -24,10 +24,17 @@ import static com.android.server.notification.NotificationManagerService.Notific

import static com.google.common.truth.Truth.assertThat;

import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.app.INotificationManager;
@@ -37,8 +44,10 @@ import android.content.pm.PackageManager;
import android.content.pm.ServiceInfo;
import android.content.pm.VersionedPackage;
import android.os.Bundle;
import android.os.UserHandle;
import android.service.notification.NotificationListenerFilter;
import android.service.notification.NotificationListenerService;
import android.testing.TestableContext;
import android.util.ArraySet;
import android.util.Pair;
import android.util.Slog;
@@ -69,6 +78,7 @@ public class NotificationListenersTest extends UiServiceTestCase {
    NotificationManagerService mNm;
    @Mock
    private INotificationManager mINm;
    private TestableContext mContext = spy(getContext());

    NotificationManagerService.NotificationListeners mListeners;

@@ -80,6 +90,7 @@ public class NotificationListenersTest extends UiServiceTestCase {
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
        getContext().setMockPackageManager(mPm);
        doNothing().when(mContext).sendBroadcastAsUser(any(), any(), any());

        mListeners = spy(mNm.new NotificationListeners(
                mContext, new Object(), mock(ManagedServices.UserProfiles.class), miPm));
@@ -355,4 +366,12 @@ public class NotificationListenersTest extends UiServiceTestCase {
                .getDisallowedPackages()).isEmpty();
    }

    @Test
    public void testBroadcastUsers() {
        int userId = 0;
        mListeners.setPackageOrComponentEnabled(mCn1.flattenToString(), userId, true, false, true);

        verify(mContext).sendBroadcastAsUser(
                any(), eq(UserHandle.of(userId)), nullable(String.class));
    }
}