add menu APIs and use Activity as Window.Callbacks implementation

This commit is contained in:
Julian Winkler
2023-09-01 12:34:57 +02:00
parent ad83271080
commit f968bcd7c4
6 changed files with 105 additions and 22 deletions

View File

@@ -8,5 +8,9 @@ public interface Menu {
public MenuItem findItem(int id);
public MenuItem getItem(int id);
public void clear();
public void removeGroup(int groupId);
}

View File

@@ -8,4 +8,22 @@ public interface MenuItem {
public MenuItem setVisible(boolean visible);
public MenuItem setChecked(boolean checked);
public MenuItem setEnabled(boolean enabled);
public MenuItem setCheckable(boolean checkable);
public MenuItem setTitleCondensed(CharSequence titleCondensed);
public MenuItem setTitle(CharSequence title);
public MenuItem setActionView(View actionView);
public void setShowAsAction(int action);
public int getItemId();
public int getGroupId();
}

View File

@@ -1,28 +1,20 @@
package android.view;
public class Window {
public static final int FEATURE_OPTIONS_PANEL = 0;
public static interface Callback {
public void onContentChanged();
public abstract boolean onCreatePanelMenu(int featureId, Menu menu);
public View onCreatePanelView(int featureId);
}
public static class fixme_callback implements Callback {
@Override
public void onContentChanged() {
}
public boolean onPreparePanel(int featureId, View view, Menu menu);
@Override
public boolean onCreatePanelMenu(int featureId, Menu menu) {
return false;
}
public boolean onMenuItemSelected(int featureId, MenuItem item);
@Override
public View onCreatePanelView(int featureId) {
return null;
}
public void onPanelClosed(int featureId, Menu menu);
}
// FIXME private
@@ -31,8 +23,8 @@ public class Window {
private Window.Callback callback;
public Window() {
this.callback = new fixme_callback();
public Window(Window.Callback callback) {
this.callback = callback;
}
public void addFlags(int flags) {}
@@ -74,4 +66,10 @@ public class Window {
public View peekDecorView() {
return null;
}
public WindowManager.LayoutParams getAttributes() {
return new WindowManager.LayoutParams();
}
public void setAttributes(WindowManager.LayoutParams params) {}
}

View File

@@ -5,5 +5,7 @@ public interface WindowManager {
public class LayoutParams {
public static final int FLAG_KEEP_SCREEN_ON = 0;
public float screenBrightness;
}
}