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

Commit 8f54313d authored by Fan Zhang's avatar Fan Zhang Committed by android-build-merger
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
am: 789ea433

Change-Id: I08efc424d10a469ecebe7673f356db22970983fc
parents b36f2628 789ea433
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();
    }
}