diff options
| -rw-r--r-- | AospPanel/src/co/potatoproject/plugin/volume/aosp/VolumeDialogImpl.java | 5 | ||||
| -rw-r--r-- | CompactPanel/src/co/potatoproject/plugin/volume/compact/VolumeDialogImpl.java | 9 |
2 files changed, 8 insertions, 6 deletions
diff --git a/AospPanel/src/co/potatoproject/plugin/volume/aosp/VolumeDialogImpl.java b/AospPanel/src/co/potatoproject/plugin/volume/aosp/VolumeDialogImpl.java index 1a5f6c5..53873af 100644 --- a/AospPanel/src/co/potatoproject/plugin/volume/aosp/VolumeDialogImpl.java +++ b/AospPanel/src/co/potatoproject/plugin/volume/aosp/VolumeDialogImpl.java @@ -372,9 +372,9 @@ public class VolumeDialogImpl extends PanelSideAware implements VolumeDialog { internalInsetsInfo.setTouchableInsets(InternalInsetsInfo.TOUCHABLE_INSETS_REGION); View main = mDialog.findViewById(R.id.main); int[] mainLocation = new int[2]; - main.getLocationOnScreen(mainLocation); + main.getLocationInWindow(mainLocation); int[] dialogLocation = new int[2]; - mDialogView.getLocationOnScreen(dialogLocation); + mDialogView.getLocationInWindow(dialogLocation); internalInsetsInfo.touchableRegion.set(new Region( mainLocation[0], dialogLocation[1], @@ -928,6 +928,7 @@ public class VolumeDialogImpl extends PanelSideAware implements VolumeDialog { }, 50)); if (!isLandscape()) animator.translationX((mDialogView.getWidth() / 2.0f)*(isAudioPanelOnLeftSide() ? -1 : 1)); animator.start(); + mDialog.getViewTreeObserver().removeOnComputeInternalInsetsListener(mInsetsListener); checkODICaptionsTooltip(true); mController.notifyVisible(false); synchronized (mSafetyWarningLock) { diff --git a/CompactPanel/src/co/potatoproject/plugin/volume/compact/VolumeDialogImpl.java b/CompactPanel/src/co/potatoproject/plugin/volume/compact/VolumeDialogImpl.java index f474b9d..76fbcbe 100644 --- a/CompactPanel/src/co/potatoproject/plugin/volume/compact/VolumeDialogImpl.java +++ b/CompactPanel/src/co/potatoproject/plugin/volume/compact/VolumeDialogImpl.java @@ -374,15 +374,15 @@ public class VolumeDialogImpl extends PanelSideAware implements VolumeDialog { internalInsetsInfo.setTouchableInsets(InternalInsetsInfo.TOUCHABLE_INSETS_REGION); View main = mDialog.findViewById(R.id.main); int[] mainLocation = new int[2]; - main.getLocationOnScreen(mainLocation); - internalInsetsInfo.touchableRegion.set(new Region( + main.getLocationInWindow(mainLocation); + internalInsetsInfo.touchableRegion.set( mainLocation[0], mainLocation[1], mainLocation[0] + main.getWidth(), mPanelMode == PanelMode.MINI ? mainLocation[1] + main.getHeight() : mainLocation[1] + mDialogView.getHeight() - )); + ); }; protected ViewGroup getDialogView() { @@ -906,7 +906,7 @@ public class VolumeDialogImpl extends PanelSideAware implements VolumeDialog { } initSettingsH(); - mDialog.getViewTreeObserver().addOnComputeInternalInsetsListener(mInsetsListener); + mDialog.getViewTreeObserver().addOnComputeInternalInsetsListener(mInsetsListener); if(!mShowing && !mDialog.isShown()) { mDialogView.setTranslationX(0); @@ -1006,6 +1006,7 @@ public class VolumeDialogImpl extends PanelSideAware implements VolumeDialog { if (!isLandscape() && mPanelMode != PanelMode.MINI) animator.translationX((mDialogView.getWidth() / 2.0f)*(isAudioPanelOnLeftSide() ? -1 : 1)); animator.start(); + mDialog.getViewTreeObserver().removeOnComputeInternalInsetsListener(mInsetsListener); checkODICaptionsTooltip(true); mController.notifyVisible(false); synchronized (mSafetyWarningLock) { |
