From d8db7e4be02822439dcaa4294842a601eb302bfb Mon Sep 17 00:00:00 2001 From: Carmen Jackson Date: Fri, 10 Feb 2023 18:14:27 +0000 Subject: [PATCH] Re-submitting "Include the Subreason, if any, in ApplicationExitInfo.getDescription()."" This reverts commit 9c3b68eec76207cf20f4ac63d8f02bf76b450ea8. Reason for revert: Included update to failed CTS test in topic. Change-Id: Iea6a5345ef97ea6b3d302b3729236f4ee7b7ccd2 --- .../java/android/app/ApplicationExitInfo.java | 17 ++++++- .../server/am/ApplicationExitInfoTest.java | 47 +++++++++++-------- 2 files changed, 44 insertions(+), 20 deletions(-) diff --git a/core/java/android/app/ApplicationExitInfo.java b/core/java/android/app/ApplicationExitInfo.java index 51ea04f397d24..f74b8984e8d1c 100644 --- a/core/java/android/app/ApplicationExitInfo.java +++ b/core/java/android/app/ApplicationExitInfo.java @@ -706,7 +706,22 @@ public final class ApplicationExitInfo implements Parcelable { * guarantees that the format is stable across devices or Android releases.

*/ public @Nullable String getDescription() { - return mDescription; + final StringBuilder sb = new StringBuilder(); + + if (mSubReason != SUBREASON_UNKNOWN) { + sb.append("["); + sb.append(subreasonToString(mSubReason)); + sb.append("]"); + } + + if (!TextUtils.isEmpty(mDescription)) { + if (sb.length() > 0) { + sb.append(" "); + } + sb.append(mDescription); + } + + return sb.toString(); } /** diff --git a/services/tests/mockingservicestests/src/com/android/server/am/ApplicationExitInfoTest.java b/services/tests/mockingservicestests/src/com/android/server/am/ApplicationExitInfoTest.java index 4a40b5f2de7b2..9c581f9e4af28 100644 --- a/services/tests/mockingservicestests/src/com/android/server/am/ApplicationExitInfoTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/am/ApplicationExitInfoTest.java @@ -711,8 +711,6 @@ public class ApplicationExitInfoTest { null); // description // Case 8: App1 gets "remove task" - final String app1Description = "remove task"; - sleep(1); final int app1IsolatedUidUser2 = 1099002; // isolated uid final long app1Pss4 = 34343; @@ -739,7 +737,7 @@ public class ApplicationExitInfoTest { mAppExitInfoTracker.mIsolatedUidRecords.addIsolatedUid(app1IsolatedUidUser2, app1UidUser2); noteAppKill(app, ApplicationExitInfo.REASON_OTHER, - ApplicationExitInfo.SUBREASON_UNKNOWN, app1Description, now8); + ApplicationExitInfo.SUBREASON_REMOVE_TASK, null, now8); updateExitInfo(app, now8); list.clear(); @@ -749,21 +747,21 @@ public class ApplicationExitInfoTest { info = list.get(0); verifyApplicationExitInfo( - info, // info - now8, // timestamp - app1PidUser2, // pid - app1IsolatedUidUser2, // uid - app1UidUser2, // packageUid - null, // definingUid - app1ProcessName, // processName - 0, // connectionGroup - ApplicationExitInfo.REASON_OTHER, // reason - ApplicationExitInfo.SUBREASON_UNKNOWN, // subReason - 0, // status - app1Pss4, // pss - app1Rss4, // rss - IMPORTANCE_CACHED, // importance - app1Description); // description + info, // info + now8, // timestamp + app1PidUser2, // pid + app1IsolatedUidUser2, // uid + app1UidUser2, // packageUid + null, // definingUid + app1ProcessName, // processName + 0, // connectionGroup + ApplicationExitInfo.REASON_OTHER, // reason + ApplicationExitInfo.SUBREASON_REMOVE_TASK, // subReason + 0, // status + app1Pss4, // pss + app1Rss4, // rss + IMPORTANCE_CACHED, // importance + null); // description // App1 gets "too many empty" final String app1Description2 = "too many empty"; @@ -1058,7 +1056,18 @@ public class ApplicationExitInfoTest { if (importance != null) { assertEquals(importance.intValue(), info.getImportance()); } - if (description != null) { + + // info.getDescription returns a combination of subReason & description + if ((subReason != null) && (subReason != ApplicationExitInfo.SUBREASON_UNKNOWN) + && (description != null)) { + assertTrue(TextUtils.equals( + "[" + info.subreasonToString(subReason) + "] " + description, + info.getDescription())); + } else if ((subReason != null) && (subReason != ApplicationExitInfo.SUBREASON_UNKNOWN)) { + assertTrue(TextUtils.equals( + "[" + info.subreasonToString(subReason) + "]", + info.getDescription())); + } else if (description != null) { assertTrue(TextUtils.equals(description, info.getDescription())); } }