Calculator Overlay
This commit is contained in:
parent
eb07c9410a
commit
64b01cb22a
@ -1,37 +1,43 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
|
||||
a:orientation="vertical"
|
||||
style="@style/cpp_widget_main_layout_style">
|
||||
a:orientation="vertical"
|
||||
style="@style/cpp_widget_main_layout_style">
|
||||
|
||||
<include layout="@layout/overlay_header"/>
|
||||
|
||||
<include layout="@layout/widget_editor"
|
||||
a:layout_weight="2"
|
||||
a:layout_width="match_parent"
|
||||
a:layout_height="0dp"/>
|
||||
<LinearLayout a:id="@+id/overlay_content"
|
||||
a:orientation="vertical"
|
||||
a:layout_width="match_parent"
|
||||
a:layout_height="match_parent">
|
||||
|
||||
<LinearLayout a:layout_weight="1"
|
||||
a:layout_width="match_parent"
|
||||
a:layout_height="0dp">
|
||||
<include layout="@layout/widget_editor"
|
||||
a:layout_weight="2"
|
||||
a:layout_width="match_parent"
|
||||
a:layout_height="0dp"/>
|
||||
|
||||
<include layout="@layout/widget_equals_button"
|
||||
a:layout_margin="@dimen/cpp_button_margin"
|
||||
a:layout_weight="1"
|
||||
a:layout_width="0dp"
|
||||
a:layout_height="match_parent"/>
|
||||
<LinearLayout a:layout_weight="1"
|
||||
a:layout_width="match_parent"
|
||||
a:layout_height="0dp">
|
||||
|
||||
<include layout="@layout/widget_display"
|
||||
a:layout_weight="5"
|
||||
a:layout_width="0dp"
|
||||
a:layout_height="wrap_content"/>
|
||||
<include layout="@layout/widget_equals_button"
|
||||
a:layout_margin="@dimen/cpp_button_margin"
|
||||
a:layout_weight="1"
|
||||
a:layout_width="0dp"
|
||||
a:layout_height="match_parent"/>
|
||||
|
||||
</LinearLayout>
|
||||
<include layout="@layout/widget_display"
|
||||
a:layout_weight="5"
|
||||
a:layout_width="0dp"
|
||||
a:layout_height="wrap_content"/>
|
||||
|
||||
<include layout="@layout/widget_keyboard"
|
||||
a:layout_weight="5"
|
||||
a:layout_width="match_parent"
|
||||
a:layout_height="0dp"/>
|
||||
</LinearLayout>
|
||||
|
||||
<include layout="@layout/widget_keyboard"
|
||||
a:layout_weight="5"
|
||||
a:layout_width="match_parent"
|
||||
a:layout_height="0dp"/>
|
||||
</LinearLayout>
|
||||
|
||||
<include layout="@layout/overlay_footer"/>
|
||||
|
||||
|
@ -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() {
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user