package com.adlerosn.brasilfurfest.schedule import android.app.AlertDialog import android.content.DialogInterface import android.content.Intent import android.os.Bundle import android.support.design.widget.Snackbar import android.support.v4.app.FragmentPagerAdapter import android.support.v7.app.AppCompatActivity import android.view.Menu import android.view.MenuItem import com.adlerosn.brasilfurfest.R import com.adlerosn.brasilfurfest.developer.DeveloperActivity import com.adlerosn.brasilfurfest.helper.* import com.adlerosn.brasilfurfest.schedule.managers.ScheduleManagerGetter import com.adlerosn.brasilfurfest.schedule.adapters.DaysPagerAdapter import com.adlerosn.brasilfurfest.schedule.managers.ScheduleManager import kotlinx.android.synthetic.main.activity_schedule.* class ScheduleActivity : AppCompatActivity() { private lateinit var scheduleManager: ScheduleManager private lateinit var pagerAdapter: FragmentPagerAdapter override fun onCreate(savedInstanceState: Bundle?) { ActivitiesForFragments[this.javaClass.simpleName] = this super.onCreate(savedInstanceState) setContentView(R.layout.activity_schedule) setSupportActionBar(toolbar) resourcesAliased = this.resources scheduleManager = ScheduleManagerGetter[this] scheduleManager.onAttendeeIntentionsChanged() toolbar.title = scheduleManager.convention.name toolbar.subtitle = scheduleManager.convention.theme.solved pagerAdapter = DaysPagerAdapter(supportFragmentManager, scheduleManager) container.adapter = pagerAdapter tabs.fullSetup(container) container.offscreenPageLimit = pagerAdapter.count fab.setOnClickListener { Intent(this, FavoritesActivity::class.java).apply { startActivity(this) } } fab.isLongClickable = true fab.setOnLongClickListener { Snackbar.make(it, R.string.schedule_events_favorites, Snackbar.LENGTH_LONG).apply { setActionTextColor(this@ScheduleActivity.getColorCompat(R.color.colorBase20)) view.setBackgroundColor(this@ScheduleActivity.getColorCompat(R.color.colorBase03)) show() } true } } override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.menu_schedule, menu) return true } override fun onOptionsItemSelected(item: MenuItem): Boolean { return when (item.itemId) { R.id.action_clear_planning -> { val dialog = AlertDialog.Builder(this).create() dialog.setTitle(R.string.schedule_clear_planning_question.getString()) dialog.setMessage(R.string.this_cannot_be_undone.getString()) dialog.setButton(AlertDialog.BUTTON_NEUTRAL, R.string.dialog_cancel.getString()) { _: DialogInterface, _: Int -> dialog.dismiss() } dialog.setButton(AlertDialog.BUTTON_NEGATIVE, R.string.dialog_confirm.getString()) { _: DialogInterface, _: Int -> dialog.dismiss() scheduleManager.clearIntentions() scheduleManager.onAttendeeIntentionsChanged() } dialog.show() true } R.id.action_developer -> { Intent(this, DeveloperActivity::class.java).apply { startActivity(this) } true } R.id.action_search_filter -> { Intent(this, SearchFilterActivity::class.java).apply { startActivity(this) } true } else -> super.onOptionsItemSelected(item) } } override fun onBackPressed() { if (tabs.selectedTabPosition == 0) super.onBackPressed() else container.setCurrentItem(0, true) } }