Skip to content

Commit ae6ec6b

Browse files
committed
Merge branch 'develop'
* develop: Remove possible annotate StateStrategyType for interface Remove deprecreated annotation GenerateViewState
2 parents d99c851 + d7799dc commit ae6ec6b

File tree

18 files changed

+29
-93
lines changed

18 files changed

+29
-93
lines changed

moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy;
55
import com.omegar.mvp.viewstate.strategy.StateStrategyType;
66

7-
@StateStrategyType(AddToEndSingleStrategy.class)
87
public interface BaseView extends MvpView {
98

9+
@StateStrategyType(AddToEndSingleStrategy.class)
1010
void testFunction();
1111

1212
}

moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/contract/Contract.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import example.com.moxy_androidx_sample.second.SecondView
99

1010
interface Contract {
1111

12-
@StateStrategyType(AddToEndSingleStrategy::class)
1312
interface MainView : FirstView<Item>, SecondView, Contract.FifthView {
1413

14+
@StateStrategyType(AddToEndSingleStrategy::class)
1515
fun printLog(msg: Double?, log: String?)
1616

1717
}

moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/Contract.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
public interface Contract {
99

10-
@StateStrategyType(AddToEndSingleStrategy.class)
1110
interface FifthView extends FourthView<String> {
1211

1312
}

moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@
1010
import example.com.moxy_androidx_sample.BaseView;
1111
import example.com.moxy_androidx_sample.third.ThirdView;
1212

13-
@StateStrategyType(AddToEndSingleStrategy.class)
1413
public interface FirstView<M> extends BaseView, ThirdView {
1514

15+
@StateStrategyType(AddToEndSingleStrategy.class)
1616
void firstMethod(List<M> item);
1717

18+
@StateStrategyType(AddToEndSingleStrategy.class)
1819
void firstCopyMethod(List<Location> item);
1920

21+
@StateStrategyType(AddToEndSingleStrategy.class)
2022
void firstLog(M m);
2123

2224
}

moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fourth/FourthView.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy
44
import com.omegar.mvp.viewstate.strategy.StateStrategyType
55
import example.com.moxy_androidx_sample.BaseView
66

7-
@StateStrategyType(AddToEndSingleStrategy::class)
87
interface FourthView<R> : BaseView {
98

9+
@StateStrategyType(AddToEndSingleStrategy::class)
1010
fun fourth(item: R)
1111

1212
}

moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/second/SecondView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
import example.com.moxy_androidx_sample.BaseView;
77

8-
@StateStrategyType(AddToEndSingleStrategy.class)
98
public interface SecondView extends BaseView {
109

10+
@StateStrategyType(AddToEndSingleStrategy.class)
1111
void secondMethod();
1212

1313
}

moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/third/ThirdView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
import example.com.moxy_androidx_sample.BaseView;
77

8-
@StateStrategyType(AddToEndSingleStrategy.class)
98
public interface ThirdView extends BaseView {
109

10+
@StateStrategyType(AddToEndSingleStrategy.class)
1111
void thirdMethod();
1212

1313
}

moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.omegar.mvp.compiler;
22

33
import com.google.auto.service.AutoService;
4-
import com.omegar.mvp.GenerateViewState;
54
import com.omegar.mvp.InjectViewState;
65
import com.omegar.mvp.RegisterMoxyReflectorPackages;
76
import com.omegar.mvp.compiler.presenterbinder.InjectPresenterProcessor;
@@ -95,8 +94,7 @@ public Set<String> getSupportedAnnotationTypes() {
9594
Collections.addAll(supportedAnnotationTypes,
9695
InjectPresenter.class.getCanonicalName(),
9796
InjectViewState.class.getCanonicalName(),
98-
RegisterMoxyReflectorPackages.class.getCanonicalName(),
99-
GenerateViewState.class.getCanonicalName());
97+
RegisterMoxyReflectorPackages.class.getCanonicalName());
10098
return supportedAnnotationTypes;
10199
}
102100

moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java

Lines changed: 14 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import javax.lang.model.element.ExecutableElement;
2323
import javax.lang.model.element.Modifier;
2424
import javax.lang.model.element.TypeElement;
25-
import javax.lang.model.element.TypeParameterElement;
2625
import javax.lang.model.type.DeclaredType;
2726
import javax.lang.model.type.TypeKind;
2827
import javax.lang.model.type.TypeMirror;
@@ -115,10 +114,8 @@ private Set<ViewInterfaceInfo> generateInfos(TypeElement element) {
115114

116115
List<ViewMethod> methods = new ArrayList<>();
117116

118-
TypeElement interfaceStateStrategyType = getInterfaceStateStrategyType(element);
119-
120117
// Get methods for input class
121-
getMethods(element, interfaceStateStrategyType, new ArrayList<>(), methods);
118+
getMethods(element, new ArrayList<>(), methods);
122119

123120
// Add methods from super interfaces
124121
ViewInterfaceInfo superInterfaceInfo = null;
@@ -155,7 +152,6 @@ private Set<ViewInterfaceInfo> generateInfos(TypeElement element) {
155152
}
156153

157154
private void getMethods(TypeElement typeElement,
158-
TypeElement parentStrategy,
159155
List<ViewMethod> rootMethods,
160156
List<ViewMethod> superinterfacesMethods) {
161157
for (Element element : typeElement.getEnclosedElements()) {
@@ -187,22 +183,19 @@ private void getMethods(TypeElement typeElement,
187183
if (strategyClassFromAnnotation != null) {
188184
strategyClass = (TypeElement) ((DeclaredType) strategyClassFromAnnotation).asElement();
189185
} else {
190-
if (parentStrategy != null) {
191-
strategyClass = parentStrategy;
192-
} else {
193-
String message = String.format("You are trying generate ViewState for %s. " +
194-
"But %s interface and \"%s\" method don't provide Strategy type. " +
195-
"Please annotate your %s interface or method with Strategy." + "\n\n" +
196-
"For example:\n@StateStrategyType(AddToEndSingleStrategy::class)" + "\n" + "fun %s",
197-
typeElement.getSimpleName(),
198-
typeElement.getSimpleName(),
199-
methodElement.getSimpleName(),
200-
typeElement.getSimpleName(),
201-
methodElement.getSimpleName()
202-
);
203-
MvpCompiler.getMessager().printMessage(Diagnostic.Kind.ERROR, message);
204-
return;
205-
}
186+
String message = String.format("You are trying generate ViewState for %s. " +
187+
"But %s interface and \"%s\" method don't provide Strategy type. " +
188+
"Please annotate your %s interface or method with Strategy." + "\n\n" +
189+
"For example:\n@StateStrategyType(AddToEndSingleStrategy::class)" + "\n" + "fun %s",
190+
typeElement.getSimpleName(),
191+
typeElement.getSimpleName(),
192+
methodElement.getSimpleName(),
193+
typeElement.getSimpleName(),
194+
methodElement.getSimpleName()
195+
);
196+
MvpCompiler.getMessager().printMessage(Diagnostic.Kind.ERROR, message);
197+
return;
198+
206199
}
207200

208201
// get tag from annotation
@@ -259,37 +252,6 @@ private void checkStrategyAndTagEquals(ViewMethod method, ViewMethod existingMet
259252
}
260253
}
261254

262-
private List<ViewMethod> iterateInterfaces(TypeElement parentElement,
263-
TypeElement parentDefaultStrategy,
264-
List<ViewMethod> rootMethods,
265-
List<ViewMethod> superinterfacesMethods) {
266-
for (TypeMirror typeMirror : parentElement.getInterfaces()) {
267-
final TypeElement anInterface = (TypeElement) ((DeclaredType) typeMirror).asElement();
268255

269-
final List<? extends TypeMirror> typeArguments = ((DeclaredType) typeMirror).getTypeArguments();
270-
final List<? extends TypeParameterElement> typeParameters = anInterface.getTypeParameters();
271256

272-
if (typeArguments.size() > typeParameters.size()) {
273-
throw new IllegalArgumentException("Code generation for interface " + anInterface.getSimpleName() + " failed. Simplify your generics.");
274-
}
275-
276-
TypeElement defaultStrategy = parentDefaultStrategy != null ? parentDefaultStrategy : getInterfaceStateStrategyType(anInterface);
277-
278-
getMethods(anInterface, defaultStrategy, rootMethods, superinterfacesMethods);
279-
280-
iterateInterfaces(anInterface, defaultStrategy, rootMethods, superinterfacesMethods);
281-
}
282-
283-
return superinterfacesMethods;
284-
}
285-
286-
private TypeElement getInterfaceStateStrategyType(TypeElement typeElement) {
287-
AnnotationMirror annotation = Util.getAnnotation(typeElement, STATE_STRATEGY_TYPE_ANNOTATION);
288-
TypeMirror value = Util.getAnnotationValueAsTypeMirror(annotation, "value");
289-
if (value != null && value.getKind() == TypeKind.DECLARED) {
290-
return (TypeElement) ((DeclaredType) value).asElement();
291-
} else {
292-
return null;
293-
}
294-
}
295257
}

moxy-compiler/src/test/resources/view/strategies_inheritance/ChildView.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55
import view.strategies_inheritance.strategies.ChildDefaultStrategy;
66
import view.strategies_inheritance.strategies.Strategy2;
77

8-
@StateStrategyType(ChildDefaultStrategy.class)
98
public interface ChildView extends ParentView {
9+
@StateStrategyType(ChildDefaultStrategy.class)
1010
void parentMethod1(); // ParentDefaultStrategy -> ChildDefaultStrategy
1111

1212
@StateStrategyType(Strategy2.class)
1313
void parentMethod2(); // ParentDefaultStrategy -> Strategy2
1414

15+
@StateStrategyType(ChildDefaultStrategy.class)
1516
void childMethod(); // ChildDefaultStrategy
1617

1718
@StateStrategyType(Strategy2.class)

0 commit comments

Comments
 (0)