Date: Fri, 22 Mar 2019 11:09:01 +0300
Subject: [PATCH 09/36] arello-mobile replaced with omegar
---
README.md | 12 ++++++------
moxy-androidx-sapmle/build.gradle | 2 +-
.../java/com/omegar/mvp/compiler/MvpCompiler.java | 2 +-
.../resources/multimodules/app/MoxyReflector.java | 2 +-
moxy-templates/Java/MoxyActivity/globals.xml.ftl | 4 ++--
.../presentation/presenter/BlankPresenter.java.ftl | 4 ++--
.../app_package/presentation/view/BlankView.java.ftl | 2 +-
.../app_package/ui/activity/BlankActivity.java.ftl | 4 ++--
moxy-templates/Java/MoxyFragment/globals.xml.ftl | 4 ++--
.../presentation/presenter/BlankPresenter.java.ftl | 4 ++--
.../app_package/presentation/view/BlankView.java.ftl | 2 +-
.../app_package/ui/fragment/BlankFragment.java.ftl | 4 ++--
moxy-templates/Kotlin/MoxyActivity/globals.xml.ftl | 4 ++--
.../presentation/presenter/BlankPresenter.kt.ftl | 4 ++--
.../app_package/presentation/view/BlankView.kt.ftl | 2 +-
.../src/app_package/ui/activity/BlankActivity.kt.ftl | 4 ++--
.../presentation/presenter/BlankPresenter.kt.ftl | 4 ++--
.../app_package/presentation/view/BlankView.kt.ftl | 2 +-
.../src/app_package/ui/fragment/BlankFragment.kt.ftl | 4 ++--
moxy-templates/common/MoxyActivity/globals.xml.ftl | 4 ++--
.../presentation/presenter/BlankPresenter.java.ftl | 4 ++--
.../presentation/presenter/BlankPresenter.kt.ftl | 4 ++--
.../app_package/presentation/view/BlankView.java.ftl | 2 +-
.../app_package/presentation/view/BlankView.kt.ftl | 2 +-
.../app_package/ui/activity/BlankActivity.java.ftl | 4 ++--
.../src/app_package/ui/activity/BlankActivity.kt.ftl | 4 ++--
moxy-templates/common/MoxyFragment/globals.xml.ftl | 4 ++--
.../presentation/presenter/BlankPresenter.java.ftl | 4 ++--
.../presentation/presenter/BlankPresenter.kt.ftl | 4 ++--
.../app_package/presentation/view/BlankView.java.ftl | 2 +-
.../app_package/presentation/view/BlankView.kt.ftl | 2 +-
.../app_package/ui/fragment/BlankFragment.java.ftl | 4 ++--
.../src/app_package/ui/fragment/BlankFragment.kt.ftl | 4 ++--
moxy/src/main/java/com/omegar/mvp/MvpDelegate.java | 2 +-
moxy/src/test/resources/params/EmptyParams.java | 4 ++--
.../params/IncorrectCountOfParametersParams.java | 4 ++--
.../resources/params/IncorrectParametersParams.java | 4 ++--
moxy/src/test/resources/params/Params1.java | 4 ++--
moxy/src/test/resources/params/Params2.java | 4 ++--
.../test/resources/params/SeveralMethodParams.java | 4 ++--
moxy/src/test/resources/view/EmptyParamsView.java | 4 ++--
.../view/IncorrectCountOfParametersParamsView.java | 2 +-
.../view/IncorrectParametersParamsView.java | 2 +-
.../view/InjectPresenterTypeBehaviorView.java | 2 +-
.../view/InjectPresenterWithIncorrectParamsView.java | 2 +-
moxy/src/test/resources/view/PositiveParamsView.java | 2 +-
.../test/resources/view/SeveralMethodParamsView.java | 2 +-
moxy/src/test/resources/view/SeveralParamsView.java | 4 ++--
.../presentation/launch/AddToEndSingleTagStrategy.kt | 6 +++---
.../app/presentation/launch/LaunchFragment.kt | 6 +++---
.../app/presentation/launch/LaunchPresenter.kt | 4 ++--
.../app/presentation/launch/LaunchView.kt | 8 ++++----
.../app/presentation/launch/SomePresenter.kt | 4 ++--
.../redmadrobot/app/presentation/launch/SomeView.kt | 2 +-
sample-github/build.gradle | 8 ++++----
sample-github/src/main/AndroidManifest.xml | 2 +-
.../sample/github/mvp/presenters/BasePresenter.java | 4 ++--
.../sample/github/mvp/presenters/HomePresenter.java | 4 ++--
.../github/mvp/presenters/RepositoriesPresenter.java | 2 +-
.../mvp/presenters/RepositoryLikesPresenter.java | 2 +-
.../github/mvp/presenters/RepositoryPresenter.java | 4 ++--
.../github/mvp/presenters/SignInPresenter.java | 4 ++--
.../github/mvp/presenters/SignOutPresenter.java | 4 ++--
.../github/mvp/presenters/SplashPresenter.java | 2 +-
.../omegar/mvp/sample/github/mvp/views/HomeView.java | 8 ++++----
.../sample/github/mvp/views/RepositoriesView.java | 8 ++++----
.../sample/github/mvp/views/RepositoryLikeView.java | 6 +++---
.../sample/github/mvp/views/RepositoryLikesView.java | 6 +++---
.../mvp/sample/github/mvp/views/RepositoryView.java | 2 +-
.../mvp/sample/github/mvp/views/SignInView.java | 8 ++++----
.../mvp/sample/github/mvp/views/SignOutView.java | 2 +-
.../mvp/sample/github/mvp/views/SplashView.java | 2 +-
.../sample/github/ui/activities/HomeActivity.java | 6 +++---
.../sample/github/ui/activities/SignInActivity.java | 6 +++---
.../sample/github/ui/activities/SplashActivity.java | 4 ++--
.../sample/github/ui/adapters/MvpBaseAdapter.java | 2 +-
.../github/ui/adapters/RepositoriesAdapter.java | 10 +++++-----
.../sample/github/ui/fragments/DetailsFragment.java | 10 +++++-----
.../mvp/sample/github/ui/views/RepositoryWidget.java | 6 +++---
.../github/mvp/presenters/HomePresenterTest.java | 2 +-
.../mvp/presenters/RepositoriesPresenterTest.java | 2 +-
.../mvp/presenters/RepositoryPresenterTest.java | 2 +-
.../github/mvp/presenters/SignInPresenterTest.java | 4 ++--
.../github/mvp/presenters/SignOutPresenterTest.java | 2 +-
sample-kotlin/build.gradle | 8 ++++----
sample-kotlin/src/main/AndroidManifest.xml | 2 +-
.../com/omegar/mvp/sample/kotlin/DialogPresenter.kt | 4 ++--
.../com/omegar/mvp/sample/kotlin/DialogView.kt | 6 +++---
.../com/omegar/mvp/sample/kotlin/MainActivity.kt | 12 ++++++------
sample-kotlin/src/main/res/layout/activity_main.xml | 2 +-
90 files changed, 181 insertions(+), 181 deletions(-)
diff --git a/README.md b/README.md
index 5f80e371..e0fbf933 100644
--- a/README.md
+++ b/README.md
@@ -77,15 +77,15 @@ Base modules integration:
```groovy
dependencies {
...
- implementation 'com.github.Omega-R.OmegaMoxy:moxy:1.5.6'
- annotationProcessor 'com.github.Omega-R.OmegaMoxy:moxy-compiler:1.5.6'
+ implementation 'com.github.Omega-R.OmegaMoxy:moxy:1.5.7'
+ annotationProcessor 'com.github.Omega-R.OmegaMoxy:moxy-compiler:1.5.7'
}
```
For additional base view classes `MvpActivity` and `MvpFragment` add this:
```groovy
dependencies {
...
- implementation 'com.github.Omega-R.OmegaMoxy:moxy-android:1.5.6'
+ implementation 'com.github.Omega-R.OmegaMoxy:moxy-android:1.5.7'
}
```
@@ -93,14 +93,14 @@ If you are planning to use AndroidX, then you can use `MvpAppCompatActivity` and
```groovy
dependencies {
...
- implementation 'com.github.Omega-R.OmegaMoxy:moxy-androidx:1.5.6'
+ implementation 'com.github.Omega-R.OmegaMoxy:moxy-androidx:1.5.7'
}
```
If you are planning to use AppCompat, then you can use `MvpAppCompatActivity` and `MvpAppCompatFragment`. Then add this:
```groovy
dependencies {
...
- implementation 'com.arello-mobile:moxy-app-compat:1.5.6'
+ implementation 'com.github.Omega-R.OmegaMoxy:moxy-app-compat:1.5.7'
implementation 'com.android.support:appcompat-v7:$support_version'
}
```
@@ -111,7 +111,7 @@ apply plugin: 'kotlin-kapt'
dependencies {
...
- kapt 'com.github.Omega-R.OmegaMoxy:moxy-compiler:1.5.6'
+ kapt 'com.github.Omega-R.OmegaMoxy:moxy-compiler:1.5.7'
}
```
diff --git a/moxy-androidx-sapmle/build.gradle b/moxy-androidx-sapmle/build.gradle
index 5ae60feb..50b4f4a0 100644
--- a/moxy-androidx-sapmle/build.gradle
+++ b/moxy-androidx-sapmle/build.gradle
@@ -18,7 +18,7 @@ android {
compileSdkVersion 28
defaultConfig {
- applicationId "com.arellomobile.mvp.sample.androidx"
+ applicationId "com.omegar.mvp.sample.androidx"
minSdkVersion 16
targetSdkVersion 28
versionCode 1
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
index ec79ea01..515e6302 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
@@ -49,7 +49,7 @@
@SuppressWarnings("unused")
@AutoService(Processor.class)
public class MvpCompiler extends AbstractProcessor {
- public static final String MOXY_REFLECTOR_DEFAULT_PACKAGE = "com.arellomobile.mvp";
+ public static final String MOXY_REFLECTOR_DEFAULT_PACKAGE = "com.omegar.mvp";
private static final String OPTION_MOXY_REFLECTOR_PACKAGE = "moxyReflectorPackage";
diff --git a/moxy-compiler/src/test/resources/multimodules/app/MoxyReflector.java b/moxy-compiler/src/test/resources/multimodules/app/MoxyReflector.java
index 1d56f984..e3c692ad 100644
--- a/moxy-compiler/src/test/resources/multimodules/app/MoxyReflector.java
+++ b/moxy-compiler/src/test/resources/multimodules/app/MoxyReflector.java
@@ -1,4 +1,4 @@
-package com.arellomobile.mvp;
+package com.omegar.mvp;
import com.omegar.mvp.ViewStateProvider;
diff --git a/moxy-templates/Java/MoxyActivity/globals.xml.ftl b/moxy-templates/Java/MoxyActivity/globals.xml.ftl
index 72c6e6fa..8907ccf2 100644
--- a/moxy-templates/Java/MoxyActivity/globals.xml.ftl
+++ b/moxy-templates/Java/MoxyActivity/globals.xml.ftl
@@ -9,8 +9,8 @@
diff --git a/moxy-templates/Java/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl b/moxy-templates/Java/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl
index 838befe8..95967fbd 100644
--- a/moxy-templates/Java/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl
+++ b/moxy-templates/Java/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl
@@ -2,8 +2,8 @@ package ${packageName}.presentation.presenter${dotSubpackage};
<#if applicationPackage??>import ${applicationPackage}.R;#if>
import ${packageName}.presentation.view${dotSubpackage}.${viewName};
-import com.arellomobile.mvp.InjectViewState;
-import com.arellomobile.mvp.MvpPresenter;
+import com.omegar.mvp.InjectViewState;
+import com.omegar.mvp.MvpPresenter;
@InjectViewState
public class ${presenterName} extends MvpPresenter<${viewName}> {
diff --git a/moxy-templates/Java/MoxyActivity/root/src/app_package/presentation/view/BlankView.java.ftl b/moxy-templates/Java/MoxyActivity/root/src/app_package/presentation/view/BlankView.java.ftl
index ec5bbb0c..a771398d 100644
--- a/moxy-templates/Java/MoxyActivity/root/src/app_package/presentation/view/BlankView.java.ftl
+++ b/moxy-templates/Java/MoxyActivity/root/src/app_package/presentation/view/BlankView.java.ftl
@@ -1,6 +1,6 @@
package ${packageName}.presentation.view${dotSubpackage};
-import com.arellomobile.mvp.MvpView;
+import com.omegar.mvp.MvpView;
public interface ${viewName} extends MvpView {
diff --git a/moxy-templates/Java/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.java.ftl b/moxy-templates/Java/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.java.ftl
index 37798be2..fa7c8e7a 100644
--- a/moxy-templates/Java/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.java.ftl
+++ b/moxy-templates/Java/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.java.ftl
@@ -13,9 +13,9 @@ import ${superClassFqcn};
import ${packageName}.R;
#if>
-import com.arellomobile.mvp.presenter.InjectPresenter;
+import com.omegar.mvp.presenter.InjectPresenter;
<#if createProvidesMethod>
-import com.arellomobile.mvp.presenter.ProvidePresenter;
+import com.omegar.mvp.presenter.ProvidePresenter;
#if>
public class ${className} extends ${superClassName} implements ${viewName} {
diff --git a/moxy-templates/Java/MoxyFragment/globals.xml.ftl b/moxy-templates/Java/MoxyFragment/globals.xml.ftl
index f8379e95..4b1908ed 100644
--- a/moxy-templates/Java/MoxyFragment/globals.xml.ftl
+++ b/moxy-templates/Java/MoxyFragment/globals.xml.ftl
@@ -9,8 +9,8 @@
diff --git a/moxy-templates/Java/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl b/moxy-templates/Java/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl
index 838befe8..95967fbd 100644
--- a/moxy-templates/Java/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl
+++ b/moxy-templates/Java/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl
@@ -2,8 +2,8 @@ package ${packageName}.presentation.presenter${dotSubpackage};
<#if applicationPackage??>import ${applicationPackage}.R;#if>
import ${packageName}.presentation.view${dotSubpackage}.${viewName};
-import com.arellomobile.mvp.InjectViewState;
-import com.arellomobile.mvp.MvpPresenter;
+import com.omegar.mvp.InjectViewState;
+import com.omegar.mvp.MvpPresenter;
@InjectViewState
public class ${presenterName} extends MvpPresenter<${viewName}> {
diff --git a/moxy-templates/Java/MoxyFragment/root/src/app_package/presentation/view/BlankView.java.ftl b/moxy-templates/Java/MoxyFragment/root/src/app_package/presentation/view/BlankView.java.ftl
index ec5bbb0c..a771398d 100644
--- a/moxy-templates/Java/MoxyFragment/root/src/app_package/presentation/view/BlankView.java.ftl
+++ b/moxy-templates/Java/MoxyFragment/root/src/app_package/presentation/view/BlankView.java.ftl
@@ -1,6 +1,6 @@
package ${packageName}.presentation.view${dotSubpackage};
-import com.arellomobile.mvp.MvpView;
+import com.omegar.mvp.MvpView;
public interface ${viewName} extends MvpView {
diff --git a/moxy-templates/Java/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.java.ftl b/moxy-templates/Java/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.java.ftl
index 340481d1..718ee029 100644
--- a/moxy-templates/Java/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.java.ftl
+++ b/moxy-templates/Java/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.java.ftl
@@ -14,9 +14,9 @@ import ${superClassFqcn};
import ${packageName}.R;
#if>
-import com.arellomobile.mvp.presenter.InjectPresenter;
+import com.omegar.mvp.presenter.InjectPresenter;
<#if createProvidesMethod>
-import com.arellomobile.mvp.presenter.ProvidePresenter;
+import com.omegar.mvp.presenter.ProvidePresenter;
#if>
public class ${className} extends ${superClassName} implements ${viewName} {
diff --git a/moxy-templates/Kotlin/MoxyActivity/globals.xml.ftl b/moxy-templates/Kotlin/MoxyActivity/globals.xml.ftl
index d46f8ff3..c8c511a0 100644
--- a/moxy-templates/Kotlin/MoxyActivity/globals.xml.ftl
+++ b/moxy-templates/Kotlin/MoxyActivity/globals.xml.ftl
@@ -9,8 +9,8 @@
diff --git a/moxy-templates/Kotlin/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl b/moxy-templates/Kotlin/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl
index ddc221b8..5329e832 100644
--- a/moxy-templates/Kotlin/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl
+++ b/moxy-templates/Kotlin/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl
@@ -1,7 +1,7 @@
package ${packageName}.presentation.presenter${dotSubpackage}
-import com.arellomobile.mvp.InjectViewState
-import com.arellomobile.mvp.MvpPresenter
+import com.omegar.mvp.InjectViewState
+import com.omegar.mvp.MvpPresenter
import ${packageName}.presentation.view${dotSubpackage}.${viewName}
@InjectViewState
diff --git a/moxy-templates/Kotlin/MoxyActivity/root/src/app_package/presentation/view/BlankView.kt.ftl b/moxy-templates/Kotlin/MoxyActivity/root/src/app_package/presentation/view/BlankView.kt.ftl
index bd24a774..9455187c 100644
--- a/moxy-templates/Kotlin/MoxyActivity/root/src/app_package/presentation/view/BlankView.kt.ftl
+++ b/moxy-templates/Kotlin/MoxyActivity/root/src/app_package/presentation/view/BlankView.kt.ftl
@@ -1,6 +1,6 @@
package ${packageName}.presentation.view${dotSubpackage}
-import com.arellomobile.mvp.MvpView
+import com.omegar.mvp.MvpView
interface ${viewName} : MvpView {
diff --git a/moxy-templates/Kotlin/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.kt.ftl b/moxy-templates/Kotlin/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.kt.ftl
index a924373a..8fd6d671 100644
--- a/moxy-templates/Kotlin/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.kt.ftl
+++ b/moxy-templates/Kotlin/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.kt.ftl
@@ -4,7 +4,7 @@ import android.content.Context
import android.content.Intent
import android.os.Bundle
-import com.arellomobile.mvp.presenter.InjectPresenter
+import com.omegar.mvp.presenter.InjectPresenter
import ${packageName}.R
import ${packageName}.presentation.view${dotSubpackage}.${viewName}
import ${packageName}.presentation.presenter${dotSubpackage}.${presenterName}
@@ -12,7 +12,7 @@ import ${packageName}.presentation.presenter${dotSubpackage}.${presenterName}
import ${superClassFqcn};
<#if createProvidesMethod>
-import com.arellomobile.mvp.presenter.ProvidePresenter;
+import com.omegar.mvp.presenter.ProvidePresenter;
#if>
diff --git a/moxy-templates/Kotlin/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl b/moxy-templates/Kotlin/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl
index ddc221b8..5329e832 100644
--- a/moxy-templates/Kotlin/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl
+++ b/moxy-templates/Kotlin/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl
@@ -1,7 +1,7 @@
package ${packageName}.presentation.presenter${dotSubpackage}
-import com.arellomobile.mvp.InjectViewState
-import com.arellomobile.mvp.MvpPresenter
+import com.omegar.mvp.InjectViewState
+import com.omegar.mvp.MvpPresenter
import ${packageName}.presentation.view${dotSubpackage}.${viewName}
@InjectViewState
diff --git a/moxy-templates/Kotlin/MoxyFragment/root/src/app_package/presentation/view/BlankView.kt.ftl b/moxy-templates/Kotlin/MoxyFragment/root/src/app_package/presentation/view/BlankView.kt.ftl
index bd24a774..9455187c 100644
--- a/moxy-templates/Kotlin/MoxyFragment/root/src/app_package/presentation/view/BlankView.kt.ftl
+++ b/moxy-templates/Kotlin/MoxyFragment/root/src/app_package/presentation/view/BlankView.kt.ftl
@@ -1,6 +1,6 @@
package ${packageName}.presentation.view${dotSubpackage}
-import com.arellomobile.mvp.MvpView
+import com.omegar.mvp.MvpView
interface ${viewName} : MvpView {
diff --git a/moxy-templates/Kotlin/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.kt.ftl b/moxy-templates/Kotlin/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.kt.ftl
index 8eeb662e..ca3a32bb 100644
--- a/moxy-templates/Kotlin/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.kt.ftl
+++ b/moxy-templates/Kotlin/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.kt.ftl
@@ -8,8 +8,8 @@ import ${packageName}.R
import ${packageName}.presentation.view${dotSubpackage}.${viewName}
import ${packageName}.presentation.presenter${dotSubpackage}.${presenterName}
-import com.arellomobile.mvp.MvpFragment
-import com.arellomobile.mvp.presenter.InjectPresenter
+import com.omegar.mvp.MvpFragment
+import com.omegar.mvp.presenter.InjectPresenter
class ${className} : MvpFragment(), ${viewName} {
companion object {
diff --git a/moxy-templates/common/MoxyActivity/globals.xml.ftl b/moxy-templates/common/MoxyActivity/globals.xml.ftl
index 1ba7a47d..3760bb59 100644
--- a/moxy-templates/common/MoxyActivity/globals.xml.ftl
+++ b/moxy-templates/common/MoxyActivity/globals.xml.ftl
@@ -9,8 +9,8 @@
diff --git a/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl b/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl
index 838befe8..95967fbd 100644
--- a/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl
+++ b/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl
@@ -2,8 +2,8 @@ package ${packageName}.presentation.presenter${dotSubpackage};
<#if applicationPackage??>import ${applicationPackage}.R;#if>
import ${packageName}.presentation.view${dotSubpackage}.${viewName};
-import com.arellomobile.mvp.InjectViewState;
-import com.arellomobile.mvp.MvpPresenter;
+import com.omegar.mvp.InjectViewState;
+import com.omegar.mvp.MvpPresenter;
@InjectViewState
public class ${presenterName} extends MvpPresenter<${viewName}> {
diff --git a/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl b/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl
index ddc221b8..5329e832 100644
--- a/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl
+++ b/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl
@@ -1,7 +1,7 @@
package ${packageName}.presentation.presenter${dotSubpackage}
-import com.arellomobile.mvp.InjectViewState
-import com.arellomobile.mvp.MvpPresenter
+import com.omegar.mvp.InjectViewState
+import com.omegar.mvp.MvpPresenter
import ${packageName}.presentation.view${dotSubpackage}.${viewName}
@InjectViewState
diff --git a/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/view/BlankView.java.ftl b/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/view/BlankView.java.ftl
index ec5bbb0c..a771398d 100644
--- a/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/view/BlankView.java.ftl
+++ b/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/view/BlankView.java.ftl
@@ -1,6 +1,6 @@
package ${packageName}.presentation.view${dotSubpackage};
-import com.arellomobile.mvp.MvpView;
+import com.omegar.mvp.MvpView;
public interface ${viewName} extends MvpView {
diff --git a/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/view/BlankView.kt.ftl b/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/view/BlankView.kt.ftl
index bd24a774..9455187c 100644
--- a/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/view/BlankView.kt.ftl
+++ b/moxy-templates/common/MoxyActivity/root/src/app_package/presentation/view/BlankView.kt.ftl
@@ -1,6 +1,6 @@
package ${packageName}.presentation.view${dotSubpackage}
-import com.arellomobile.mvp.MvpView
+import com.omegar.mvp.MvpView
interface ${viewName} : MvpView {
diff --git a/moxy-templates/common/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.java.ftl b/moxy-templates/common/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.java.ftl
index 37798be2..fa7c8e7a 100644
--- a/moxy-templates/common/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.java.ftl
+++ b/moxy-templates/common/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.java.ftl
@@ -13,9 +13,9 @@ import ${superClassFqcn};
import ${packageName}.R;
#if>
-import com.arellomobile.mvp.presenter.InjectPresenter;
+import com.omegar.mvp.presenter.InjectPresenter;
<#if createProvidesMethod>
-import com.arellomobile.mvp.presenter.ProvidePresenter;
+import com.omegar.mvp.presenter.ProvidePresenter;
#if>
public class ${className} extends ${superClassName} implements ${viewName} {
diff --git a/moxy-templates/common/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.kt.ftl b/moxy-templates/common/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.kt.ftl
index a924373a..8fd6d671 100644
--- a/moxy-templates/common/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.kt.ftl
+++ b/moxy-templates/common/MoxyActivity/root/src/app_package/ui/activity/BlankActivity.kt.ftl
@@ -4,7 +4,7 @@ import android.content.Context
import android.content.Intent
import android.os.Bundle
-import com.arellomobile.mvp.presenter.InjectPresenter
+import com.omegar.mvp.presenter.InjectPresenter
import ${packageName}.R
import ${packageName}.presentation.view${dotSubpackage}.${viewName}
import ${packageName}.presentation.presenter${dotSubpackage}.${presenterName}
@@ -12,7 +12,7 @@ import ${packageName}.presentation.presenter${dotSubpackage}.${presenterName}
import ${superClassFqcn};
<#if createProvidesMethod>
-import com.arellomobile.mvp.presenter.ProvidePresenter;
+import com.omegar.mvp.presenter.ProvidePresenter;
#if>
diff --git a/moxy-templates/common/MoxyFragment/globals.xml.ftl b/moxy-templates/common/MoxyFragment/globals.xml.ftl
index e4a1a0b1..a868da32 100644
--- a/moxy-templates/common/MoxyFragment/globals.xml.ftl
+++ b/moxy-templates/common/MoxyFragment/globals.xml.ftl
@@ -9,8 +9,8 @@
diff --git a/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl b/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl
index 838befe8..95967fbd 100644
--- a/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl
+++ b/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.java.ftl
@@ -2,8 +2,8 @@ package ${packageName}.presentation.presenter${dotSubpackage};
<#if applicationPackage??>import ${applicationPackage}.R;#if>
import ${packageName}.presentation.view${dotSubpackage}.${viewName};
-import com.arellomobile.mvp.InjectViewState;
-import com.arellomobile.mvp.MvpPresenter;
+import com.omegar.mvp.InjectViewState;
+import com.omegar.mvp.MvpPresenter;
@InjectViewState
public class ${presenterName} extends MvpPresenter<${viewName}> {
diff --git a/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl b/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl
index ddc221b8..5329e832 100644
--- a/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl
+++ b/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/presenter/BlankPresenter.kt.ftl
@@ -1,7 +1,7 @@
package ${packageName}.presentation.presenter${dotSubpackage}
-import com.arellomobile.mvp.InjectViewState
-import com.arellomobile.mvp.MvpPresenter
+import com.omegar.mvp.InjectViewState
+import com.omegar.mvp.MvpPresenter
import ${packageName}.presentation.view${dotSubpackage}.${viewName}
@InjectViewState
diff --git a/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/view/BlankView.java.ftl b/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/view/BlankView.java.ftl
index ec5bbb0c..a771398d 100644
--- a/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/view/BlankView.java.ftl
+++ b/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/view/BlankView.java.ftl
@@ -1,6 +1,6 @@
package ${packageName}.presentation.view${dotSubpackage};
-import com.arellomobile.mvp.MvpView;
+import com.omegar.mvp.MvpView;
public interface ${viewName} extends MvpView {
diff --git a/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/view/BlankView.kt.ftl b/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/view/BlankView.kt.ftl
index bd24a774..9455187c 100644
--- a/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/view/BlankView.kt.ftl
+++ b/moxy-templates/common/MoxyFragment/root/src/app_package/presentation/view/BlankView.kt.ftl
@@ -1,6 +1,6 @@
package ${packageName}.presentation.view${dotSubpackage}
-import com.arellomobile.mvp.MvpView
+import com.omegar.mvp.MvpView
interface ${viewName} : MvpView {
diff --git a/moxy-templates/common/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.java.ftl b/moxy-templates/common/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.java.ftl
index 340481d1..718ee029 100644
--- a/moxy-templates/common/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.java.ftl
+++ b/moxy-templates/common/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.java.ftl
@@ -14,9 +14,9 @@ import ${superClassFqcn};
import ${packageName}.R;
#if>
-import com.arellomobile.mvp.presenter.InjectPresenter;
+import com.omegar.mvp.presenter.InjectPresenter;
<#if createProvidesMethod>
-import com.arellomobile.mvp.presenter.ProvidePresenter;
+import com.omegar.mvp.presenter.ProvidePresenter;
#if>
public class ${className} extends ${superClassName} implements ${viewName} {
diff --git a/moxy-templates/common/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.kt.ftl b/moxy-templates/common/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.kt.ftl
index 29a7c218..fe476595 100644
--- a/moxy-templates/common/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.kt.ftl
+++ b/moxy-templates/common/MoxyFragment/root/src/app_package/ui/fragment/BlankFragment.kt.ftl
@@ -8,8 +8,8 @@ import ${packageName}.R
import ${packageName}.presentation.view${dotSubpackage}.${viewName}
import ${packageName}.presentation.presenter${dotSubpackage}.${presenterName}
-import com.arellomobile.mvp.MvpFragment
-import com.arellomobile.mvp.presenter.InjectPresenter
+import com.omegar.mvp.MvpFragment
+import com.omegar.mvp.presenter.InjectPresenter
class ${className} : MvpFragment(), ${viewName} {
companion object {
diff --git a/moxy/src/main/java/com/omegar/mvp/MvpDelegate.java b/moxy/src/main/java/com/omegar/mvp/MvpDelegate.java
index e0a20736..5586812f 100644
--- a/moxy/src/main/java/com/omegar/mvp/MvpDelegate.java
+++ b/moxy/src/main/java/com/omegar/mvp/MvpDelegate.java
@@ -259,7 +259,7 @@ public Bundle getChildrenSaveState() {
/**
* @return generated tag in format: <parent_delegate_tag> <delegated_class_full_name>$MvpDelegate@<hashCode>
*
- * example: com.arellomobile.mvp.sample.SampleFragment$MvpDelegate@32649b0
+ * example: com.omegar.mvp.sample.SampleFragment$MvpDelegate@32649b0
*/
private String generateTag() {
String tag = mParentDelegate != null ? mParentDelegate.mDelegateTag + " " : "";
diff --git a/moxy/src/test/resources/params/EmptyParams.java b/moxy/src/test/resources/params/EmptyParams.java
index de125b96..8e12fed1 100644
--- a/moxy/src/test/resources/params/EmptyParams.java
+++ b/moxy/src/test/resources/params/EmptyParams.java
@@ -1,7 +1,7 @@
package params;
-import com.arellomobile.mvp.ParamsProvider;
-import com.arellomobile.mvp.factory.MockPresenterFactory;
+import com.omegar.mvp.ParamsProvider;
+import com.omegar.mvp.factory.MockPresenterFactory;
/**
* Date: 24.02.2016
diff --git a/moxy/src/test/resources/params/IncorrectCountOfParametersParams.java b/moxy/src/test/resources/params/IncorrectCountOfParametersParams.java
index eb4d50f1..4b43e354 100644
--- a/moxy/src/test/resources/params/IncorrectCountOfParametersParams.java
+++ b/moxy/src/test/resources/params/IncorrectCountOfParametersParams.java
@@ -1,7 +1,7 @@
package params;
-import com.arellomobile.mvp.ParamsProvider;
-import com.arellomobile.mvp.factory.MockPresenterFactory;
+import com.omegar.mvp.ParamsProvider;
+import com.omegar.mvp.factory.MockPresenterFactory;
/**
* Date: 24.02.2016
diff --git a/moxy/src/test/resources/params/IncorrectParametersParams.java b/moxy/src/test/resources/params/IncorrectParametersParams.java
index 293828a7..bb673c12 100644
--- a/moxy/src/test/resources/params/IncorrectParametersParams.java
+++ b/moxy/src/test/resources/params/IncorrectParametersParams.java
@@ -1,7 +1,7 @@
package params;
-import com.arellomobile.mvp.ParamsProvider;
-import com.arellomobile.mvp.factory.MockPresenterFactory;
+import com.omegar.mvp.ParamsProvider;
+import com.omegar.mvp.factory.MockPresenterFactory;
/**
* Date: 24.02.2016
diff --git a/moxy/src/test/resources/params/Params1.java b/moxy/src/test/resources/params/Params1.java
index e5d29701..42c606b3 100644
--- a/moxy/src/test/resources/params/Params1.java
+++ b/moxy/src/test/resources/params/Params1.java
@@ -1,7 +1,7 @@
package params;
-import com.arellomobile.mvp.ParamsProvider;
-import com.arellomobile.mvp.factory.MockPresenterFactory;
+import com.omegar.mvp.ParamsProvider;
+import com.omegar.mvp.factory.MockPresenterFactory;
/**
* Date: 25.02.2016
diff --git a/moxy/src/test/resources/params/Params2.java b/moxy/src/test/resources/params/Params2.java
index cc45fab0..18922ac2 100644
--- a/moxy/src/test/resources/params/Params2.java
+++ b/moxy/src/test/resources/params/Params2.java
@@ -1,7 +1,7 @@
package params;
-import com.arellomobile.mvp.ParamsProvider;
-import com.arellomobile.mvp.factory.MockPresenterFactory;
+import com.omegar.mvp.ParamsProvider;
+import com.omegar.mvp.factory.MockPresenterFactory;
/**
* Date: 25.02.2016
diff --git a/moxy/src/test/resources/params/SeveralMethodParams.java b/moxy/src/test/resources/params/SeveralMethodParams.java
index 751920e9..030ca62c 100644
--- a/moxy/src/test/resources/params/SeveralMethodParams.java
+++ b/moxy/src/test/resources/params/SeveralMethodParams.java
@@ -1,7 +1,7 @@
package params;
-import com.arellomobile.mvp.ParamsProvider;
-import com.arellomobile.mvp.factory.MockPresenterFactory;
+import com.omegar.mvp.ParamsProvider;
+import com.omegar.mvp.factory.MockPresenterFactory;
/**
* Date: 24.02.2016
diff --git a/moxy/src/test/resources/view/EmptyParamsView.java b/moxy/src/test/resources/view/EmptyParamsView.java
index 084ad4b5..2137de8b 100644
--- a/moxy/src/test/resources/view/EmptyParamsView.java
+++ b/moxy/src/test/resources/view/EmptyParamsView.java
@@ -1,8 +1,8 @@
-package com.arellomobile.mvp.compiler.view;
+package com.omegar.mvp.compiler.view;
import com.omegar.mvp.MvpPresenter;
import com.omegar.mvp.MvpView;
-import com.arellomobile.mvp.factory.MockPresenterFactory;
+import com.omegar.mvp.factory.MockPresenterFactory;
import com.omegar.mvp.presenter.InjectPresenter;
import com.omegar.mvp.presenter.PresenterType;
diff --git a/moxy/src/test/resources/view/IncorrectCountOfParametersParamsView.java b/moxy/src/test/resources/view/IncorrectCountOfParametersParamsView.java
index 8e663f00..0591eb69 100644
--- a/moxy/src/test/resources/view/IncorrectCountOfParametersParamsView.java
+++ b/moxy/src/test/resources/view/IncorrectCountOfParametersParamsView.java
@@ -1,7 +1,7 @@
package view;
import com.omegar.mvp.MvpView;
-import com.arellomobile.mvp.factory.MockPresenterFactory;
+import com.omegar.mvp.factory.MockPresenterFactory;
import com.omegar.mvp.presenter.InjectPresenter;
import com.omegar.mvp.presenter.InjectViewStatePresenter;
import com.omegar.mvp.presenter.PresenterType;
diff --git a/moxy/src/test/resources/view/IncorrectParametersParamsView.java b/moxy/src/test/resources/view/IncorrectParametersParamsView.java
index 50f4ca9b..ec9522f4 100644
--- a/moxy/src/test/resources/view/IncorrectParametersParamsView.java
+++ b/moxy/src/test/resources/view/IncorrectParametersParamsView.java
@@ -1,7 +1,7 @@
package view;
import com.omegar.mvp.MvpView;
-import com.arellomobile.mvp.factory.MockPresenterFactory;
+import com.omegar.mvp.factory.MockPresenterFactory;
import com.omegar.mvp.presenter.InjectPresenter;
import com.omegar.mvp.presenter.InjectViewStatePresenter;
import com.omegar.mvp.presenter.PresenterType;
diff --git a/moxy/src/test/resources/view/InjectPresenterTypeBehaviorView.java b/moxy/src/test/resources/view/InjectPresenterTypeBehaviorView.java
index 810e5778..21947e00 100644
--- a/moxy/src/test/resources/view/InjectPresenterTypeBehaviorView.java
+++ b/moxy/src/test/resources/view/InjectPresenterTypeBehaviorView.java
@@ -1,7 +1,7 @@
package view;
import com.omegar.mvp.MvpView;
-import com.arellomobile.mvp.factory.MockPresenterFactory;
+import com.omegar.mvp.factory.MockPresenterFactory;
import com.omegar.mvp.presenter.InjectPresenter;
import com.omegar.mvp.presenter.PresenterType;
diff --git a/moxy/src/test/resources/view/InjectPresenterWithIncorrectParamsView.java b/moxy/src/test/resources/view/InjectPresenterWithIncorrectParamsView.java
index b59f9e12..95b663f1 100644
--- a/moxy/src/test/resources/view/InjectPresenterWithIncorrectParamsView.java
+++ b/moxy/src/test/resources/view/InjectPresenterWithIncorrectParamsView.java
@@ -1,6 +1,6 @@
package view;
-import com.arellomobile.mvp.factory.MockPresenterFactory2;
+import com.omegar.mvp.factory.MockPresenterFactory2;
import com.omegar.mvp.presenter.InjectPresenter;
import com.omegar.mvp.presenter.PresenterType;
import com.omegar.mvp.presenter.TestViewPresenter;
diff --git a/moxy/src/test/resources/view/PositiveParamsView.java b/moxy/src/test/resources/view/PositiveParamsView.java
index 6385f79b..cf34ae7a 100644
--- a/moxy/src/test/resources/view/PositiveParamsView.java
+++ b/moxy/src/test/resources/view/PositiveParamsView.java
@@ -1,7 +1,7 @@
package view;
import com.omegar.mvp.MvpView;
-import com.arellomobile.mvp.factory.MockPresenterFactory;
+import com.omegar.mvp.factory.MockPresenterFactory;
import com.omegar.mvp.presenter.InjectPresenter;
import com.omegar.mvp.presenter.PresenterType;
diff --git a/moxy/src/test/resources/view/SeveralMethodParamsView.java b/moxy/src/test/resources/view/SeveralMethodParamsView.java
index 25c3d5c2..c4a304c9 100644
--- a/moxy/src/test/resources/view/SeveralMethodParamsView.java
+++ b/moxy/src/test/resources/view/SeveralMethodParamsView.java
@@ -1,7 +1,7 @@
package view;
import com.omegar.mvp.MvpView;
-import com.arellomobile.mvp.factory.MockPresenterFactory;
+import com.omegar.mvp.factory.MockPresenterFactory;
import com.omegar.mvp.presenter.InjectPresenter;
import com.omegar.mvp.presenter.InjectViewStatePresenter;
import com.omegar.mvp.presenter.PresenterType;
diff --git a/moxy/src/test/resources/view/SeveralParamsView.java b/moxy/src/test/resources/view/SeveralParamsView.java
index 38cef879..bcca0f67 100644
--- a/moxy/src/test/resources/view/SeveralParamsView.java
+++ b/moxy/src/test/resources/view/SeveralParamsView.java
@@ -1,8 +1,8 @@
package view;
import com.omegar.mvp.MvpView;
-import com.arellomobile.mvp.params.MockParams;
-import com.arellomobile.mvp.params.MockParams2;
+import com.omegar.mvp.params.MockParams;
+import com.omegar.mvp.params.MockParams2;
import params.Params1;
import params.Params2;
diff --git a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/AddToEndSingleTagStrategy.kt b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/AddToEndSingleTagStrategy.kt
index 913ce048..8ac7092f 100644
--- a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/AddToEndSingleTagStrategy.kt
+++ b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/AddToEndSingleTagStrategy.kt
@@ -1,8 +1,8 @@
package com.redmadrobot.app.presentation.launch
-import com.arellomobile.mvp.MvpView
-import com.arellomobile.mvp.viewstate.ViewCommand
-import com.arellomobile.mvp.viewstate.strategy.StateStrategy
+import com.omegar.mvp.MvpView
+import com.omegar.mvp.viewstate.ViewCommand
+import com.omegar.mvp.viewstate.strategy.StateStrategy
class AddToEndSingleTagStrategy : StateStrategy {
diff --git a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchFragment.kt b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchFragment.kt
index 229ff189..e8143226 100644
--- a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchFragment.kt
+++ b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchFragment.kt
@@ -11,9 +11,9 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import com.arellomobile.mvp.MvpAppCompatFragment
-import com.arellomobile.mvp.presenter.InjectPresenter
-import com.arellomobile.mvp.presenter.ProvidePresenter
+import com.omegar.mvp.MvpAppCompatFragment
+import com.omegar.mvp.presenter.InjectPresenter
+import com.omegar.mvp.presenter.ProvidePresenter
import com.redmadrobot.sample_custom_strategy.R
import kotlinx.android.synthetic.main.fragment_launch.*
diff --git a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchPresenter.kt b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchPresenter.kt
index edfbd241..2dbfde2d 100644
--- a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchPresenter.kt
+++ b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchPresenter.kt
@@ -1,8 +1,8 @@
package com.redmadrobot.app.presentation.launch
-import com.arellomobile.mvp.InjectViewState
-import com.arellomobile.mvp.MvpPresenter
+import com.omegar.mvp.InjectViewState
+import com.omegar.mvp.MvpPresenter
@InjectViewState
class LaunchPresenter : MvpPresenter() {
diff --git a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchView.kt b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchView.kt
index 6bf008cb..4b41f683 100644
--- a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchView.kt
+++ b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchView.kt
@@ -1,9 +1,9 @@
package com.redmadrobot.app.presentation.launch
-import com.arellomobile.mvp.MvpView
-import com.arellomobile.mvp.viewstate.strategy.AddToEndSingleStrategy
-import com.arellomobile.mvp.viewstate.strategy.OneExecutionStateStrategy
-import com.arellomobile.mvp.viewstate.strategy.StateStrategyType
+import com.omegar.mvp.MvpView
+import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy
+import com.omegar.mvp.viewstate.strategy.OneExecutionStateStrategy
+import com.omegar.mvp.viewstate.strategy.StateStrategyType
interface LaunchView : MvpView {
@StateStrategyType(AddToEndSingleStrategy::class, tag = BURGER_TAG)
diff --git a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/SomePresenter.kt b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/SomePresenter.kt
index d0be65ae..08f7c076 100644
--- a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/SomePresenter.kt
+++ b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/SomePresenter.kt
@@ -1,7 +1,7 @@
package com.redmadrobot.app.presentation.launch
-import com.arellomobile.mvp.InjectViewState
-import com.arellomobile.mvp.MvpPresenter
+import com.omegar.mvp.InjectViewState
+import com.omegar.mvp.MvpPresenter
@InjectViewState
class SomePresenter : MvpPresenter() {
diff --git a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/SomeView.kt b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/SomeView.kt
index 9908075a..2df341eb 100644
--- a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/SomeView.kt
+++ b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/SomeView.kt
@@ -1,6 +1,6 @@
package com.redmadrobot.app.presentation.launch
-import com.arellomobile.mvp.MvpView
+import com.omegar.mvp.MvpView
interface SomeView : MvpView {
fun toggleCheese(enable: Boolean)
diff --git a/sample-github/build.gradle b/sample-github/build.gradle
index 56e87037..79ee8b01 100644
--- a/sample-github/build.gradle
+++ b/sample-github/build.gradle
@@ -4,7 +4,7 @@ android {
compileSdkVersion 28
defaultConfig {
- applicationId "com.arellomobile.mvp.sample.github"
+ applicationId "com.omegar.mvp.sample.github"
minSdkVersion 14
targetSdkVersion 28
versionCode 1
@@ -65,7 +65,7 @@ dependencies {
testImplementation "org.hamcrest:hamcrest-all:1.3"
testImplementation "org.robolectric:robolectric:3.1-rc1"
- implementation 'com.arello-mobile:moxy:1.5.6'
- implementation 'com.arello-mobile:moxy-app-compat:1.5.6'
- annotationProcessor 'com.arello-mobile:moxy-compiler:1.5.6'
+ implementation 'com.github.Omega-R.OmegaMoxy:moxy:1.5.7'
+ implementation 'com.github.Omega-R.OmegaMoxy:moxy-app-compat:1.5.7'
+ annotationProcessor 'com.github.Omega-R.OmegaMoxy:moxy-compiler:1.5.7'
}
\ No newline at end of file
diff --git a/sample-github/src/main/AndroidManifest.xml b/sample-github/src/main/AndroidManifest.xml
index 63e5d79d..14c2f17b 100644
--- a/sample-github/src/main/AndroidManifest.xml
+++ b/sample-github/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
+ package="com.omegar.mvp.sample.github">
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/BasePresenter.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/BasePresenter.java
index ee184948..0ea47723 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/BasePresenter.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/BasePresenter.java
@@ -2,8 +2,8 @@
import android.support.annotation.NonNull;
-import com.arellomobile.mvp.MvpPresenter;
-import com.arellomobile.mvp.MvpView;
+import com.omegar.mvp.MvpPresenter;
+import com.omegar.mvp.MvpView;
import rx.Subscription;
import rx.subscriptions.CompositeSubscription;
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/HomePresenter.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/HomePresenter.java
index 82115d33..f2860913 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/HomePresenter.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/HomePresenter.java
@@ -2,8 +2,8 @@
import com.omegar.mvp.sample.github.mvp.models.Repository;
import com.omegar.mvp.sample.github.mvp.views.HomeView;
-import com.arellomobile.mvp.InjectViewState;
-import com.arellomobile.mvp.MvpPresenter;
+import com.omegar.mvp.InjectViewState;
+import com.omegar.mvp.MvpPresenter;
/**
* Date: 27.01.2016
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoriesPresenter.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoriesPresenter.java
index 4aec00a1..2740fade 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoriesPresenter.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoriesPresenter.java
@@ -2,7 +2,7 @@
import java.util.List;
-import com.arellomobile.mvp.InjectViewState;
+import com.omegar.mvp.InjectViewState;
import com.omegar.mvp.sample.github.app.GithubApi;
import com.omegar.mvp.sample.github.app.GithubApp;
import com.omegar.mvp.sample.github.common.Utils;
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryLikesPresenter.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryLikesPresenter.java
index 2b75cda0..02fa7ef3 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryLikesPresenter.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryLikesPresenter.java
@@ -4,7 +4,7 @@
import java.util.List;
import java.util.concurrent.TimeUnit;
-import com.arellomobile.mvp.InjectViewState;
+import com.omegar.mvp.InjectViewState;
import com.omegar.mvp.sample.github.mvp.views.RepositoryLikesView;
import rx.Observable;
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryPresenter.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryPresenter.java
index cdc5c159..27bed5e2 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryPresenter.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryPresenter.java
@@ -2,8 +2,8 @@
import java.util.List;
-import com.arellomobile.mvp.InjectViewState;
-import com.arellomobile.mvp.MvpPresenter;
+import com.omegar.mvp.InjectViewState;
+import com.omegar.mvp.MvpPresenter;
import com.omegar.mvp.sample.github.mvp.models.Repository;
import com.omegar.mvp.sample.github.mvp.views.RepositoryView;
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/SignInPresenter.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/SignInPresenter.java
index 93faa70b..40519a05 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/SignInPresenter.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/SignInPresenter.java
@@ -3,8 +3,8 @@
import android.text.TextUtils;
import android.util.Base64;
-import com.arellomobile.mvp.InjectViewState;
-import com.arellomobile.mvp.sample.github.R;
+import com.omegar.mvp.InjectViewState;
+import com.omegar.mvp.sample.github.R;
import com.omegar.mvp.sample.github.app.GithubApp;
import com.omegar.mvp.sample.github.common.Utils;
import com.omegar.mvp.sample.github.mvp.GithubService;
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/SignOutPresenter.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/SignOutPresenter.java
index f9d23242..855fa64b 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/SignOutPresenter.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/SignOutPresenter.java
@@ -2,8 +2,8 @@
import com.omegar.mvp.sample.github.mvp.common.AuthUtils;
import com.omegar.mvp.sample.github.mvp.views.SignOutView;
-import com.arellomobile.mvp.InjectViewState;
-import com.arellomobile.mvp.MvpPresenter;
+import com.omegar.mvp.InjectViewState;
+import com.omegar.mvp.MvpPresenter;
/**
* Date: 18.01.2016
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/SplashPresenter.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/SplashPresenter.java
index a2982280..85a89352 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/SplashPresenter.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/presenters/SplashPresenter.java
@@ -2,7 +2,7 @@
import android.text.TextUtils;
-import com.arellomobile.mvp.MvpPresenter;
+import com.omegar.mvp.MvpPresenter;
import com.omegar.mvp.sample.github.mvp.common.AuthUtils;
import com.omegar.mvp.sample.github.mvp.views.SplashView;
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/HomeView.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/HomeView.java
index db134ef3..39bb5a52 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/HomeView.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/HomeView.java
@@ -1,10 +1,10 @@
package com.omegar.mvp.sample.github.mvp.views;
-import com.arellomobile.mvp.MvpView;
+import com.omegar.mvp.MvpView;
import com.omegar.mvp.sample.github.mvp.models.Repository;
-import com.arellomobile.mvp.viewstate.strategy.AddToEndSingleStrategy;
-import com.arellomobile.mvp.viewstate.strategy.OneExecutionStateStrategy;
-import com.arellomobile.mvp.viewstate.strategy.StateStrategyType;
+import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy;
+import com.omegar.mvp.viewstate.strategy.OneExecutionStateStrategy;
+import com.omegar.mvp.viewstate.strategy.StateStrategyType;
/**
* Date: 27.01.2016
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoriesView.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoriesView.java
index 7ca9510c..ee63d52c 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoriesView.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoriesView.java
@@ -3,10 +3,10 @@
import java.util.List;
import com.omegar.mvp.sample.github.mvp.models.Repository;
-import com.arellomobile.mvp.MvpView;
-import com.arellomobile.mvp.viewstate.strategy.AddToEndSingleStrategy;
-import com.arellomobile.mvp.viewstate.strategy.AddToEndStrategy;
-import com.arellomobile.mvp.viewstate.strategy.StateStrategyType;
+import com.omegar.mvp.MvpView;
+import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy;
+import com.omegar.mvp.viewstate.strategy.AddToEndStrategy;
+import com.omegar.mvp.viewstate.strategy.StateStrategyType;
/**
* Date: 22.01.2016
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoryLikeView.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoryLikeView.java
index da2a2942..72d0159c 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoryLikeView.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoryLikeView.java
@@ -1,8 +1,8 @@
package com.omegar.mvp.sample.github.mvp.views;
-import com.arellomobile.mvp.MvpView;
-import com.arellomobile.mvp.viewstate.strategy.SingleStateStrategy;
-import com.arellomobile.mvp.viewstate.strategy.StateStrategyType;
+import com.omegar.mvp.MvpView;
+import com.omegar.mvp.viewstate.strategy.SingleStateStrategy;
+import com.omegar.mvp.viewstate.strategy.StateStrategyType;
/**
* Created by senneco on 23.10.2016
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoryLikesView.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoryLikesView.java
index 395fef71..ba389948 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoryLikesView.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoryLikesView.java
@@ -2,9 +2,9 @@
import java.util.List;
-import com.arellomobile.mvp.MvpView;
-import com.arellomobile.mvp.viewstate.strategy.AddToEndSingleStrategy;
-import com.arellomobile.mvp.viewstate.strategy.StateStrategyType;
+import com.omegar.mvp.MvpView;
+import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy;
+import com.omegar.mvp.viewstate.strategy.StateStrategyType;
/**
* Date: 26.01.2016
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoryView.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoryView.java
index a2c4d08b..799f0f8b 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoryView.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/RepositoryView.java
@@ -1,7 +1,7 @@
package com.omegar.mvp.sample.github.mvp.views;
import com.omegar.mvp.sample.github.mvp.models.Repository;
-import com.arellomobile.mvp.MvpView;
+import com.omegar.mvp.MvpView;
/**
* Date: 27.01.2016
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/SignInView.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/SignInView.java
index 5b9de0a9..41549b66 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/SignInView.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/SignInView.java
@@ -1,9 +1,9 @@
package com.omegar.mvp.sample.github.mvp.views;
-import com.arellomobile.mvp.MvpView;
-import com.arellomobile.mvp.viewstate.strategy.AddToEndSingleStrategy;
-import com.arellomobile.mvp.viewstate.strategy.SkipStrategy;
-import com.arellomobile.mvp.viewstate.strategy.StateStrategyType;
+import com.omegar.mvp.MvpView;
+import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy;
+import com.omegar.mvp.viewstate.strategy.SkipStrategy;
+import com.omegar.mvp.viewstate.strategy.StateStrategyType;
/**
* Date: 15.01.2016
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/SignOutView.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/SignOutView.java
index 5a6b60a6..28f5902d 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/SignOutView.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/SignOutView.java
@@ -1,6 +1,6 @@
package com.omegar.mvp.sample.github.mvp.views;
-import com.arellomobile.mvp.MvpView;
+import com.omegar.mvp.MvpView;
/**
* Date: 18.01.2016
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/SplashView.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/SplashView.java
index 9e550751..a57e9a1f 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/SplashView.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/mvp/views/SplashView.java
@@ -1,6 +1,6 @@
package com.omegar.mvp.sample.github.mvp.views;
-import com.arellomobile.mvp.MvpView;
+import com.omegar.mvp.MvpView;
/**
* Date: 18.01.2016
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/activities/HomeActivity.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/activities/HomeActivity.java
index ed70a62e..875ed596 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/activities/HomeActivity.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/activities/HomeActivity.java
@@ -15,9 +15,9 @@
import android.widget.ProgressBar;
import android.widget.TextView;
-import com.arellomobile.mvp.MvpAppCompatActivity;
-import com.arellomobile.mvp.presenter.InjectPresenter;
-import com.arellomobile.mvp.sample.github.R;
+import com.omegar.mvp.MvpAppCompatActivity;
+import com.omegar.mvp.presenter.InjectPresenter;
+import com.omegar.mvp.sample.github.R;
import com.omegar.mvp.sample.github.mvp.models.Repository;
import com.omegar.mvp.sample.github.mvp.presenters.HomePresenter;
import com.omegar.mvp.sample.github.mvp.presenters.RepositoriesPresenter;
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/activities/SignInActivity.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/activities/SignInActivity.java
index eaaedbb0..0b7873a1 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/activities/SignInActivity.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/activities/SignInActivity.java
@@ -8,9 +8,9 @@
import android.widget.Button;
import android.widget.EditText;
-import com.arellomobile.mvp.MvpAppCompatActivity;
-import com.arellomobile.mvp.presenter.InjectPresenter;
-import com.arellomobile.mvp.sample.github.R;
+import com.omegar.mvp.MvpAppCompatActivity;
+import com.omegar.mvp.presenter.InjectPresenter;
+import com.omegar.mvp.sample.github.R;
import com.omegar.mvp.sample.github.mvp.presenters.SignInPresenter;
import com.omegar.mvp.sample.github.mvp.views.SignInView;
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/activities/SplashActivity.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/activities/SplashActivity.java
index 670be1ca..ef323249 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/activities/SplashActivity.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/activities/SplashActivity.java
@@ -3,8 +3,8 @@
import android.content.Intent;
import android.os.Bundle;
-import com.arellomobile.mvp.MvpAppCompatActivity;
-import com.arellomobile.mvp.presenter.InjectPresenter;
+import com.omegar.mvp.MvpAppCompatActivity;
+import com.omegar.mvp.presenter.InjectPresenter;
import com.omegar.mvp.sample.github.mvp.presenters.SplashPresenter;
import com.omegar.mvp.sample.github.mvp.views.SplashView;
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/adapters/MvpBaseAdapter.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/adapters/MvpBaseAdapter.java
index a718b944..2f8400f5 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/adapters/MvpBaseAdapter.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/adapters/MvpBaseAdapter.java
@@ -2,7 +2,7 @@
import android.widget.BaseAdapter;
-import com.arellomobile.mvp.MvpDelegate;
+import com.omegar.mvp.MvpDelegate;
/**
* Date: 26.01.2016
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/adapters/RepositoriesAdapter.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/adapters/RepositoriesAdapter.java
index 3d02eceb..4813a7b4 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/adapters/RepositoriesAdapter.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/adapters/RepositoriesAdapter.java
@@ -10,11 +10,11 @@
import android.widget.ProgressBar;
import android.widget.TextView;
-import com.arellomobile.mvp.MvpDelegate;
-import com.arellomobile.mvp.presenter.InjectPresenter;
-import com.arellomobile.mvp.presenter.PresenterType;
-import com.arellomobile.mvp.presenter.ProvidePresenter;
-import com.arellomobile.mvp.sample.github.R;
+import com.omegar.mvp.MvpDelegate;
+import com.omegar.mvp.presenter.InjectPresenter;
+import com.omegar.mvp.presenter.PresenterType;
+import com.omegar.mvp.presenter.ProvidePresenter;
+import com.omegar.mvp.sample.github.R;
import com.omegar.mvp.sample.github.mvp.models.Repository;
import com.omegar.mvp.sample.github.mvp.presenters.RepositoryLikesPresenter;
import com.omegar.mvp.sample.github.mvp.presenters.RepositoryPresenter;
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/fragments/DetailsFragment.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/fragments/DetailsFragment.java
index b7bd40bc..7688e12a 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/fragments/DetailsFragment.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/fragments/DetailsFragment.java
@@ -9,11 +9,11 @@
import android.view.ViewGroup;
import android.widget.ImageButton;
-import com.arellomobile.mvp.MvpAppCompatFragment;
-import com.arellomobile.mvp.presenter.InjectPresenter;
-import com.arellomobile.mvp.presenter.PresenterType;
-import com.arellomobile.mvp.presenter.ProvidePresenter;
-import com.arellomobile.mvp.sample.github.R;
+import com.omegar.mvp.MvpAppCompatFragment;
+import com.omegar.mvp.presenter.InjectPresenter;
+import com.omegar.mvp.presenter.PresenterType;
+import com.omegar.mvp.presenter.ProvidePresenter;
+import com.omegar.mvp.sample.github.R;
import com.omegar.mvp.sample.github.mvp.models.Repository;
import com.omegar.mvp.sample.github.mvp.presenters.RepositoryLikesPresenter;
import com.omegar.mvp.sample.github.mvp.presenters.RepositoryPresenter;
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/views/RepositoryWidget.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/views/RepositoryWidget.java
index b085ba40..73acade6 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/views/RepositoryWidget.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/ui/views/RepositoryWidget.java
@@ -6,9 +6,9 @@
import android.util.AttributeSet;
import android.widget.TextView;
-import com.arellomobile.mvp.MvpDelegate;
-import com.arellomobile.mvp.presenter.InjectPresenter;
-import com.arellomobile.mvp.presenter.ProvidePresenter;
+import com.omegar.mvp.MvpDelegate;
+import com.omegar.mvp.presenter.InjectPresenter;
+import com.omegar.mvp.presenter.ProvidePresenter;
import com.omegar.mvp.sample.github.mvp.models.Repository;
import com.omegar.mvp.sample.github.mvp.presenters.RepositoryPresenter;
import com.omegar.mvp.sample.github.mvp.views.RepositoryView;
diff --git a/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/HomePresenterTest.java b/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/HomePresenterTest.java
index 2a7f51f3..2306fc00 100644
--- a/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/HomePresenterTest.java
+++ b/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/HomePresenterTest.java
@@ -2,7 +2,7 @@
import com.omegar.mvp.sample.github.mvp.models.Repository;
import com.omegar.mvp.sample.github.mvp.views.HomeView;
-import com.arellomobile.mvp.sample.github.mvp.views.HomeView$$State;
+import com.omegar.mvp.sample.github.mvp.views.HomeView$$State;
import org.junit.Before;
import org.junit.Test;
diff --git a/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoriesPresenterTest.java b/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoriesPresenterTest.java
index 02e74777..7130658a 100644
--- a/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoriesPresenterTest.java
+++ b/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoriesPresenterTest.java
@@ -6,7 +6,7 @@
import com.omegar.mvp.sample.github.di.AppComponent;
import com.omegar.mvp.sample.github.mvp.GithubService;
import com.omegar.mvp.sample.github.mvp.models.Repository;
-import com.arellomobile.mvp.sample.github.mvp.views.RepositoriesView$$State;
+import com.omegar.mvp.sample.github.mvp.views.RepositoriesView$$State;
import com.omegar.mvp.sample.github.test.GithubSampleTestRunner;
import com.omegar.mvp.sample.github.test.TestComponent;
import com.omegar.mvp.sample.github.test.TestComponentRule;
diff --git a/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryPresenterTest.java b/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryPresenterTest.java
index 3f18d60f..226166cc 100644
--- a/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryPresenterTest.java
+++ b/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryPresenterTest.java
@@ -3,7 +3,7 @@
import java.util.Collections;
import com.omegar.mvp.sample.github.mvp.models.Repository;
-import com.arellomobile.mvp.sample.github.mvp.views.RepositoryView$$State;
+import com.omegar.mvp.sample.github.mvp.views.RepositoryView$$State;
import com.omegar.mvp.sample.github.test.GithubSampleTestRunner;
import com.omegar.mvp.sample.github.test.TestComponentRule;
diff --git a/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/SignInPresenterTest.java b/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/SignInPresenterTest.java
index 20660ab9..d1a6e6c5 100644
--- a/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/SignInPresenterTest.java
+++ b/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/SignInPresenterTest.java
@@ -5,12 +5,12 @@
import android.content.Context;
import android.util.Base64;
-import com.arellomobile.mvp.sample.github.R;
+import com.omegar.mvp.sample.github.R;
import com.omegar.mvp.sample.github.di.AppComponent;
import com.omegar.mvp.sample.github.mvp.GithubService;
import com.omegar.mvp.sample.github.mvp.common.AuthUtils;
import com.omegar.mvp.sample.github.mvp.models.User;
-import com.arellomobile.mvp.sample.github.mvp.views.SignInView$$State;
+import com.omegar.mvp.sample.github.mvp.views.SignInView$$State;
import com.omegar.mvp.sample.github.test.GithubSampleTestRunner;
import com.omegar.mvp.sample.github.test.TestComponent;
import com.omegar.mvp.sample.github.test.TestComponentRule;
diff --git a/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/SignOutPresenterTest.java b/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/SignOutPresenterTest.java
index a5bf6cc2..c0e499a8 100644
--- a/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/SignOutPresenterTest.java
+++ b/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/SignOutPresenterTest.java
@@ -1,7 +1,7 @@
package com.omegar.mvp.sample.github.mvp.presenters;
import com.omegar.mvp.sample.github.mvp.common.AuthUtils;
-import com.arellomobile.mvp.sample.github.mvp.views.SignOutView$$State;
+import com.omegar.mvp.sample.github.mvp.views.SignOutView$$State;
import com.omegar.mvp.sample.github.test.GithubSampleTestRunner;
import com.omegar.mvp.sample.github.test.TestComponentRule;
diff --git a/sample-kotlin/build.gradle b/sample-kotlin/build.gradle
index 558130bc..ebb026d0 100644
--- a/sample-kotlin/build.gradle
+++ b/sample-kotlin/build.gradle
@@ -18,7 +18,7 @@ android {
compileSdkVersion 28
defaultConfig {
- applicationId "com.arellomobile.mvp.sample.kotlin"
+ applicationId "com.omegar.mvp.sample.kotlin"
minSdkVersion 16
targetSdkVersion 28
versionCode 1
@@ -42,9 +42,9 @@ android {
dependencies {
implementation 'com.android.support:appcompat-v7:28.0.0'
- implementation 'com.arello-mobile:moxy:1.5.6'
- implementation 'com.arello-mobile:moxy-app-compat:1.5.6'
- kapt 'com.arello-mobile:moxy-compiler:1.5.6'
+ implementation 'com.github.Omega-R.OmegaMoxy:moxy:1.5.7'
+ implementation 'com.github.Omega-R.OmegaMoxy:moxy-app-compat:1.5.7'
+ kapt 'com.github.Omega-R.OmegaMoxy:moxy-compiler:1.5.7'
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
diff --git a/sample-kotlin/src/main/AndroidManifest.xml b/sample-kotlin/src/main/AndroidManifest.xml
index 472cc5ea..4df68246 100644
--- a/sample-kotlin/src/main/AndroidManifest.xml
+++ b/sample-kotlin/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
+ package="com.omegar.mvp.sample.kotlin">
Date: Thu, 4 Apr 2019 11:26:25 +0300
Subject: [PATCH 10/36] Update README.md
---
README.md | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/README.md b/README.md
index e0fbf933..b540dbfc 100644
--- a/README.md
+++ b/README.md
@@ -73,6 +73,17 @@ Templates located in [/moxy-templates](https://github.com/Arello-Mobile/Moxy/tre
[FAQ](https://github.com/Arello-Mobile/Moxy/wiki/FAQ)
## Integration
+
+Add the JitPack repository to your build file:
+```groovy
+allprojects {
+ repositories {
+ ...
+ maven { url 'https://jitpack.io' }
+ }
+}
+```
+
Base modules integration:
```groovy
dependencies {
From c4b2134652ef36ecaa250802fe116645b35e1ba1 Mon Sep 17 00:00:00 2001
From: roman_tcaregorodtcev
Date: Tue, 30 Apr 2019 11:00:20 +0300
Subject: [PATCH 11/36] Bottom sheet dialog fragment has been added
---
.../material/bottomsheet/BottomSheetDialogFragment.java | 7 +++++++
1 file changed, 7 insertions(+)
create mode 100644 moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java
diff --git a/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java b/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java
new file mode 100644
index 00000000..49b22940
--- /dev/null
+++ b/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java
@@ -0,0 +1,7 @@
+package com.google.android.material.bottomsheet;
+
+import androidx.appcompat.app.AppCompatDialogFragment;
+
+public class BottomSheetDialogFragment extends AppCompatDialogFragment {
+
+}
\ No newline at end of file
From 8ffc4c8b7dac3a479b5d58953f53713c72e82360 Mon Sep 17 00:00:00 2001
From: roman_tcaregorodtcev
Date: Tue, 30 Apr 2019 11:15:24 +0300
Subject: [PATCH 12/36] MvpBottomSheetDialogFragment added
---
.../mvp/MvpBottomSheetDialogFragment.java | 97 +++++++++++++++++++
1 file changed, 97 insertions(+)
create mode 100644 moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java
diff --git a/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java b/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java
new file mode 100644
index 00000000..bf70340f
--- /dev/null
+++ b/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java
@@ -0,0 +1,97 @@
+package com.omegar.mvp;
+
+import android.os.Build;
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
+
+public class MvpBottomSheetDialogFragment extends BottomSheetDialogFragment {
+
+ private boolean mIsStateSaved;
+ private MvpDelegate extends MvpBottomSheetDialogFragment> mMvpDelegate;
+
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ getMvpDelegate().onCreate(savedInstanceState);
+ }
+
+ public void onResume() {
+ super.onResume();
+
+ mIsStateSaved = false;
+
+ getMvpDelegate().onAttach();
+ }
+
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+
+ mIsStateSaved = true;
+
+ getMvpDelegate().onSaveInstanceState(outState);
+ getMvpDelegate().onDetach();
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+
+ getMvpDelegate().onDetach();
+ }
+
+ @Override
+ public void onDestroyView() {
+ super.onDestroyView();
+
+ getMvpDelegate().onDetach();
+ getMvpDelegate().onDestroyView();
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+
+ //We leave the screen and respectively all fragments will be destroyed
+ if (getActivity().isFinishing()) {
+ getMvpDelegate().onDestroy();
+ return;
+ }
+
+ // When we rotate device isRemoving() return true for fragment placed in backstack
+ // http://stackoverflow.com/questions/34649126/fragment-back-stack-and-isremoving
+ if (mIsStateSaved) {
+ mIsStateSaved = false;
+ return;
+ }
+
+ // See https://github.com/Arello-Mobile/Moxy/issues/24
+ boolean anyParentIsRemoving = false;
+
+ if (Build.VERSION.SDK_INT >= 17) {
+ Fragment parent = getParentFragment();
+ while (!anyParentIsRemoving && parent != null) {
+ anyParentIsRemoving = parent.isRemoving();
+ parent = parent.getParentFragment();
+ }
+ }
+
+ if (isRemoving() || anyParentIsRemoving) {
+ getMvpDelegate().onDestroy();
+ }
+ }
+
+ /**
+ * @return The {@link MvpDelegate} being used by this Fragment.
+ */
+ public MvpDelegate getMvpDelegate() {
+ if (mMvpDelegate == null) {
+ mMvpDelegate = new MvpDelegate<>(this);
+ }
+
+ return mMvpDelegate;
+ }
+
+}
From ab9231365ad912f3eaa82b44deb35418fd9c77b2 Mon Sep 17 00:00:00 2001
From: roman_tcaregorodtcev
Date: Wed, 2 Oct 2019 17:07:41 +0300
Subject: [PATCH 13/36] Code generation updated
---
.../moxy_androidx_sapmle/BaseActivity.java | 12 +++++
.../com/moxy_androidx_sapmle/BaseView.java | 9 ++++
.../com/moxy_androidx_sapmle/MainActivity.kt | 17 +++---
.../com/moxy_androidx_sapmle/MainView.kt | 9 ++++
.../moxy_androidx_sapmle/NotMainActivity.java | 9 ++++
.../NotMainPresenter.java | 11 ++++
.../com/moxy_androidx_sapmle/NotMainView.java | 7 +++
.../moxy_androidx_sapmle/SecondInterface.kt | 7 +++
.../moxy_androidx_sapmle/first/FirstView.java | 9 ++++
.../com/omegar/mvp/compiler/MvpCompiler.java | 22 +++++++-
.../compiler/viewstate/ViewInterfaceInfo.java | 15 ++++++
.../viewstate/ViewInterfaceProcessor.java | 19 +++++--
.../viewstate/ViewStateClassGenerator.java | 53 ++++++++++++++++---
.../omegar/mvp/presenter/PresenterField.java | 1 -
.../mvp/sample/github/app/GithubApp.java | 2 +-
.../presenters/RepositoryPresenterTest.java | 2 +-
16 files changed, 180 insertions(+), 24 deletions(-)
create mode 100644 moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseActivity.java
create mode 100644 moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseView.java
create mode 100644 moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt
create mode 100644 moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainActivity.java
create mode 100644 moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java
create mode 100644 moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainView.java
create mode 100644 moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/SecondInterface.kt
create mode 100644 moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseActivity.java b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseActivity.java
new file mode 100644
index 00000000..664db103
--- /dev/null
+++ b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseActivity.java
@@ -0,0 +1,12 @@
+package example.com.moxy_androidx_sapmle;
+
+import com.omegar.mvp.MvpAppCompatActivity;
+
+public abstract class BaseActivity extends MvpAppCompatActivity implements BaseView {
+
+ @Override
+ public void testFunction() {
+
+ }
+
+}
\ No newline at end of file
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseView.java b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseView.java
new file mode 100644
index 00000000..2c9ce2c9
--- /dev/null
+++ b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseView.java
@@ -0,0 +1,9 @@
+package example.com.moxy_androidx_sapmle;
+
+import com.omegar.mvp.MvpView;
+
+public interface BaseView extends MvpView {
+
+ void testFunction();
+
+}
\ No newline at end of file
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainActivity.kt b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainActivity.kt
index 023e3e03..534e37a3 100644
--- a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainActivity.kt
+++ b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainActivity.kt
@@ -3,26 +3,29 @@ package example.com.moxy_androidx_sapmle
import android.os.Bundle
import android.util.Log
import com.omegar.mvp.MvpAppCompatActivity
-import com.omegar.mvp.MvpView
import com.omegar.mvp.presenter.InjectPresenter
-interface MainView : MvpView {
- fun printLog(msg: String)
-}
+class MainActivity : BaseActivity(), MainView, SecondInterface {
+
+ override fun firstMethod() {
+ TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+ }
-class MainActivity : MvpAppCompatActivity(), MainView {
-
@InjectPresenter
internal lateinit var presenter: MainPresenter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
+// setContentView(R.layout.activity_main)
}
override fun printLog(msg: String) {
Log.e(TAG, "printLog : msg : $msg activity hash code : ${hashCode()}")
}
+
+ override fun second() {
+ TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+ }
companion object {
const val TAG = "MoxyDebug"
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt
new file mode 100644
index 00000000..076b5dcb
--- /dev/null
+++ b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt
@@ -0,0 +1,9 @@
+package example.com.moxy_androidx_sapmle
+
+import example.com.moxy_androidx_sapmle.first.FirstView
+
+interface MainView : FirstView {
+
+ fun printLog(msg: String)
+
+}
\ No newline at end of file
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainActivity.java b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainActivity.java
new file mode 100644
index 00000000..b2f2d998
--- /dev/null
+++ b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainActivity.java
@@ -0,0 +1,9 @@
+package example.com.moxy_androidx_sapmle;
+
+public class NotMainActivity extends BaseActivity implements NotMainView {
+
+ @Override
+ public void notMainFunction() {
+
+ }
+}
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java
new file mode 100644
index 00000000..d75790c9
--- /dev/null
+++ b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java
@@ -0,0 +1,11 @@
+package example.com.moxy_androidx_sapmle;
+
+import com.omegar.mvp.InjectViewState;
+import com.omegar.mvp.MvpPresenter;
+
+@InjectViewState
+public class NotMainPresenter extends MvpPresenter {
+
+
+
+}
\ No newline at end of file
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainView.java b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainView.java
new file mode 100644
index 00000000..612196dc
--- /dev/null
+++ b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainView.java
@@ -0,0 +1,7 @@
+package example.com.moxy_androidx_sapmle;
+
+public interface NotMainView extends BaseView {
+
+ void notMainFunction();
+
+}
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/SecondInterface.kt b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/SecondInterface.kt
new file mode 100644
index 00000000..b1ad0f04
--- /dev/null
+++ b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/SecondInterface.kt
@@ -0,0 +1,7 @@
+package example.com.moxy_androidx_sapmle
+
+interface SecondInterface {
+
+ fun second()
+
+}
\ No newline at end of file
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java
new file mode 100644
index 00000000..948505f3
--- /dev/null
+++ b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java
@@ -0,0 +1,9 @@
+package example.com.moxy_androidx_sapmle.first;
+
+import example.com.moxy_androidx_sapmle.BaseView;
+
+public interface FirstView extends BaseView {
+
+ void firstMethod();
+
+}
\ No newline at end of file
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
index ec79ea01..487cfbc4 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
@@ -49,7 +49,7 @@
@SuppressWarnings("unused")
@AutoService(Processor.class)
public class MvpCompiler extends AbstractProcessor {
- public static final String MOXY_REFLECTOR_DEFAULT_PACKAGE = "com.arellomobile.mvp";
+ public static final String MOXY_REFLECTOR_DEFAULT_PACKAGE = "com.omegar.mvp";
private static final String OPTION_MOXY_REFLECTOR_PACKAGE = "moxyReflectorPackage";
@@ -136,7 +136,7 @@ private boolean throwableProcess(RoundEnvironment roundEnv) {
injectPresenterProcessor, presenterBinderClassGenerator);
for (TypeElement usedView : injectViewStateProcessor.getUsedViews()) {
- generateCode(usedView, ElementKind.INTERFACE,
+ generateListCode(usedView, ElementKind.INTERFACE,
viewInterfaceProcessor, viewStateClassGenerator);
}
@@ -204,6 +204,24 @@ private void processInjectors(RoundEnvironment roundEnv,
}
}
+ private void generateListCode(Element element,
+ ElementKind kind,
+ ElementProcessor> processor,
+ JavaFilesGenerator> classGenerator) {
+ if (element.getKind() != kind) {
+ getMessager().printMessage(Diagnostic.Kind.ERROR, element + " must be " + kind.name());
+ }
+
+ //noinspection unchecked
+ List resultList = processor.process((E) element);
+ if (resultList == null || resultList.isEmpty()) return;
+
+ List fileList = classGenerator.generate(new ArrayList<>(new HashSet<>(resultList)));
+ if (fileList == null || fileList.isEmpty()) return;
+
+ for (JavaFile file : fileList) createSourceFile(file);
+ }
+
private void generateCode(Element element,
ElementKind kind,
ElementProcessor processor,
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceInfo.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceInfo.java
index 0a10199d..abfb439f 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceInfo.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceInfo.java
@@ -58,4 +58,19 @@ List getTypeVariables() {
List getMethods() {
return methods;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ ViewInterfaceInfo that = (ViewInterfaceInfo) o;
+
+ return name != null ? name.equals(that.name) : that.name == null;
+ }
+
+ @Override
+ public int hashCode() {
+ return name != null ? name.hashCode() : 0;
+ }
}
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
index afe4e75e..bc18fa06 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
@@ -1,10 +1,12 @@
package com.omegar.mvp.compiler.viewstate;
+import com.omegar.mvp.MvpView;
import com.omegar.mvp.compiler.ElementProcessor;
import com.omegar.mvp.compiler.MvpCompiler;
import com.omegar.mvp.compiler.Util;
import com.omegar.mvp.viewstate.strategy.AddToEndStrategy;
import com.omegar.mvp.viewstate.strategy.StateStrategyType;
+import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.ParameterSpec;
import java.util.ArrayList;
@@ -33,9 +35,10 @@
*
* @author Evgeny Kursakov
*/
-public class ViewInterfaceProcessor extends ElementProcessor {
+public class ViewInterfaceProcessor extends ElementProcessor> {
private static final String STATE_STRATEGY_TYPE_ANNOTATION = StateStrategyType.class.getName();
private static final TypeElement DEFAULT_STATE_STRATEGY = MvpCompiler.getElementUtils().getTypeElement(AddToEndStrategy.class.getCanonicalName());
+ private static final ClassName MVP_VIEW_CLASS_NAME = ClassName.get(MvpView.class);
private TypeElement viewInterfaceElement;
private String viewInterfaceName;
@@ -46,7 +49,9 @@ public List getUsedStrategies() {
}
@Override
- public ViewInterfaceInfo process(TypeElement element) {
+ public List process(TypeElement element) {
+ List list = new ArrayList<>();
+
this.viewInterfaceElement = element;
viewInterfaceName = element.getSimpleName().toString();
@@ -58,7 +63,10 @@ public ViewInterfaceInfo process(TypeElement element) {
getMethods(element, interfaceStateStrategyType, new ArrayList<>(), methods);
// Add methods from super interfaces
- methods.addAll(iterateInterfaces(0, element, interfaceStateStrategyType, methods, new ArrayList<>()));
+ for (TypeMirror typeMirror : element.getInterfaces()) {
+ final TypeElement anInterface = (TypeElement) ((DeclaredType) typeMirror).asElement();
+ list.addAll(process(anInterface));
+ }
// Allow methods be with same names
Map methodsCounter = new HashMap<>();
@@ -75,7 +83,10 @@ public ViewInterfaceInfo process(TypeElement element) {
methodsCounter.put(method.getName(), counter);
}
- return new ViewInterfaceInfo(element, methods);
+ ViewInterfaceInfo info = new ViewInterfaceInfo(element, methods);
+ if (!info.getName().equals(MVP_VIEW_CLASS_NAME)) list.add(info);
+
+ return list;
}
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
index a70ed88c..4f20ab58 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
@@ -12,13 +12,17 @@
import com.squareup.javapoet.ParameterizedTypeName;
import com.squareup.javapoet.TypeName;
import com.squareup.javapoet.TypeSpec;
+import com.squareup.javapoet.TypeVariableName;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
+import javax.annotation.Nullable;
import javax.lang.model.element.Modifier;
import javax.lang.model.type.DeclaredType;
+import javax.tools.Diagnostic;
import static com.omegar.mvp.compiler.Util.decapitalizeString;
@@ -28,19 +32,53 @@
*
* @author Yuri Shmakov
*/
-public final class ViewStateClassGenerator extends JavaFilesGenerator {
+public final class ViewStateClassGenerator extends JavaFilesGenerator> {
+
+ private static final String T = "T";
+ private static final TypeVariableName GENERIC_TYPE_VARIABLE_NAME = TypeVariableName.get(T);
+ private static final ClassName MVP_VIEW_STATE_CLASS_NAME = ClassName.get(MvpViewState.class);
+ private static final ClassName VIEW_COMMAND_CLASS_NAME = ClassName.get(ViewCommand.class);
+ private static final ParameterizedTypeName VIEW_COMMAND_TYPE_NAME
+ = ParameterizedTypeName.get(VIEW_COMMAND_CLASS_NAME, GENERIC_TYPE_VARIABLE_NAME);
+ private static final ParameterizedTypeName MVP_VIEW_STATE_TYPE_NAME
+ = ParameterizedTypeName.get(MVP_VIEW_STATE_CLASS_NAME, GENERIC_TYPE_VARIABLE_NAME);
@Override
- public List generate(ViewInterfaceInfo viewInterfaceInfo) {
+ public List generate(List list) {
+ if (list.isEmpty()) return Collections.emptyList();
+
+ MvpCompiler.getMessager().printMessage(Diagnostic.Kind.WARNING, "Size " + list.size());
+
+ List fileList = new ArrayList<>();
+ fileList.add(generate(list.get(0)));
+
+ for (int i = 1; i < list.size(); i++) {
+ ViewInterfaceInfo info = list.get(i);
+
+ JavaFile parentClassFile = fileList.get(fileList.size() - 1);
+ ClassName parentClassName = ClassName.get(parentClassFile.packageName, parentClassFile.typeSpec.name);
+
+ fileList.add(generate(info, parentClassName));
+ }
+ return fileList;
+ }
+
+ private JavaFile generate(ViewInterfaceInfo viewInterfaceInfo) {
+ return generate(viewInterfaceInfo, null);
+ }
+
+ private JavaFile generate(ViewInterfaceInfo viewInterfaceInfo, @Nullable ClassName parentClassName) {
ClassName viewName = viewInterfaceInfo.getName();
TypeName nameWithTypeVariables = viewInterfaceInfo.getNameWithTypeVariables();
DeclaredType viewInterfaceType = (DeclaredType) viewInterfaceInfo.getElement().asType();
+ TypeVariableName variableName = TypeVariableName.get(T, nameWithTypeVariables);
TypeSpec.Builder classBuilder = TypeSpec.classBuilder(viewName.simpleName() + MvpProcessor.VIEW_STATE_SUFFIX)
.addModifiers(Modifier.PUBLIC)
- .superclass(ParameterizedTypeName.get(ClassName.get(MvpViewState.class), nameWithTypeVariables))
- .addSuperinterface(nameWithTypeVariables)
- .addTypeVariables(viewInterfaceInfo.getTypeVariables());
+ .superclass(parentClassName == null ? MVP_VIEW_STATE_TYPE_NAME :
+ ParameterizedTypeName.get(parentClassName, variableName))
+ .addTypeVariable(variableName)
+ .addSuperinterface(nameWithTypeVariables);
for (ViewMethod method : viewInterfaceInfo.getMethods()) {
TypeSpec commandClass = generateCommandClass(method, nameWithTypeVariables);
@@ -48,10 +86,9 @@ public List generate(ViewInterfaceInfo viewInterfaceInfo) {
classBuilder.addMethod(generateMethod(viewInterfaceType, method, nameWithTypeVariables, commandClass));
}
- JavaFile javaFile = JavaFile.builder(viewName.packageName(), classBuilder.build())
+ return JavaFile.builder(viewName.packageName(), classBuilder.build())
.indent("\t")
.build();
- return Collections.singletonList(javaFile);
}
private TypeSpec generateCommandClass(ViewMethod method, TypeName viewTypeName) {
@@ -66,7 +103,7 @@ private TypeSpec generateCommandClass(ViewMethod method, TypeName viewTypeName)
TypeSpec.Builder classBuilder = TypeSpec.classBuilder(method.getCommandClassName())
.addModifiers(Modifier.PUBLIC) // TODO: private and static
.addTypeVariables(method.getTypeVariables())
- .superclass(ParameterizedTypeName.get(ClassName.get(ViewCommand.class), viewTypeName))
+ .superclass(VIEW_COMMAND_TYPE_NAME)
.addMethod(generateCommandConstructor(method))
.addMethod(applyMethod);
diff --git a/moxy/src/main/java/com/omegar/mvp/presenter/PresenterField.java b/moxy/src/main/java/com/omegar/mvp/presenter/PresenterField.java
index 3e6597fe..337e0a53 100644
--- a/moxy/src/main/java/com/omegar/mvp/presenter/PresenterField.java
+++ b/moxy/src/main/java/com/omegar/mvp/presenter/PresenterField.java
@@ -1,6 +1,5 @@
package com.omegar.mvp.presenter;
-import com.arellomobile.mvp.*;
import com.omegar.mvp.MvpPresenter;
/**
diff --git a/sample-github/src/main/java/com/omegar/mvp/sample/github/app/GithubApp.java b/sample-github/src/main/java/com/omegar/mvp/sample/github/app/GithubApp.java
index 6b31ceef..555cf5c4 100644
--- a/sample-github/src/main/java/com/omegar/mvp/sample/github/app/GithubApp.java
+++ b/sample-github/src/main/java/com/omegar/mvp/sample/github/app/GithubApp.java
@@ -5,7 +5,7 @@
import android.support.annotation.VisibleForTesting;
import com.omegar.mvp.sample.github.di.AppComponent;
-import com.arellomobile.mvp.sample.github.di.DaggerAppComponent;
+import com.omegar.mvp.sample.github.di.DaggerAppComponent;
import com.omegar.mvp.sample.github.di.modules.ContextModule;
/**
diff --git a/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryPresenterTest.java b/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryPresenterTest.java
index 3f18d60f..226166cc 100644
--- a/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryPresenterTest.java
+++ b/sample-github/src/test/java/com/omegar/mvp/sample/github/mvp/presenters/RepositoryPresenterTest.java
@@ -3,7 +3,7 @@
import java.util.Collections;
import com.omegar.mvp.sample.github.mvp.models.Repository;
-import com.arellomobile.mvp.sample.github.mvp.views.RepositoryView$$State;
+import com.omegar.mvp.sample.github.mvp.views.RepositoryView$$State;
import com.omegar.mvp.sample.github.test.GithubSampleTestRunner;
import com.omegar.mvp.sample.github.test.TestComponentRule;
From fae4282030bca0a41ec7df4b5f759b4d318713e1 Mon Sep 17 00:00:00 2001
From: roman_tcaregorodtcev
Date: Thu, 3 Oct 2019 16:00:47 +0300
Subject: [PATCH 14/36] Fixed code generation for generic types
---
.../.gitignore | 0
.../build.gradle | 0
.../gradle.properties | 0
.../proguard-rules.pro | 0
.../src/main/AndroidManifest.xml | 0
.../moxy_androidx_sapmle/BaseActivity.java | 0
.../com/moxy_androidx_sapmle/BaseView.java | 0
.../com/moxy_androidx_sapmle/MainActivity.kt | 6 +--
.../com/moxy_androidx_sapmle/MainPresenter.kt | 2 +-
.../com/moxy_androidx_sapmle/MainView.kt | 11 +++++
.../moxy_androidx_sapmle/NotMainActivity.java | 0
.../NotMainPresenter.java | 1 +
.../com/moxy_androidx_sapmle/NotMainView.java | 0
.../moxy_androidx_sapmle/SecondInterface.kt | 0
.../moxy_androidx_sapmle/first/FirstView.java | 11 +++++
.../moxy_androidx_sapmle/packagee/Item.java | 4 ++
.../drawable-v24/ic_launcher_foreground.xml | 0
.../res/drawable/ic_launcher_background.xml | 0
.../src/main/res/layout/activity_main.xml | 0
.../res/mipmap-anydpi-v26/ic_launcher.xml | 0
.../mipmap-anydpi-v26/ic_launcher_round.xml | 0
.../src/main/res/mipmap-hdpi/ic_launcher.png | Bin
.../res/mipmap-hdpi/ic_launcher_round.png | Bin
.../src/main/res/mipmap-mdpi/ic_launcher.png | Bin
.../res/mipmap-mdpi/ic_launcher_round.png | Bin
.../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin
.../res/mipmap-xhdpi/ic_launcher_round.png | Bin
.../main/res/mipmap-xxhdpi/ic_launcher.png | Bin
.../res/mipmap-xxhdpi/ic_launcher_round.png | Bin
.../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin
.../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin
.../src/main/res/values/colors.xml | 0
.../src/main/res/values/strings.xml | 0
.../src/main/res/values/styles.xml | 0
.../com/moxy_androidx_sapmle/MainView.kt | 9 ----
.../moxy_androidx_sapmle/first/FirstView.java | 9 ----
.../com/omegar/mvp/compiler/MvpCompiler.java | 3 +-
.../viewstate/ViewInterfaceProcessor.java | 24 +++++++---
.../viewstate/ViewStateClassGenerator.java | 41 ++++++++++++------
.../InjectViewStateProcessor.java | 1 +
sample-custom-strategy/build.gradle | 7 ++-
.../presentation/launch/LaunchPresenter.kt | 1 -
settings.gradle | 2 +-
43 files changed, 85 insertions(+), 47 deletions(-)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/.gitignore (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/build.gradle (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/gradle.properties (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/proguard-rules.pro (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/AndroidManifest.xml (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseActivity.java (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseView.java (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/kotlin/example/com/moxy_androidx_sapmle/MainActivity.kt (84%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/kotlin/example/com/moxy_androidx_sapmle/MainPresenter.kt (92%)
create mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainActivity.java (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java (86%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainView.java (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/kotlin/example/com/moxy_androidx_sapmle/SecondInterface.kt (100%)
create mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java
create mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/packagee/Item.java
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/drawable-v24/ic_launcher_foreground.xml (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/drawable/ic_launcher_background.xml (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/layout/activity_main.xml (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/mipmap-anydpi-v26/ic_launcher.xml (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/mipmap-hdpi/ic_launcher.png (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/mipmap-hdpi/ic_launcher_round.png (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/mipmap-mdpi/ic_launcher.png (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/mipmap-mdpi/ic_launcher_round.png (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/mipmap-xhdpi/ic_launcher.png (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/mipmap-xhdpi/ic_launcher_round.png (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/mipmap-xxhdpi/ic_launcher.png (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/mipmap-xxhdpi/ic_launcher_round.png (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/mipmap-xxxhdpi/ic_launcher.png (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/values/colors.xml (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/values/strings.xml (100%)
rename {moxy-androidx-sapmle => moxy-androidx-sample}/src/main/res/values/styles.xml (100%)
delete mode 100644 moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt
delete mode 100644 moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java
diff --git a/moxy-androidx-sapmle/.gitignore b/moxy-androidx-sample/.gitignore
similarity index 100%
rename from moxy-androidx-sapmle/.gitignore
rename to moxy-androidx-sample/.gitignore
diff --git a/moxy-androidx-sapmle/build.gradle b/moxy-androidx-sample/build.gradle
similarity index 100%
rename from moxy-androidx-sapmle/build.gradle
rename to moxy-androidx-sample/build.gradle
diff --git a/moxy-androidx-sapmle/gradle.properties b/moxy-androidx-sample/gradle.properties
similarity index 100%
rename from moxy-androidx-sapmle/gradle.properties
rename to moxy-androidx-sample/gradle.properties
diff --git a/moxy-androidx-sapmle/proguard-rules.pro b/moxy-androidx-sample/proguard-rules.pro
similarity index 100%
rename from moxy-androidx-sapmle/proguard-rules.pro
rename to moxy-androidx-sample/proguard-rules.pro
diff --git a/moxy-androidx-sapmle/src/main/AndroidManifest.xml b/moxy-androidx-sample/src/main/AndroidManifest.xml
similarity index 100%
rename from moxy-androidx-sapmle/src/main/AndroidManifest.xml
rename to moxy-androidx-sample/src/main/AndroidManifest.xml
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseActivity.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseActivity.java
similarity index 100%
rename from moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseActivity.java
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseActivity.java
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseView.java
similarity index 100%
rename from moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseView.java
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseView.java
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainActivity.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainActivity.kt
similarity index 84%
rename from moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainActivity.kt
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainActivity.kt
index 534e37a3..365ec9dc 100644
--- a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainActivity.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainActivity.kt
@@ -2,12 +2,12 @@ package example.com.moxy_androidx_sapmle
import android.os.Bundle
import android.util.Log
-import com.omegar.mvp.MvpAppCompatActivity
import com.omegar.mvp.presenter.InjectPresenter
+import example.com.moxy_androidx_sapmle.packagee.Item
class MainActivity : BaseActivity(), MainView, SecondInterface {
- override fun firstMethod() {
+ override fun firstMethod(item: List- ) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
@@ -19,7 +19,7 @@ class MainActivity : BaseActivity(), MainView, SecondInterface {
// setContentView(R.layout.activity_main)
}
- override fun printLog(msg: String) {
+ override fun printLog(msg: Double?) {
Log.e(TAG, "printLog : msg : $msg activity hash code : ${hashCode()}")
}
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainPresenter.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainPresenter.kt
similarity index 92%
rename from moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainPresenter.kt
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainPresenter.kt
index ab64a95c..beefd6c9 100644
--- a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainPresenter.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainPresenter.kt
@@ -10,7 +10,7 @@ class MainPresenter : MvpPresenter() {
override fun onFirstViewAttach() {
super.onFirstViewAttach()
Log.e(MainActivity.TAG, "presenter hash code : ${hashCode()}")
- viewState.printLog("TEST")
+ viewState.printLog(10.0)
}
}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt
new file mode 100644
index 00000000..ed5a0482
--- /dev/null
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt
@@ -0,0 +1,11 @@
+package example.com.moxy_androidx_sapmle
+
+import example.com.moxy_androidx_sapmle.first.FirstView
+import example.com.moxy_androidx_sapmle.packagee.Item
+import java.io.Serializable
+
+interface MainView : FirstView
- , Serializable {
+
+ fun printLog(msg: Double?)
+
+}
\ No newline at end of file
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainActivity.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainActivity.java
similarity index 100%
rename from moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainActivity.java
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainActivity.java
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java
similarity index 86%
rename from moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java
index d75790c9..acbadc4c 100644
--- a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java
@@ -2,6 +2,7 @@
import com.omegar.mvp.InjectViewState;
import com.omegar.mvp.MvpPresenter;
+import com.omegar.mvp.MvpView;
@InjectViewState
public class NotMainPresenter extends MvpPresenter {
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainView.java
similarity index 100%
rename from moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainView.java
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainView.java
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/SecondInterface.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/SecondInterface.kt
similarity index 100%
rename from moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/SecondInterface.kt
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/SecondInterface.kt
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java
new file mode 100644
index 00000000..35bc478f
--- /dev/null
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java
@@ -0,0 +1,11 @@
+package example.com.moxy_androidx_sapmle.first;
+
+import java.util.List;
+
+import example.com.moxy_androidx_sapmle.BaseView;
+
+public interface FirstView extends BaseView{
+
+ void firstMethod(List item);
+
+}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/packagee/Item.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/packagee/Item.java
new file mode 100644
index 00000000..740d9c53
--- /dev/null
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/packagee/Item.java
@@ -0,0 +1,4 @@
+package example.com.moxy_androidx_sapmle.packagee;
+
+public class Item {
+}
diff --git a/moxy-androidx-sapmle/src/main/res/drawable-v24/ic_launcher_foreground.xml b/moxy-androidx-sample/src/main/res/drawable-v24/ic_launcher_foreground.xml
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/drawable-v24/ic_launcher_foreground.xml
rename to moxy-androidx-sample/src/main/res/drawable-v24/ic_launcher_foreground.xml
diff --git a/moxy-androidx-sapmle/src/main/res/drawable/ic_launcher_background.xml b/moxy-androidx-sample/src/main/res/drawable/ic_launcher_background.xml
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/drawable/ic_launcher_background.xml
rename to moxy-androidx-sample/src/main/res/drawable/ic_launcher_background.xml
diff --git a/moxy-androidx-sapmle/src/main/res/layout/activity_main.xml b/moxy-androidx-sample/src/main/res/layout/activity_main.xml
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/layout/activity_main.xml
rename to moxy-androidx-sample/src/main/res/layout/activity_main.xml
diff --git a/moxy-androidx-sapmle/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/moxy-androidx-sample/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
rename to moxy-androidx-sample/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/moxy-androidx-sapmle/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/moxy-androidx-sample/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
rename to moxy-androidx-sample/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
diff --git a/moxy-androidx-sapmle/src/main/res/mipmap-hdpi/ic_launcher.png b/moxy-androidx-sample/src/main/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/mipmap-hdpi/ic_launcher.png
rename to moxy-androidx-sample/src/main/res/mipmap-hdpi/ic_launcher.png
diff --git a/moxy-androidx-sapmle/src/main/res/mipmap-hdpi/ic_launcher_round.png b/moxy-androidx-sample/src/main/res/mipmap-hdpi/ic_launcher_round.png
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/mipmap-hdpi/ic_launcher_round.png
rename to moxy-androidx-sample/src/main/res/mipmap-hdpi/ic_launcher_round.png
diff --git a/moxy-androidx-sapmle/src/main/res/mipmap-mdpi/ic_launcher.png b/moxy-androidx-sample/src/main/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/mipmap-mdpi/ic_launcher.png
rename to moxy-androidx-sample/src/main/res/mipmap-mdpi/ic_launcher.png
diff --git a/moxy-androidx-sapmle/src/main/res/mipmap-mdpi/ic_launcher_round.png b/moxy-androidx-sample/src/main/res/mipmap-mdpi/ic_launcher_round.png
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/mipmap-mdpi/ic_launcher_round.png
rename to moxy-androidx-sample/src/main/res/mipmap-mdpi/ic_launcher_round.png
diff --git a/moxy-androidx-sapmle/src/main/res/mipmap-xhdpi/ic_launcher.png b/moxy-androidx-sample/src/main/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/mipmap-xhdpi/ic_launcher.png
rename to moxy-androidx-sample/src/main/res/mipmap-xhdpi/ic_launcher.png
diff --git a/moxy-androidx-sapmle/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/moxy-androidx-sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/mipmap-xhdpi/ic_launcher_round.png
rename to moxy-androidx-sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png
diff --git a/moxy-androidx-sapmle/src/main/res/mipmap-xxhdpi/ic_launcher.png b/moxy-androidx-sample/src/main/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/mipmap-xxhdpi/ic_launcher.png
rename to moxy-androidx-sample/src/main/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/moxy-androidx-sapmle/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/moxy-androidx-sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
rename to moxy-androidx-sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
diff --git a/moxy-androidx-sapmle/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/moxy-androidx-sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/mipmap-xxxhdpi/ic_launcher.png
rename to moxy-androidx-sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/moxy-androidx-sapmle/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/moxy-androidx-sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
rename to moxy-androidx-sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
diff --git a/moxy-androidx-sapmle/src/main/res/values/colors.xml b/moxy-androidx-sample/src/main/res/values/colors.xml
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/values/colors.xml
rename to moxy-androidx-sample/src/main/res/values/colors.xml
diff --git a/moxy-androidx-sapmle/src/main/res/values/strings.xml b/moxy-androidx-sample/src/main/res/values/strings.xml
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/values/strings.xml
rename to moxy-androidx-sample/src/main/res/values/strings.xml
diff --git a/moxy-androidx-sapmle/src/main/res/values/styles.xml b/moxy-androidx-sample/src/main/res/values/styles.xml
similarity index 100%
rename from moxy-androidx-sapmle/src/main/res/values/styles.xml
rename to moxy-androidx-sample/src/main/res/values/styles.xml
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt
deleted file mode 100644
index 076b5dcb..00000000
--- a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package example.com.moxy_androidx_sapmle
-
-import example.com.moxy_androidx_sapmle.first.FirstView
-
-interface MainView : FirstView {
-
- fun printLog(msg: String)
-
-}
\ No newline at end of file
diff --git a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java b/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java
deleted file mode 100644
index 948505f3..00000000
--- a/moxy-androidx-sapmle/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package example.com.moxy_androidx_sapmle.first;
-
-import example.com.moxy_androidx_sapmle.BaseView;
-
-public interface FirstView extends BaseView {
-
- void firstMethod();
-
-}
\ No newline at end of file
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
index 487cfbc4..ed89afec 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
@@ -19,6 +19,7 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -216,7 +217,7 @@ private void generateListCode(Element element,
List resultList = processor.process((E) element);
if (resultList == null || resultList.isEmpty()) return;
- List fileList = classGenerator.generate(new ArrayList<>(new HashSet<>(resultList)));
+ List fileList = classGenerator.generate(new ArrayList<>(new LinkedHashSet<>(resultList)));
if (fileList == null || fileList.isEmpty()) return;
for (JavaFile file : fileList) createSourceFile(file);
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
index bc18fa06..246a10ec 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
@@ -51,6 +51,7 @@ public List getUsedStrategies() {
@Override
public List process(TypeElement element) {
List list = new ArrayList<>();
+ MvpCompiler.getMessager().printMessage(Diagnostic.Kind.WARNING, "TypeElement " + element);
this.viewInterfaceElement = element;
viewInterfaceName = element.getSimpleName().toString();
@@ -64,8 +65,10 @@ public List process(TypeElement element) {
// Add methods from super interfaces
for (TypeMirror typeMirror : element.getInterfaces()) {
- final TypeElement anInterface = (TypeElement) ((DeclaredType) typeMirror).asElement();
- list.addAll(process(anInterface));
+ final TypeElement interfaceElement = (TypeElement) ((DeclaredType) typeMirror).asElement();
+ if (isMvpElement(interfaceElement)) {
+ list.addAll(process(interfaceElement));
+ }
}
// Allow methods be with same names
@@ -89,6 +92,18 @@ public List process(TypeElement element) {
return list;
}
+ private boolean isMvpElement(TypeElement element) {
+ if (element == null) return false;
+
+ ClassName className = ClassName.get(element);
+ if (className.equals(MVP_VIEW_CLASS_NAME)) return true;
+
+ for (TypeMirror typeMirror : element.getInterfaces()) {
+ TypeElement interfaceElement = (TypeElement) ((DeclaredType) typeMirror).asElement();
+ if (isMvpElement(interfaceElement)) return true;
+ }
+ return false;
+ }
private void getMethods(TypeElement typeElement,
TypeElement defaultStrategy,
@@ -180,8 +195,7 @@ private void checkStrategyAndTagEquals(ViewMethod method, ViewMethod existingMet
}
}
- private List iterateInterfaces(int level,
- TypeElement parentElement,
+ private List iterateInterfaces(TypeElement parentElement,
TypeElement parentDefaultStrategy,
List rootMethods,
List superinterfacesMethods) {
@@ -199,7 +213,7 @@ private List iterateInterfaces(int level,
getMethods(anInterface, defaultStrategy, rootMethods, superinterfacesMethods);
- iterateInterfaces(level + 1, anInterface, defaultStrategy, rootMethods, superinterfacesMethods);
+ iterateInterfaces(anInterface, defaultStrategy, rootMethods, superinterfacesMethods);
}
return superinterfacesMethods;
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
index 4f20ab58..0b3a107f 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
@@ -22,7 +22,7 @@
import javax.annotation.Nullable;
import javax.lang.model.element.Modifier;
import javax.lang.model.type.DeclaredType;
-import javax.tools.Diagnostic;
+import javax.lang.model.type.TypeMirror;
import static com.omegar.mvp.compiler.Util.decapitalizeString;
@@ -34,8 +34,8 @@
*/
public final class ViewStateClassGenerator extends JavaFilesGenerator
> {
- private static final String T = "T";
- private static final TypeVariableName GENERIC_TYPE_VARIABLE_NAME = TypeVariableName.get(T);
+ private static final String VIEW = "Omega$$View";
+ private static final TypeVariableName GENERIC_TYPE_VARIABLE_NAME = TypeVariableName.get(VIEW);
private static final ClassName MVP_VIEW_STATE_CLASS_NAME = ClassName.get(MvpViewState.class);
private static final ClassName VIEW_COMMAND_CLASS_NAME = ClassName.get(ViewCommand.class);
private static final ParameterizedTypeName VIEW_COMMAND_TYPE_NAME
@@ -47,8 +47,6 @@ public final class ViewStateClassGenerator extends JavaFilesGenerator generate(List list) {
if (list.isEmpty()) return Collections.emptyList();
- MvpCompiler.getMessager().printMessage(Diagnostic.Kind.WARNING, "Size " + list.size());
-
List fileList = new ArrayList<>();
fileList.add(generate(list.get(0)));
@@ -67,18 +65,20 @@ private JavaFile generate(ViewInterfaceInfo viewInterfaceInfo) {
return generate(viewInterfaceInfo, null);
}
- private JavaFile generate(ViewInterfaceInfo viewInterfaceInfo, @Nullable ClassName parentClassName) {
+ private JavaFile generate(ViewInterfaceInfo viewInterfaceInfo, @Nullable ClassName superClassName) {
ClassName viewName = viewInterfaceInfo.getName();
TypeName nameWithTypeVariables = viewInterfaceInfo.getNameWithTypeVariables();
DeclaredType viewInterfaceType = (DeclaredType) viewInterfaceInfo.getElement().asType();
- TypeVariableName variableName = TypeVariableName.get(T, nameWithTypeVariables);
+ TypeVariableName variableName = TypeVariableName.get(VIEW, nameWithTypeVariables);
TypeSpec.Builder classBuilder = TypeSpec.classBuilder(viewName.simpleName() + MvpProcessor.VIEW_STATE_SUFFIX)
- .addModifiers(Modifier.PUBLIC)
- .superclass(parentClassName == null ? MVP_VIEW_STATE_TYPE_NAME :
- ParameterizedTypeName.get(parentClassName, variableName))
- .addTypeVariable(variableName)
- .addSuperinterface(nameWithTypeVariables);
+ .addModifiers(Modifier.PUBLIC)
+ .addSuperinterface(nameWithTypeVariables)
+ .addTypeVariables(new ArrayList(viewInterfaceInfo.getTypeVariables()) {{
+ add(0, variableName);
+ }})
+ .superclass(superClassName == null ? MVP_VIEW_STATE_TYPE_NAME :
+ ParameterizedTypeName.get(superClassName, generateSuperClassTypeVariables(viewInterfaceInfo, variableName)));
for (ViewMethod method : viewInterfaceInfo.getMethods()) {
TypeSpec commandClass = generateCommandClass(method, nameWithTypeVariables);
@@ -91,11 +91,26 @@ private JavaFile generate(ViewInterfaceInfo viewInterfaceInfo, @Nullable ClassNa
.build();
}
+ private TypeVariableName[] generateSuperClassTypeVariables(ViewInterfaceInfo viewInterfaceInfo, TypeVariableName variableName) {
+ List parentClassTypeVariables = new ArrayList<>();
+ parentClassTypeVariables.add(variableName);
+ for (TypeMirror mirror : viewInterfaceInfo.getElement().getInterfaces()) {
+ List extends TypeMirror> typeArguments = ((DeclaredType) mirror).getTypeArguments();
+ for (TypeMirror typeMirror : typeArguments) {
+ TypeName typeName = ClassName.get(typeMirror);
+ TypeVariableName name = TypeVariableName.get(typeMirror.toString(), typeName);
+ parentClassTypeVariables.add(name);
+ }
+ }
+ //noinspection ToArrayCallWithZeroLengthArrayArgument
+ return parentClassTypeVariables.toArray(new TypeVariableName[parentClassTypeVariables.size()]);
+ }
+
private TypeSpec generateCommandClass(ViewMethod method, TypeName viewTypeName) {
MethodSpec applyMethod = MethodSpec.methodBuilder("apply")
.addAnnotation(Override.class)
.addModifiers(Modifier.PUBLIC)
- .addParameter(viewTypeName, "mvpView")
+ .addParameter(GENERIC_TYPE_VARIABLE_NAME, "mvpView")
.addExceptions(method.getExceptions())
.addStatement("mvpView.$L($L)", method.getName(), method.getArgumentsString())
.build();
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstateprovider/InjectViewStateProcessor.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstateprovider/InjectViewStateProcessor.java
index 214e9593..e08b49f6 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstateprovider/InjectViewStateProcessor.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstateprovider/InjectViewStateProcessor.java
@@ -13,6 +13,7 @@
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
diff --git a/sample-custom-strategy/build.gradle b/sample-custom-strategy/build.gradle
index 0c6ade9e..4b3307b3 100644
--- a/sample-custom-strategy/build.gradle
+++ b/sample-custom-strategy/build.gradle
@@ -43,10 +43,9 @@ dependencies {
implementation "com.android.support:appcompat-v7:$supportVersion"
implementation "com.android.support:design:$supportVersion"
- def moxyVersion = '1.5.6'
- implementation "com.arello-mobile:moxy:$moxyVersion"
- implementation "com.arello-mobile:moxy-app-compat:$moxyVersion"
- kapt "com.arello-mobile:moxy-compiler:$moxyVersion"
+ implementation project(':moxy')
+ implementation project(':moxy-android')
+ kapt project(':moxy-compiler')
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
diff --git a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchPresenter.kt b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchPresenter.kt
index 2dbfde2d..4c050266 100644
--- a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchPresenter.kt
+++ b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchPresenter.kt
@@ -1,6 +1,5 @@
package com.redmadrobot.app.presentation.launch
-
import com.omegar.mvp.InjectViewState
import com.omegar.mvp.MvpPresenter
diff --git a/settings.gradle b/settings.gradle
index 4a7c3ce0..c4153a45 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -2,7 +2,7 @@ include ':moxy', ':stub-reflector', ':moxy-android', ':moxy-compiler', ':stub-an
include ':sample-github'
include ':sample-kotlin'
include ':sample-custom-strategy'
-include ':moxy-androidx-sapmle'
+include ':moxy-androidx-sample'
project(':stub-reflector').projectDir = new File('moxy/stub-reflector')
project(':stub-android').projectDir = new File('moxy-android/stub-android')
project(':stub-appcompat').projectDir = new File('moxy-app-compat/stub-appcompat')
From 1605c9349199b3e9b490681f1dcc3411c8259a54 Mon Sep 17 00:00:00 2001
From: roman_tcaregorodtcev
Date: Fri, 4 Oct 2019 09:53:49 +0300
Subject: [PATCH 15/36] Double JavaFile generation fixed
---
.../com/omegar/mvp/compiler/MvpCompiler.java | 54 +++++++++----------
.../viewstate/ViewInterfaceProcessor.java | 2 -
2 files changed, 26 insertions(+), 30 deletions(-)
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
index ed89afec..ac5a7144 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
@@ -19,7 +19,6 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
-import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -136,10 +135,8 @@ private boolean throwableProcess(RoundEnvironment roundEnv) {
processInjectors(roundEnv, InjectPresenter.class, ElementKind.FIELD,
injectPresenterProcessor, presenterBinderClassGenerator);
- for (TypeElement usedView : injectViewStateProcessor.getUsedViews()) {
- generateListCode(usedView, ElementKind.INTERFACE,
- viewInterfaceProcessor, viewStateClassGenerator);
- }
+ generateCode(injectViewStateProcessor.getUsedViews(), ElementKind.INTERFACE,
+ viewInterfaceProcessor, viewStateClassGenerator);
String moxyReflectorPackage = sOptions.get(OPTION_MOXY_REFLECTOR_PACKAGE);
@@ -205,42 +202,43 @@ private void processInjectors(RoundEnvironment roundEnv,
}
}
- private void generateListCode(Element element,
+ private void generateCode(Set elementSet,
ElementKind kind,
ElementProcessor> processor,
JavaFilesGenerator> classGenerator) {
- if (element.getKind() != kind) {
- getMessager().printMessage(Diagnostic.Kind.ERROR, element + " must be " + kind.name());
+ Set fileSet = new HashSet<>();
+ for (Element element : elementSet) {
+ List list = generateCode(element, kind, processor);
+ if (list != null) {
+ fileSet.addAll(classGenerator.generate(list));
+ }
+ }
+ for (JavaFile file : fileSet) {
+ createSourceFile(file);
}
-
- //noinspection unchecked
- List resultList = processor.process((E) element);
- if (resultList == null || resultList.isEmpty()) return;
-
- List fileList = classGenerator.generate(new ArrayList<>(new LinkedHashSet<>(resultList)));
- if (fileList == null || fileList.isEmpty()) return;
-
- for (JavaFile file : fileList) createSourceFile(file);
}
private void generateCode(Element element,
- ElementKind kind,
- ElementProcessor processor,
- JavaFilesGenerator classGenerator) {
- if (element.getKind() != kind) {
- getMessager().printMessage(Diagnostic.Kind.ERROR, element + " must be " + kind.name());
- }
-
- //noinspection unchecked
- R result = processor.process((E) element);
-
+ ElementKind kind,
+ ElementProcessor processor,
+ JavaFilesGenerator classGenerator) {
+ R result = generateCode(element, kind, processor);
if (result == null) return;
-
for (JavaFile file : classGenerator.generate(result)) {
createSourceFile(file);
}
}
+ private R generateCode(Element element,
+ ElementKind kind,
+ ElementProcessor processor) {
+ if (element.getKind() != kind) {
+ getMessager().printMessage(Diagnostic.Kind.ERROR, element + " must be " + kind.name());
+ }
+ //noinspection unchecked
+ return processor.process((E) element);
+ }
+
private void createSourceFile(JavaFile file) {
try {
file.writeTo(processingEnv.getFiler());
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
index 246a10ec..373f9cf6 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
@@ -51,8 +51,6 @@ public List getUsedStrategies() {
@Override
public List process(TypeElement element) {
List list = new ArrayList<>();
- MvpCompiler.getMessager().printMessage(Diagnostic.Kind.WARNING, "TypeElement " + element);
-
this.viewInterfaceElement = element;
viewInterfaceName = element.getSimpleName().toString();
From a23f1d9dd9e31291e947b56971731c6f801fd31d Mon Sep 17 00:00:00 2001
From: roman_tcaregorodtcev
Date: Mon, 7 Oct 2019 13:04:32 +0300
Subject: [PATCH 16/36] Code generation for several view interfaces refactored
---
moxy-androidx-sample/build.gradle | 2 +-
.../src/main/AndroidManifest.xml | 4 +-
.../BaseActivity.java | 2 +-
.../BaseView.java | 2 +-
.../MainActivity.kt | 11 +-
.../MainPresenter.kt | 2 +-
.../com/moxy_androidx_sample/MainView.kt | 13 ++
.../NotMainActivity.java | 2 +-
.../NotMainPresenter.java | 7 +
.../com/moxy_androidx_sample/NotMainView.java | 7 +
.../SecondInterface.kt | 2 +-
.../moxy_androidx_sample/first/FirstView.java | 12 ++
.../moxy_androidx_sample/packagee/Item.java | 4 +
.../second/SecondView.java | 9 ++
.../moxy_androidx_sample/third/ThirdView.java | 9 ++
.../com/moxy_androidx_sapmle/MainView.kt | 11 --
.../NotMainPresenter.java | 12 --
.../com/moxy_androidx_sapmle/NotMainView.java | 7 -
.../moxy_androidx_sapmle/first/FirstView.java | 11 --
.../moxy_androidx_sapmle/packagee/Item.java | 4 -
moxy-compiler/build.gradle | 2 +-
.../com/omegar/mvp/compiler/MvpCompiler.java | 12 +-
.../java/com/omegar/mvp/compiler/Util.java | 37 +++++
.../compiler/viewstate/ViewInterfaceInfo.java | 149 +++++++++++-------
.../viewstate/ViewInterfaceProcessor.java | 96 ++++++++---
.../mvp/compiler/viewstate/ViewMethod.java | 20 ++-
.../viewstate/ViewStateClassGenerator.java | 40 +++--
.../com/omegar/mvp/compiler/CompilerTest.java | 2 +-
.../omegar/mvp/tests/LocalPresenterTest.java | 2 +-
.../app/presentation/launch/LaunchFragment.kt | 3 +-
settings.gradle | 1 -
31 files changed, 334 insertions(+), 163 deletions(-)
rename moxy-androidx-sample/src/main/kotlin/example/com/{moxy_androidx_sapmle => moxy_androidx_sample}/BaseActivity.java (81%)
rename moxy-androidx-sample/src/main/kotlin/example/com/{moxy_androidx_sapmle => moxy_androidx_sample}/BaseView.java (71%)
rename moxy-androidx-sample/src/main/kotlin/example/com/{moxy_androidx_sapmle => moxy_androidx_sample}/MainActivity.kt (69%)
rename moxy-androidx-sample/src/main/kotlin/example/com/{moxy_androidx_sapmle => moxy_androidx_sample}/MainPresenter.kt (88%)
create mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainView.kt
rename moxy-androidx-sample/src/main/kotlin/example/com/{moxy_androidx_sapmle => moxy_androidx_sample}/NotMainActivity.java (76%)
create mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/NotMainPresenter.java
create mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/NotMainView.java
rename moxy-androidx-sample/src/main/kotlin/example/com/{moxy_androidx_sapmle => moxy_androidx_sample}/SecondInterface.kt (54%)
create mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java
create mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/packagee/Item.java
create mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/second/SecondView.java
create mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/third/ThirdView.java
delete mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt
delete mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java
delete mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainView.java
delete mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java
delete mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/packagee/Item.java
diff --git a/moxy-androidx-sample/build.gradle b/moxy-androidx-sample/build.gradle
index 50b4f4a0..1c76fae2 100644
--- a/moxy-androidx-sample/build.gradle
+++ b/moxy-androidx-sample/build.gradle
@@ -24,7 +24,7 @@ android {
versionCode 1
versionName "1.0"
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ testInstrumentationRunner "android.support.generateInfos.runner.AndroidJUnitRunner"
}
sourceSets {
diff --git a/moxy-androidx-sample/src/main/AndroidManifest.xml b/moxy-androidx-sample/src/main/AndroidManifest.xml
index 3c55fb75..ede65ff8 100644
--- a/moxy-androidx-sample/src/main/AndroidManifest.xml
+++ b/moxy-androidx-sample/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
+ package="example.com.moxy_androidx_sample">
-
+
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseActivity.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseActivity.java
similarity index 81%
rename from moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseActivity.java
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseActivity.java
index 664db103..7c0dc5fc 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseActivity.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseActivity.java
@@ -1,4 +1,4 @@
-package example.com.moxy_androidx_sapmle;
+package example.com.moxy_androidx_sample;
import com.omegar.mvp.MvpAppCompatActivity;
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseView.java
similarity index 71%
rename from moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseView.java
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseView.java
index 2c9ce2c9..60e2928e 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/BaseView.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseView.java
@@ -1,4 +1,4 @@
-package example.com.moxy_androidx_sapmle;
+package example.com.moxy_androidx_sample;
import com.omegar.mvp.MvpView;
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainActivity.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt
similarity index 69%
rename from moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainActivity.kt
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt
index 365ec9dc..b2bdbd43 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainActivity.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt
@@ -1,11 +1,18 @@
-package example.com.moxy_androidx_sapmle
+package example.com.moxy_androidx_sample
import android.os.Bundle
import android.util.Log
import com.omegar.mvp.presenter.InjectPresenter
-import example.com.moxy_androidx_sapmle.packagee.Item
+import example.com.moxy_androidx_sample.packagee.Item
class MainActivity : BaseActivity(), MainView, SecondInterface {
+ override fun thirdMethod() {
+ TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+ }
+
+ override fun secondMethod() {
+ TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+ }
override fun firstMethod(item: List- ) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainPresenter.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt
similarity index 88%
rename from moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainPresenter.kt
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt
index beefd6c9..b3bce4f3 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainPresenter.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt
@@ -1,4 +1,4 @@
-package example.com.moxy_androidx_sapmle
+package example.com.moxy_androidx_sample
import android.util.Log
import com.omegar.mvp.InjectViewState
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainView.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainView.kt
new file mode 100644
index 00000000..e7b153cd
--- /dev/null
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainView.kt
@@ -0,0 +1,13 @@
+package example.com.moxy_androidx_sample
+
+import example.com.moxy_androidx_sample.first.FirstView
+import example.com.moxy_androidx_sample.packagee.Item
+import example.com.moxy_androidx_sample.second.SecondView
+import example.com.moxy_androidx_sample.third.ThirdView
+import java.io.Serializable
+
+interface MainView : FirstView
- , SecondView, ThirdView, Serializable {
+
+ fun printLog(msg: Double?)
+
+}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainActivity.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/NotMainActivity.java
similarity index 76%
rename from moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainActivity.java
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/NotMainActivity.java
index b2f2d998..0916c6c8 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainActivity.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/NotMainActivity.java
@@ -1,4 +1,4 @@
-package example.com.moxy_androidx_sapmle;
+package example.com.moxy_androidx_sample;
public class NotMainActivity extends BaseActivity implements NotMainView {
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/NotMainPresenter.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/NotMainPresenter.java
new file mode 100644
index 00000000..5988d375
--- /dev/null
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/NotMainPresenter.java
@@ -0,0 +1,7 @@
+package example.com.moxy_androidx_sample;
+
+public class NotMainPresenter {
+
+
+
+}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/NotMainView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/NotMainView.java
new file mode 100644
index 00000000..313b1f7c
--- /dev/null
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/NotMainView.java
@@ -0,0 +1,7 @@
+package example.com.moxy_androidx_sample;
+
+public interface NotMainView {
+
+ void notMainFunction();
+
+}
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/SecondInterface.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/SecondInterface.kt
similarity index 54%
rename from moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/SecondInterface.kt
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/SecondInterface.kt
index b1ad0f04..9fbdd825 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/SecondInterface.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/SecondInterface.kt
@@ -1,4 +1,4 @@
-package example.com.moxy_androidx_sapmle
+package example.com.moxy_androidx_sample
interface SecondInterface {
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java
new file mode 100644
index 00000000..29f4ce19
--- /dev/null
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java
@@ -0,0 +1,12 @@
+package example.com.moxy_androidx_sample.first;
+
+import java.util.List;
+
+import example.com.moxy_androidx_sample.BaseView;
+import example.com.moxy_androidx_sample.third.ThirdView;
+
+public interface FirstView extends BaseView, ThirdView {
+
+ void firstMethod(List item);
+
+}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/packagee/Item.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/packagee/Item.java
new file mode 100644
index 00000000..648464fa
--- /dev/null
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/packagee/Item.java
@@ -0,0 +1,4 @@
+package example.com.moxy_androidx_sample.packagee;
+
+public class Item {
+}
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/second/SecondView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/second/SecondView.java
new file mode 100644
index 00000000..bd9c0ecf
--- /dev/null
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/second/SecondView.java
@@ -0,0 +1,9 @@
+package example.com.moxy_androidx_sample.second;
+
+import example.com.moxy_androidx_sample.BaseView;
+
+public interface SecondView extends BaseView {
+
+ void secondMethod();
+
+}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/third/ThirdView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/third/ThirdView.java
new file mode 100644
index 00000000..ab5a10c6
--- /dev/null
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/third/ThirdView.java
@@ -0,0 +1,9 @@
+package example.com.moxy_androidx_sample.third;
+
+import example.com.moxy_androidx_sample.BaseView;
+
+public interface ThirdView extends BaseView {
+
+ void thirdMethod();
+
+}
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt
deleted file mode 100644
index ed5a0482..00000000
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/MainView.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package example.com.moxy_androidx_sapmle
-
-import example.com.moxy_androidx_sapmle.first.FirstView
-import example.com.moxy_androidx_sapmle.packagee.Item
-import java.io.Serializable
-
-interface MainView : FirstView
- , Serializable {
-
- fun printLog(msg: Double?)
-
-}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java
deleted file mode 100644
index acbadc4c..00000000
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainPresenter.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package example.com.moxy_androidx_sapmle;
-
-import com.omegar.mvp.InjectViewState;
-import com.omegar.mvp.MvpPresenter;
-import com.omegar.mvp.MvpView;
-
-@InjectViewState
-public class NotMainPresenter extends MvpPresenter {
-
-
-
-}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainView.java
deleted file mode 100644
index 612196dc..00000000
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/NotMainView.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package example.com.moxy_androidx_sapmle;
-
-public interface NotMainView extends BaseView {
-
- void notMainFunction();
-
-}
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java
deleted file mode 100644
index 35bc478f..00000000
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/first/FirstView.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package example.com.moxy_androidx_sapmle.first;
-
-import java.util.List;
-
-import example.com.moxy_androidx_sapmle.BaseView;
-
-public interface FirstView extends BaseView{
-
- void firstMethod(List item);
-
-}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/packagee/Item.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/packagee/Item.java
deleted file mode 100644
index 740d9c53..00000000
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sapmle/packagee/Item.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package example.com.moxy_androidx_sapmle.packagee;
-
-public class Item {
-}
diff --git a/moxy-compiler/build.gradle b/moxy-compiler/build.gradle
index 7a34e47f..308ba770 100644
--- a/moxy-compiler/build.gradle
+++ b/moxy-compiler/build.gradle
@@ -263,6 +263,6 @@ dependencies {
testImplementation deps.compiletesting
testImplementation deps.asm
- // workaround to use test resources (https://stackoverflow.com/q/24870464)
+ // workaround to use generateInfos resources (https://stackoverflow.com/q/24870464)
testRuntime files(sourceSets.test.output.resourcesDir)
}
\ No newline at end of file
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
index ac5a7144..b0f71b9e 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
@@ -22,6 +22,8 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.Messager;
@@ -112,7 +114,11 @@ public boolean process(Set extends TypeElement> annotations, RoundEnvironment
} catch (RuntimeException e) {
getMessager().printMessage(Diagnostic.Kind.OTHER, "Moxy compilation failed. Could you copy stack trace above and write us (or make issue on Github)?");
e.printStackTrace();
- getMessager().printMessage(Diagnostic.Kind.ERROR, "Moxy compilation failed; see the compiler error output for details (" + e + ")");
+ String s = Stream
+ .of(e.getStackTrace())
+ .map(StackTraceElement::toString)
+ .collect(Collectors.joining("\n"));
+ getMessager().printMessage(Diagnostic.Kind.ERROR, "Moxy compilation failed; see the compiler error output for details (" + s + ")");
}
return true;
@@ -209,9 +215,7 @@ private void generateCode(Set elementSet,
Set fileSet = new HashSet<>();
for (Element element : elementSet) {
List list = generateCode(element, kind, processor);
- if (list != null) {
- fileSet.addAll(classGenerator.generate(list));
- }
+ if (list != null) fileSet.addAll(classGenerator.generate(list));
}
for (JavaFile file : fileSet) {
createSourceFile(file);
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/Util.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/Util.java
index a9ef3d47..48d2bf11 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/Util.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/Util.java
@@ -16,11 +16,17 @@
*/
package com.omegar.mvp.compiler;
+import com.omegar.mvp.MvpView;
+import com.squareup.javapoet.ClassName;
+
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
+import javax.annotation.Nullable;
import javax.lang.model.element.AnnotationMirror;
import javax.lang.model.element.AnnotationValue;
import javax.lang.model.element.Element;
@@ -41,6 +47,9 @@
*/
@SuppressWarnings("WeakerAccess")
public final class Util {
+
+ public static final ClassName MVP_VIEW_CLASS_NAME = ClassName.get(MvpView.class);
+
public static String fillGenerics(Map types, TypeMirror param) {
return fillGenerics(types, Collections.singletonList(param));
}
@@ -190,4 +199,32 @@ public static boolean hasEmptyConstructor(TypeElement element) {
public static String decapitalizeString(String string) {
return string == null || string.isEmpty() ? "" : string.length() == 1 ? string.toLowerCase() : Character.toLowerCase(string.charAt(0)) + string.substring(1);
}
+
+ public static boolean isMvpElement(TypeElement element) {
+ if (element == null) return false;
+
+ ClassName className = ClassName.get(element);
+ if (className.equals(MVP_VIEW_CLASS_NAME)) return true;
+
+ for (TypeMirror typeMirror : element.getInterfaces()) {
+ TypeElement interfaceElement = (TypeElement) ((DeclaredType) typeMirror).asElement();
+ if (isMvpElement(interfaceElement)) return true;
+ }
+ return false;
+ }
+
+ public static E lastOrNull(@Nullable Set set) {
+ if (set == null || set.isEmpty()) return null;
+ return lastOrNull(new ArrayList<>(set));
+ }
+
+ public static E lastOrNull(@Nullable List list) {
+ if (list == null || list.isEmpty()) return null;
+ return list.get(list.size() - 1);
+ }
+
+ public static TypeElement asElement(TypeMirror mirror) {
+ return (TypeElement) ((DeclaredType) mirror).asElement();
+ }
+
}
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceInfo.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceInfo.java
index abfb439f..d063b0f3 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceInfo.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceInfo.java
@@ -1,14 +1,18 @@
package com.omegar.mvp.compiler.viewstate;
+import com.omegar.mvp.compiler.Util;
import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.ParameterizedTypeName;
import com.squareup.javapoet.TypeName;
import com.squareup.javapoet.TypeVariableName;
import java.util.List;
+import java.util.function.Function;
import java.util.stream.Collectors;
+import javax.annotation.Nullable;
import javax.lang.model.element.TypeElement;
+import javax.lang.model.type.TypeMirror;
/**
* Date: 27-Jul-2017
@@ -17,60 +21,93 @@
* @author Evgeny Kursakov
*/
class ViewInterfaceInfo {
- private final TypeElement element;
- private final ClassName name;
- private final List typeVariables;
- private final List methods;
-
- ViewInterfaceInfo(TypeElement element, List methods) {
- this.element = element;
- this.name = ClassName.get(element);
- this.methods = methods;
-
- this.typeVariables = element.getTypeParameters().stream()
- .map(TypeVariableName::get)
- .collect(Collectors.toList());
- }
-
- public TypeElement getElement() {
- return element;
- }
-
- ClassName getName() {
- return name;
- }
-
- TypeName getNameWithTypeVariables() {
- if (typeVariables.isEmpty()) {
- return name;
- } else {
- TypeVariableName[] names = new TypeVariableName[typeVariables.size()];
- typeVariables.toArray(names);
-
- return ParameterizedTypeName.get(name, names);
- }
- }
-
- List getTypeVariables() {
- return typeVariables;
- }
-
- List getMethods() {
- return methods;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- ViewInterfaceInfo that = (ViewInterfaceInfo) o;
-
- return name != null ? name.equals(that.name) : that.name == null;
- }
-
- @Override
- public int hashCode() {
- return name != null ? name.hashCode() : 0;
- }
+ @Nullable
+ private final ViewInterfaceInfo superInterfaceInfo;
+ private final TypeElement element;
+ private final ClassName name;
+ private final List typeVariables;
+ private final List methods;
+ private final List superTypeMvpElements;
+
+ ViewInterfaceInfo(TypeElement element, List methods) {
+ this(null, element, methods);
+ }
+
+ ViewInterfaceInfo(@Nullable ViewInterfaceInfo superInterfaceInfo, TypeElement element, List methods) {
+ this.superInterfaceInfo = superInterfaceInfo;
+ this.element = element;
+ this.name = ClassName.get(element);
+ this.methods = methods;
+
+ this.typeVariables = element.getTypeParameters().stream()
+ .map(TypeVariableName::get)
+ .collect(Collectors.toList());
+ superTypeMvpElements = element.getInterfaces().stream()
+ .map((Function) Util::asElement)
+ .filter(Util::isMvpElement)
+ .collect(Collectors.toList());
+ }
+
+ @Nullable
+ ViewInterfaceInfo getSuperInterfaceInfo() {
+ return superInterfaceInfo;
+ }
+
+ public TypeElement getElement() {
+ return element;
+ }
+
+ ClassName getName() {
+ return name;
+ }
+
+ TypeName getNameWithTypeVariables() {
+ if (typeVariables.isEmpty()) {
+ return name;
+ } else {
+ TypeVariableName[] names = new TypeVariableName[typeVariables.size()];
+ typeVariables.toArray(names);
+
+ return ParameterizedTypeName.get(name, names);
+ }
+ }
+
+ List getTypeVariables() {
+ return typeVariables;
+ }
+
+ List getMethods() {
+ return methods;
+ }
+
+ TypeElement getSuperClassElement() {
+ return superInterfaceInfo == null ? null : superInterfaceInfo.getElement();
+ }
+
+ List getSuperTypeMvpElements() {
+ return superTypeMvpElements;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ ViewInterfaceInfo that = (ViewInterfaceInfo) o;
+
+ return name != null ? name.equals(that.name) : that.name == null;
+ }
+
+ @Override
+ public int hashCode() {
+ return name != null ? name.hashCode() : 0;
+ }
+
+ @Override
+ public String toString() {
+ return "ViewInterfaceInfo{" +
+ "superInterfaceInfo=" + superInterfaceInfo +
+ ", element=" + element +
+ '}';
+ }
}
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
index 373f9cf6..9c9db207 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
@@ -1,17 +1,17 @@
package com.omegar.mvp.compiler.viewstate;
-import com.omegar.mvp.MvpView;
import com.omegar.mvp.compiler.ElementProcessor;
import com.omegar.mvp.compiler.MvpCompiler;
import com.omegar.mvp.compiler.Util;
import com.omegar.mvp.viewstate.strategy.AddToEndStrategy;
import com.omegar.mvp.viewstate.strategy.StateStrategyType;
-import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.ParameterSpec;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -29,6 +29,10 @@
import javax.lang.model.type.TypeMirror;
import javax.tools.Diagnostic;
+import static com.omegar.mvp.compiler.Util.MVP_VIEW_CLASS_NAME;
+import static com.omegar.mvp.compiler.Util.asElement;
+import static com.omegar.mvp.compiler.Util.isMvpElement;
+
/**
* Date: 27-Jul-2017
* Time: 13:09
@@ -38,7 +42,6 @@
public class ViewInterfaceProcessor extends ElementProcessor> {
private static final String STATE_STRATEGY_TYPE_ANNOTATION = StateStrategyType.class.getName();
private static final TypeElement DEFAULT_STATE_STRATEGY = MvpCompiler.getElementUtils().getTypeElement(AddToEndStrategy.class.getCanonicalName());
- private static final ClassName MVP_VIEW_CLASS_NAME = ClassName.get(MvpView.class);
private TypeElement viewInterfaceElement;
private String viewInterfaceName;
@@ -50,7 +53,62 @@ public List getUsedStrategies() {
@Override
public List process(TypeElement element) {
- List list = new ArrayList<>();
+ List list = new ArrayList<>(generateInfos(element));
+ fillWithNotInheredMethods(list);
+ return list;
+ }
+
+ private void fillWithNotInheredMethods(List list) {
+ for (ViewInterfaceInfo info : list) {
+ List infoMethods = info.getMethods();
+
+ if (info.getSuperTypeMvpElements().size() > 1) {
+ List inheredMethods = getInheredMethods(info);
+ Set notInheredMethods = getNotInheredMethods(info, list);
+ for (ViewMethod method : notInheredMethods) {
+ if (!inheredMethods.contains(method)) infoMethods.add(method);
+ }
+ }
+ }
+ }
+
+ private List getInheredMethods(ViewInterfaceInfo info) {
+ List methods = new ArrayList<>(info.getMethods());
+
+ ViewInterfaceInfo superInterfaceInfo = info.getSuperInterfaceInfo();
+ if (superInterfaceInfo != null) methods.addAll(getInheredMethods(superInterfaceInfo));
+
+ return methods;
+ }
+
+ private Set getNotInheredMethods(ViewInterfaceInfo info, List infoList) {
+ if (info.getSuperTypeMvpElements().size() <= 1) return Collections.emptySet();
+
+ assert info.getSuperInterfaceInfo() != null;
+ TypeElement superClassElement = info.getSuperInterfaceInfo().getElement();
+
+ Set methodSet = new LinkedHashSet<>();
+ for (TypeElement element : info.getSuperTypeMvpElements()) {
+ if (!element.equals(superClassElement)) {
+ ViewInterfaceInfo infoByTypeElement = getViewInterfaceInfoByTypeElement(infoList, element);
+ if (infoByTypeElement != null) {
+ methodSet.addAll(getInheredMethods(infoByTypeElement));
+ methodSet.addAll(getNotInheredMethods(infoByTypeElement, infoList));
+ }
+ }
+ }
+ return methodSet;
+ }
+
+ private ViewInterfaceInfo getViewInterfaceInfoByTypeElement(List list, TypeElement element) {
+ for (ViewInterfaceInfo info : list) {
+ if (info.getElement().equals(element)) return info;
+ }
+ return null;
+ }
+
+ private Set generateInfos(TypeElement element) {
+ Set interfaceInfos = new LinkedHashSet<>();
this.viewInterfaceElement = element;
viewInterfaceName = element.getSimpleName().toString();
@@ -61,11 +119,16 @@ public List process(TypeElement element) {
// Get methods for input class
getMethods(element, interfaceStateStrategyType, new ArrayList<>(), methods);
- // Add methods from super interfaces
+ // Add methods from super interfaces
+ ViewInterfaceInfo superInterfaceInfo = null;
for (TypeMirror typeMirror : element.getInterfaces()) {
- final TypeElement interfaceElement = (TypeElement) ((DeclaredType) typeMirror).asElement();
+ final TypeElement interfaceElement = asElement(typeMirror);
if (isMvpElement(interfaceElement)) {
- list.addAll(process(interfaceElement));
+ Set parentInfos = generateInfos(interfaceElement);
+ if (superInterfaceInfo == null) {
+ superInterfaceInfo = Util.lastOrNull(parentInfos);
+ }
+ interfaceInfos.addAll(parentInfos);
}
}
@@ -84,23 +147,10 @@ public List process(TypeElement element) {
methodsCounter.put(method.getName(), counter);
}
- ViewInterfaceInfo info = new ViewInterfaceInfo(element, methods);
- if (!info.getName().equals(MVP_VIEW_CLASS_NAME)) list.add(info);
+ ViewInterfaceInfo info = new ViewInterfaceInfo(superInterfaceInfo, element, methods);
+ if (!info.getName().equals(MVP_VIEW_CLASS_NAME)) interfaceInfos.add(info);
- return list;
- }
-
- private boolean isMvpElement(TypeElement element) {
- if (element == null) return false;
-
- ClassName className = ClassName.get(element);
- if (className.equals(MVP_VIEW_CLASS_NAME)) return true;
-
- for (TypeMirror typeMirror : element.getInterfaces()) {
- TypeElement interfaceElement = (TypeElement) ((DeclaredType) typeMirror).asElement();
- if (isMvpElement(interfaceElement)) return true;
- }
- return false;
+ return interfaceInfos;
}
private void getMethods(TypeElement typeElement,
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewMethod.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewMethod.java
index 42626119..36336a5a 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewMethod.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewMethod.java
@@ -134,13 +134,27 @@ public boolean equals(Object o) {
ViewMethod that = (ViewMethod) o;
- return name.equals(that.name) && parameterSpecs.equals(that.parameterSpecs);
+ if (methodElement != null ? !methodElement.equals(that.methodElement) : that.methodElement != null) return false;
+ if (name != null ? !name.equals(that.name) : that.name != null) return false;
+ if (tag != null ? !tag.equals(that.tag) : that.tag != null) return false;
+ if (argumentsString != null ? !argumentsString.equals(that.argumentsString) : that.argumentsString != null) return false;
+ return uniqueSuffix != null ? uniqueSuffix.equals(that.uniqueSuffix) : that.uniqueSuffix == null;
}
@Override
public int hashCode() {
- int result = name.hashCode();
- result = 31 * result + parameterSpecs.hashCode();
+ int result = methodElement != null ? methodElement.hashCode() : 0;
+ result = 31 * result + (name != null ? name.hashCode() : 0);
+ result = 31 * result + (tag != null ? tag.hashCode() : 0);
+ result = 31 * result + (argumentsString != null ? argumentsString.hashCode() : 0);
+ result = 31 * result + (uniqueSuffix != null ? uniqueSuffix.hashCode() : 0);
return result;
}
+
+ @Override
+ public String toString() {
+ return "ViewMethod{" +
+ "name='" + name + '\'' +
+ '}';
+ }
}
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
index 0b3a107f..df3a0837 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
@@ -16,10 +16,11 @@
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Random;
-import javax.annotation.Nullable;
import javax.lang.model.element.Modifier;
import javax.lang.model.type.DeclaredType;
import javax.lang.model.type.TypeMirror;
@@ -43,29 +44,27 @@ public final class ViewStateClassGenerator extends JavaFilesGenerator
filesMap = new HashMap<>();
+
@Override
public List generate(List list) {
if (list.isEmpty()) return Collections.emptyList();
-
List fileList = new ArrayList<>();
- fileList.add(generate(list.get(0)));
-
- for (int i = 1; i < list.size(); i++) {
+ for (int i = 0; i < list.size(); i++) {
ViewInterfaceInfo info = list.get(i);
- JavaFile parentClassFile = fileList.get(fileList.size() - 1);
- ClassName parentClassName = ClassName.get(parentClassFile.packageName, parentClassFile.typeSpec.name);
-
- fileList.add(generate(info, parentClassName));
+ JavaFile javaFile = filesMap.get(info);
+ if (javaFile == null) {
+ javaFile = generate(info);
+ fileList.add(javaFile);
+ filesMap.put(info, javaFile);
+ }
+ fileList.add(javaFile);
}
return fileList;
}
private JavaFile generate(ViewInterfaceInfo viewInterfaceInfo) {
- return generate(viewInterfaceInfo, null);
- }
-
- private JavaFile generate(ViewInterfaceInfo viewInterfaceInfo, @Nullable ClassName superClassName) {
ClassName viewName = viewInterfaceInfo.getName();
TypeName nameWithTypeVariables = viewInterfaceInfo.getNameWithTypeVariables();
DeclaredType viewInterfaceType = (DeclaredType) viewInterfaceInfo.getElement().asType();
@@ -76,9 +75,18 @@ private JavaFile generate(ViewInterfaceInfo viewInterfaceInfo, @Nullable ClassNa
.addSuperinterface(nameWithTypeVariables)
.addTypeVariables(new ArrayList(viewInterfaceInfo.getTypeVariables()) {{
add(0, variableName);
- }})
- .superclass(superClassName == null ? MVP_VIEW_STATE_TYPE_NAME :
- ParameterizedTypeName.get(superClassName, generateSuperClassTypeVariables(viewInterfaceInfo, variableName)));
+ }});
+
+ ViewInterfaceInfo info = viewInterfaceInfo.getSuperInterfaceInfo();
+ if (info == null || filesMap.get(info) == null) {
+ classBuilder.superclass(MVP_VIEW_STATE_TYPE_NAME);
+ } else {
+ JavaFile file = filesMap.get(info);
+ ClassName superClassName = ClassName.get(file.packageName, file.typeSpec.name);;
+ classBuilder.superclass(
+ ParameterizedTypeName.get(superClassName, generateSuperClassTypeVariables(viewInterfaceInfo, variableName))
+ );
+ }
for (ViewMethod method : viewInterfaceInfo.getMethods()) {
TypeSpec commandClass = generateCommandClass(method, nameWithTypeVariables);
diff --git a/moxy/src/test/java/com/omegar/mvp/compiler/CompilerTest.java b/moxy/src/test/java/com/omegar/mvp/compiler/CompilerTest.java
index 5d74f934..9d632ac7 100644
--- a/moxy/src/test/java/com/omegar/mvp/compiler/CompilerTest.java
+++ b/moxy/src/test/java/com/omegar/mvp/compiler/CompilerTest.java
@@ -98,7 +98,7 @@ protected void assertCompilationResultIs(Table classNames = Lists.newArrayList();
List sourceFiles = Lists.newArrayList();
diff --git a/moxy/src/test/java/com/omegar/mvp/tests/LocalPresenterTest.java b/moxy/src/test/java/com/omegar/mvp/tests/LocalPresenterTest.java
index 31f0d7c6..c1b7832b 100644
--- a/moxy/src/test/java/com/omegar/mvp/tests/LocalPresenterTest.java
+++ b/moxy/src/test/java/com/omegar/mvp/tests/LocalPresenterTest.java
@@ -115,7 +115,7 @@ public void checkSaveState() {
mTestViewMvpDelegate.onCreate(bundle);
mTestViewMvpDelegate.onAttach();
- //TODO: should be passed! Or change test
+ //TODO: should be passed! Or change generateInfos
//assertTrue("Local presenter has different hashCode after recreate", hashCode == mDelegateLocalPresenterTestView.mInjectViewStatePresenter.hashCode());
mTestViewMvpDelegate.onDetach();
diff --git a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchFragment.kt b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchFragment.kt
index e8143226..275bf9f2 100644
--- a/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchFragment.kt
+++ b/sample-custom-strategy/src/main/kotlin/com/redmadrobot/app/presentation/launch/LaunchFragment.kt
@@ -11,11 +11,10 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import com.omegar.mvp.MvpAppCompatFragment
+
import com.omegar.mvp.presenter.InjectPresenter
import com.omegar.mvp.presenter.ProvidePresenter
import com.redmadrobot.sample_custom_strategy.R
-import kotlinx.android.synthetic.main.fragment_launch.*
class LaunchFragment : MvpAppCompatFragment(), LaunchView {
diff --git a/settings.gradle b/settings.gradle
index c4153a45..4013f683 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,7 +1,6 @@
include ':moxy', ':stub-reflector', ':moxy-android', ':moxy-compiler', ':stub-android', ':moxy-app-compat', ':moxy-androidx', ':stub-appcompat', ':stub-androidx'
include ':sample-github'
include ':sample-kotlin'
-include ':sample-custom-strategy'
include ':moxy-androidx-sample'
project(':stub-reflector').projectDir = new File('moxy/stub-reflector')
project(':stub-android').projectDir = new File('moxy-android/stub-android')
From 41c86c00691467fcb1f78f9d6a77b777245355cf Mon Sep 17 00:00:00 2001
From: roman_tcaregorodtcev
Date: Mon, 7 Oct 2019 14:00:23 +0300
Subject: [PATCH 17/36] Code generation optimized
---
.../viewstate/ViewInterfaceProcessor.java | 16 ++++++++--------
.../viewstate/ViewStateClassGenerator.java | 6 +++---
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
index 9c9db207..6f808a80 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
@@ -64,8 +64,7 @@ private void fillWithNotInheredMethods(List list) {
if (info.getSuperTypeMvpElements().size() > 1) {
List inheredMethods = getInheredMethods(info);
- Set notInheredMethods = getNotInheredMethods(info, list);
- for (ViewMethod method : notInheredMethods) {
+ for (ViewMethod method : getNotInheredMethods(info, list)) {
if (!inheredMethods.contains(method)) infoMethods.add(method);
}
}
@@ -82,18 +81,19 @@ private List getInheredMethods(ViewInterfaceInfo info) {
}
private Set getNotInheredMethods(ViewInterfaceInfo info, List infoList) {
- if (info.getSuperTypeMvpElements().size() <= 1) return Collections.emptySet();
+ List elements = info.getSuperTypeMvpElements();
+ if (elements.size() <= 1) return Collections.emptySet();
assert info.getSuperInterfaceInfo() != null;
TypeElement superClassElement = info.getSuperInterfaceInfo().getElement();
Set methodSet = new LinkedHashSet<>();
- for (TypeElement element : info.getSuperTypeMvpElements()) {
+ for (TypeElement element : elements) {
if (!element.equals(superClassElement)) {
- ViewInterfaceInfo infoByTypeElement = getViewInterfaceInfoByTypeElement(infoList, element);
- if (infoByTypeElement != null) {
- methodSet.addAll(getInheredMethods(infoByTypeElement));
- methodSet.addAll(getNotInheredMethods(infoByTypeElement, infoList));
+ ViewInterfaceInfo infoByType = getViewInterfaceInfoByTypeElement(infoList, element);
+ if (infoByType != null) {
+ methodSet.addAll(getInheredMethods(infoByType));
+ methodSet.addAll(getNotInheredMethods(infoByType, infoList));
}
}
}
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
index df3a0837..52c745ed 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
@@ -78,11 +78,11 @@ private JavaFile generate(ViewInterfaceInfo viewInterfaceInfo) {
}});
ViewInterfaceInfo info = viewInterfaceInfo.getSuperInterfaceInfo();
- if (info == null || filesMap.get(info) == null) {
+ JavaFile file = filesMap.get(info);
+ if (file == null) {
classBuilder.superclass(MVP_VIEW_STATE_TYPE_NAME);
} else {
- JavaFile file = filesMap.get(info);
- ClassName superClassName = ClassName.get(file.packageName, file.typeSpec.name);;
+ ClassName superClassName = ClassName.get(file.packageName, file.typeSpec.name);
classBuilder.superclass(
ParameterizedTypeName.get(superClassName, generateSuperClassTypeVariables(viewInterfaceInfo, variableName))
);
From f897ada3a03e861e224160927a0e4c3172008efb Mon Sep 17 00:00:00 2001
From: roman_tcaregorodtcev
Date: Mon, 7 Oct 2019 17:42:01 +0300
Subject: [PATCH 18/36] Class generator updated
---
.../mvp/compiler/viewstate/ViewStateClassGenerator.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
index 52c745ed..03ddd118 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
@@ -3,6 +3,7 @@
import com.omegar.mvp.MvpProcessor;
import com.omegar.mvp.compiler.JavaFilesGenerator;
import com.omegar.mvp.compiler.MvpCompiler;
+import com.omegar.mvp.compiler.Util;
import com.omegar.mvp.viewstate.MvpViewState;
import com.omegar.mvp.viewstate.ViewCommand;
import com.squareup.javapoet.ClassName;
@@ -89,7 +90,7 @@ private JavaFile generate(ViewInterfaceInfo viewInterfaceInfo) {
}
for (ViewMethod method : viewInterfaceInfo.getMethods()) {
- TypeSpec commandClass = generateCommandClass(method, nameWithTypeVariables);
+ TypeSpec commandClass = generateCommandClass(method);
classBuilder.addType(commandClass);
classBuilder.addMethod(generateMethod(viewInterfaceType, method, nameWithTypeVariables, commandClass));
}
@@ -102,7 +103,9 @@ private JavaFile generate(ViewInterfaceInfo viewInterfaceInfo) {
private TypeVariableName[] generateSuperClassTypeVariables(ViewInterfaceInfo viewInterfaceInfo, TypeVariableName variableName) {
List parentClassTypeVariables = new ArrayList<>();
parentClassTypeVariables.add(variableName);
- for (TypeMirror mirror : viewInterfaceInfo.getElement().getInterfaces()) {
+
+ TypeMirror mirror = Util.firstOrNull(viewInterfaceInfo.getElement().getInterfaces());
+ if (mirror != null) {
List extends TypeMirror> typeArguments = ((DeclaredType) mirror).getTypeArguments();
for (TypeMirror typeMirror : typeArguments) {
TypeName typeName = ClassName.get(typeMirror);
@@ -114,7 +117,7 @@ private TypeVariableName[] generateSuperClassTypeVariables(ViewInterfaceInfo vie
return parentClassTypeVariables.toArray(new TypeVariableName[parentClassTypeVariables.size()]);
}
- private TypeSpec generateCommandClass(ViewMethod method, TypeName viewTypeName) {
+ private TypeSpec generateCommandClass(ViewMethod method) {
MethodSpec applyMethod = MethodSpec.methodBuilder("apply")
.addAnnotation(Override.class)
.addModifiers(Modifier.PUBLIC)
From 43e914bce533971169cd1dc6f2fe8a4500a221b5 Mon Sep 17 00:00:00 2001
From: roman_tcaregorodtcev
Date: Tue, 8 Oct 2019 14:13:00 +0300
Subject: [PATCH 19/36] Adding not inhered ViewMethod logic updated
---
.../com/moxy_androidx_sample/MainActivity.kt | 16 ++++++++++-
.../com/moxy_androidx_sample/MainPresenter.kt | 2 +-
.../com/moxy_androidx_sample/MainView.kt | 7 ++---
.../moxy_androidx_sample/fifth/FifthView.java | 9 ++++++
.../moxy_androidx_sample/first/FirstView.java | 6 ++++
.../moxy_androidx_sample/fourth/FourthView.kt | 9 ++++++
.../java/com/omegar/mvp/compiler/Util.java | 5 ++++
.../viewstate/ViewInterfaceProcessor.java | 5 +++-
.../mvp/compiler/viewstate/ViewMethod.java | 28 +++++++++++++++++++
9 files changed, 80 insertions(+), 7 deletions(-)
create mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/FifthView.java
create mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fourth/FourthView.kt
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt
index b2bdbd43..61512d51 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt
@@ -1,11 +1,25 @@
package example.com.moxy_androidx_sample
+import android.location.Location
import android.os.Bundle
import android.util.Log
import com.omegar.mvp.presenter.InjectPresenter
+import example.com.moxy_androidx_sample.first.FirstView
import example.com.moxy_androidx_sample.packagee.Item
class MainActivity : BaseActivity(), MainView, SecondInterface {
+ override fun fourth(item: String?) {
+ TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+ }
+
+ override fun firstLog(m: Item?) {
+ TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+ }
+
+ override fun firstCopyMethod(item: MutableList?) {
+ TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+ }
+
override fun thirdMethod() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
@@ -26,7 +40,7 @@ class MainActivity : BaseActivity(), MainView, SecondInterface {
// setContentView(R.layout.activity_main)
}
- override fun printLog(msg: Double?) {
+ override fun printLog(msg: Double?, log: String?) {
Log.e(TAG, "printLog : msg : $msg activity hash code : ${hashCode()}")
}
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt
index b3bce4f3..48b3866c 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt
@@ -10,7 +10,7 @@ class MainPresenter : MvpPresenter() {
override fun onFirstViewAttach() {
super.onFirstViewAttach()
Log.e(MainActivity.TAG, "presenter hash code : ${hashCode()}")
- viewState.printLog(10.0)
+ viewState.printLog(10.0, "Kek")
}
}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainView.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainView.kt
index e7b153cd..314ca229 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainView.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainView.kt
@@ -1,13 +1,12 @@
package example.com.moxy_androidx_sample
+import example.com.moxy_androidx_sample.fifth.FifthView
import example.com.moxy_androidx_sample.first.FirstView
import example.com.moxy_androidx_sample.packagee.Item
import example.com.moxy_androidx_sample.second.SecondView
-import example.com.moxy_androidx_sample.third.ThirdView
-import java.io.Serializable
-interface MainView : FirstView- , SecondView, ThirdView, Serializable {
+interface MainView : FirstView
- , SecondView, FifthView {
- fun printLog(msg: Double?)
+ fun printLog(msg: Double?, log: String?)
}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/FifthView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/FifthView.java
new file mode 100644
index 00000000..42b7774f
--- /dev/null
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/FifthView.java
@@ -0,0 +1,9 @@
+package example.com.moxy_androidx_sample.fifth;
+
+import example.com.moxy_androidx_sample.fourth.FourthView;
+
+public interface FifthView extends FourthView {
+
+
+
+}
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java
index 29f4ce19..141b5eee 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java
@@ -1,5 +1,7 @@
package example.com.moxy_androidx_sample.first;
+import android.location.Location;
+
import java.util.List;
import example.com.moxy_androidx_sample.BaseView;
@@ -9,4 +11,8 @@ public interface FirstView extends BaseView, ThirdView {
void firstMethod(List item);
+ void firstCopyMethod(List item);
+
+ void firstLog(M m);
+
}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fourth/FourthView.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fourth/FourthView.kt
new file mode 100644
index 00000000..07156bc0
--- /dev/null
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fourth/FourthView.kt
@@ -0,0 +1,9 @@
+package example.com.moxy_androidx_sample.fourth
+
+import example.com.moxy_androidx_sample.BaseView
+
+interface FourthView : BaseView {
+
+ fun fourth(item: R)
+
+}
\ No newline at end of file
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/Util.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/Util.java
index 48d2bf11..c2aedc56 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/Util.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/Util.java
@@ -213,6 +213,11 @@ public static boolean isMvpElement(TypeElement element) {
return false;
}
+ public static E firstOrNull(@Nullable List list) {
+ if (list == null || list.isEmpty()) return null;
+ return list.get(0);
+ }
+
public static E lastOrNull(@Nullable Set set) {
if (set == null || set.isEmpty()) return null;
return lastOrNull(new ArrayList<>(set));
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
index 6f808a80..78c9140c 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
@@ -60,12 +60,15 @@ public List process(TypeElement element) {
private void fillWithNotInheredMethods(List list) {
for (ViewInterfaceInfo info : list) {
+ TypeElement element = info.getElement();
List infoMethods = info.getMethods();
if (info.getSuperTypeMvpElements().size() > 1) {
List inheredMethods = getInheredMethods(info);
for (ViewMethod method : getNotInheredMethods(info, list)) {
- if (!inheredMethods.contains(method)) infoMethods.add(method);
+ if (!inheredMethods.contains(method)) {
+ infoMethods.add(new ViewMethod((DeclaredType) element.asType(), method));
+ }
}
}
}
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewMethod.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewMethod.java
index 36336a5a..b523292a 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewMethod.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewMethod.java
@@ -35,6 +35,18 @@ class ViewMethod {
private String uniqueSuffix;
+ ViewMethod(DeclaredType targetInterfaceElement, ViewMethod method) {
+ this.methodElement = method.getElement();
+ this.name = method.name;
+ this.strategy = method.strategy;
+ this.tag = method.tag;
+ this.parameterSpecs = formatParameters(targetInterfaceElement, method.methodElement, method.parameterSpecs);
+ this.exceptions = method.exceptions;
+ this.typeVariables = method.typeVariables;
+ this.argumentsString = method.argumentsString;
+ this.uniqueSuffix = method.uniqueSuffix;
+ }
+
ViewMethod(DeclaredType targetInterfaceElement,
ExecutableElement methodElement,
TypeElement strategy,
@@ -78,6 +90,22 @@ class ViewMethod {
this.uniqueSuffix = "";
}
+ private List formatParameters(DeclaredType enclosingType, ExecutableElement element,
+ List parameterSpecs) {
+ List list = new ArrayList<>();
+
+ ExecutableType executableType = (ExecutableType) MvpCompiler.getTypeUtils().asMemberOf(enclosingType, element);
+ List extends TypeMirror> resolvedParameterTypes = executableType.getParameterTypes();
+
+ for (int i = 0; i < parameterSpecs.size(); i++) {
+ ParameterSpec parameter = parameterSpecs.get(i);
+ TypeName type = TypeName.get(resolvedParameterTypes.get(i));
+ list.add(ParameterSpec.builder(type, parameter.name).build());
+ }
+
+ return list;
+ }
+
ExecutableElement getElement() {
return methodElement;
}
From e9bcf240ae1d0d78db98c39493b6b43b3884544e Mon Sep 17 00:00:00 2001
From: roman_tcaregorodtcev
Date: Tue, 8 Oct 2019 14:46:14 +0300
Subject: [PATCH 20/36] time logs added
---
.../java/com/omegar/mvp/compiler/MvpCompiler.java | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
index b0f71b9e..2c989b45 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
@@ -18,10 +18,12 @@
import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -125,6 +127,7 @@ public boolean process(Set extends TypeElement> annotations, RoundEnvironment
}
private boolean throwableProcess(RoundEnvironment roundEnv) {
+ long startGeneration = new Date().getTime();
checkInjectors(roundEnv, InjectPresenter.class, new PresenterInjectorRules(ElementKind.FIELD, Modifier.PUBLIC, Modifier.DEFAULT));
InjectViewStateProcessor injectViewStateProcessor = new InjectViewStateProcessor();
@@ -138,11 +141,18 @@ private boolean throwableProcess(RoundEnvironment roundEnv) {
processInjectors(roundEnv, InjectViewState.class, ElementKind.CLASS,
injectViewStateProcessor, viewStateProviderClassGenerator);
+ long generateInjectViewState = new Date().getTime();
+ getMessager().printMessage(Diagnostic.Kind.WARNING, "generateInjectViewState " + (generateInjectViewState - startGeneration));
+
processInjectors(roundEnv, InjectPresenter.class, ElementKind.FIELD,
injectPresenterProcessor, presenterBinderClassGenerator);
+ long generateInjectPresenter = new Date().getTime();
+ getMessager().printMessage(Diagnostic.Kind.WARNING, "generateInjectPresenter " + (generateInjectPresenter - generateInjectViewState));
generateCode(injectViewStateProcessor.getUsedViews(), ElementKind.INTERFACE,
viewInterfaceProcessor, viewStateClassGenerator);
+ long generateCode = new Date().getTime();
+ getMessager().printMessage(Diagnostic.Kind.WARNING, "generateCode " + (generateCode - generateInjectPresenter));
String moxyReflectorPackage = sOptions.get(OPTION_MOXY_REFLECTOR_PACKAGE);
@@ -162,6 +172,9 @@ private boolean throwableProcess(RoundEnvironment roundEnv) {
createSourceFile(moxyReflector);
+ long createSourceFile = new Date().getTime();
+ getMessager().printMessage(Diagnostic.Kind.WARNING, "createSourceFile " + (createSourceFile - generateCode));
+
return true;
}
From 3e84b36a5362da66e5f51c2498fdb47a82f56a7b Mon Sep 17 00:00:00 2001
From: roman_tcaregorodtcev
Date: Tue, 8 Oct 2019 14:54:52 +0300
Subject: [PATCH 21/36] Time logs removed
---
.../java/com/omegar/mvp/compiler/MvpCompiler.java | 15 +--------------
1 file changed, 1 insertion(+), 14 deletions(-)
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
index 2c989b45..338389bd 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
@@ -1,5 +1,6 @@
package com.omegar.mvp.compiler;
+import com.google.auto.service.AutoService;
import com.omegar.mvp.GenerateViewState;
import com.omegar.mvp.InjectViewState;
import com.omegar.mvp.RegisterMoxyReflectorPackages;
@@ -11,19 +12,16 @@
import com.omegar.mvp.compiler.viewstateprovider.InjectViewStateProcessor;
import com.omegar.mvp.compiler.viewstateprovider.ViewStateProviderClassGenerator;
import com.omegar.mvp.presenter.InjectPresenter;
-import com.google.auto.service.AutoService;
import com.squareup.javapoet.JavaFile;
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -127,7 +125,6 @@ public boolean process(Set extends TypeElement> annotations, RoundEnvironment
}
private boolean throwableProcess(RoundEnvironment roundEnv) {
- long startGeneration = new Date().getTime();
checkInjectors(roundEnv, InjectPresenter.class, new PresenterInjectorRules(ElementKind.FIELD, Modifier.PUBLIC, Modifier.DEFAULT));
InjectViewStateProcessor injectViewStateProcessor = new InjectViewStateProcessor();
@@ -141,18 +138,11 @@ private boolean throwableProcess(RoundEnvironment roundEnv) {
processInjectors(roundEnv, InjectViewState.class, ElementKind.CLASS,
injectViewStateProcessor, viewStateProviderClassGenerator);
- long generateInjectViewState = new Date().getTime();
- getMessager().printMessage(Diagnostic.Kind.WARNING, "generateInjectViewState " + (generateInjectViewState - startGeneration));
-
processInjectors(roundEnv, InjectPresenter.class, ElementKind.FIELD,
injectPresenterProcessor, presenterBinderClassGenerator);
- long generateInjectPresenter = new Date().getTime();
- getMessager().printMessage(Diagnostic.Kind.WARNING, "generateInjectPresenter " + (generateInjectPresenter - generateInjectViewState));
generateCode(injectViewStateProcessor.getUsedViews(), ElementKind.INTERFACE,
viewInterfaceProcessor, viewStateClassGenerator);
- long generateCode = new Date().getTime();
- getMessager().printMessage(Diagnostic.Kind.WARNING, "generateCode " + (generateCode - generateInjectPresenter));
String moxyReflectorPackage = sOptions.get(OPTION_MOXY_REFLECTOR_PACKAGE);
@@ -172,9 +162,6 @@ private boolean throwableProcess(RoundEnvironment roundEnv) {
createSourceFile(moxyReflector);
- long createSourceFile = new Date().getTime();
- getMessager().printMessage(Diagnostic.Kind.WARNING, "createSourceFile " + (createSourceFile - generateCode));
-
return true;
}
From e1a97296dfee98835ae79279beaa2d40c2811e1c Mon Sep 17 00:00:00 2001
From: roman_tcaregorodtcev
Date: Tue, 8 Oct 2019 17:01:45 +0300
Subject: [PATCH 22/36] View interface inside other interface - generation bug
fixed
---
build.gradle | 2 +-
.../com/moxy_androidx_sample/MainActivity.kt | 4 ++--
.../com/moxy_androidx_sample/MainPresenter.kt | 3 ++-
.../example/com/moxy_androidx_sample/MainView.kt | 12 ------------
.../moxy_androidx_sample/contract/Contract.kt | 16 ++++++++++++++++
.../fifth/{FifthView.java => Contract.java} | 4 +++-
.../main/java/com/omegar/mvp/compiler/Util.java | 11 +++++++++++
.../viewstate/ViewStateClassGenerator.java | 6 +++---
8 files changed, 38 insertions(+), 20 deletions(-)
delete mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainView.kt
create mode 100644 moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/contract/Contract.kt
rename moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/{FifthView.java => Contract.java} (56%)
diff --git a/build.gradle b/build.gradle
index 34ec28ad..c65ae264 100644
--- a/build.gradle
+++ b/build.gradle
@@ -24,7 +24,7 @@ allprojects {
ext {
targetVersionCode = 46
targetVersionName = "1.5.6"
- kotlin_version = '1.3.21'
+ kotlin_version = '1.3.41'
deps = [
android : 'com.google.android:android:1.6_r2',
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt
index 61512d51..40c87f00 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt
@@ -4,10 +4,10 @@ import android.location.Location
import android.os.Bundle
import android.util.Log
import com.omegar.mvp.presenter.InjectPresenter
-import example.com.moxy_androidx_sample.first.FirstView
+import example.com.moxy_androidx_sample.contract.Contract
import example.com.moxy_androidx_sample.packagee.Item
-class MainActivity : BaseActivity(), MainView, SecondInterface {
+class MainActivity : BaseActivity(), Contract.MainView, SecondInterface {
override fun fourth(item: String?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt
index 48b3866c..b4e77ce0 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt
@@ -3,9 +3,10 @@ package example.com.moxy_androidx_sample
import android.util.Log
import com.omegar.mvp.InjectViewState
import com.omegar.mvp.MvpPresenter
+import example.com.moxy_androidx_sample.contract.Contract
@InjectViewState
-class MainPresenter : MvpPresenter() {
+class MainPresenter : MvpPresenter() {
override fun onFirstViewAttach() {
super.onFirstViewAttach()
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainView.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainView.kt
deleted file mode 100644
index 314ca229..00000000
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainView.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package example.com.moxy_androidx_sample
-
-import example.com.moxy_androidx_sample.fifth.FifthView
-import example.com.moxy_androidx_sample.first.FirstView
-import example.com.moxy_androidx_sample.packagee.Item
-import example.com.moxy_androidx_sample.second.SecondView
-
-interface MainView : FirstView
- , SecondView, FifthView {
-
- fun printLog(msg: Double?, log: String?)
-
-}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/contract/Contract.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/contract/Contract.kt
new file mode 100644
index 00000000..c2e62912
--- /dev/null
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/contract/Contract.kt
@@ -0,0 +1,16 @@
+package example.com.moxy_androidx_sample.contract
+
+import example.com.moxy_androidx_sample.fifth.Contract
+import example.com.moxy_androidx_sample.first.FirstView
+import example.com.moxy_androidx_sample.packagee.Item
+import example.com.moxy_androidx_sample.second.SecondView
+
+interface Contract {
+
+ interface MainView : FirstView
- , SecondView, Contract.FifthView {
+
+ fun printLog(msg: Double?, log: String?)
+
+ }
+
+}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/FifthView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/Contract.java
similarity index 56%
rename from moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/FifthView.java
rename to moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/Contract.java
index 42b7774f..6a7efbde 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/FifthView.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/Contract.java
@@ -2,8 +2,10 @@
import example.com.moxy_androidx_sample.fourth.FourthView;
-public interface FifthView extends FourthView {
+public interface Contract {
+ interface FifthView extends FourthView {
+ }
}
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/Util.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/Util.java
index c2aedc56..1fb2a909 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/Util.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/Util.java
@@ -39,6 +39,7 @@
import javax.lang.model.type.TypeMirror;
import javax.lang.model.type.TypeVariable;
import javax.lang.model.type.WildcardType;
+import javax.tools.Diagnostic;
/**
* Utilities for handling types in annotation processors
@@ -128,6 +129,16 @@ public static String getFullClassName(TypeElement typeElement) {
return packageName + className.replaceAll("\\.", "\\$");
}
+ public static String getSimpleClassName(TypeElement typeElement) {
+ String packageName = MvpCompiler.getElementUtils().getPackageOf(typeElement).getQualifiedName().toString();
+ if (packageName.length() > 0) {
+ packageName += ".";
+ }
+
+ String className = typeElement.toString().substring(packageName.length());
+ return className.replaceAll("\\.", "\\$");
+ }
+
public static AnnotationMirror getAnnotation(Element element, String annotationClass) {
for (AnnotationMirror annotationMirror : element.getAnnotationMirrors()) {
if (annotationMirror.getAnnotationType().asElement().toString().equals(annotationClass))
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
index 03ddd118..e9c2bbd5 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewStateClassGenerator.java
@@ -71,7 +71,7 @@ private JavaFile generate(ViewInterfaceInfo viewInterfaceInfo) {
DeclaredType viewInterfaceType = (DeclaredType) viewInterfaceInfo.getElement().asType();
TypeVariableName variableName = TypeVariableName.get(VIEW, nameWithTypeVariables);
- TypeSpec.Builder classBuilder = TypeSpec.classBuilder(viewName.simpleName() + MvpProcessor.VIEW_STATE_SUFFIX)
+ TypeSpec.Builder classBuilder = TypeSpec.classBuilder(Util.getSimpleClassName(viewInterfaceInfo.getElement()) + MvpProcessor.VIEW_STATE_SUFFIX)
.addModifiers(Modifier.PUBLIC)
.addSuperinterface(nameWithTypeVariables)
.addTypeVariables(new ArrayList(viewInterfaceInfo.getTypeVariables()) {{
@@ -160,8 +160,8 @@ private MethodSpec generateMethod(DeclaredType enclosingType, ViewMethod method,
.addStatement("return")
.endControlFlow()
.addCode("\n")
- .beginControlFlow("for ($T view : mViews)", viewTypeName)
- .addStatement("view.$L($L)", method.getName(), method.getArgumentsString())
+ .beginControlFlow("for ($T view$$ : mViews)", viewTypeName)
+ .addStatement("view$$.$L($L)", method.getName(), method.getArgumentsString())
.endControlFlow()
.addCode("\n")
.addStatement("mViewCommands.afterApply($L)", commandFieldName)
From 52d2850e9e31c380746bcc37dfe2720d2e018ae8 Mon Sep 17 00:00:00 2001
From: roman_tcaregorodtcev
Date: Tue, 8 Oct 2019 17:50:28 +0300
Subject: [PATCH 23/36] Default strategy removed
---
.../moxy_androidx_sample/contract/Contract.kt | 3 +++
.../com/omegar/mvp/compiler/MvpCompiler.java | 5 -----
.../viewstate/ViewInterfaceProcessor.java | 21 +++++++++++++++----
3 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/contract/Contract.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/contract/Contract.kt
index c2e62912..52080ef7 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/contract/Contract.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/contract/Contract.kt
@@ -1,5 +1,7 @@
package example.com.moxy_androidx_sample.contract
+import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy
+import com.omegar.mvp.viewstate.strategy.StateStrategyType
import example.com.moxy_androidx_sample.fifth.Contract
import example.com.moxy_androidx_sample.first.FirstView
import example.com.moxy_androidx_sample.packagee.Item
@@ -7,6 +9,7 @@ import example.com.moxy_androidx_sample.second.SecondView
interface Contract {
+ @StateStrategyType(AddToEndSingleStrategy::class)
interface MainView : FirstView
- , SecondView, Contract.FifthView {
fun printLog(msg: Double?, log: String?)
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
index 338389bd..c2eed972 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
@@ -114,11 +114,6 @@ public boolean process(Set extends TypeElement> annotations, RoundEnvironment
} catch (RuntimeException e) {
getMessager().printMessage(Diagnostic.Kind.OTHER, "Moxy compilation failed. Could you copy stack trace above and write us (or make issue on Github)?");
e.printStackTrace();
- String s = Stream
- .of(e.getStackTrace())
- .map(StackTraceElement::toString)
- .collect(Collectors.joining("\n"));
- getMessager().printMessage(Diagnostic.Kind.ERROR, "Moxy compilation failed; see the compiler error output for details (" + s + ")");
}
return true;
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
index 78c9140c..ab97249a 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
@@ -3,7 +3,6 @@
import com.omegar.mvp.compiler.ElementProcessor;
import com.omegar.mvp.compiler.MvpCompiler;
import com.omegar.mvp.compiler.Util;
-import com.omegar.mvp.viewstate.strategy.AddToEndStrategy;
import com.omegar.mvp.viewstate.strategy.StateStrategyType;
import com.squareup.javapoet.ParameterSpec;
@@ -41,7 +40,6 @@
*/
public class ViewInterfaceProcessor extends ElementProcessor> {
private static final String STATE_STRATEGY_TYPE_ANNOTATION = StateStrategyType.class.getName();
- private static final TypeElement DEFAULT_STATE_STRATEGY = MvpCompiler.getElementUtils().getTypeElement(AddToEndStrategy.class.getCanonicalName());
private TypeElement viewInterfaceElement;
private String viewInterfaceName;
@@ -157,7 +155,7 @@ private Set generateInfos(TypeElement element) {
}
private void getMethods(TypeElement typeElement,
- TypeElement defaultStrategy,
+ TypeElement parentStrategy,
List rootMethods,
List superinterfacesMethods) {
for (Element element : typeElement.getEnclosedElements()) {
@@ -189,7 +187,22 @@ private void getMethods(TypeElement typeElement,
if (strategyClassFromAnnotation != null) {
strategyClass = (TypeElement) ((DeclaredType) strategyClassFromAnnotation).asElement();
} else {
- strategyClass = defaultStrategy != null ? defaultStrategy : DEFAULT_STATE_STRATEGY;
+ if (parentStrategy != null) {
+ strategyClass = parentStrategy;
+ } else {
+ String message = String.format("You are trying generate ViewState for %s. " +
+ "But %s interface and \"%s\" method don't provide Strategy type. " +
+ "Please annotate your %s interface or method with Strategy." + "\n\n" +
+ "@StateStrategyType(AddToEndSingleStrategy::class)" + "\n" + "fun %s",
+ typeElement.getSimpleName(),
+ typeElement.getSimpleName(),
+ methodElement.getSimpleName(),
+ typeElement.getSimpleName(),
+ methodElement.getSimpleName()
+ );
+ MvpCompiler.getMessager().printMessage(Diagnostic.Kind.ERROR, message);
+ return;
+ }
}
// get tag from annotation
From 140b1538cfaad9d6f549a19177b5b9276056a121 Mon Sep 17 00:00:00 2001
From: Anton Knyazev
Date: Tue, 8 Oct 2019 18:02:30 +0300
Subject: [PATCH 24/36] Add For example
---
.../omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
index ab97249a..c3c95865 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
@@ -193,7 +193,7 @@ private void getMethods(TypeElement typeElement,
String message = String.format("You are trying generate ViewState for %s. " +
"But %s interface and \"%s\" method don't provide Strategy type. " +
"Please annotate your %s interface or method with Strategy." + "\n\n" +
- "@StateStrategyType(AddToEndSingleStrategy::class)" + "\n" + "fun %s",
+ "For example:\n@StateStrategyType(AddToEndSingleStrategy::class)" + "\n" + "fun %s",
typeElement.getSimpleName(),
typeElement.getSimpleName(),
methodElement.getSimpleName(),
From 9aeb0aec9a0a441ee857edaf86e483cb18ce30f3 Mon Sep 17 00:00:00 2001
From: roman_tcaregorodtcev
Date: Wed, 9 Oct 2019 11:58:32 +0300
Subject: [PATCH 25/36] Gradle updated; IncrementalAnnotationProcessor
annotation added
---
build.gradle | 31 +++++++++++--------
gradle/wrapper/gradle-wrapper.properties | 4 +--
moxy-androidx-sample/build.gradle | 2 +-
.../com/moxy_androidx_sample/BaseView.java | 3 ++
.../moxy_androidx_sample/fifth/Contract.java | 4 +++
.../moxy_androidx_sample/first/FirstView.java | 4 +++
.../moxy_androidx_sample/fourth/FourthView.kt | 3 ++
.../second/SecondView.java | 4 +++
.../moxy_androidx_sample/third/ThirdView.java | 4 +++
moxy-compiler/build.gradle | 5 ++-
.../com/omegar/mvp/compiler/MvpCompiler.java | 6 ++--
11 files changed, 51 insertions(+), 19 deletions(-)
diff --git a/build.gradle b/build.gradle
index c65ae264..8faa5f89 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,7 +7,7 @@ buildscript {
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.3.2'
+ classpath 'com.android.tools.build:gradle:3.4.1'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
}
}
@@ -24,20 +24,25 @@ allprojects {
ext {
targetVersionCode = 46
targetVersionName = "1.5.6"
- kotlin_version = '1.3.41'
+ kotlin_version = '1.3.50'
+ def autoServiceVersion = '1.0-rc5'
+ def gradleIncapHelperVersion = '0.2'
deps = [
- android : 'com.google.android:android:1.6_r2',
- javapoet : 'com.squareup:javapoet:1.10.0',
- junit : 'junit:junit:4.12',
- mockito : 'org.mockito:mockito-core:1.10.19',
- truth : 'com.google.truth:truth:0.34',
- robolectric : 'org.robolectric:robolectric:3.0',
- compiletesting: 'com.google.testing.compile:compile-testing:0.15',
- asm : ['org.ow2.asm:asm:6.0', 'org.ow2.asm:asm-util:6.0'],
- autoservice : 'com.google.auto.service:auto-service:1.0-rc4',
- autocommon : 'com.google.auto:auto-common:0.10',
- guava : 'com.google.guava:guava:21.0',
+ android : 'com.google.android:android:1.6_r2',
+ javapoet : 'com.squareup:javapoet:1.10.0',
+ junit : 'junit:junit:4.12',
+ mockito : 'org.mockito:mockito-core:1.10.19',
+ truth : 'com.google.truth:truth:0.34',
+ robolectric : 'org.robolectric:robolectric:3.0',
+ compiletesting : 'com.google.testing.compile:compile-testing:0.15',
+ asm : ['org.ow2.asm:asm:6.0', 'org.ow2.asm:asm-util:6.0'],
+ autoservice : "com.google.auto.service:auto-service:$autoServiceVersion",
+ autoserviceAnnotations : "com.google.auto.service:auto-service-annotations:$autoServiceVersion",
+ autocommon : 'com.google.auto:auto-common:0.10',
+ guava : 'com.google.guava:guava:21.0',
+ gradleIncapHelperAnnotations: "net.ltgt.gradle.incap:incap:$gradleIncapHelperVersion",
+ gradleIncapHelperProcessor : "net.ltgt.gradle.incap:incap-processor:$gradleIncapHelperVersion"
]
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index ee04ff52..fd97bee2 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Thu Mar 21 17:43:47 MSK 2019
+#Wed Oct 09 11:52:42 MSK 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/moxy-androidx-sample/build.gradle b/moxy-androidx-sample/build.gradle
index 1c76fae2..64f4375c 100644
--- a/moxy-androidx-sample/build.gradle
+++ b/moxy-androidx-sample/build.gradle
@@ -40,7 +40,7 @@ android {
}
dependencies {
- implementation 'androidx.appcompat:appcompat:1.0.2'
+ implementation 'androidx.appcompat:appcompat:1.1.0'
implementation project(':moxy')
implementation project(':moxy-androidx')
kapt project(':moxy-compiler')
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseView.java
index 60e2928e..4b812536 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseView.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseView.java
@@ -1,7 +1,10 @@
package example.com.moxy_androidx_sample;
import com.omegar.mvp.MvpView;
+import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy;
+import com.omegar.mvp.viewstate.strategy.StateStrategyType;
+@StateStrategyType(AddToEndSingleStrategy.class)
public interface BaseView extends MvpView {
void testFunction();
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/Contract.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/Contract.java
index 6a7efbde..db10d24b 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/Contract.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/Contract.java
@@ -1,9 +1,13 @@
package example.com.moxy_androidx_sample.fifth;
+import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy;
+import com.omegar.mvp.viewstate.strategy.StateStrategyType;
+
import example.com.moxy_androidx_sample.fourth.FourthView;
public interface Contract {
+ @StateStrategyType(AddToEndSingleStrategy.class)
interface FifthView extends FourthView {
}
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java
index 141b5eee..81c3b81c 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java
@@ -2,11 +2,15 @@
import android.location.Location;
+import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy;
+import com.omegar.mvp.viewstate.strategy.StateStrategyType;
+
import java.util.List;
import example.com.moxy_androidx_sample.BaseView;
import example.com.moxy_androidx_sample.third.ThirdView;
+@StateStrategyType(AddToEndSingleStrategy.class)
public interface FirstView extends BaseView, ThirdView {
void firstMethod(List item);
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fourth/FourthView.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fourth/FourthView.kt
index 07156bc0..fe88665b 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fourth/FourthView.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fourth/FourthView.kt
@@ -1,7 +1,10 @@
package example.com.moxy_androidx_sample.fourth
+import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy
+import com.omegar.mvp.viewstate.strategy.StateStrategyType
import example.com.moxy_androidx_sample.BaseView
+@StateStrategyType(AddToEndSingleStrategy::class)
interface FourthView : BaseView {
fun fourth(item: R)
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/second/SecondView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/second/SecondView.java
index bd9c0ecf..30b4c0da 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/second/SecondView.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/second/SecondView.java
@@ -1,7 +1,11 @@
package example.com.moxy_androidx_sample.second;
+import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy;
+import com.omegar.mvp.viewstate.strategy.StateStrategyType;
+
import example.com.moxy_androidx_sample.BaseView;
+@StateStrategyType(AddToEndSingleStrategy.class)
public interface SecondView extends BaseView {
void secondMethod();
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/third/ThirdView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/third/ThirdView.java
index ab5a10c6..766ccaf4 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/third/ThirdView.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/third/ThirdView.java
@@ -1,7 +1,11 @@
package example.com.moxy_androidx_sample.third;
+import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy;
+import com.omegar.mvp.viewstate.strategy.StateStrategyType;
+
import example.com.moxy_androidx_sample.BaseView;
+@StateStrategyType(AddToEndSingleStrategy.class)
public interface ThirdView extends BaseView {
void thirdMethod();
diff --git a/moxy-compiler/build.gradle b/moxy-compiler/build.gradle
index 308ba770..286503f3 100644
--- a/moxy-compiler/build.gradle
+++ b/moxy-compiler/build.gradle
@@ -251,8 +251,11 @@ dependencies {
implementation deps.javapoet
compileOnly deps.autocommon
- compileOnly deps.autoservice
+ compileOnly deps.autoserviceAnnotations
+ annotationProcessor deps.autoservice
compileOnly deps.guava
+ compileOnly deps.gradleIncapHelperAnnotations
+ annotationProcessor deps.gradleIncapHelperProcessor
javadocDeps project(':moxy')
javadocDeps deps.javapoet
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
index c2eed972..fdcc06bf 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
@@ -14,6 +14,9 @@
import com.omegar.mvp.presenter.InjectPresenter;
import com.squareup.javapoet.JavaFile;
+import net.ltgt.gradle.incap.IncrementalAnnotationProcessor;
+import net.ltgt.gradle.incap.IncrementalAnnotationProcessorType;
+
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
@@ -22,8 +25,6 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.Messager;
@@ -50,6 +51,7 @@
@SuppressWarnings("unused")
@AutoService(Processor.class)
+@IncrementalAnnotationProcessor(IncrementalAnnotationProcessorType.AGGREGATING)
public class MvpCompiler extends AbstractProcessor {
public static final String MOXY_REFLECTOR_DEFAULT_PACKAGE = "com.omegar.mvp";
From d7799dc0a600da1e9e6d5648d0b0d108c924f3d9 Mon Sep 17 00:00:00 2001
From: Anton Knyazev
Date: Wed, 11 Dec 2019 11:31:51 +0300
Subject: [PATCH 26/36] Remove possible annotate StateStrategyType for
interface Remove deprecreated annotation GenerateViewState
---
.../com/moxy_androidx_sample/BaseView.java | 2 +-
.../moxy_androidx_sample/contract/Contract.kt | 2 +-
.../moxy_androidx_sample/fifth/Contract.java | 1 -
.../moxy_androidx_sample/first/FirstView.java | 4 +-
.../moxy_androidx_sample/fourth/FourthView.kt | 2 +-
.../second/SecondView.java | 2 +-
.../moxy_androidx_sample/third/ThirdView.java | 2 +-
.../com/omegar/mvp/compiler/MvpCompiler.java | 4 +-
.../viewstate/ViewInterfaceProcessor.java | 66 ++++---------------
.../strategies_inheritance/ChildView.java | 3 +-
.../strategies_inheritance/ParentView.java | 4 +-
.../com/omegar/mvp/GenerateViewState.java | 17 -----
.../viewstate/strategy/StateStrategyType.java | 2 +-
.../java/com/omegar/mvp/view/ChildView.java | 2 -
.../java/com/omegar/mvp/view/ParentView.java | 2 -
...tateChildWithIncorrectStrategyTagView.java | 2 -
.../resources/view/ViewStateForClassView.java | 2 -
.../resources/view/ViewStateForNotView.java | 3 -
18 files changed, 29 insertions(+), 93 deletions(-)
delete mode 100644 moxy/src/main/java/com/omegar/mvp/GenerateViewState.java
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseView.java
index 4b812536..4a424be3 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseView.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseView.java
@@ -4,9 +4,9 @@
import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy;
import com.omegar.mvp.viewstate.strategy.StateStrategyType;
-@StateStrategyType(AddToEndSingleStrategy.class)
public interface BaseView extends MvpView {
+ @StateStrategyType(AddToEndSingleStrategy.class)
void testFunction();
}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/contract/Contract.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/contract/Contract.kt
index 52080ef7..ac4614db 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/contract/Contract.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/contract/Contract.kt
@@ -9,9 +9,9 @@ import example.com.moxy_androidx_sample.second.SecondView
interface Contract {
- @StateStrategyType(AddToEndSingleStrategy::class)
interface MainView : FirstView
- , SecondView, Contract.FifthView {
+ @StateStrategyType(AddToEndSingleStrategy::class)
fun printLog(msg: Double?, log: String?)
}
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/Contract.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/Contract.java
index db10d24b..83d9134e 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/Contract.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fifth/Contract.java
@@ -7,7 +7,6 @@
public interface Contract {
- @StateStrategyType(AddToEndSingleStrategy.class)
interface FifthView extends FourthView {
}
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java
index 81c3b81c..1d80efcf 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/first/FirstView.java
@@ -10,13 +10,15 @@
import example.com.moxy_androidx_sample.BaseView;
import example.com.moxy_androidx_sample.third.ThirdView;
-@StateStrategyType(AddToEndSingleStrategy.class)
public interface FirstView extends BaseView, ThirdView {
+ @StateStrategyType(AddToEndSingleStrategy.class)
void firstMethod(List item);
+ @StateStrategyType(AddToEndSingleStrategy.class)
void firstCopyMethod(List item);
+ @StateStrategyType(AddToEndSingleStrategy.class)
void firstLog(M m);
}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fourth/FourthView.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fourth/FourthView.kt
index fe88665b..e6af7063 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fourth/FourthView.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/fourth/FourthView.kt
@@ -4,9 +4,9 @@ import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy
import com.omegar.mvp.viewstate.strategy.StateStrategyType
import example.com.moxy_androidx_sample.BaseView
-@StateStrategyType(AddToEndSingleStrategy::class)
interface FourthView : BaseView {
+ @StateStrategyType(AddToEndSingleStrategy::class)
fun fourth(item: R)
}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/second/SecondView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/second/SecondView.java
index 30b4c0da..9d2b3606 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/second/SecondView.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/second/SecondView.java
@@ -5,9 +5,9 @@
import example.com.moxy_androidx_sample.BaseView;
-@StateStrategyType(AddToEndSingleStrategy.class)
public interface SecondView extends BaseView {
+ @StateStrategyType(AddToEndSingleStrategy.class)
void secondMethod();
}
\ No newline at end of file
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/third/ThirdView.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/third/ThirdView.java
index 766ccaf4..440f47c7 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/third/ThirdView.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/third/ThirdView.java
@@ -5,9 +5,9 @@
import example.com.moxy_androidx_sample.BaseView;
-@StateStrategyType(AddToEndSingleStrategy.class)
public interface ThirdView extends BaseView {
+ @StateStrategyType(AddToEndSingleStrategy.class)
void thirdMethod();
}
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
index fdcc06bf..2b7a7051 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/MvpCompiler.java
@@ -1,7 +1,6 @@
package com.omegar.mvp.compiler;
import com.google.auto.service.AutoService;
-import com.omegar.mvp.GenerateViewState;
import com.omegar.mvp.InjectViewState;
import com.omegar.mvp.RegisterMoxyReflectorPackages;
import com.omegar.mvp.compiler.presenterbinder.InjectPresenterProcessor;
@@ -95,8 +94,7 @@ public Set getSupportedAnnotationTypes() {
Collections.addAll(supportedAnnotationTypes,
InjectPresenter.class.getCanonicalName(),
InjectViewState.class.getCanonicalName(),
- RegisterMoxyReflectorPackages.class.getCanonicalName(),
- GenerateViewState.class.getCanonicalName());
+ RegisterMoxyReflectorPackages.class.getCanonicalName());
return supportedAnnotationTypes;
}
diff --git a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
index c3c95865..389cd44c 100644
--- a/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
+++ b/moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceProcessor.java
@@ -22,7 +22,6 @@
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.Modifier;
import javax.lang.model.element.TypeElement;
-import javax.lang.model.element.TypeParameterElement;
import javax.lang.model.type.DeclaredType;
import javax.lang.model.type.TypeKind;
import javax.lang.model.type.TypeMirror;
@@ -115,10 +114,8 @@ private Set generateInfos(TypeElement element) {
List methods = new ArrayList<>();
- TypeElement interfaceStateStrategyType = getInterfaceStateStrategyType(element);
-
// Get methods for input class
- getMethods(element, interfaceStateStrategyType, new ArrayList<>(), methods);
+ getMethods(element, new ArrayList<>(), methods);
// Add methods from super interfaces
ViewInterfaceInfo superInterfaceInfo = null;
@@ -155,7 +152,6 @@ private Set generateInfos(TypeElement element) {
}
private void getMethods(TypeElement typeElement,
- TypeElement parentStrategy,
List rootMethods,
List superinterfacesMethods) {
for (Element element : typeElement.getEnclosedElements()) {
@@ -187,22 +183,19 @@ private void getMethods(TypeElement typeElement,
if (strategyClassFromAnnotation != null) {
strategyClass = (TypeElement) ((DeclaredType) strategyClassFromAnnotation).asElement();
} else {
- if (parentStrategy != null) {
- strategyClass = parentStrategy;
- } else {
- String message = String.format("You are trying generate ViewState for %s. " +
- "But %s interface and \"%s\" method don't provide Strategy type. " +
- "Please annotate your %s interface or method with Strategy." + "\n\n" +
- "For example:\n@StateStrategyType(AddToEndSingleStrategy::class)" + "\n" + "fun %s",
- typeElement.getSimpleName(),
- typeElement.getSimpleName(),
- methodElement.getSimpleName(),
- typeElement.getSimpleName(),
- methodElement.getSimpleName()
- );
- MvpCompiler.getMessager().printMessage(Diagnostic.Kind.ERROR, message);
- return;
- }
+ String message = String.format("You are trying generate ViewState for %s. " +
+ "But %s interface and \"%s\" method don't provide Strategy type. " +
+ "Please annotate your %s interface or method with Strategy." + "\n\n" +
+ "For example:\n@StateStrategyType(AddToEndSingleStrategy::class)" + "\n" + "fun %s",
+ typeElement.getSimpleName(),
+ typeElement.getSimpleName(),
+ methodElement.getSimpleName(),
+ typeElement.getSimpleName(),
+ methodElement.getSimpleName()
+ );
+ MvpCompiler.getMessager().printMessage(Diagnostic.Kind.ERROR, message);
+ return;
+
}
// get tag from annotation
@@ -259,37 +252,6 @@ private void checkStrategyAndTagEquals(ViewMethod method, ViewMethod existingMet
}
}
- private List iterateInterfaces(TypeElement parentElement,
- TypeElement parentDefaultStrategy,
- List rootMethods,
- List superinterfacesMethods) {
- for (TypeMirror typeMirror : parentElement.getInterfaces()) {
- final TypeElement anInterface = (TypeElement) ((DeclaredType) typeMirror).asElement();
- final List extends TypeMirror> typeArguments = ((DeclaredType) typeMirror).getTypeArguments();
- final List extends TypeParameterElement> typeParameters = anInterface.getTypeParameters();
- if (typeArguments.size() > typeParameters.size()) {
- throw new IllegalArgumentException("Code generation for interface " + anInterface.getSimpleName() + " failed. Simplify your generics.");
- }
-
- TypeElement defaultStrategy = parentDefaultStrategy != null ? parentDefaultStrategy : getInterfaceStateStrategyType(anInterface);
-
- getMethods(anInterface, defaultStrategy, rootMethods, superinterfacesMethods);
-
- iterateInterfaces(anInterface, defaultStrategy, rootMethods, superinterfacesMethods);
- }
-
- return superinterfacesMethods;
- }
-
- private TypeElement getInterfaceStateStrategyType(TypeElement typeElement) {
- AnnotationMirror annotation = Util.getAnnotation(typeElement, STATE_STRATEGY_TYPE_ANNOTATION);
- TypeMirror value = Util.getAnnotationValueAsTypeMirror(annotation, "value");
- if (value != null && value.getKind() == TypeKind.DECLARED) {
- return (TypeElement) ((DeclaredType) value).asElement();
- } else {
- return null;
- }
- }
}
diff --git a/moxy-compiler/src/test/resources/view/strategies_inheritance/ChildView.java b/moxy-compiler/src/test/resources/view/strategies_inheritance/ChildView.java
index a3363a6e..b15cb28e 100644
--- a/moxy-compiler/src/test/resources/view/strategies_inheritance/ChildView.java
+++ b/moxy-compiler/src/test/resources/view/strategies_inheritance/ChildView.java
@@ -5,13 +5,14 @@
import view.strategies_inheritance.strategies.ChildDefaultStrategy;
import view.strategies_inheritance.strategies.Strategy2;
-@StateStrategyType(ChildDefaultStrategy.class)
public interface ChildView extends ParentView {
+ @StateStrategyType(ChildDefaultStrategy.class)
void parentMethod1(); // ParentDefaultStrategy -> ChildDefaultStrategy
@StateStrategyType(Strategy2.class)
void parentMethod2(); // ParentDefaultStrategy -> Strategy2
+ @StateStrategyType(ChildDefaultStrategy.class)
void childMethod(); // ChildDefaultStrategy
@StateStrategyType(Strategy2.class)
diff --git a/moxy-compiler/src/test/resources/view/strategies_inheritance/ParentView.java b/moxy-compiler/src/test/resources/view/strategies_inheritance/ParentView.java
index 27329016..04a17f22 100644
--- a/moxy-compiler/src/test/resources/view/strategies_inheritance/ParentView.java
+++ b/moxy-compiler/src/test/resources/view/strategies_inheritance/ParentView.java
@@ -6,12 +6,14 @@
import view.strategies_inheritance.strategies.ParentDefaultStrategy;
import view.strategies_inheritance.strategies.Strategy1;
-@StateStrategyType(ParentDefaultStrategy.class)
public interface ParentView extends MvpView {
+ @StateStrategyType(ParentDefaultStrategy.class)
void parentMethod1(); // ParentDefaultStrategy
+ @StateStrategyType(ParentDefaultStrategy.class)
void parentMethod2(); // ParentDefaultStrategy
+ @StateStrategyType(ParentDefaultStrategy.class)
void parentMethod3(); // ParentDefaultStrategy
@StateStrategyType(Strategy1.class)
diff --git a/moxy/src/main/java/com/omegar/mvp/GenerateViewState.java b/moxy/src/main/java/com/omegar/mvp/GenerateViewState.java
deleted file mode 100644
index df18e70d..00000000
--- a/moxy/src/main/java/com/omegar/mvp/GenerateViewState.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.omegar.mvp;
-
-import java.lang.annotation.Target;
-
-
-import static java.lang.annotation.ElementType.TYPE;
-
-/**
- *
Generate view state class for annotated view interface.
- * Generated class implements this view interface.
- *
- * @deprecated As of release 0.4.1, {@link InjectViewState} generate view state, if it needed
- */
-@Target(value = TYPE)
-@Deprecated
-public @interface GenerateViewState {
-}
diff --git a/moxy/src/main/java/com/omegar/mvp/viewstate/strategy/StateStrategyType.java b/moxy/src/main/java/com/omegar/mvp/viewstate/strategy/StateStrategyType.java
index f073d8d8..b7a91fcd 100644
--- a/moxy/src/main/java/com/omegar/mvp/viewstate/strategy/StateStrategyType.java
+++ b/moxy/src/main/java/com/omegar/mvp/viewstate/strategy/StateStrategyType.java
@@ -12,7 +12,7 @@
* @author Yuri Shmakov
* @author Alexander Blinov
*/
-@Target(value = {ElementType.TYPE, ElementType.METHOD})
+@Target(value = {ElementType.METHOD})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface StateStrategyType {
Class extends StateStrategy> value();
diff --git a/moxy/src/test/java/com/omegar/mvp/view/ChildView.java b/moxy/src/test/java/com/omegar/mvp/view/ChildView.java
index acc84988..acdf1473 100644
--- a/moxy/src/test/java/com/omegar/mvp/view/ChildView.java
+++ b/moxy/src/test/java/com/omegar/mvp/view/ChildView.java
@@ -1,6 +1,5 @@
package com.omegar.mvp.view;
-import com.omegar.mvp.GenerateViewState;
import com.omegar.mvp.viewstate.strategy.SkipStrategy;
import com.omegar.mvp.viewstate.strategy.StateStrategyType;
@@ -10,7 +9,6 @@
*
* @author Savin Mikhail
*/
-@GenerateViewState
@StateStrategyType(SkipStrategy.class)
public interface ChildView extends ParentView, SimpleInterface {
@Override
diff --git a/moxy/src/test/java/com/omegar/mvp/view/ParentView.java b/moxy/src/test/java/com/omegar/mvp/view/ParentView.java
index a70ac0ab..a7802c32 100644
--- a/moxy/src/test/java/com/omegar/mvp/view/ParentView.java
+++ b/moxy/src/test/java/com/omegar/mvp/view/ParentView.java
@@ -1,6 +1,5 @@
package com.omegar.mvp.view;
-import com.omegar.mvp.GenerateViewState;
import com.omegar.mvp.MvpView;
import com.omegar.mvp.viewstate.strategy.AddToEndSingleStrategy;
import com.omegar.mvp.viewstate.strategy.StateStrategyType;
@@ -11,7 +10,6 @@
*
* @author Savin Mikhail
*/
-@GenerateViewState
public interface ParentView extends MvpView {
void withoutStrategyMethod();
diff --git a/moxy/src/test/resources/view/ViewStateChildWithIncorrectStrategyTagView.java b/moxy/src/test/resources/view/ViewStateChildWithIncorrectStrategyTagView.java
index b72fdd7c..59a6a46d 100644
--- a/moxy/src/test/resources/view/ViewStateChildWithIncorrectStrategyTagView.java
+++ b/moxy/src/test/resources/view/ViewStateChildWithIncorrectStrategyTagView.java
@@ -1,6 +1,5 @@
package view;
-import com.omegar.mvp.GenerateViewState;
/**
* Date: 26.02.2016
@@ -8,7 +7,6 @@
*
* @author Savin Mikhail
*/
-@GenerateViewState
public interface ViewStateChildWithIncorrectStrategyTagView extends ViewStateParentView, ViewStateParentStrategyTagView {
}
diff --git a/moxy/src/test/resources/view/ViewStateForClassView.java b/moxy/src/test/resources/view/ViewStateForClassView.java
index d260098a..215bf6a7 100644
--- a/moxy/src/test/resources/view/ViewStateForClassView.java
+++ b/moxy/src/test/resources/view/ViewStateForClassView.java
@@ -1,6 +1,5 @@
package view;
-import com.omegar.mvp.GenerateViewState;
import com.omegar.mvp.MvpView;
/**
@@ -9,7 +8,6 @@
*
* @author Savin Mikhail
*/
-@GenerateViewState
public class ViewStateForClassView implements MvpView {
public void showProgress() {
diff --git a/moxy/src/test/resources/view/ViewStateForNotView.java b/moxy/src/test/resources/view/ViewStateForNotView.java
index 0fbdf729..6f6ec713 100644
--- a/moxy/src/test/resources/view/ViewStateForNotView.java
+++ b/moxy/src/test/resources/view/ViewStateForNotView.java
@@ -1,13 +1,10 @@
package view;
-import com.omegar.mvp.GenerateViewState;
-
/**
* Date: 26.02.2016
* Time: 11:08
*
* @author Savin Mikhail
*/
-@GenerateViewState
public interface ViewStateForNotView {
}
From 0b6c05cec7ab8415728cdcf03d61a7f3f9280d0a Mon Sep 17 00:00:00 2001
From: Anton Knyazev
Date: Mon, 23 Mar 2020 16:58:54 +0300
Subject: [PATCH 27/36] Make injectviewstate not required
---
.../kotlin/example/com/moxy_androidx_sample/MainPresenter.kt | 1 -
moxy/src/main/java/com/omegar/mvp/InjectViewState.java | 2 ++
moxy/src/main/java/com/omegar/mvp/MvpPresenter.java | 1 +
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt
index b4e77ce0..42a1539b 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainPresenter.kt
@@ -5,7 +5,6 @@ import com.omegar.mvp.InjectViewState
import com.omegar.mvp.MvpPresenter
import example.com.moxy_androidx_sample.contract.Contract
-@InjectViewState
class MainPresenter : MvpPresenter() {
override fun onFirstViewAttach() {
diff --git a/moxy/src/main/java/com/omegar/mvp/InjectViewState.java b/moxy/src/main/java/com/omegar/mvp/InjectViewState.java
index b3cad3e0..2b1f84a1 100644
--- a/moxy/src/main/java/com/omegar/mvp/InjectViewState.java
+++ b/moxy/src/main/java/com/omegar/mvp/InjectViewState.java
@@ -1,5 +1,6 @@
package com.omegar.mvp;
+import java.lang.annotation.Inherited;
import java.lang.annotation.Target;
import com.omegar.mvp.viewstate.MvpViewState;
@@ -15,6 +16,7 @@
* code, that broke your app.
*/
@Target(value = TYPE)
+@Inherited
public @interface InjectViewState {
Class extends MvpViewState> value() default DefaultViewState.class;
diff --git a/moxy/src/main/java/com/omegar/mvp/MvpPresenter.java b/moxy/src/main/java/com/omegar/mvp/MvpPresenter.java
index fe411806..98b8d65e 100644
--- a/moxy/src/main/java/com/omegar/mvp/MvpPresenter.java
+++ b/moxy/src/main/java/com/omegar/mvp/MvpPresenter.java
@@ -15,6 +15,7 @@
* @author Alexander Blinov
* @author Konstantin Tckhovrebov
*/
+@InjectViewState
public abstract class MvpPresenter {
private boolean mFirstLaunch = true;
private String mTag;
From 71cace7969dda9b7ab4e996ada4bd40b15c6c737 Mon Sep 17 00:00:00 2001
From: Anton Knyazev
Date: Mon, 23 Mar 2020 16:59:26 +0300
Subject: [PATCH 28/36] Fix save state for child fragment
---
moxy/src/main/java/com/omegar/mvp/MvpDelegate.java | 1 +
1 file changed, 1 insertion(+)
diff --git a/moxy/src/main/java/com/omegar/mvp/MvpDelegate.java b/moxy/src/main/java/com/omegar/mvp/MvpDelegate.java
index 5586812f..224fee64 100644
--- a/moxy/src/main/java/com/omegar/mvp/MvpDelegate.java
+++ b/moxy/src/main/java/com/omegar/mvp/MvpDelegate.java
@@ -194,6 +194,7 @@ public void onDestroyView() {
childDelegatesClone.addAll(mChildDelegates);
for (MvpDelegate childDelegate : childDelegatesClone) {
+ childDelegate.onSaveInstanceState();
childDelegate.onDestroyView();
}
From e9a1d7d23071a4d111911d39522ba01be4af593d Mon Sep 17 00:00:00 2001
From: just-d-a
Date: Wed, 14 Oct 2020 17:21:00 +0300
Subject: [PATCH 29/36] add feature for androidx
---
.../com/moxy_androidx_sample/BaseActivity.java | 11 +++++++++++
.../com/omegar/mvp/MvpAppCompatActivity.java | 11 +++++++++++
moxy-androidx/stub-androidx/build.gradle | 1 +
.../appcompat/app/AppCompatActivity.java | 11 +++++++++++
.../androidx/fragment/app/FragmentActivity.java | 10 ++++++++++
.../com/omegar/mvp/annotation/ContentView.java | 12 ++++++++++++
.../com/omegar/mvp/annotation/LayoutRes.java | 17 +++++++++++++++++
7 files changed, 73 insertions(+)
create mode 100644 moxy/src/main/java/com/omegar/mvp/annotation/ContentView.java
create mode 100644 moxy/src/main/java/com/omegar/mvp/annotation/LayoutRes.java
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseActivity.java b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseActivity.java
index 7c0dc5fc..238bf45f 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseActivity.java
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/BaseActivity.java
@@ -1,9 +1,20 @@
package example.com.moxy_androidx_sample;
+import androidx.annotation.ContentView;
+import androidx.annotation.LayoutRes;
import com.omegar.mvp.MvpAppCompatActivity;
public abstract class BaseActivity extends MvpAppCompatActivity implements BaseView {
+ public BaseActivity() {
+ super();
+ }
+
+ @ContentView
+ public BaseActivity(@LayoutRes int contentLayoutId) {
+ super(contentLayoutId);
+ }
+
@Override
public void testFunction() {
diff --git a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatActivity.java b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatActivity.java
index d5f03d20..1eb51959 100755
--- a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatActivity.java
+++ b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatActivity.java
@@ -3,6 +3,8 @@
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
+import com.omegar.mvp.annotation.ContentView;
+import com.omegar.mvp.annotation.LayoutRes;
/**
* Date: 25-July-18
@@ -14,6 +16,15 @@
public class MvpAppCompatActivity extends AppCompatActivity {
private MvpDelegate extends MvpAppCompatActivity> mMvpDelegate;
+ public MvpAppCompatActivity() {
+ super();
+ }
+
+ @ContentView
+ public MvpAppCompatActivity(@LayoutRes int contentLayoutId) {
+ super(contentLayoutId);
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/moxy-androidx/stub-androidx/build.gradle b/moxy-androidx/stub-androidx/build.gradle
index d6d06d13..4ad37f46 100755
--- a/moxy-androidx/stub-androidx/build.gradle
+++ b/moxy-androidx/stub-androidx/build.gradle
@@ -4,5 +4,6 @@ sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
dependencies {
+ implementation project(path: ':moxy')
compileOnly deps.android
}
diff --git a/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatActivity.java b/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatActivity.java
index 6dc4e354..cef5d79b 100755
--- a/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatActivity.java
+++ b/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatActivity.java
@@ -3,6 +3,8 @@
import android.os.Bundle;
import androidx.fragment.app.FragmentActivity;
+import com.omegar.mvp.annotation.ContentView;
+import com.omegar.mvp.annotation.LayoutRes;
/**
* Date: 25-July-18
@@ -13,6 +15,15 @@
public class AppCompatActivity extends FragmentActivity {
+ public AppCompatActivity() {
+ super();
+ }
+
+ @ContentView
+ public AppCompatActivity(@LayoutRes int contentLayoutId) {
+ super(contentLayoutId);
+ }
+
protected void onCreate(Bundle savedInstanceState) {
throw new RuntimeException("Stub!");
}
diff --git a/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/FragmentActivity.java b/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/FragmentActivity.java
index ff2e0765..fc64024c 100644
--- a/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/FragmentActivity.java
+++ b/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/FragmentActivity.java
@@ -1,5 +1,7 @@
package androidx.fragment.app;
+import com.omegar.mvp.annotation.LayoutRes;
+
/**
* Date: 25-July-18
* Time: 4:41
@@ -8,6 +10,14 @@
*/
public class FragmentActivity {
+
+ public FragmentActivity() {
+ super();
+ }
+ public FragmentActivity(@LayoutRes int contentLayoutId) {
+ super();
+ }
+
public boolean isFinishing() {
throw new RuntimeException("Stub!");
}
diff --git a/moxy/src/main/java/com/omegar/mvp/annotation/ContentView.java b/moxy/src/main/java/com/omegar/mvp/annotation/ContentView.java
new file mode 100644
index 00000000..936dbce1
--- /dev/null
+++ b/moxy/src/main/java/com/omegar/mvp/annotation/ContentView.java
@@ -0,0 +1,12 @@
+package com.omegar.mvp.annotation;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
+import static java.lang.annotation.RetentionPolicy.CLASS;
+
+@Retention(CLASS)
+@Target({CONSTRUCTOR})
+public @interface ContentView {
+}
\ No newline at end of file
diff --git a/moxy/src/main/java/com/omegar/mvp/annotation/LayoutRes.java b/moxy/src/main/java/com/omegar/mvp/annotation/LayoutRes.java
new file mode 100644
index 00000000..845ef367
--- /dev/null
+++ b/moxy/src/main/java/com/omegar/mvp/annotation/LayoutRes.java
@@ -0,0 +1,17 @@
+package com.omegar.mvp.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.LOCAL_VARIABLE;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.CLASS;
+
+@Documented
+@Retention(CLASS)
+@Target({METHOD, PARAMETER, FIELD, LOCAL_VARIABLE})
+public @interface LayoutRes {
+}
From 7cdb28c68dc40fe59ef37ba42181b910722988a6 Mon Sep 17 00:00:00 2001
From: just-d-a
Date: Wed, 14 Oct 2020 19:37:10 +0300
Subject: [PATCH 30/36] add androidx annotations path
---
.../kotlin/example/com/moxy_androidx_sample/MainActivity.kt | 2 +-
.../src/main/java/com/omegar/mvp/MvpAppCompatActivity.java | 5 +++--
.../src/main/java/androidx}/annotation/ContentView.java | 2 +-
.../src/main/java/androidx}/annotation/LayoutRes.java | 2 +-
.../main/java/androidx/appcompat/app/AppCompatActivity.java | 5 +++--
.../main/java/androidx/fragment/app/FragmentActivity.java | 2 +-
6 files changed, 10 insertions(+), 8 deletions(-)
rename {moxy/src/main/java/com/omegar/mvp => moxy-androidx/stub-androidx/src/main/java/androidx}/annotation/ContentView.java (88%)
rename {moxy/src/main/java/com/omegar/mvp => moxy-androidx/stub-androidx/src/main/java/androidx}/annotation/LayoutRes.java (93%)
diff --git a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt
index 40c87f00..18cd8699 100644
--- a/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt
+++ b/moxy-androidx-sample/src/main/kotlin/example/com/moxy_androidx_sample/MainActivity.kt
@@ -7,7 +7,7 @@ import com.omegar.mvp.presenter.InjectPresenter
import example.com.moxy_androidx_sample.contract.Contract
import example.com.moxy_androidx_sample.packagee.Item
-class MainActivity : BaseActivity(), Contract.MainView, SecondInterface {
+class MainActivity : BaseActivity(R.layout.activity_main), Contract.MainView, SecondInterface {
override fun fourth(item: String?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
diff --git a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatActivity.java b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatActivity.java
index 1eb51959..d3fb0cc5 100755
--- a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatActivity.java
+++ b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatActivity.java
@@ -2,9 +2,10 @@
import android.os.Bundle;
+import androidx.annotation.ContentView;
+import androidx.annotation.LayoutRes;
import androidx.appcompat.app.AppCompatActivity;
-import com.omegar.mvp.annotation.ContentView;
-import com.omegar.mvp.annotation.LayoutRes;
+
/**
* Date: 25-July-18
diff --git a/moxy/src/main/java/com/omegar/mvp/annotation/ContentView.java b/moxy-androidx/stub-androidx/src/main/java/androidx/annotation/ContentView.java
similarity index 88%
rename from moxy/src/main/java/com/omegar/mvp/annotation/ContentView.java
rename to moxy-androidx/stub-androidx/src/main/java/androidx/annotation/ContentView.java
index 936dbce1..f5b7d6ac 100644
--- a/moxy/src/main/java/com/omegar/mvp/annotation/ContentView.java
+++ b/moxy-androidx/stub-androidx/src/main/java/androidx/annotation/ContentView.java
@@ -1,4 +1,4 @@
-package com.omegar.mvp.annotation;
+package androidx.annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
diff --git a/moxy/src/main/java/com/omegar/mvp/annotation/LayoutRes.java b/moxy-androidx/stub-androidx/src/main/java/androidx/annotation/LayoutRes.java
similarity index 93%
rename from moxy/src/main/java/com/omegar/mvp/annotation/LayoutRes.java
rename to moxy-androidx/stub-androidx/src/main/java/androidx/annotation/LayoutRes.java
index 845ef367..9e4757b1 100644
--- a/moxy/src/main/java/com/omegar/mvp/annotation/LayoutRes.java
+++ b/moxy-androidx/stub-androidx/src/main/java/androidx/annotation/LayoutRes.java
@@ -1,4 +1,4 @@
-package com.omegar.mvp.annotation;
+package androidx.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
diff --git a/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatActivity.java b/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatActivity.java
index cef5d79b..811867d0 100755
--- a/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatActivity.java
+++ b/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatActivity.java
@@ -2,9 +2,10 @@
import android.os.Bundle;
+import androidx.annotation.ContentView;
+import androidx.annotation.LayoutRes;
import androidx.fragment.app.FragmentActivity;
-import com.omegar.mvp.annotation.ContentView;
-import com.omegar.mvp.annotation.LayoutRes;
+
/**
* Date: 25-July-18
diff --git a/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/FragmentActivity.java b/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/FragmentActivity.java
index fc64024c..98a35c26 100644
--- a/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/FragmentActivity.java
+++ b/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/FragmentActivity.java
@@ -1,6 +1,6 @@
package androidx.fragment.app;
-import com.omegar.mvp.annotation.LayoutRes;
+import androidx.annotation.LayoutRes;
/**
* Date: 25-July-18
From de23332ca3b87c0d90c3ea3b4c656cdf8b9d277f Mon Sep 17 00:00:00 2001
From: just-d-a
Date: Wed, 14 Oct 2020 19:41:01 +0300
Subject: [PATCH 31/36] delete moxy implementation
---
moxy-androidx/stub-androidx/build.gradle | 1 -
1 file changed, 1 deletion(-)
diff --git a/moxy-androidx/stub-androidx/build.gradle b/moxy-androidx/stub-androidx/build.gradle
index 4ad37f46..d6d06d13 100755
--- a/moxy-androidx/stub-androidx/build.gradle
+++ b/moxy-androidx/stub-androidx/build.gradle
@@ -4,6 +4,5 @@ sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
dependencies {
- implementation project(path: ':moxy')
compileOnly deps.android
}
From 53af46f9989a65e5bb778a75548941fe67a0f20e Mon Sep 17 00:00:00 2001
From: just-d-a
Date: Thu, 15 Oct 2020 11:10:19 +0300
Subject: [PATCH 32/36] add constructors to fragments
---
.../main/java/com/omegar/mvp/MvpAppCompatActivity.java | 8 ++------
.../com/omegar/mvp/MvpAppCompatDialogFragment.java | 10 ++++++++++
.../main/java/com/omegar/mvp/MvpAppCompatFragment.java | 6 ++++++
.../com/omegar/mvp/MvpBottomSheetDialogFragment.java | 5 +++++
.../appcompat/app/AppCompatDialogFragment.java | 7 +++++++
.../java/androidx/fragment/app/DialogFragment.java | 6 ++++++
.../src/main/java/androidx/fragment/app/Fragment.java | 6 ++++++
.../bottomsheet/BottomSheetDialogFragment.java | 3 +++
8 files changed, 45 insertions(+), 6 deletions(-)
diff --git a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatActivity.java b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatActivity.java
index d3fb0cc5..85e4b6d5 100755
--- a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatActivity.java
+++ b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatActivity.java
@@ -17,14 +17,10 @@
public class MvpAppCompatActivity extends AppCompatActivity {
private MvpDelegate extends MvpAppCompatActivity> mMvpDelegate;
- public MvpAppCompatActivity() {
- super();
- }
+ public MvpAppCompatActivity() { super(); }
@ContentView
- public MvpAppCompatActivity(@LayoutRes int contentLayoutId) {
- super(contentLayoutId);
- }
+ public MvpAppCompatActivity(@LayoutRes int contentLayoutId) { super(contentLayoutId); }
@Override
protected void onCreate(Bundle savedInstanceState) {
diff --git a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatDialogFragment.java b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatDialogFragment.java
index 9d1fd2b4..d581320d 100644
--- a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatDialogFragment.java
+++ b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatDialogFragment.java
@@ -3,6 +3,8 @@
import android.os.Build;
import android.os.Bundle;
+import androidx.annotation.ContentView;
+import androidx.annotation.LayoutRes;
import androidx.appcompat.app.AppCompatDialogFragment;
import androidx.fragment.app.Fragment;
@@ -11,6 +13,14 @@ public class MvpAppCompatDialogFragment extends AppCompatDialogFragment {
private boolean mIsStateSaved;
private MvpDelegate extends MvpAppCompatDialogFragment> mMvpDelegate;
+ public MvpAppCompatDialogFragment() { super(); }
+
+ @ContentView
+ public MvpAppCompatDialogFragment(@LayoutRes int contentLayoutId) {
+ super(contentLayoutId);
+ }
+
+
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatFragment.java b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatFragment.java
index 38babd6e..ed4f4b42 100644
--- a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatFragment.java
+++ b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatFragment.java
@@ -1,6 +1,8 @@
package com.omegar.mvp;
import android.os.Bundle;
+
+import androidx.annotation.LayoutRes;
import androidx.fragment.app.Fragment;
/**
@@ -17,6 +19,10 @@ public class MvpAppCompatFragment extends Fragment {
private MvpDelegate extends MvpAppCompatFragment> mMvpDelegate;
+ public MvpAppCompatFragment() { super(); }
+
+ public MvpAppCompatFragment(@LayoutRes int contentLayoutId) { super(); }
+
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java b/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java
index bf70340f..7e55b499 100644
--- a/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java
+++ b/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java
@@ -3,6 +3,7 @@
import android.os.Build;
import android.os.Bundle;
+import androidx.annotation.LayoutRes;
import androidx.fragment.app.Fragment;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
@@ -12,6 +13,10 @@ public class MvpBottomSheetDialogFragment extends BottomSheetDialogFragment {
private boolean mIsStateSaved;
private MvpDelegate extends MvpBottomSheetDialogFragment> mMvpDelegate;
+ public MvpBottomSheetDialogFragment() { super(); }
+
+ public MvpBottomSheetDialogFragment(@LayoutRes int contentLayoutId) { super(); }
+
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatDialogFragment.java b/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatDialogFragment.java
index 3cd337eb..b4203df1 100644
--- a/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatDialogFragment.java
+++ b/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatDialogFragment.java
@@ -1,5 +1,7 @@
package androidx.appcompat.app;
+import androidx.annotation.ContentView;
+import androidx.annotation.LayoutRes;
import androidx.fragment.app.DialogFragment;
/**
@@ -9,5 +11,10 @@
* @author R12rus
*/
public class AppCompatDialogFragment extends DialogFragment {
+ public AppCompatDialogFragment() { super(); }
+ @ContentView
+ public AppCompatDialogFragment(@LayoutRes int contentLayoutId) {
+ super(contentLayoutId);
+ }
}
\ No newline at end of file
diff --git a/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/DialogFragment.java b/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/DialogFragment.java
index 125a4921..3f353511 100644
--- a/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/DialogFragment.java
+++ b/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/DialogFragment.java
@@ -1,5 +1,8 @@
package androidx.fragment.app;
+import androidx.annotation.ContentView;
+import androidx.annotation.LayoutRes;
+
/**
* Date: 22-March-19
* Time: 08:58
@@ -7,5 +10,8 @@
* @author R12rus
*/
public class DialogFragment extends Fragment {
+ public DialogFragment() { super(); }
+ @ContentView
+ public DialogFragment(@LayoutRes int contentLayoutId) { super(contentLayoutId); }
}
\ No newline at end of file
diff --git a/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/Fragment.java b/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/Fragment.java
index 3c396732..642ddc4c 100644
--- a/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/Fragment.java
+++ b/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/Fragment.java
@@ -2,6 +2,8 @@
import android.os.Bundle;
+import androidx.annotation.LayoutRes;
+
/**
* Date: 25-July-18
* Time: 4:38
@@ -10,6 +12,10 @@
*/
public class Fragment {
+ public Fragment() { super(); }
+
+ public Fragment(@LayoutRes int contentLayoutId) { super(); }
+
public void onCreate(Bundle savedInstanceState) {
throw new RuntimeException("Stub!");
}
diff --git a/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java b/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java
index 49b22940..4372b1a6 100644
--- a/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java
+++ b/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java
@@ -1,7 +1,10 @@
package com.google.android.material.bottomsheet;
+import androidx.annotation.LayoutRes;
import androidx.appcompat.app.AppCompatDialogFragment;
public class BottomSheetDialogFragment extends AppCompatDialogFragment {
+ public BottomSheetDialogFragment() { super(); }
+ public BottomSheetDialogFragment(@LayoutRes int contentLayoutId) { super(); }
}
\ No newline at end of file
From 1ba5415dd63dcb163dab8bbe97b1db8b6b15d5db Mon Sep 17 00:00:00 2001
From: just-d-a
Date: Thu, 15 Oct 2020 11:43:58 +0300
Subject: [PATCH 33/36] delete constructors from dialog fragment
---
.../java/com/omegar/mvp/MvpAppCompatDialogFragment.java | 8 --------
.../java/com/omegar/mvp/MvpBottomSheetDialogFragment.java | 4 ----
.../androidx/appcompat/app/AppCompatDialogFragment.java | 5 -----
.../main/java/androidx/fragment/app/DialogFragment.java | 3 ---
.../material/bottomsheet/BottomSheetDialogFragment.java | 2 --
5 files changed, 22 deletions(-)
diff --git a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatDialogFragment.java b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatDialogFragment.java
index d581320d..b85b1470 100644
--- a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatDialogFragment.java
+++ b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatDialogFragment.java
@@ -13,14 +13,6 @@ public class MvpAppCompatDialogFragment extends AppCompatDialogFragment {
private boolean mIsStateSaved;
private MvpDelegate extends MvpAppCompatDialogFragment> mMvpDelegate;
- public MvpAppCompatDialogFragment() { super(); }
-
- @ContentView
- public MvpAppCompatDialogFragment(@LayoutRes int contentLayoutId) {
- super(contentLayoutId);
- }
-
-
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java b/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java
index 7e55b499..769946a3 100644
--- a/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java
+++ b/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java
@@ -13,10 +13,6 @@ public class MvpBottomSheetDialogFragment extends BottomSheetDialogFragment {
private boolean mIsStateSaved;
private MvpDelegate extends MvpBottomSheetDialogFragment> mMvpDelegate;
- public MvpBottomSheetDialogFragment() { super(); }
-
- public MvpBottomSheetDialogFragment(@LayoutRes int contentLayoutId) { super(); }
-
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatDialogFragment.java b/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatDialogFragment.java
index b4203df1..3b1d74b0 100644
--- a/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatDialogFragment.java
+++ b/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatDialogFragment.java
@@ -11,10 +11,5 @@
* @author R12rus
*/
public class AppCompatDialogFragment extends DialogFragment {
- public AppCompatDialogFragment() { super(); }
- @ContentView
- public AppCompatDialogFragment(@LayoutRes int contentLayoutId) {
- super(contentLayoutId);
- }
}
\ No newline at end of file
diff --git a/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/DialogFragment.java b/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/DialogFragment.java
index 3f353511..5f2d9951 100644
--- a/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/DialogFragment.java
+++ b/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/DialogFragment.java
@@ -10,8 +10,5 @@
* @author R12rus
*/
public class DialogFragment extends Fragment {
- public DialogFragment() { super(); }
- @ContentView
- public DialogFragment(@LayoutRes int contentLayoutId) { super(contentLayoutId); }
}
\ No newline at end of file
diff --git a/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java b/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java
index 4372b1a6..abfff4d1 100644
--- a/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java
+++ b/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java
@@ -4,7 +4,5 @@
import androidx.appcompat.app.AppCompatDialogFragment;
public class BottomSheetDialogFragment extends AppCompatDialogFragment {
- public BottomSheetDialogFragment() { super(); }
- public BottomSheetDialogFragment(@LayoutRes int contentLayoutId) { super(); }
}
\ No newline at end of file
From c16baa3458320045e129516a3a1aa90aa7cc9b34 Mon Sep 17 00:00:00 2001
From: just-d-a
Date: Thu, 15 Oct 2020 11:49:48 +0300
Subject: [PATCH 34/36] add super param
---
.../src/main/java/com/omegar/mvp/MvpAppCompatFragment.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatFragment.java b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatFragment.java
index ed4f4b42..67af3320 100644
--- a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatFragment.java
+++ b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatFragment.java
@@ -21,7 +21,7 @@ public class MvpAppCompatFragment extends Fragment {
public MvpAppCompatFragment() { super(); }
- public MvpAppCompatFragment(@LayoutRes int contentLayoutId) { super(); }
+ public MvpAppCompatFragment(@LayoutRes int contentLayoutId) { super(contentLayoutId); }
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
From f5eddbd0734b11827766777c0a3e381492902676 Mon Sep 17 00:00:00 2001
From: just-d-a
Date: Thu, 15 Oct 2020 11:58:35 +0300
Subject: [PATCH 35/36] add content view annotation
---
.../src/main/java/com/omegar/mvp/MvpAppCompatFragment.java | 2 ++
1 file changed, 2 insertions(+)
diff --git a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatFragment.java b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatFragment.java
index 67af3320..96a06507 100644
--- a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatFragment.java
+++ b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatFragment.java
@@ -2,6 +2,7 @@
import android.os.Bundle;
+import androidx.annotation.ContentView;
import androidx.annotation.LayoutRes;
import androidx.fragment.app.Fragment;
@@ -21,6 +22,7 @@ public class MvpAppCompatFragment extends Fragment {
public MvpAppCompatFragment() { super(); }
+ @ContentView
public MvpAppCompatFragment(@LayoutRes int contentLayoutId) { super(contentLayoutId); }
public void onCreate(Bundle savedInstanceState) {
From f3e419eb2ac86b6327421c14687583b8634ff298 Mon Sep 17 00:00:00 2001
From: just-d-a
Date: Thu, 15 Oct 2020 18:00:45 +0300
Subject: [PATCH 36/36] add content view annotation
---
.../main/java/com/omegar/mvp/MvpAppCompatDialogFragment.java | 2 --
.../main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java | 1 -
.../java/androidx/appcompat/app/AppCompatDialogFragment.java | 2 --
.../src/main/java/androidx/fragment/app/DialogFragment.java | 3 ---
.../material/bottomsheet/BottomSheetDialogFragment.java | 1 -
5 files changed, 9 deletions(-)
diff --git a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatDialogFragment.java b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatDialogFragment.java
index b85b1470..9d1fd2b4 100644
--- a/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatDialogFragment.java
+++ b/moxy-androidx/src/main/java/com/omegar/mvp/MvpAppCompatDialogFragment.java
@@ -3,8 +3,6 @@
import android.os.Build;
import android.os.Bundle;
-import androidx.annotation.ContentView;
-import androidx.annotation.LayoutRes;
import androidx.appcompat.app.AppCompatDialogFragment;
import androidx.fragment.app.Fragment;
diff --git a/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java b/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java
index 769946a3..bf70340f 100644
--- a/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java
+++ b/moxy-androidx/src/main/java/com/omegar/mvp/MvpBottomSheetDialogFragment.java
@@ -3,7 +3,6 @@
import android.os.Build;
import android.os.Bundle;
-import androidx.annotation.LayoutRes;
import androidx.fragment.app.Fragment;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
diff --git a/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatDialogFragment.java b/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatDialogFragment.java
index 3b1d74b0..3cd337eb 100644
--- a/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatDialogFragment.java
+++ b/moxy-androidx/stub-androidx/src/main/java/androidx/appcompat/app/AppCompatDialogFragment.java
@@ -1,7 +1,5 @@
package androidx.appcompat.app;
-import androidx.annotation.ContentView;
-import androidx.annotation.LayoutRes;
import androidx.fragment.app.DialogFragment;
/**
diff --git a/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/DialogFragment.java b/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/DialogFragment.java
index 5f2d9951..125a4921 100644
--- a/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/DialogFragment.java
+++ b/moxy-androidx/stub-androidx/src/main/java/androidx/fragment/app/DialogFragment.java
@@ -1,8 +1,5 @@
package androidx.fragment.app;
-import androidx.annotation.ContentView;
-import androidx.annotation.LayoutRes;
-
/**
* Date: 22-March-19
* Time: 08:58
diff --git a/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java b/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java
index abfff4d1..49b22940 100644
--- a/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java
+++ b/moxy-androidx/stub-androidx/src/main/java/com/google/android/material/bottomsheet/BottomSheetDialogFragment.java
@@ -1,6 +1,5 @@
package com.google.android.material.bottomsheet;
-import androidx.annotation.LayoutRes;
import androidx.appcompat.app.AppCompatDialogFragment;
public class BottomSheetDialogFragment extends AppCompatDialogFragment {