From ff0696c4d94da32cfb97025d2f44380c8ecaae8a Mon Sep 17 00:00:00 2001 From: Kay-Uwe Janssen Date: Tue, 31 Oct 2017 17:17:56 +0100 Subject: [PATCH 1/5] Add KotlinOpen annotation --- .../androidannotations/api/KotlinOpen.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/api/KotlinOpen.java diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/api/KotlinOpen.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/api/KotlinOpen.java new file mode 100644 index 0000000000..f4af16a8be --- /dev/null +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/api/KotlinOpen.java @@ -0,0 +1,31 @@ +/** + * Copyright (C) 2016-2017 the AndroidAnnotations project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed To in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package org.androidannotations.api; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Utility annotation to easily support kotlin-allopen plugin + * + * @see "https://github.com/androidannotations/androidannotations/wiki/Kotlin" + */ +@Retention(RetentionPolicy.CLASS) +@Target(ElementType.TYPE) +public @interface KotlinOpen { +} From 8903d15f821556ad535d7b250a7fc3f9b47f5692 Mon Sep 17 00:00:00 2001 From: Kay-Uwe Janssen Date: Tue, 31 Oct 2017 17:25:12 +0100 Subject: [PATCH 2/5] Apply KotlinOpen annotation where usefull --- .../java/org/androidannotations/annotations/Background.java | 4 ++++ .../java/org/androidannotations/annotations/EActivity.java | 4 ++++ .../java/org/androidannotations/annotations/EApplication.java | 4 ++++ .../main/java/org/androidannotations/annotations/EBean.java | 4 ++++ .../java/org/androidannotations/annotations/EFragment.java | 4 ++++ .../org/androidannotations/annotations/EIntentService.java | 4 ++++ .../java/org/androidannotations/annotations/EProvider.java | 4 ++++ .../java/org/androidannotations/annotations/EReceiver.java | 4 ++++ .../java/org/androidannotations/annotations/EService.java | 4 ++++ .../main/java/org/androidannotations/annotations/EView.java | 4 ++++ .../java/org/androidannotations/annotations/EViewGroup.java | 4 ++++ .../java/org/androidannotations/annotations/IgnoreWhen.java | 4 ++++ .../org/androidannotations/annotations/SupposeBackground.java | 4 ++++ .../org/androidannotations/annotations/SupposeUiThread.java | 4 ++++ .../main/java/org/androidannotations/annotations/Trace.java | 4 ++++ .../org/androidannotations/annotations/Transactional.java | 4 ++++ .../java/org/androidannotations/annotations/UiThread.java | 4 ++++ .../java/org/androidannotations/annotations/WakeLock.java | 4 ++++ 18 files changed, 72 insertions(+) diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/Background.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/Background.java index f8244ccb5e..aed53fd885 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/Background.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/Background.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* Should be used on method that must be run in a background thread. @@ -171,6 +174,7 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) +@KotlinOpen public @interface Background { /** * Identifier for task cancellation. diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EActivity.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EActivity.java index 4805836d8c..bf8ba37094 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EActivity.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EActivity.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* Should be used on {@link android.app.Activity} classes to enable usage of @@ -86,6 +89,7 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) +@KotlinOpen public @interface EActivity { /** diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EApplication.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EApplication.java index 3ac3ee43a0..3ca9850a1e 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EApplication.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EApplication.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* Should be used on {@link android.app.Application} classes to enable usage of @@ -74,5 +77,6 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) +@KotlinOpen public @interface EApplication { } diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EBean.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EBean.java index 895ed8424d..0853d75520 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EBean.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EBean.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* Should be used on custom classes to enable usage of AndroidAnnotations. @@ -94,6 +97,7 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) +@KotlinOpen public @interface EBean { /** diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EFragment.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EFragment.java index cc4363ea92..e759a6266c 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EFragment.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EFragment.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* Should be used on android.app.Fragment or android.support.v4.app.Fragment @@ -106,6 +109,7 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) +@KotlinOpen public @interface EFragment { /** diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EIntentService.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EIntentService.java index 1ddb1c0929..5f694e0e9f 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EIntentService.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EIntentService.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* Should be used on {@link android.app.IntentService} classes to enable usage @@ -80,5 +83,6 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) +@KotlinOpen public @interface EIntentService { } diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EProvider.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EProvider.java index 8f6097fe2c..5f60b0fd3a 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EProvider.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EProvider.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* Should be used on {@link android.content.ContentProvider} classes to enable @@ -50,5 +53,6 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) +@KotlinOpen public @interface EProvider { } diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EReceiver.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EReceiver.java index 1b5b2fe514..e2d9d67ec6 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EReceiver.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EReceiver.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* Should be used on {@link android.content.BroadcastReceiver} classes to enable @@ -50,5 +53,6 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) +@KotlinOpen public @interface EReceiver { } diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EService.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EService.java index a41f0d6371..22516062ef 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EService.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EService.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* Should be used on {@link android.app.Service} classes to enable usage of @@ -72,5 +75,6 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) +@KotlinOpen public @interface EService { } diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EView.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EView.java index 384d76f56a..970e63295e 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EView.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EView.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* Should be used on {@link android.view.View View} classes to enable usage of @@ -67,5 +70,6 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) +@KotlinOpen public @interface EView { } diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EViewGroup.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EViewGroup.java index 86b2bbb958..2f1a6e8fea 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EViewGroup.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/EViewGroup.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* Should be used on {@link android.view.View} classes to enable usage of @@ -74,6 +77,7 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) +@KotlinOpen public @interface EViewGroup { /** diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/IgnoreWhen.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/IgnoreWhen.java index 61eb48c703..6b7f2a0e3d 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/IgnoreWhen.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/IgnoreWhen.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* When used standalone in an {@link EFragment} or in conjunction with the @@ -71,6 +74,7 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) +@KotlinOpen public @interface IgnoreWhen { /** diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/SupposeBackground.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/SupposeBackground.java index c7e514d2cc..6b77b80ac5 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/SupposeBackground.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/SupposeBackground.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* Ensures that the method is called from the background thread with @@ -57,6 +60,7 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) +@KotlinOpen public @interface SupposeBackground { /** diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/SupposeUiThread.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/SupposeUiThread.java index d47b178017..11e5fcf024 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/SupposeUiThread.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/SupposeUiThread.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** * Ensures that method is called from the UI thread. If it is not, then * {@link IllegalStateException} will be thrown (by default). @@ -46,5 +49,6 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) +@KotlinOpen public @interface SupposeUiThread { } diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/Trace.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/Trace.java index 65f922ecf3..9df09a8840 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/Trace.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/Trace.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + import android.util.Log; /** @@ -70,6 +73,7 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) +@KotlinOpen public @interface Trace { /** diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/Transactional.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/Transactional.java index 34505f6fa5..8d650dab81 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/Transactional.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/Transactional.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* This annotation is intended to be used on methods to run it into a database @@ -57,5 +60,6 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) +@KotlinOpen public @interface Transactional { } diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/UiThread.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/UiThread.java index df4b55cde7..7555a2f09e 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/UiThread.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/UiThread.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* Should be used on method that must be run in the Ui thread @@ -123,6 +126,7 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) +@KotlinOpen public @interface UiThread { /** diff --git a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/WakeLock.java b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/WakeLock.java index 0b4fff8b43..4eb363e809 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/WakeLock.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations-api/src/main/java/org/androidannotations/annotations/WakeLock.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.androidannotations.api.KotlinOpen; + /** *

* Acquires a {@link android.os.PowerManager.WakeLock} for this method call. @@ -50,6 +53,7 @@ */ @Retention(RetentionPolicy.CLASS) @Target(ElementType.METHOD) +@KotlinOpen public @interface WakeLock { /** From 7ad66a09234dbb5ca82352f8f2fa8905faf463aa Mon Sep 17 00:00:00 2001 From: Kay-Uwe Janssen Date: Tue, 31 Oct 2017 17:29:00 +0100 Subject: [PATCH 3/5] Update kotlin version: 1.1.3-2 -> 1.1.51 --- examples/kotlin/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/kotlin/build.gradle b/examples/kotlin/build.gradle index 3a26b9971f..72bb96264f 100644 --- a/examples/kotlin/build.gradle +++ b/examples/kotlin/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = "1.1.3-2" + ext.kotlin_version = "1.1.51" repositories { jcenter() From 577995c91574244a391e06357a2ec970a7a90a8b Mon Sep 17 00:00:00 2001 From: Kay-Uwe Janssen Date: Tue, 31 Oct 2017 17:29:38 +0100 Subject: [PATCH 4/5] Use kotlin-stdlib-jre7 instead of kotlin-stdlib --- examples/kotlin/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/kotlin/build.gradle b/examples/kotlin/build.gradle index 72bb96264f..716fc53621 100644 --- a/examples/kotlin/build.gradle +++ b/examples/kotlin/build.gradle @@ -45,5 +45,5 @@ def AAVersion = "4.4.0-SNAPSHOT" // change this to your desired version, for exa dependencies { kapt "org.androidannotations:androidannotations:$AAVersion" compile "org.androidannotations:androidannotations-api:$AAVersion" - compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" } From f279a71db9fcd13baf5b9196c77eb92f3ad544b9 Mon Sep 17 00:00:00 2001 From: Kay-Uwe Janssen Date: Tue, 31 Oct 2017 17:30:09 +0100 Subject: [PATCH 5/5] Apply kotlin-allopen plugin to kotlin sample project --- examples/kotlin/build.gradle | 6 ++++++ .../gradle/activity/HelloAndroidActivity.kt | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/examples/kotlin/build.gradle b/examples/kotlin/build.gradle index 716fc53621..2ef1efaf8d 100644 --- a/examples/kotlin/build.gradle +++ b/examples/kotlin/build.gradle @@ -8,6 +8,7 @@ buildscript { // replace with the current version of the Android plugin classpath "com.android.tools.build:gradle:2.3.0" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version" } } @@ -18,6 +19,7 @@ repositories { apply plugin: "com.android.application" apply plugin: "kotlin-android" +apply plugin: "kotlin-allopen" apply plugin: "kotlin-kapt" android { @@ -33,6 +35,10 @@ android { } } +allOpen { + annotation("org.androidannotations.api.KotlinOpen") +} + // If you have different applicationIds for buildTypes or productFlavors uncomment this block. //kapt { // arguments { diff --git a/examples/kotlin/src/main/kotlin/org/androidannotations/gradle/activity/HelloAndroidActivity.kt b/examples/kotlin/src/main/kotlin/org/androidannotations/gradle/activity/HelloAndroidActivity.kt index a2efdbaceb..3ba9fa9965 100644 --- a/examples/kotlin/src/main/kotlin/org/androidannotations/gradle/activity/HelloAndroidActivity.kt +++ b/examples/kotlin/src/main/kotlin/org/androidannotations/gradle/activity/HelloAndroidActivity.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.widget.TextView import org.androidannotations.annotations.AfterViews import org.androidannotations.annotations.EActivity +import org.androidannotations.annotations.EBean import org.androidannotations.annotations.Extra import org.androidannotations.annotations.UiThread import org.androidannotations.annotations.Background @@ -43,3 +44,19 @@ open class HelloAndroidActivity : Activity() { helloTextView.text = helloMessage } } + +/** + * As of Kotlin 1.0.6+ and AndroidAnnotations 4.4.0, you can use the kotlin-allopen plugin + * to remove the need to explicitly declare enhanced classes or methods as open. + * + * See the build.gradle file or [our wiki](https://github.com/androidannotations/androidannotations/wiki/Kotlin) + * for details on how to use the plugin. + */ +@EBean +public class EnhancedBean { + + @Background + protected fun computeDateBackground() { + // do stuff ;) + } +} \ No newline at end of file