Skip to content

Instantly share code, notes, and snippets.

@ricknout
Created April 27, 2018 23:51
Show Gist options
  • Save ricknout/944b29b3f372fd33be6579a501c489f1 to your computer and use it in GitHub Desktop.
Save ricknout/944b29b3f372fd33be6579a501c489f1 to your computer and use it in GitHub Desktop.
package com.nickrout.actionmode
import android.support.annotation.MenuRes
import android.view.ActionMode
import android.view.Menu
import android.view.MenuItem
import android.view.View
class PrimaryActionModeCallback : ActionMode.Callback {
var onActionItemClickListener: OnActionItemClickListener? = null
private var mode: ActionMode? = null
@MenuRes private var menuResId: Int = 0
private var title: String? = null
private var subtitle: String? = null
override fun onCreateActionMode(mode: ActionMode, menu: Menu): Boolean {
this.mode = mode
mode.menuInflater.inflate(menuResId, menu)
mode.title = title
mode.subtitle = subtitle
return true
}
override fun onPrepareActionMode(mode: ActionMode, menu: Menu): Boolean {
return false
}
override fun onDestroyActionMode(mode: ActionMode) {
this.mode = null
}
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
onActionItemClickListener?.onActionItemClick(item)
mode.finish()
return true
}
fun startActionMode(view: View,
@MenuRes menuResId: Int,
title: String? = null,
subtitle: String? = null) {
this.menuResId = menuResId
this.title = title
this.subtitle = subtitle
view.startActionMode(this)
}
fun finishActionMode() {
mode?.finish()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment