Twidere-App-Android-Twitter.../twidere/src/main/kotlin/org/mariotaku/twidere/model/tab/conf/UserExtraConfiguration.kt

76 lines
3.0 KiB
Kotlin
Raw Normal View History

2016-12-01 03:16:55 +01:00
package org.mariotaku.twidere.model.tab.conf
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
2016-12-02 01:25:23 +01:00
import kotlinx.android.synthetic.main.layout_extra_config_user.view.*
import kotlinx.android.synthetic.main.list_item_simple_user.view.*
2016-12-01 03:16:55 +01:00
import org.mariotaku.twidere.R
2017-01-29 14:34:22 +01:00
import org.mariotaku.twidere.activity.UserSelectorActivity
2017-01-07 07:16:02 +01:00
import org.mariotaku.twidere.adapter.DummyItemAdapter
2016-12-01 03:16:55 +01:00
import org.mariotaku.twidere.constant.IntentConstants.*
import org.mariotaku.twidere.fragment.CustomTabsFragment.TabEditorDialogFragment
import org.mariotaku.twidere.model.ParcelableUser
import org.mariotaku.twidere.model.tab.TabConfiguration
import org.mariotaku.twidere.util.dagger.DependencyHolder
2017-01-07 07:16:02 +01:00
import org.mariotaku.twidere.view.holder.SimpleUserViewHolder
2016-12-01 03:16:55 +01:00
/**
* Created by mariotaku on 2016/11/28.
*/
2017-04-17 15:10:14 +02:00
class UserExtraConfiguration(key: String) : TabConfiguration.ExtraConfiguration(key,
R.string.title_user) {
2016-12-01 03:16:55 +01:00
var value: ParcelableUser? = null
private set
2017-02-22 02:39:15 +01:00
private lateinit var viewHolder: SimpleUserViewHolder<*>
2016-12-01 03:16:55 +01:00
private lateinit var dependencyHolder: DependencyHolder
private lateinit var hintView: View
override fun onCreate(context: Context) {
super.onCreate(context)
this.dependencyHolder = DependencyHolder.get(context)
}
override fun onCreateView(context: Context, parent: ViewGroup): View {
return LayoutInflater.from(context).inflate(R.layout.layout_extra_config_user, parent, false)
}
override fun onViewCreated(context: Context, view: View, fragment: TabEditorDialogFragment) {
2016-12-05 13:57:32 +01:00
super.onViewCreated(context, view, fragment)
2016-12-01 03:16:55 +01:00
view.setOnClickListener {
2016-12-05 12:28:17 +01:00
val account = fragment.account ?: return@setOnClickListener
2016-12-01 03:16:55 +01:00
val intent = Intent(INTENT_ACTION_SELECT_USER)
2016-12-05 12:28:17 +01:00
intent.putExtra(EXTRA_ACCOUNT_KEY, account.key)
2017-01-29 14:34:22 +01:00
intent.setClass(context, UserSelectorActivity::class.java)
2016-12-01 03:16:55 +01:00
fragment.startExtraConfigurationActivityForResult(this@UserExtraConfiguration, intent, 1)
}
2016-12-02 01:25:23 +01:00
hintView = view.selectUserHint
val adapter = DummyItemAdapter(context, requestManager = fragment.requestManager)
2017-01-07 07:16:02 +01:00
adapter.updateOptions()
viewHolder = SimpleUserViewHolder(view.listItem, adapter)
2016-12-01 03:16:55 +01:00
2017-01-07 07:16:02 +01:00
viewHolder.itemView.visibility = View.GONE
2016-12-01 03:16:55 +01:00
hintView.visibility = View.VISIBLE
}
2017-03-01 15:12:25 +01:00
override fun onActivityResult(fragment: TabEditorDialogFragment, requestCode: Int, resultCode: Int, data: Intent?) {
2016-12-01 03:16:55 +01:00
when (requestCode) {
1 -> {
2017-04-17 15:10:14 +02:00
if (resultCode == Activity.RESULT_OK && data != null) {
data.getParcelableExtra<ParcelableUser>(EXTRA_USER)?.let { user ->
viewHolder.displayUser(user)
viewHolder.itemView.visibility = View.VISIBLE
hintView.visibility = View.GONE
this.value = user
}
2016-12-01 03:16:55 +01:00
}
}
}
}
}