summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2014-07-15 13:55:32 +0200
committerDanny Baumann <dannybaumann@web.de>2014-07-24 14:17:39 +0200
commit26127dc6f12f8e3cd0df01aae0b8565e4823cc49 (patch)
treeda6bd61ef0f0f177d45a10f789263ba19a6b99c4 /src
parent511565bfc867070b90162818859d4cf3adacec74 (diff)
downloadpackages_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.java20
-rw-r--r--src/com/android/incallui/CallButtonFragment.java12
-rw-r--r--src/com/android/incallui/InCallActivity.java29
-rw-r--r--src/com/android/incallui/MSimInCallActivity.java2
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) {