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