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

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

Merge "Merge "Catch NPE and add more logging for a crash in Tile" into qt-dev...

Merge "Merge "Catch NPE and add more logging for a crash in Tile" into qt-dev am: 781ebfb0" into qt-dev-plus-aosp
parents c0c645fa e2d6ac15
Loading
Loading
Loading
Loading
+10 −17
Original line number Diff line number Diff line
@@ -174,7 +174,7 @@ public class Tile implements Parcelable {
                            packageManager.getResourcesForApplication(mActivityPackage);
                    title = res.getString(mMetaData.getInt(META_DATA_PREFERENCE_TITLE));
                } catch (PackageManager.NameNotFoundException | Resources.NotFoundException e) {
                    Log.d(TAG, "Couldn't find info", e);
                    Log.w(TAG, "Couldn't find info", e);
                }
            } else {
                title = mMetaData.getString(META_DATA_PREFERENCE_TITLE);
@@ -183,23 +183,13 @@ public class Tile implements Parcelable {
        // Set the preference title to the activity's label if no
        // meta-data is found
        if (title == null) {
            title = getActivityInfo(context).loadLabel(packageManager);
        }
        return title;
    }

    /**
     * Returns the raw metadata for summary, this is used for comparing 2 summary text without
     * loading the real string.
     */
    public String getSummaryReference() {
        if (mSummaryOverride != null) {
            return mSummaryOverride.toString();
            final ActivityInfo activityInfo = getActivityInfo(context);
            if (activityInfo == null) {
                return null;
            }
        if (mMetaData != null && mMetaData.containsKey(META_DATA_PREFERENCE_SUMMARY)) {
            return mMetaData.get(META_DATA_PREFERENCE_SUMMARY).toString();
            title = activityInfo.loadLabel(packageManager);
        }
        return null;
        return title;
    }

    /**
@@ -357,6 +347,9 @@ public class Tile implements Parcelable {
            if (infoList != null && !infoList.isEmpty()) {
                mActivityInfo = infoList.get(0).activityInfo;
                mMetaData = mActivityInfo.metaData;
            } else {
                Log.e(TAG, "Cannot find package info for "
                        + intent.getComponent().flattenToString());
            }
        }
        return mActivityInfo;
+14 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowPackageManager;
import org.robolectric.util.ReflectionHelpers;

@RunWith(RobolectricTestRunner.class)
public class TileTest {
@@ -164,4 +165,17 @@ public class TileTest {

        assertThat(tile.mLastUpdateTime).isNotEqualTo(staleTimeStamp);
    }

    @Test
    public void getTitle_noActivity_returnNull() {
        final ResolveInfo info = new ResolveInfo();
        info.activityInfo = mActivityInfo;
        final ShadowPackageManager spm = Shadow.extract(mContext.getPackageManager());
        spm.removePackage(mActivityInfo.packageName);

        final Tile tile = new Tile(mActivityInfo, "category");
        ReflectionHelpers.setField(tile, "mActivityInfo", null);

        assertThat(tile.getTitle(RuntimeEnvironment.application)).isNull();
    }
}