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

Commit 0c8f8a8b authored by Fan Zhang's avatar Fan Zhang
Browse files

Use custom drawable for Battery saver condition icon.

- Updated condition interface to use Drawable instead of Icon for icons.
- Converted all conditions to return drawable instead of Icon.
- Created a BatterySaverDrawable to draw a static battery saver icon.

Change-Id: Ie964f3439009c7658603a8ff352a05e964a0a795
Fixes: 76168403
Test: robotests
parent 553c2778
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.settings.dashboard;
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.os.Bundle;
import android.service.settings.suggestions.Suggestion;
import android.support.annotation.VisibleForTesting;
@@ -262,7 +261,7 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash

    @VisibleForTesting
    void onBindConditionHeader(final ConditionHeaderHolder holder, ConditionHeaderData data) {
        holder.icon.setImageIcon(data.conditionIcons.get(0));
        holder.icon.setImageDrawable(data.conditionIcons.get(0));
        if (data.conditionCount == 1) {
            holder.title.setText(data.title);
            holder.summary.setText(null);
@@ -338,7 +337,7 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
        outState.putBoolean(STATE_CONDITION_EXPANDED, mDashboardData.isConditionExpanded());
    }

    private void updateConditionIcons(List<Icon> icons, ViewGroup parent) {
    private void updateConditionIcons(List<Drawable> icons, ViewGroup parent) {
        if (icons == null || icons.size() < 2) {
            parent.setVisibility(View.INVISIBLE);
            return;
@@ -348,7 +347,7 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
        for (int i = 1, size = icons.size(); i < size; i++) {
            ImageView icon = (ImageView) inflater.inflate(
                    R.layout.condition_header_icon, parent, false);
            icon.setImageIcon(icons.get(i));
            icon.setImageDrawable(icons.get(i));
            parent.addView(icon);
        }
        parent.setVisibility(View.VISIBLE);
+2 −2
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@
package com.android.settings.dashboard;

import android.annotation.IntDef;
import android.graphics.drawable.Icon;
import android.graphics.drawable.Drawable;
import android.service.settings.suggestions.Suggestion;
import android.support.annotation.VisibleForTesting;
import android.support.v7.util.DiffUtil;
@@ -432,7 +432,7 @@ public class DashboardData {
     * also be used to check the diff in DiffUtil.Callback
     */
    public static class ConditionHeaderData {
        public final List<Icon> conditionIcons;
        public final List<Drawable> conditionIcons;
        public final CharSequence title;
        public final int conditionCount;

+3 −2
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.net.ConnectivityManager;
import android.provider.Settings;
@@ -58,8 +59,8 @@ public class AirplaneModeCondition extends Condition {
    }

    @Override
    public Icon getIcon() {
        return Icon.createWithResource(mManager.getContext(), R.drawable.ic_airplane);
    public Drawable getIcon() {
        return mManager.getContext().getDrawable(R.drawable.ic_airplane);
    }

    @Override
+4 −4
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@
package com.android.settings.dashboard.conditional;

import android.content.Intent;
import android.graphics.drawable.Icon;
import android.graphics.drawable.Drawable;
import android.net.NetworkPolicyManager;
import android.util.FeatureFlagUtils;

@@ -37,8 +37,8 @@ public class BackgroundDataCondition extends Condition {
    }

    @Override
    public Icon getIcon() {
        return Icon.createWithResource(mManager.getContext(), R.drawable.ic_data_saver);
    public Drawable getIcon() {
        return mManager.getContext().getDrawable(R.drawable.ic_data_saver);
    }

    @Override
+5 −4
Original line number Diff line number Diff line
@@ -16,12 +16,13 @@
package com.android.settings.dashboard.conditional;

import android.content.Intent;
import android.graphics.drawable.Icon;
import android.graphics.drawable.Drawable;
import android.os.PowerManager;

import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.fuelgauge.BatterySaverDrawable;
import com.android.settings.fuelgauge.batterysaver.BatterySaverSettings;
import com.android.settingslib.fuelgauge.BatterySaverUtils;

@@ -37,8 +38,8 @@ public class BatterySaverCondition extends Condition {
    }

    @Override
    public Icon getIcon() {
        return Icon.createWithResource(mManager.getContext(), R.drawable.ic_settings_battery);
    public Drawable getIcon() {
        return new BatterySaverDrawable(mManager.getContext(), 0);
    }

    @Override
Loading