Skip to content

Commit c05c8b7

Browse files
Merge branch 'hotfix/2.7'
2 parents 4c15998 + 42d8585 commit c05c8b7

File tree

12 files changed

+123
-22
lines changed

12 files changed

+123
-22
lines changed

AndroidAnnotations/androidannotations-api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>androidannotations-parent</artifactId>
77
<groupId>com.googlecode.androidannotations</groupId>
8-
<version>3.0-SNAPSHOT</version>
8+
<version>2.7.1-SNAPSHOT</version>
99
</parent>
1010

1111
<artifactId>androidannotations-api</artifactId>

AndroidAnnotations/androidannotations-bundle/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>androidannotations-parent</artifactId>
77
<groupId>com.googlecode.androidannotations</groupId>
8-
<version>3.0-SNAPSHOT</version>
8+
<version>2.7.1-SNAPSHOT</version>
99
</parent>
1010

1111
<artifactId>androidannotations-bundle</artifactId>

AndroidAnnotations/androidannotations-with-codemodel/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>androidannotations-parent</artifactId>
77
<groupId>com.googlecode.androidannotations</groupId>
8-
<version>3.0-SNAPSHOT</version>
8+
<version>2.7.1-SNAPSHOT</version>
99
</parent>
1010

1111
<artifactId>androidannotations-with-codemodel</artifactId>

AndroidAnnotations/androidannotations/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.googlecode.androidannotations</groupId>
77
<artifactId>androidannotations-parent</artifactId>
8-
<version>3.0-SNAPSHOT</version>
8+
<version>2.7.1-SNAPSHOT</version>
99
</parent>
1010

1111
<artifactId>androidannotations</artifactId>

AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EBeanHolder.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import com.googlecode.androidannotations.annotations.EViewGroup;
2323
import com.googlecode.androidannotations.processing.EBeansHolder.Classes;
2424
import com.sun.codemodel.JBlock;
25-
import com.sun.codemodel.JCase;
2625
import com.sun.codemodel.JClass;
2726
import com.sun.codemodel.JCodeModel;
2827
import com.sun.codemodel.JDefinedClass;
@@ -91,7 +90,7 @@ public class EBeanHolder {
9190
/**
9291
* OnActivityResult byResultCode
9392
*/
94-
public final HashMap<Integer, JCase> onActivityResultCases = new HashMap<Integer, JCase>();
93+
public final HashMap<Integer, JBlock> onActivityResultCases = new HashMap<Integer, JBlock>();
9594

9695
public JSwitch onActivityResultSwitch;
9796
public JMethod onActivityResultMethod;

AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/EFragmentProcessor.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,25 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo
128128
.assign(contentView, inflater.invoke("inflate").arg(contentViewId).arg(container).arg(FALSE));
129129
}
130130

131-
body.invoke(holder.afterSetContentView);
132-
133131
body._return(contentView);
134132
}
135133

