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

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

Merge "Show settings app icon and name in recents"

parents 6f80166c 6c355f5d
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -31,6 +31,10 @@ import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.nfc.NfcAdapter;
import android.os.AsyncTask;
import android.os.Bundle;
@@ -679,6 +683,13 @@ public class SettingsActivity extends SettingsDrawerActivity
        mDevelopmentPreferencesListener = null;
    }

    @Override
    public void setTaskDescription(ActivityManager.TaskDescription taskDescription) {
        final Bitmap icon = getBitmapFromXmlResource(R.drawable.ic_launcher_settings);
        taskDescription.setIcon(icon);
        super.setTaskDescription(taskDescription);
    }

    protected boolean isValidFragment(String fragmentName) {
        // Almost all fragments are wrapped in this,
        // except for a few that have their own activities.
@@ -1114,4 +1125,17 @@ public class SettingsActivity extends SettingsDrawerActivity
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

    @VisibleForTesting
    Bitmap getBitmapFromXmlResource(int drawableRes) {
        Drawable drawable = getResources().getDrawable(drawableRes, getTheme());
        Canvas canvas = new Canvas();
        Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
                drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
        canvas.setBitmap(bitmap);
        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
        drawable.draw(canvas);

        return bitmap;
    }
}
+20 −4
Original line number Diff line number Diff line
@@ -16,12 +16,13 @@

package com.android.settings;

import android.app.ActivityManager;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import com.android.settings.testutils.FakeFeatureFactory;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -32,9 +33,12 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;

import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

@RunWith(SettingsRobolectricTestRunner.class)
@@ -45,7 +49,10 @@ public class SettingsActivityTest {
    private Context mContext;
    @Mock
    private FragmentManager mFragmentManager;

    @Mock
    private ActivityManager.TaskDescription mTaskDescription;
    @Mock
    private Bitmap mBitmap;
    private SettingsActivity mActivity;

    @Before
@@ -55,12 +62,14 @@ public class SettingsActivityTest {
        final FakeFeatureFactory factory =
                (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
        when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);

        mActivity = spy(new SettingsActivity());
        doReturn(mBitmap).when(mActivity).getBitmapFromXmlResource(anyInt());
    }

    @Test
    public void testQueryTextChange_shouldUpdate() {
        final String testQuery = "abc";
        mActivity = new SettingsActivity();

        assertThat(mActivity.mSearchQuery).isNull();
        try {
@@ -83,4 +92,11 @@ public class SettingsActivityTest {

        mActivity.launchSettingFragment(null, true, mock(Intent.class));
    }

    @Test
    public void testSetTaskDescription_IconChanged() {
        mActivity.setTaskDescription(mTaskDescription);

        verify(mTaskDescription).setIcon(any());
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -56,6 +56,10 @@ public class SettingsShadowResources extends ShadowResources {
        // TODO: Remove this once Robolectric is updated.
        if (id == com.android.settings.R.drawable.switchbar_background) {
            return new ColorDrawable();
        } else if (id == com.android.settings.R.drawable.ic_launcher_settings) {
            // ic_launcher_settings uses adaptive-icon, which is not supported by robolectric,
            // change it to a normal drawable.
            id = com.android.settings.R.drawable.ic_settings_wireless;
        }
        return super.loadDrawable(value, id, theme);
    }