diff options
Diffstat (limited to 'InCallUI')
-rw-r--r-- | InCallUI/src/com/android/incallui/InCallActivity.java | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/InCallUI/src/com/android/incallui/InCallActivity.java b/InCallUI/src/com/android/incallui/InCallActivity.java index 73155a460..9e35c3d8e 100644 --- a/InCallUI/src/com/android/incallui/InCallActivity.java +++ b/InCallUI/src/com/android/incallui/InCallActivity.java @@ -88,6 +88,12 @@ public class InCallActivity extends TransactionSafeActivity implements FragmentD private static final int DIALPAD_REQUEST_SHOW = 2; private static final int DIALPAD_REQUEST_HIDE = 3; + /** + * This is used to relaunch the activity if resizing beyond which it needs to load different + * layout file. + */ + private static final int SCREEN_HEIGHT_RESIZE_THRESHOLD = 500; + private CallButtonFragment mCallButtonFragment; private CallCardFragment mCallCardFragment; private AnswerFragment mAnswerFragment; @@ -252,7 +258,7 @@ public class InCallActivity extends TransactionSafeActivity implements FragmentD // setting activity should be last thing in setup process InCallPresenter.getInstance().setActivity(this); enableInCallOrientationEventListener(getRequestedOrientation() == - InCallOrientationEventListener.FULL_SENSOR_SCREEN_ORIENTATION); + InCallOrientationEventListener.FULL_SENSOR_SCREEN_ORIENTATION); InCallPresenter.getInstance().onActivityStarted(); } @@ -353,6 +359,27 @@ public class InCallActivity extends TransactionSafeActivity implements FragmentD } } + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + Configuration oldConfig = getResources().getConfiguration(); + Log.v(this, String.format( + "incallui config changed, screen size: w%ddp x h%ddp old:w%ddp x h%ddp", + newConfig.screenWidthDp, newConfig.screenHeightDp, + oldConfig.screenWidthDp, oldConfig.screenHeightDp)); + // Recreate this activity if height is changing beyond the threshold to load different + // layout file. + if (oldConfig.screenHeightDp < SCREEN_HEIGHT_RESIZE_THRESHOLD && + newConfig.screenHeightDp > SCREEN_HEIGHT_RESIZE_THRESHOLD || + oldConfig.screenHeightDp > SCREEN_HEIGHT_RESIZE_THRESHOLD && + newConfig.screenHeightDp < SCREEN_HEIGHT_RESIZE_THRESHOLD) { + Log.i(this, String.format( + "Recreate activity due to resize beyond threshold: %d dp", + SCREEN_HEIGHT_RESIZE_THRESHOLD)); + recreate(); + } + } + /** * Returns true when the Activity is currently visible. */ |