|
package com.example.testmenu |
|
|
|
import android.os.Bundle |
|
import android.view.ActionMode |
|
import android.view.Menu |
|
import android.view.MenuItem |
|
import android.widget.Toast |
|
import androidx.appcompat.app.AppCompatActivity |
|
import androidx.navigation.findNavController |
|
import androidx.navigation.ui.AppBarConfiguration |
|
import androidx.navigation.ui.navigateUp |
|
import androidx.navigation.ui.setupActionBarWithNavController |
|
import com.example.testmenu.databinding.ActivityMainBinding |
|
|
|
class MainActivity : AppCompatActivity(), ActionMode.Callback { |
|
|
|
private lateinit var appBarConfiguration: AppBarConfiguration |
|
private lateinit var binding: ActivityMainBinding |
|
|
|
private var actionMode: ActionMode? = null |
|
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) { |
|
super.onCreate(savedInstanceState) |
|
|
|
binding = ActivityMainBinding.inflate(layoutInflater) |
|
setContentView(binding.root) |
|
|
|
setSupportActionBar(binding.toolbar) |
|
|
|
val navController = findNavController(R.id.nav_host_fragment_content_main) |
|
appBarConfiguration = AppBarConfiguration(navController.graph) |
|
setupActionBarWithNavController(navController, appBarConfiguration) |
|
|
|
binding.fab.setOnClickListener { view -> |
|
startActionMode() |
|
} |
|
} |
|
|
|
override fun onCreateOptionsMenu(menu: Menu): Boolean { |
|
menuInflater.inflate(R.menu.menu_main, menu) |
|
return true |
|
} |
|
|
|
override fun onOptionsItemSelected(item: MenuItem): Boolean { |
|
|
|
return when (item.itemId) { |
|
R.id.action_settings -> true |
|
R.id.action_delete -> { |
|
deleteElements() |
|
true |
|
} |
|
else -> super.onOptionsItemSelected(item) |
|
} |
|
} |
|
|
|
override fun onSupportNavigateUp(): Boolean { |
|
val navController = findNavController(R.id.nav_host_fragment_content_main) |
|
return navController.navigateUp(appBarConfiguration) |
|
|| super.onSupportNavigateUp() |
|
} |
|
|
|
|
|
//API min 23 |
|
private fun startActionMode() { |
|
startActionMode(this, ActionMode.TYPE_PRIMARY) |
|
} |
|
|
|
private fun deleteElements() { |
|
Toast.makeText(this, "delete click", Toast.LENGTH_SHORT).show() |
|
} |
|
|
|
override fun onCreateActionMode(mode: ActionMode, menu: Menu): Boolean { |
|
actionMode = mode |
|
val inflater = mode.menuInflater |
|
inflater.inflate(R.menu.menu_action_edit, menu) |
|
return true |
|
} |
|
|
|
override fun onPrepareActionMode(mode: ActionMode, menu: Menu): Boolean { |
|
return false |
|
} |
|
|
|
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean { |
|
return when (item.itemId) { |
|
R.id.action_delete -> { |
|
deleteElements() |
|
actionMode?.finish() |
|
true |
|
} |
|
else -> super.onOptionsItemSelected(item) |
|
} |
|
|
|
} |
|
|
|
override fun onDestroyActionMode(mode: ActionMode?) { |
|
actionMode = null |
|
} |
|
} |