From 8430ccda6af3a038c1a48a3f7873ef9a2f4571be Mon Sep 17 00:00:00 2001 From: Yorke Lee Date: Fri, 7 Nov 2014 17:59:23 -0800 Subject: Allow saving of presenter state during activity recreation Also correctly save state of CallButtonPresenter so that mute/unmute logic persists across activity destruction. Bug: 18270222 Change-Id: I56abd69aa04bfc63f2ffab0f35d551f03df75867 --- .../src/com/android/incallui/BaseFragment.java | 14 +++++++++++++ .../com/android/incallui/CallButtonPresenter.java | 24 ++++++++++++++++++---- .../src/com/android/incallui/InCallActivity.java | 1 + InCallUI/src/com/android/incallui/Presenter.java | 6 ++++++ 4 files changed, 41 insertions(+), 4 deletions(-) (limited to 'InCallUI/src/com') diff --git a/InCallUI/src/com/android/incallui/BaseFragment.java b/InCallUI/src/com/android/incallui/BaseFragment.java index 6c2ba216c..1ef3b1513 100644 --- a/InCallUI/src/com/android/incallui/BaseFragment.java +++ b/InCallUI/src/com/android/incallui/BaseFragment.java @@ -49,9 +49,23 @@ public abstract class BaseFragment, U extends Ui> extends mPresenter.onUiReady(getUi()); } + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (savedInstanceState != null) { + mPresenter.onRestoreInstanceState(savedInstanceState); + } + } + @Override public void onDestroyView() { super.onDestroyView(); mPresenter.onUiDestroy(getUi()); } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + mPresenter.onSaveInstanceState(outState); + } } diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java index 2e83e321d..35410261d 100644 --- a/InCallUI/src/com/android/incallui/CallButtonPresenter.java +++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java @@ -17,10 +17,10 @@ package com.android.incallui; import android.content.Context; +import android.os.Bundle; import android.telecom.AudioState; import android.telecom.InCallService.VideoCall; import android.telecom.PhoneCapabilities; -import android.telecom.TelecomManager; import android.telecom.VideoProfile; import com.android.incallui.AudioModeProvider.AudioModeListener; @@ -30,8 +30,6 @@ import com.android.incallui.InCallPresenter.InCallStateListener; import com.android.incallui.InCallPresenter.IncomingCallListener; import com.android.incallui.InCallPresenter.InCallDetailsListener; -import android.telephony.PhoneNumberUtils; - import java.util.Objects; /** @@ -41,6 +39,9 @@ public class CallButtonPresenter extends Presenter { public void onUiUnready(U ui) { } + public void onSaveInstanceState(Bundle outState) {} + + public void onRestoreInstanceState(Bundle savedInstanceState) {} + public U getUi() { return mUi; } -- cgit v1.2.3