2022-10-02 23:06:56 +02:00
|
|
|
package android.view;
|
|
|
|
|
|
2024-03-16 12:49:28 +01:00
|
|
|
public class WindowManagerImpl implements WindowManager, ViewManager {
|
2024-12-17 18:27:20 +01:00
|
|
|
|
|
|
|
|
private static class WindowViewParent implements ViewParent {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public android.view.ViewParent getParent() {
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
throw new UnsupportedOperationException("Unimplemented method 'getParent'");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean isLayoutRequested() {
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
throw new UnsupportedOperationException("Unimplemented method 'isLayoutRequested'");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void requestDisallowInterceptTouchEvent(boolean disallowIntercept) {
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
throw new UnsupportedOperationException("Unimplemented method 'requestDisallowInterceptTouchEvent'");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean onStartNestedScroll(View child, View target, int nestedScrollAxes) {
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
throw new UnsupportedOperationException("Unimplemented method 'onStartNestedScroll'");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean onNestedPreFling(View target, float velocityX, float velocityY) {
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
throw new UnsupportedOperationException("Unimplemented method 'onNestedPreFling'");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean onNestedFling(View target, float velocityX, float velocityY, boolean consumed) {
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
throw new UnsupportedOperationException("Unimplemented method 'onNestedFling'");
|
|
|
|
|
}
|
2025-02-10 18:19:55 +01:00
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onNestedScrollAccepted(View child, View target, int nestedScrollAxes) {
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
throw new UnsupportedOperationException("Unimplemented method 'onNestedScrollAccepted'");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onNestedPreScroll(View target, int dx, int dy, int[] consumed) {
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
throw new UnsupportedOperationException("Unimplemented method 'onNestedPreScroll'");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onNestedScroll(View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) {
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
throw new UnsupportedOperationException("Unimplemented method 'onNestedScroll'");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onStopNestedScroll(View target) {
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
throw new UnsupportedOperationException("Unimplemented method 'onStopNestedScroll'");
|
|
|
|
|
}
|
2024-12-17 18:27:20 +01:00
|
|
|
}
|
|
|
|
|
|
2022-10-02 23:06:56 +02:00
|
|
|
public android.view.Display getDefaultDisplay() {
|
|
|
|
|
return new android.view.Display();
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-16 12:49:28 +01:00
|
|
|
@Override
|
|
|
|
|
public void addView(View view, android.view.ViewGroup.LayoutParams params) {
|
|
|
|
|
System.out.println("WindowManagerImpl.addView(" + view + ", " + params + ") called");
|
2024-12-14 23:37:37 +01:00
|
|
|
if (params.height == 0) // FIXME: remove this hack once measurement error with composeUI popups is fixed
|
|
|
|
|
params.height = 200;
|
2024-12-14 23:33:29 +01:00
|
|
|
view.setLayoutParams(params);
|
2024-12-17 18:27:20 +01:00
|
|
|
view.parent = new WindowViewParent();
|
2024-12-14 23:33:29 +01:00
|
|
|
view.onAttachedToWindow();
|
|
|
|
|
WindowManager.LayoutParams windowParams = (WindowManager.LayoutParams)params;
|
|
|
|
|
native_addView(view.widget, windowParams.type, windowParams.x, windowParams.y, params.width, params.height);
|
2024-03-16 12:49:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void updateViewLayout(View view, android.view.ViewGroup.LayoutParams params) {
|
2024-12-10 23:23:14 +01:00
|
|
|
System.out.println("WindowManagerImpl.updateViewLayout(" + view + ", " + params + ") called");
|
2024-12-14 23:37:37 +01:00
|
|
|
if (params.height == 0) // FIXME: remove this hack once measurement error with composeUI popups is fixed
|
|
|
|
|
params.height = 200;
|
2024-12-14 23:33:29 +01:00
|
|
|
WindowManager.LayoutParams windowParams = (WindowManager.LayoutParams)params;
|
|
|
|
|
view.setLayoutParams(params);
|
|
|
|
|
native_updateViewLayout(view.widget, windowParams.x, windowParams.y, params.width, params.height);
|
2024-03-16 12:49:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void removeView(View view) {
|
2024-12-14 23:33:29 +01:00
|
|
|
native_removeView(view.widget);
|
2024-12-17 18:27:20 +01:00
|
|
|
view.parent = null;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
2024-12-14 23:33:29 +01:00
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void removeViewImmediate(View view) {
|
|
|
|
|
removeView(view);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static native void native_addView(long widget, int type, int x, int y, int width, int height);
|
|
|
|
|
private static native void native_updateViewLayout(long widget, int x, int y, int width, int height);
|
|
|
|
|
private static native void native_removeView(long widget);
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|