diff options
author | Yorke Lee <yorkelee@google.com> | 2015-06-29 17:47:16 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-06-29 17:47:16 +0000 |
commit | 3b988f78e4702d0f23cba82172128fdf1a6401dc (patch) | |
tree | 475b158a45a47a7c0de18e51768b68f0894297eb | |
parent | dc5d4ff87cb8892d56ce433b6bcf7857e138a5fc (diff) | |
parent | 57b92b1110e2cccfd536dc89694a6374cefe53d5 (diff) |
am 887ab8e9: am 6185a374: am bcb912f3: Merge "Don\'t hide InCallActivity from recents" into mnc-dev
* commit '887ab8e996569afbf13721120ab5174086e8a449':
Don't hide InCallActivity from recents
-rw-r--r-- | InCallUI/src/com/android/incallui/InCallActivity.java | 13 | ||||
-rw-r--r-- | InCallUI/src/com/android/incallui/InCallPresenter.java | 6 |
2 files changed, 16 insertions, 3 deletions
diff --git a/InCallUI/src/com/android/incallui/InCallActivity.java b/InCallUI/src/com/android/incallui/InCallActivity.java index b4824fb56..acb11b5a7 100644 --- a/InCallUI/src/com/android/incallui/InCallActivity.java +++ b/InCallUI/src/com/android/incallui/InCallActivity.java @@ -24,6 +24,7 @@ import android.app.DialogFragment; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; +import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnCancelListener; @@ -862,4 +863,16 @@ public class InCallActivity extends Activity implements FragmentDisplayManager { CallList.getInstance().onErrorDialogDismissed(); InCallPresenter.getInstance().onDismissDialog(); } + + public void setExcludeFromRecents(boolean exclude) { + ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); + List<ActivityManager.AppTask> tasks = am.getAppTasks(); + int taskId = getTaskId(); + for (int i=0; i<tasks.size(); i++) { + ActivityManager.AppTask task = tasks.get(i); + if (task.getTaskInfo().id == taskId) { + task.setExcludeFromRecents(exclude); + } + } + } } diff --git a/InCallUI/src/com/android/incallui/InCallPresenter.java b/InCallUI/src/com/android/incallui/InCallPresenter.java index 4fd9b9613..84ccc7c55 100644 --- a/InCallUI/src/com/android/incallui/InCallPresenter.java +++ b/InCallUI/src/com/android/incallui/InCallPresenter.java @@ -252,6 +252,7 @@ public class InCallPresenter implements CallList.Listener, final boolean doFinish = (mInCallActivity != null && isActivityStarted()); Log.i(this, "Hide in call UI: " + doFinish); if (doFinish) { + mInCallActivity.setExcludeFromRecents(true); mInCallActivity.finish(); if (mAccountSelectionCancelled) { @@ -315,6 +316,7 @@ public class InCallPresenter implements CallList.Listener, } mInCallActivity = inCallActivity; + mInCallActivity.setExcludeFromRecents(false); // By the time the UI finally comes up, the call may already be disconnected. // If that's the case, we may need to show an error dialog. @@ -1309,9 +1311,7 @@ public class InCallPresenter implements CallList.Listener, public Intent getInCallIntent(boolean showDialpad, boolean newOutgoingCall) { final Intent intent = new Intent(Intent.ACTION_MAIN, null); - intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS - | Intent.FLAG_ACTIVITY_NO_USER_ACTION - | Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setFlags(Intent.FLAG_ACTIVITY_NO_USER_ACTION | Intent.FLAG_ACTIVITY_NEW_TASK); intent.setClass(mContext, InCallActivity.class); if (showDialpad) { |