134+
{
135+
// onViewCreated
136+
137+
JMethod onViewCreated = holder.generatedClass.method(PUBLIC, codeModel.VOID, "onViewCreated");
138+
onViewCreated.annotate(Override.class);
139+
JVar view = onViewCreated.param(classes.VIEW, "view");
140+
JVar savedInstanceState = onViewCreated.param(classes.BUNDLE, "savedInstanceState");
141+
142+
JBlock onViewCreatedBody = onViewCreated.body();
143+
144+
onViewCreatedBody.invoke(_super(), onViewCreated).arg(view).arg(savedInstanceState);
145+
146+
onViewCreatedBody.invoke(holder.afterSetContentView);
147+
}
148+
149+
136150
{
137151
// findViewById
138152

AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/processing/OnActivityResultProcessor.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.googlecode.androidannotations.helper.APTCodeModelHelper;
3030
import com.googlecode.androidannotations.helper.CanonicalNameConstants;
3131
import com.googlecode.androidannotations.rclass.IRClass;
32+
3233
import com.sun.codemodel.JBlock;
3334
import com.sun.codemodel.JCase;
3435
import com.sun.codemodel.JClass;
@@ -83,10 +84,10 @@ public void process(Element element, JCodeModel codeModel, EBeanHolder holder) {
8384

8485
int requestCode = executableElement.getAnnotation(OnActivityResult.class).value();
8586

86-
JCase onActivityResultCase = getOrCreateOnActivityResultMethodBody(codeModel, holder, requestCode);
87+
JBlock onActivityResultCase = getOrCreateOnActivityResultMethodBody(codeModel, holder, requestCode);
8788

8889
JExpression activityRef = holder.generatedClass.staticRef("this");
89-
JInvocation onResultInvocation = onActivityResultCase.body().invoke(activityRef, methodName);
90+
JInvocation onResultInvocation = onActivityResultCase.invoke(activityRef, methodName);
9091

9192
for (int i = 0; i < parameters.size(); i++) {
9293
if (i == intentParameterPosition) {
@@ -100,7 +101,7 @@ public void process(Element element, JCodeModel codeModel, EBeanHolder holder) {
100101

101102
}
102103

103-
public JCase getOrCreateOnActivityResultMethodBody(JCodeModel codeModel, EBeanHolder holder, int requestCode) {
104+
public JBlock getOrCreateOnActivityResultMethodBody(JCodeModel codeModel, EBeanHolder holder, int requestCode) {
104105
JClass intentClass = holder.classes().INTENT;
105106

106107
if (holder.onActivityResultSwitch == null) {
@@ -120,16 +121,20 @@ public JCase getOrCreateOnActivityResultMethodBody(JCodeModel codeModel, EBeanHo
120121

121122
JSwitch onActivityResultSwitch = holder.onActivityResultSwitch;
122123

123-
JCase onActivityResultCase = holder.onActivityResultCases.get(requestCode);
124+
JBlock onActivityResultCaseBlock = holder.onActivityResultCases.get(requestCode);
125+
126+
if (onActivityResultCaseBlock == null) {
127+
128+
JCase onActivityResultCase = onActivityResultSwitch._case(JExpr.lit(requestCode));
124129

125-
if (onActivityResultCase == null) {
130+
onActivityResultCaseBlock = onActivityResultCase.body().block();
126131

127-
onActivityResultCase = onActivityResultSwitch._case(JExpr.lit(requestCode));
132+
onActivityResultCase.body()._break();
128133

129-
holder.onActivityResultCases.put(requestCode, onActivityResultCase);
134+
holder.onActivityResultCases.put(requestCode, onActivityResultCaseBlock);
130135

131136
}
132137

133-
return onActivityResultCase;
138+
return onActivityResultCaseBlock;
134139
}
135140
}

AndroidAnnotations/functional-test-1-5-tests/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>androidannotations-parent</artifactId>
77
<groupId>com.googlecode.androidannotations</groupId>
8-
<version>3.0-SNAPSHOT</version>
8+
<version>2.7.1-SNAPSHOT</version>
99
</parent>
1010

1111
<artifactId>functional-test-1-5-tests</artifactId>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
/**
2+
* Copyright (C) 2010-2012 eBusiness Information, Excilys Group
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
5+
* use this file except in compliance with the License. You may obtain a copy of
6+
* the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed To in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13+
* License for the specific language governing permissions and limitations under
14+
* the License.
15+
*/
16+
package com.googlecode.androidannotations.test15;
17+
18+
import static org.fest.assertions.Assertions.assertThat;
19+
20+
import org.junit.Test;
21+
import org.junit.runner.RunWith;
22+
23+
@RunWith(AndroidAnnotationsTestRunner.class)
24+
public class AwaitingResultActivityTest {
25+
26+
@Test
27+
public void onlyFirstRequestAnnotatedMethodAreCalled() {
28+
AwaitingResultActivity_ activity = new AwaitingResultActivity_();
29+
30+
activity.onActivityResult(AwaitingResultActivity.FIRST_REQUEST, 0, null);
31+
32+
assertThat(activity.onResultCalled).isTrue();
33+
assertThat(activity.onResultWithDataCalled).isFalse();
34+
assertThat(activity.onActivityResultWithResultCodeAndDataCalled).isFalse();
35+
assertThat(activity.onActivityResultWithDataAndResultCodeCalled).isFalse();
36+
assertThat(activity.onResultWithIntResultCodeCalled).isFalse();
37+
assertThat(activity.onResultWithIntegerResultCodeCalled).isFalse();
38+
}
39+
40+
41+
@Test
42+
public void onlySecondRequestAnnotatedMethodAreCalled() {
43+
AwaitingResultActivity_ activity = new AwaitingResultActivity_();
44+
45+
activity.onActivityResult(AwaitingResultActivity.SECOND_REQUEST, 0, null);
46+
47+
assertThat(activity.onResultCalled).isFalse();
48+
assertThat(activity.onResultWithDataCalled).isTrue();
49+
assertThat(activity.onActivityResultWithResultCodeAndDataCalled).isTrue();
50+
assertThat(activity.onActivityResultWithDataAndResultCodeCalled).isTrue();
51+
assertThat(activity.onResultWithIntResultCodeCalled).isFalse();
52+
assertThat(activity.onResultWithIntegerResultCodeCalled).isFalse();
53+
}
54+
55+
56+
@Test
57+
public void onlyThirdRequestAnnotatedMethodAreCalled() {
58+
AwaitingResultActivity_ activity = new AwaitingResultActivity_();
59+
60+
activity.onActivityResult(AwaitingResultActivity.THIRD_REQUEST, 0, null);
61+
62+
assertThat(activity.onResultCalled).isFalse();
63+
assertThat(activity.onResultWithDataCalled).isFalse();
64+
assertThat(activity.onActivityResultWithResultCodeAndDataCalled).isFalse();
65+
assertThat(activity.onActivityResultWithDataAndResultCodeCalled).isFalse();
66+
assertThat(activity.onResultWithIntResultCodeCalled).isTrue();
67+
assertThat(activity.onResultWithIntegerResultCodeCalled).isTrue();
68+
}
69+
70+
}

AndroidAnnotations/functional-test-1-5/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>androidannotations-parent</artifactId>
77
<groupId>com.googlecode.androidannotations</groupId>
8-
<version>3.0-SNAPSHOT</version>
8+
<version>2.7.1-SNAPSHOT</version>
99
</parent>
1010

1111
<artifactId>functional-test-1-5</artifactId>

0 commit comments

Comments
 (0)