Skip to content

Commit e1a9729

Browse files
author
roman_tcaregorodtcev
committed
View interface inside other interface - generation bug fixed
1 parent 3e84b36 commit e1a9729

File tree

8 files changed

+38
-20
lines changed

8 files changed

+38
-20
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ allprojects {
2424
ext {
2525
targetVersionCode = 46
2626
targetVersionName = "1.5.6"
27-
kotlin_version = '1.3.21'
27+
kotlin_version = '1.3.41'
2828

2929
deps = [
3030
android : 'com.google.android:android:1.6_r2',

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import android.location.Location
44
import android.os.Bundle
55
import android.util.Log
66
import com.omegar.mvp.presenter.InjectPresenter
7-
import example.com.moxy_androidx_sample.first.FirstView
7+
import example.com.moxy_androidx_sample.contract.Contract
88
import example.com.moxy_androidx_sample.packagee.Item
99

10-
class MainActivity : BaseActivity(), MainView, SecondInterface {
10+
class MainActivity : BaseActivity(), Contract.MainView, SecondInterface {
1111
override fun fourth(item: String?) {
1212
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
1313
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ package example.com.moxy_androidx_sample
33
import android.util.Log
44
import com.omegar.mvp.InjectViewState
55
import com.omegar.mvp.MvpPresenter
6+
import example.com.moxy_androidx_sample.contract.Contract
67

78
@InjectViewState
8-
class MainPresenter : MvpPresenter<MainView>() {
9+
class MainPresenter : MvpPresenter<Contract.MainView>() {
910

1011
override fun onFirstViewAttach() {
1112
super.onFirstViewAttach()

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

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package example.com.moxy_androidx_sample.contract
2+
3+
import example.com.moxy_androidx_sample.fifth.Contract
4+
import example.com.moxy_androidx_sample.first.FirstView
5+
import example.com.moxy_androidx_sample.packagee.Item
6+
import example.com.moxy_androidx_sample.second.SecondView
7+
8+
interface Contract {
9+
10+
interface MainView : FirstView<Item>, SecondView, Contract.FifthView {
11+
12+
fun printLog(msg: Double?, log: String?)
13+
14+
}
15+
16+
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
import example.com.moxy_androidx_sample.fourth.FourthView;
44

5-
public interface FifthView extends FourthView<String> {
5+
public interface Contract {
66

7+
interface FifthView extends FourthView<String> {
78

9+
}
810

911
}

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import javax.lang.model.type.TypeMirror;
4040
import javax.lang.model.type.TypeVariable;
4141
import javax.lang.model.type.WildcardType;
42+
import javax.tools.Diagnostic;
4243

4344
/**
4445
* Utilities for handling types in annotation processors
@@ -128,6 +129,16 @@ public static String getFullClassName(TypeElement typeElement) {
128129
return packageName + className.replaceAll("\\.", "\\$");
129130
}
130131

132+
public static String getSimpleClassName(TypeElement typeElement) {
133+
String packageName = MvpCompiler.getElementUtils().getPackageOf(typeElement).getQualifiedName().toString();
134+
if (packageName.length() > 0) {
135+
packageName += ".";
136+
}
137+
138+
String className = typeElement.toString().substring(packageName.length());
139+
return className.replaceAll("\\.", "\\$");
140+
}
141+
131142
public static AnnotationMirror getAnnotation(Element element, String annotationClass) {
132143
for (AnnotationMirror annotationMirror : element.getAnnotationMirrors()) {
133144
if (annotationMirror.getAnnotationType().asElement().toString().equals(annotationClass))

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ private JavaFile generate(ViewInterfaceInfo viewInterfaceInfo) {
7171
DeclaredType viewInterfaceType = (DeclaredType) viewInterfaceInfo.getElement().asType();
7272
TypeVariableName variableName = TypeVariableName.get(VIEW, nameWithTypeVariables);
7373

74-
TypeSpec.Builder classBuilder = TypeSpec.classBuilder(viewName.simpleName() + MvpProcessor.VIEW_STATE_SUFFIX)
74+
TypeSpec.Builder classBuilder = TypeSpec.classBuilder(Util.getSimpleClassName(viewInterfaceInfo.getElement()) + MvpProcessor.VIEW_STATE_SUFFIX)
7575
.addModifiers(Modifier.PUBLIC)
7676
.addSuperinterface(nameWithTypeVariables)
7777
.addTypeVariables(new ArrayList<TypeVariableName>(viewInterfaceInfo.getTypeVariables()) {{
@@ -160,8 +160,8 @@ private MethodSpec generateMethod(DeclaredType enclosingType, ViewMethod method,
160160
.addStatement("return")
161161
.endControlFlow()
162162
.addCode("\n")
163-
.beginControlFlow("for ($T view : mViews)", viewTypeName)
164-
.addStatement("view.$L($L)", method.getName(), method.getArgumentsString())
163+
.beginControlFlow("for ($T view$$ : mViews)", viewTypeName)
164+
.addStatement("view$$.$L($L)", method.getName(), method.getArgumentsString())
165165
.endControlFlow()
166166
.addCode("\n")
167167
.addStatement("mViewCommands.afterApply($L)", commandFieldName)

0 commit comments

Comments
 (0)