diff --git a/android/android-base/src/main/java/org/isoron/androidbase/activities/BaseSelectionMenu.java b/android/android-base/src/main/java/org/isoron/androidbase/activities/BaseSelectionMenu.kt
similarity index 65%
rename from android/android-base/src/main/java/org/isoron/androidbase/activities/BaseSelectionMenu.java
rename to android/android-base/src/main/java/org/isoron/androidbase/activities/BaseSelectionMenu.kt
index a1b486555..5d4b9af11 100644
--- a/android/android-base/src/main/java/org/isoron/androidbase/activities/BaseSelectionMenu.java
+++ b/android/android-base/src/main/java/org/isoron/androidbase/activities/BaseSelectionMenu.kt
@@ -16,50 +16,43 @@
* You should have received a copy of the GNU General Public License along
* with this program. If not, see
+ * * A selection menu is a menu that appears when the screen starts a selection * operation. It contains actions that modify the selected items, such as delete * or archive. Since it replaces the toolbar, it also has a title. - *
+ * * This class hides many implementation details of creating such menus in - * Android. The interface is supposed to look very similar to {@link BaseMenu}, + * Android. The interface is supposed to look very similar to [BaseMenu], * with a few additional methods, such as finishing the selection operation. - * Internally, it uses an {@link ActionMode}. + * Internally, it uses an [ActionMode]. */ -public abstract class BaseSelectionMenu -{ - @Nullable - private ActionMode actionMode; +abstract class BaseSelectionMenu { + private var actionMode: ActionMode? = null /** * Finishes the selection operation. */ - public void finish() - { - if (actionMode != null) actionMode.finish(); + fun finish() { + actionMode?.finish() } /** * Declare that the menu has changed, and should be recreated. */ - public void invalidate() - { - if (actionMode != null) actionMode.invalidate(); + fun invalidate() { + actionMode?.invalidate() } /** * Called when the menu is first displayed. - *
+ * * This method should not be overridden. The application should override * the methods onCreate(Menu) and getMenuResourceId instead. * @@ -67,22 +60,16 @@ public abstract class BaseSelectionMenu * @param mode the action mode associated with this menu. * @param menu the menu that is being created. */ - public void onCreate(@NonNull MenuInflater inflater, - @NonNull ActionMode mode, - @NonNull Menu menu) - { - this.actionMode = mode; - inflater.inflate(getResourceId(), menu); - onCreate(menu); + fun onCreate(inflater: MenuInflater, mode: ActionMode, menu: Menu) { + actionMode = mode + inflater.inflate(getResourceId(), menu) + onCreate(menu) } /** * Called when the selection operation is about to finish. */ - public void onFinish() - { - - } + open fun onFinish() {} /** * Called whenever an item on the menu is selected. @@ -90,11 +77,7 @@ public abstract class BaseSelectionMenu * @param item the item that was selected. * @return true if the event was consumed, or false otherwise */ - public boolean onItemClicked(@NonNull MenuItem item) - { - return false; - } - + open fun onItemClicked(item: MenuItem): Boolean = false /** * Called whenever the menu is invalidated. @@ -102,29 +85,23 @@ public abstract class BaseSelectionMenu * @param menu the menu to be refreshed * @return true if the menu has changes, false otherwise */ - public boolean onPrepare(@NonNull Menu menu) - { - return false; - } + open fun onPrepare(menu: Menu): Boolean = false /** * Sets the title of the selection menu. * * @param title the new title. */ - public void setTitle(String title) - { - if (actionMode != null) actionMode.setTitle(title); + fun setTitle(title: String?) { + actionMode?.title = title } - protected abstract int getResourceId(); + protected abstract fun getResourceId(): Int /** * Called when the menu is first created. * * @param menu the menu being created */ - protected void onCreate(@NonNull Menu menu) - { - } -} + protected fun onCreate(menu: Menu) {} +} \ No newline at end of file