Calculator Overlay

This commit is contained in:
Sergey Solovyev
2012-11-21 18:34:58 +04:00
parent eb07c9410a
commit 64b01cb22a
2 changed files with 67 additions and 31 deletions

View File

@@ -64,6 +64,44 @@ public class CalculatorOverlayService extends Service implements ExternalCalcula
}
}
final int initialWindowWidth = Math.max(wm.getDefaultDisplay().getWidth() / 2, 300);
final int initialWindowHeight = Math.max(wm.getDefaultDisplay().getHeight() / 2, 450);
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
initialWindowWidth,
initialWindowHeight,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
final View overlayContent = onscreenView.findViewById(R.id.overlay_content);
final View overlayHideButton = onscreenView.findViewById(R.id.overlay_hide_button);
overlayHideButton.setOnClickListener(new View.OnClickListener() {
private boolean hidden = false;
private int windowHeight = initialWindowHeight;
@Override
public void onClick(View v) {
final WindowManager.LayoutParams params = (WindowManager.LayoutParams) onscreenView.getLayoutParams();
if (hidden) {
overlayContent.setVisibility(View.VISIBLE);
params.height = windowHeight;
} else {
windowHeight = params.height;
overlayContent.setVisibility(View.GONE);
params.height = overlayHideButton.getHeight();
}
wm.updateViewLayout(onscreenView, params);
hidden = !hidden;
}
});
onscreenView.findViewById(R.id.overlay_close_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -71,14 +109,6 @@ public class CalculatorOverlayService extends Service implements ExternalCalcula
}
});
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
Math.max(wm.getDefaultDisplay().getWidth() / 2, 300),
Math.max(wm.getDefaultDisplay().getHeight() / 2, 450),
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
final TextView overlayTitleTextView = (TextView) onscreenView.findViewById(R.id.overlay_title);
overlayTitleTextView.setOnTouchListener(new View.OnTouchListener() {