Skip to content

Commit 39ed42f

Browse files
committed
Inflate menu before calling method injection
1 parent c163425 commit 39ed42f

4 files changed

Lines changed: 25 additions & 1 deletion

File tree

‎AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/holder/EActivityHolder.java‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ public class EActivityHolder extends EComponentWithViewSupportHolder implements
7171
private JBlock injectExtrasBlock;
7272
private JVar injectExtras;
7373
private JBlock onCreateOptionsMenuMethodBody;
74+
private JBlock onCreateOptionsMenuMethodInflateBody;
7475
private JVar onCreateOptionsMenuMenuInflaterVar;
7576
private JVar onCreateOptionsMenuMenuParam;
7677
private JVar onOptionsItemSelectedItem;
@@ -306,6 +307,7 @@ private void setOnCreateOptionsMenu() {
306307
JBlock methodBody = method.body();
307308
onCreateOptionsMenuMenuParam = method.param(getClasses().MENU, "menu");
308309
onCreateOptionsMenuMenuInflaterVar = methodBody.decl(getClasses().MENU_INFLATER, "menuInflater", invoke("getMenuInflater"));
310+
onCreateOptionsMenuMethodInflateBody = methodBody.blockSimple();
309311
onCreateOptionsMenuMethodBody = methodBody.blockSimple();
310312
methodBody._return(_super().invoke(method).arg(onCreateOptionsMenuMenuParam));
311313
}
@@ -487,6 +489,14 @@ public JBlock getOnCreateOptionsMenuMethodBody() {
487489
return onCreateOptionsMenuMethodBody;
488490
}
489491

492+
@Override
493+
public JBlock getOnCreateOptionsMenuMethodInflateBody() {
494+
if (onCreateOptionsMenuMethodInflateBody == null) {
495+
setOnCreateOptionsMenu();
496+
}
497+
return onCreateOptionsMenuMethodInflateBody;
498+
}
499+
490500
@Override
491501
public JVar getOnCreateOptionsMenuMenuInflaterVar() {
492502
if (onCreateOptionsMenuMenuInflaterVar == null) {

‎AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/holder/EFragmentHolder.java‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public class EFragmentHolder extends EComponentWithViewSupportHolder implements
6666
private ReceiverRegistrationDelegate<EFragmentHolder> receiverRegistrationDelegate;
6767
private PreferencesDelegate preferencesDelegate;
6868
private JBlock onCreateOptionsMenuMethodBody;
69+
private JBlock onCreateOptionsMenuMethodInflateBody;
6970
private JVar onCreateOptionsMenuMenuInflaterVar;
7071
private JVar onCreateOptionsMenuMenuParam;
7172
private JVar onOptionsItemSelectedItem;
@@ -169,6 +170,7 @@ private void setOnCreateOptionsMenu() {
169170
JBlock methodBody = method.body();
170171
onCreateOptionsMenuMenuParam = method.param(getClasses().MENU, "menu");
171172
onCreateOptionsMenuMenuInflaterVar = method.param(getClasses().MENU_INFLATER, "inflater");
173+
onCreateOptionsMenuMethodInflateBody = methodBody.blockSimple();
172174
onCreateOptionsMenuMethodBody = methodBody.blockSimple();
173175
methodBody.invoke(_super(), method).arg(onCreateOptionsMenuMenuParam).arg(onCreateOptionsMenuMenuInflaterVar);
174176

@@ -419,6 +421,14 @@ public JBlock getOnCreateOptionsMenuMethodBody() {
419421
return onCreateOptionsMenuMethodBody;
420422
}
421423

424+
@Override
425+
public JBlock getOnCreateOptionsMenuMethodInflateBody() {
426+
if (onCreateOptionsMenuMethodInflateBody == null) {
427+
setOnCreateOptionsMenu();
428+
}
429+
return onCreateOptionsMenuMethodInflateBody;
430+
}
431+
422432
@Override
423433
public JVar getOnCreateOptionsMenuMenuInflaterVar() {
424434
if (onCreateOptionsMenuMenuInflaterVar == null) {

‎AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/holder/HasOptionsMenu.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/**
22
* Copyright (C) 2010-2016 eBusiness Information, Excilys Group
3+
* Copyright (C) 2016-2017 the AndroidAnnotations project
34
*
45
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
56
* use this file except in compliance with the License. You may obtain a copy of
@@ -21,6 +22,8 @@
2122
public interface HasOptionsMenu extends GeneratedClassHolder {
2223
JBlock getOnCreateOptionsMenuMethodBody();
2324

25+
JBlock getOnCreateOptionsMenuMethodInflateBody();
26+
2427
JVar getOnCreateOptionsMenuMenuInflaterVar();
2528

2629
JVar getOnCreateOptionsMenuMenuParam();

‎AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/core/handler/OptionsMenuHandler.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/**
22
* Copyright (C) 2010-2016 eBusiness Information, Excilys Group
3+
* Copyright (C) 2016-2017 the AndroidAnnotations project
34
*
45
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
56
* use this file except in compliance with the License. You may obtain a copy of
@@ -46,7 +47,7 @@ public void validate(Element element, ElementValidation validation) {
4647

4748
@Override
4849
public void process(Element element, HasOptionsMenu holder) {
49-
JBlock body = holder.getOnCreateOptionsMenuMethodBody();
50+
JBlock body = holder.getOnCreateOptionsMenuMethodInflateBody();
5051
JVar menuInflater = holder.getOnCreateOptionsMenuMenuInflaterVar();
5152
JVar menuParam = holder.getOnCreateOptionsMenuMenuParam();
5253

0 commit comments

Comments
 (0)