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

Commit 16157161 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Revert "Add animation for battery asyncLoader."" into oc-dev

parents 32ad1c0d 78684dc0
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -38,8 +38,6 @@ public class BatteryMeterView extends ImageView {
    @VisibleForTesting
    ColorFilter mAccentColorFilter;

    private int mLevel;

    public BatteryMeterView(Context context) {
        this(context, null, 0);
    }
@@ -66,7 +64,6 @@ public class BatteryMeterView extends ImageView {
    }

    public void setBatteryLevel(int level) {
        mLevel = level;
        mDrawable.setBatteryLevel(level);
        if (level < mDrawable.getCriticalLevel()) {
            mDrawable.setBatteryColorFilter(mErrorColorFilter);
@@ -75,10 +72,6 @@ public class BatteryMeterView extends ImageView {
        }
    }

    public int getBatteryLevel() {
        return mLevel;
    }

    public void setCharging(boolean charging) {
        mDrawable.setCharging(charging);
    }
+3 −61
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.settings.fuelgauge;

import android.animation.Animator;
import android.animation.ValueAnimator;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
@@ -43,7 +41,6 @@ import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.animation.AnimationUtils;
import android.widget.TextView;

import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -87,10 +84,6 @@ public class PowerUsageSummary extends PowerUsageBase {
    private static final String KEY_BATTERY_HEADER = "battery_header";
    private static final int MAX_ITEMS_TO_LIST = USE_FAKE_DATA ? 30 : 10;
    private static final int MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP = 10;
    private static final int BATTERY_ANIMATION_DURATION_MS_PER_LEVEL = 30;

    @VisibleForTesting
    static final String ARG_BATTERY_LEVEL = "key_battery_level";

    private static final String KEY_SCREEN_USAGE = "screen_usage";
    private static final String KEY_TIME_SINCE_LAST_FULL_CHARGE = "last_full_charge";
@@ -111,8 +104,6 @@ public class PowerUsageSummary extends PowerUsageBase {
    private final FooterPreferenceMixin mFooterPreferenceMixin =
            new FooterPreferenceMixin(this, getLifecycle());

    @VisibleForTesting
    int mBatteryLevel;
    @VisibleForTesting
    boolean mShowAllApps = false;
    @VisibleForTesting
@@ -133,8 +124,6 @@ public class PowerUsageSummary extends PowerUsageBase {
        super.onCreate(icicle);
        setAnimationAllowed(true);

        mBatteryLevel = getContext().getResources().getInteger(
                com.android.internal.R.integer.config_criticalBatteryWarningLevel) + 1;
        mBatteryLayoutPref = (LayoutPreference) findPreference(KEY_BATTERY_HEADER);
        mAppListGroup = (PreferenceGroup) findPreference(KEY_APP_LIST);
        mScreenUsagePref = (PowerGaugePreference) findPreference(KEY_SCREEN_USAGE);
@@ -147,14 +136,6 @@ public class PowerUsageSummary extends PowerUsageBase {
        initFeatureProvider();
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        if (savedInstanceState != null) {
            mBatteryLevel = savedInstanceState.getInt(ARG_BATTERY_LEVEL);
        }
    }

    @Override
    public int getMetricsCategory() {
        return MetricsEvent.FUELGAUGE_POWER_USAGE_SUMMARY;
@@ -163,8 +144,6 @@ public class PowerUsageSummary extends PowerUsageBase {
    @Override
    public void onResume() {
        super.onResume();

        initHeaderPreference();
    }

    @Override
@@ -182,12 +161,6 @@ public class PowerUsageSummary extends PowerUsageBase {
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt(ARG_BATTERY_LEVEL, mBatteryLevel);
    }

    @Override
    public boolean onPreferenceTreeClick(Preference preference) {
        if (KEY_BATTERY_HEADER.equals(preference.getKey())) {
@@ -596,46 +569,15 @@ public class PowerUsageSummary extends PowerUsageBase {
                .findViewById(R.id.battery_header_icon);
        final TextView timeText = (TextView) mBatteryLayoutPref.findViewById(R.id.battery_percent);
        final TextView summary1 = (TextView) mBatteryLayoutPref.findViewById(R.id.summary1);
        timeText.setText(Utils.formatPercentage(info.batteryLevel));
        if (info.remainingLabel == null ) {
            summary1.setText(info.statusLabel);
        } else {
            summary1.setText(info.remainingLabel);
        }
        batteryView.setCharging(!info.discharging);
        startBatteryHeaderAnimationIfNecessary(batteryView, timeText, mBatteryLevel,
                info.batteryLevel);
    }

    @VisibleForTesting
    void initHeaderPreference() {
        final BatteryMeterView batteryView = (BatteryMeterView) mBatteryLayoutPref
                .findViewById(R.id.battery_header_icon);
        final TextView timeText = (TextView) mBatteryLayoutPref.findViewById(R.id.battery_percent);

        batteryView.setBatteryLevel(mBatteryLevel);
        timeText.setText(Utils.formatPercentage(mBatteryLevel));
    }

    @VisibleForTesting
    void startBatteryHeaderAnimationIfNecessary(BatteryMeterView batteryView, TextView timeTextView,
            int prevLevel, int currentLevel) {
        mBatteryLevel = currentLevel;
        final int diff = Math.abs(prevLevel - currentLevel);
        if (diff != 0) {
            final ValueAnimator animator = ValueAnimator.ofInt(prevLevel, currentLevel);
            animator.setDuration(BATTERY_ANIMATION_DURATION_MS_PER_LEVEL * diff);
            animator.setInterpolator(AnimationUtils.loadInterpolator(getContext(),
                    android.R.interpolator.fast_out_slow_in));
            animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator animation) {
                    final Integer level = (Integer) animation.getAnimatedValue();
                    batteryView.setBatteryLevel(level);
                    timeTextView.setText(Utils.formatPercentage(level));
                }
            });
            animator.start();
        }
        batteryView.setBatteryLevel(info.batteryLevel);
        batteryView.setCharging(!info.discharging);
    }

    @VisibleForTesting
+3 −48
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@ package com.android.settings.fuelgauge;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.PowerManager;
import android.os.Process;
import android.text.TextUtils;
@@ -130,6 +129,8 @@ public class PowerUsageSummaryTest {
    @Mock
    private LayoutPreference mBatteryLayoutPref;
    @Mock
    private TextView mBatteryPercentText;
    @Mock
    private TextView mSummary1;
    @Mock
    private BatteryInfo mBatteryInfo;
@@ -140,7 +141,6 @@ public class PowerUsageSummaryTest {
    @Mock
    private SettingsActivity mSettingsActivity;

    private TextView mBatteryPercentText;
    private List<BatterySipper> mUsageList;
    private Context mRealContext;
    private TestFragment mFragment;
@@ -164,7 +164,7 @@ public class PowerUsageSummaryTest {
        mLastFullChargePref = new PowerGaugePreference(mRealContext);
        mFragment = spy(new TestFragment(mContext));
        mFragment.initFeatureProvider();
        mBatteryMeterView = spy(new BatteryMeterView(mRealContext));
        mBatteryMeterView = new BatteryMeterView(mRealContext);
        mBatteryMeterView.mDrawable = new BatteryMeterView.BatteryMeterDrawable(mRealContext, 0);
        doNothing().when(mFragment).restartBatteryStatsLoader();

@@ -187,7 +187,6 @@ public class PowerUsageSummaryTest {
        mCellBatterySipper.drainType = BatterySipper.DrainType.CELL;
        mCellBatterySipper.totalPowerMah = POWER_MAH;

        mBatteryPercentText = new TextView(mRealContext);
        when(mBatteryLayoutPref.findViewById(R.id.summary1)).thenReturn(mSummary1);
        when(mBatteryLayoutPref.findViewById(R.id.battery_percent)).thenReturn(mBatteryPercentText);
        when(mBatteryLayoutPref.findViewById(R.id.battery_header_icon))
@@ -280,50 +279,6 @@ public class PowerUsageSummaryTest {
        testToggleAllApps(false);
    }

    @Test
    public void testInitHeaderPreference_initCorrectly() {
        mFragment.mBatteryLevel = 100;

        mFragment.initHeaderPreference();

        assertThat(mBatteryMeterView.getBatteryLevel()).isEqualTo(100);
        assertThat(mBatteryPercentText.getText().toString()).isEqualTo("100%");
    }

    @Test
    public void testStartBatteryHeaderAnimationIfNecessary_batteryLevelChanged_animationStarted() {
        final int prevLevel = 100;
        final int curLevel = 80;

        mFragment.startBatteryHeaderAnimationIfNecessary(mBatteryMeterView, mBatteryPercentText,
                prevLevel, curLevel);

        assertThat(mBatteryMeterView.getBatteryLevel()).isEqualTo(curLevel);
        assertThat(mBatteryPercentText.getText().toString()).isEqualTo("80%");
    }

    @Test
    public void testOnSaveInstanceState_saveBatteryLevel() {
        Bundle bundle = new Bundle();
        mFragment.mBatteryLevel = BATTERY_LEVEL;
        // mock it to stop crash in getPreferenceScreen
        doReturn(null).when(mFragment).getPreferenceScreen();

        mFragment.onSaveInstanceState(bundle);

        assertThat(bundle.getInt(PowerUsageSummary.ARG_BATTERY_LEVEL)).isEqualTo(BATTERY_LEVEL);
    }

    @Test
    public void testOnActivityCreated_setBatteryLevel() {
        Bundle bundle = new Bundle();
        bundle.putInt(PowerUsageSummary.ARG_BATTERY_LEVEL, BATTERY_LEVEL);

        mFragment.onActivityCreated(bundle);

        assertThat(mFragment.mBatteryLevel).isEqualTo(BATTERY_LEVEL);
    }

    @Test
    public void testExtractKeyFromSipper_typeAPPUidObjectNull_returnPackageNames() {
        mNormalBatterySipper.uidObj = null;