diff options
| author | Christine Chen <christinech@google.com> | 2013-10-09 18:31:42 -0700 |
|---|---|---|
| committer | Christine Chen <christinech@google.com> | 2013-10-10 19:44:55 -0700 |
| commit | 871698737d5d9fdd878ead5399da465f0d887924 (patch) | |
| tree | 34f188ac0c679316ba2cadddcdd7a19376c18cd7 | |
| parent | 0296fe577aa19dee444677cf564dbd702cdcf8cc (diff) | |
| download | android_packages_apps_InCallUI-871698737d5d9fdd878ead5399da465f0d887924.tar.gz android_packages_apps_InCallUI-871698737d5d9fdd878ead5399da465f0d887924.tar.bz2 android_packages_apps_InCallUI-871698737d5d9fdd878ead5399da465f0d887924.zip | |
Removes stopPing from onSaveInstanceState()
- I don't think it makes sense to do any processing in
onSaveInstanceState() as we are already stopping the ping in
onWindowVisibilityChanged.
- onSaveInstanceState() should solely deal with saving app states
anyway.
Bug: 11156202
Change-Id: If2b17bd10b455899703aa2c8f9d15f04a9bea22f
| -rw-r--r-- | src/com/android/incallui/AnswerFragment.java | 27 | ||||
| -rw-r--r-- | src/com/android/incallui/AnswerPresenter.java | 5 | ||||
| -rw-r--r-- | src/com/android/incallui/GlowPadWrapper.java | 43 |
3 files changed, 46 insertions, 29 deletions
diff --git a/src/com/android/incallui/AnswerFragment.java b/src/com/android/incallui/AnswerFragment.java index 1b249f29..a53d8c9e 100644 --- a/src/com/android/incallui/AnswerFragment.java +++ b/src/com/android/incallui/AnswerFragment.java @@ -79,14 +79,33 @@ public class AnswerFragment extends BaseFragment<AnswerPresenter, AnswerPresente mGlowpad = (GlowPadWrapper) inflater.inflate(R.layout.answer_fragment, container, false); + Log.d(this, "Creating view for answer fragment ", this); + Log.d(this, "Created from activity", getActivity()); mGlowpad.setAnswerListener(this); return mGlowpad; } @Override + public void onDestroyView() { + Log.d(this, "onDestroyView"); + if (mGlowpad != null) { + mGlowpad.stopPing(); + mGlowpad = null; + } + super.onDestroyView(); + } + + @Override public void showAnswerUi(boolean show) { getView().setVisibility(show ? View.VISIBLE : View.GONE); + + Log.d(this, "Show answer UI: " + show); + if (show) { + mGlowpad.startPing(); + } else { + mGlowpad.stopPing(); + } } @Override @@ -126,6 +145,14 @@ public class AnswerFragment extends BaseFragment<AnswerPresenter, AnswerPresente final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()).setCancelable( true).setView(lv); + builder.setOnCancelListener(new DialogInterface.OnCancelListener() { + @Override + public void onCancel(DialogInterface dialogInterface) { + if (mGlowpad != null) { + mGlowpad.startPing(); + } + } + }); mCannedResponsePopup = builder.create(); mCannedResponsePopup.show(); } diff --git a/src/com/android/incallui/AnswerPresenter.java b/src/com/android/incallui/AnswerPresenter.java index bfe8405a..dd4deeb6 100644 --- a/src/com/android/incallui/AnswerPresenter.java +++ b/src/com/android/incallui/AnswerPresenter.java @@ -73,6 +73,7 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi> public void onIncomingCall(Call call) { // TODO: Ui is being destroyed when the fragment detaches. Need clean up step to stop // getting updates here. + Log.d(this, "onIncomingCall: " + this); if (getUi() != null) { if (call.getCallId() != mCallId) { // A new call is coming in. @@ -88,7 +89,7 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi> // Listen for call updates for the current call. CallList.getInstance().addCallUpdateListener(mCallId, this); - Log.d(TAG, "Showing incoming for call id: " + mCallId); + Log.d(TAG, "Showing incoming for call id: " + mCallId + " " + this); final ArrayList<String> textMsgs = CallList.getInstance().getTextResponses( call.getCallId()); getUi().showAnswerUi(true); @@ -104,7 +105,7 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi> @Override public void onCallStateChanged(Call call) { - Log.d(this, "onCallStateChange() " + call); + Log.d(this, "onCallStateChange() " + call + " " + this); if (call.getState() != Call.State.INCOMING && call.getState() != Call.State.CALL_WAITING) { // Stop listening for updates. CallList.getInstance().removeCallUpdateListener(mCallId, this); diff --git a/src/com/android/incallui/GlowPadWrapper.java b/src/com/android/incallui/GlowPadWrapper.java index 0e1d47d7..28ccb956 100644 --- a/src/com/android/incallui/GlowPadWrapper.java +++ b/src/com/android/incallui/GlowPadWrapper.java @@ -19,7 +19,6 @@ package com.android.incallui; import android.content.Context; import android.os.Handler; import android.os.Message; -import android.os.Parcelable; import android.util.AttributeSet; import android.view.View; @@ -48,13 +47,16 @@ public class GlowPadWrapper extends GlowPadView implements GlowPadView.OnTrigger private AnswerListener mAnswerListener; private boolean mPingEnabled = true; + private boolean mTargetTriggered = false; public GlowPadWrapper(Context context) { super(context); + Log.d(this, "class created " + this + " "); } public GlowPadWrapper(Context context, AttributeSet attrs) { super(context, attrs); + Log.d(this, "class created " + this); } @Override @@ -62,43 +64,23 @@ public class GlowPadWrapper extends GlowPadView implements GlowPadView.OnTrigger Log.d(this, "onFinishInflate()"); super.onFinishInflate(); setOnTriggerListener(this); - startPing(); - } - - @Override - protected void onWindowVisibilityChanged(int visibility) { - Log.d(this, "Visibility changed " + visibility); - super.onWindowVisibilityChanged(visibility); - switch (visibility) { - case View.VISIBLE: - startPing(); - break; - case View.INVISIBLE: - case View.GONE: - stopPing(); - break; - } - } - - @Override - protected Parcelable onSaveInstanceState() { - Log.d(this, "onSaveInstanceState()"); - // TODO: evaluate this versus stopping during fragment onPause/onResume - stopPing(); - return super.onSaveInstanceState(); } public void startPing() { + Log.d(this, "startPing"); mPingEnabled = true; triggerPing(); } public void stopPing() { + Log.d(this, "stopPing"); mPingEnabled = false; + mPingHandler.removeMessages(PING_MESSAGE_WHAT); } private void triggerPing() { - if (mPingEnabled) { + Log.d(this, "triggerPing(): " + mPingEnabled + " " + this); + if (mPingEnabled && !mPingHandler.hasMessages(PING_MESSAGE_WHAT)) { ping(); if (ENABLE_PING_AUTO_REPEAT) { @@ -116,7 +98,11 @@ public class GlowPadWrapper extends GlowPadView implements GlowPadView.OnTrigger @Override public void onReleased(View v, int handle) { Log.d(this, "onReleased()"); - startPing(); + if (mTargetTriggered) { + mTargetTriggered = false; + } else { + startPing(); + } } @Override @@ -126,12 +112,15 @@ public class GlowPadWrapper extends GlowPadView implements GlowPadView.OnTrigger switch (resId) { case R.drawable.ic_lockscreen_answer: mAnswerListener.onAnswer(); + mTargetTriggered = true; break; case R.drawable.ic_lockscreen_decline: mAnswerListener.onDecline(); + mTargetTriggered = true; break; case R.drawable.ic_lockscreen_text: mAnswerListener.onText(); + mTargetTriggered = true; break; default: // Code should never reach here. |
