diff options
| author | Danny Baumann <dannybaumann@web.de> | 2014-07-15 13:55:32 +0200 |
|---|---|---|
| committer | Danny Baumann <dannybaumann@web.de> | 2014-07-24 14:17:39 +0200 |
| commit | 26127dc6f12f8e3cd0df01aae0b8565e4823cc49 (patch) | |
| tree | da6bd61ef0f0f177d45a10f789263ba19a6b99c4 /src | |
| parent | 511565bfc867070b90162818859d4cf3adacec74 (diff) | |
| download | packages_apps_InCallUI-26127dc6f12f8e3cd0df01aae0b8565e4823cc49.tar.gz packages_apps_InCallUI-26127dc6f12f8e3cd0df01aae0b8565e4823cc49.tar.bz2 packages_apps_InCallUI-26127dc6f12f8e3cd0df01aae0b8565e4823cc49.zip | |
Make incoming call screen style configurable. (2/3)
Change-Id: I46db78c9b48fae52530b96789ec2721d51b7185a
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/android/incallui/AnswerFragment.java | 20 | ||||
| -rw-r--r-- | src/com/android/incallui/CallButtonFragment.java | 12 | ||||
| -rw-r--r-- | src/com/android/incallui/InCallActivity.java | 29 | ||||
| -rw-r--r-- | src/com/android/incallui/MSimInCallActivity.java | 2 |
4 files changed, 58 insertions, 5 deletions
diff --git a/src/com/android/incallui/AnswerFragment.java b/src/com/android/incallui/AnswerFragment.java index dbf9ace0..9df8f373 100644 --- a/src/com/android/incallui/AnswerFragment.java +++ b/src/com/android/incallui/AnswerFragment.java @@ -64,6 +64,7 @@ public class AnswerFragment extends BaseFragment<AnswerPresenter, AnswerPresente private ArrayAdapter<String> mTextResponsesAdapter = null; private GlowPadWrapper mGlowpad; + private boolean mUseTranslucentNavBar = true; public AnswerFragment() { } @@ -101,17 +102,32 @@ public class AnswerFragment extends BaseFragment<AnswerPresenter, AnswerPresente super.onDestroyView(); } + public void setUseTranslucentNavigationBar(boolean useTranslucent) { + mUseTranslucentNavBar = useTranslucent; + View v = getView(); + if (v != null) { + updateNavBarTranslucency(v.getVisibility() == View.VISIBLE); + } + } + @Override public void showAnswerUi(boolean show) { - final Window window = getActivity().getWindow(); getView().setVisibility(show ? View.VISIBLE : View.GONE); Log.d(this, "Show answer UI: " + show); if (show) { mGlowpad.startPing(); - window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } else { mGlowpad.stopPing(); + } + updateNavBarTranslucency(show); + } + + private void updateNavBarTranslucency(boolean enable) { + final Window window = getActivity().getWindow(); + if (enable && mUseTranslucentNavBar) { + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); + } else { window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } } diff --git a/src/com/android/incallui/CallButtonFragment.java b/src/com/android/incallui/CallButtonFragment.java index afc0d3c7..d0d5bba5 100644 --- a/src/com/android/incallui/CallButtonFragment.java +++ b/src/com/android/incallui/CallButtonFragment.java @@ -64,6 +64,8 @@ public class CallButtonFragment private View mManageConferenceButton; private View mGenericMergeButton; + private int mHideMode = View.GONE; + @Override CallButtonPresenter createPresenter() { // TODO: find a cleaner way to include audio mode provider than @@ -222,7 +224,7 @@ public class CallButtonFragment @Override public void setEnabled(boolean isEnabled, boolean isVisible) { - getView().setVisibility(isVisible ? View.VISIBLE : View.GONE); + getView().setVisibility(isVisible ? View.VISIBLE : mHideMode); // The main end-call button spanning across the screen. mEndCallButton.setEnabled(isEnabled); @@ -596,4 +598,12 @@ public class CallButtonFragment public void hideExtraRow() { mExtraRowButton.setVisibility(View.GONE); } + + public void setHideMode(int hideMode) { + mHideMode = hideMode; + View v = getView(); + if (v != null && v.getVisibility() != View.VISIBLE) { + v.setVisibility(hideMode); + } + } } diff --git a/src/com/android/incallui/InCallActivity.java b/src/com/android/incallui/InCallActivity.java index 31059532..bd96b99e 100644 --- a/src/com/android/incallui/InCallActivity.java +++ b/src/com/android/incallui/InCallActivity.java @@ -36,7 +36,11 @@ import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.content.res.Configuration; import android.content.res.Resources; +import android.database.ContentObserver; +import android.net.Uri; import android.os.Bundle; +import android.os.Handler; +import android.provider.Settings; import android.telephony.MSimTelephonyManager; import android.view.KeyEvent; import android.view.MotionEvent; @@ -73,6 +77,13 @@ public class InCallActivity extends Activity { UNKNOWN, SWITCH, SEPARATE, TRANSFER, CONFERENCE, REJECT, HANGUP; } + private ContentObserver mSettingsObserver = new ContentObserver(new Handler()) { + @Override + public void onChange(boolean selfChange, Uri uri) { + updateSettings(); + } + }; + @Override protected void onCreate(Bundle icicle) { Log.d(this, "onCreate()... this = " + this); @@ -101,6 +112,12 @@ public class InCallActivity extends Activity { setContentView(R.layout.incall_screen); initializeInCall(); + + getContentResolver().registerContentObserver( + Settings.System.getUriFor(Settings.System.INCOMING_CALL_STYLE), + false, mSettingsObserver); + updateSettings(); + Log.d(this, "onCreate(): exit"); } @@ -409,7 +426,7 @@ public class InCallActivity extends Activity { if (mCallButtonFragment == null) { mCallButtonFragment = (CallButtonFragment) getFragmentManager() .findFragmentById(R.id.callButtonFragment); - mCallButtonFragment.getView().setVisibility(View.GONE); + mCallButtonFragment.setEnabled(false, false); } if (mCallCardFragment == null) { @@ -798,6 +815,16 @@ public class InCallActivity extends Activity { InCallPresenter.getInstance().onDismissDialog(); } + private void updateSettings() { + int incomingCallStyle = Settings.System.getInt(getContentResolver(), + Settings.System.INCOMING_CALL_STYLE, + Settings.System.INCOMING_CALL_STYLE_FULLSCREEN_PHOTO); + boolean useFullscreenCallerPhoto = + incomingCallStyle == Settings.System.INCOMING_CALL_STYLE_FULLSCREEN_PHOTO; + mCallButtonFragment.setHideMode(useFullscreenCallerPhoto ? View.GONE : View.INVISIBLE); + mAnswerFragment.setUseTranslucentNavigationBar(useFullscreenCallerPhoto); + } + private void log(String msg) { Log.d(this, msg); } diff --git a/src/com/android/incallui/MSimInCallActivity.java b/src/com/android/incallui/MSimInCallActivity.java index 702904fc..a216d8d0 100644 --- a/src/com/android/incallui/MSimInCallActivity.java +++ b/src/com/android/incallui/MSimInCallActivity.java @@ -97,7 +97,7 @@ public class MSimInCallActivity extends InCallActivity { if (mCallButtonFragment == null) { mCallButtonFragment = (CallButtonFragment) getFragmentManager() .findFragmentById(R.id.callButtonFragment); - mCallButtonFragment.getView().setVisibility(View.GONE); + mCallButtonFragment.setEnabled(false, false); } if (mCallCardFragment == null) { |
