social-aggregator/app/src/main/java/pl/edu/amu/wmi/socialaggregator/activity/MainActivity.kt

74 lines
2.6 KiB
Kotlin

package pl.edu.amu.wmi.socialaggregator.activity
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import com.jakewharton.rxbinding2.view.RxView
import io.reactivex.Observable
import io.reactivex.disposables.CompositeDisposable
import kotlinx.android.synthetic.main.activity_main.*
import pl.edu.amu.wmi.socialaggregator.R
import pl.edu.amu.wmi.socialaggregator.utils.SocialPlatformsManager
import pl.edu.amu.wmi.socialaggregator.viewholders.PostSummaryRecycler
import pl.edu.amu.wmi.socialaggregator.viewholders.SocialWithButtonRecycler
class MainActivity : AppCompatActivity() {
private val subs = CompositeDisposable()
private val TAG = MainActivity::class.java.simpleName
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
subs.addAll(
RxView.clicks(createPostButton)
.subscribe {
val intent = Intent(this, NewPostActivity::class.java)
startActivity(intent)
},
RxView.clicks(previousPostsButton)
.subscribe {
val intent = Intent(this, PostHistoryActivity::class.java)
startActivity(intent)
}
)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
SocialPlatformsManager.getAll()
.forEach { it.onActivityResult(requestCode, resultCode, data) }
super.onActivityResult(requestCode, resultCode, data)
}
override fun onResume() {
super.onResume()
connectedSocialsRecyclerView.apply {
layoutManager = LinearLayoutManager(this@MainActivity)
adapter =
SocialWithButtonRecycler(SocialPlatformsManager.getAll(), this@MainActivity)
}
previousPostsRecyclerView.apply {
layoutManager = LinearLayoutManager(this@MainActivity)
adapter = PostSummaryRecycler(
Observable.merge(SocialPlatformsManager.getLoggedIn(this@MainActivity)
.map { social ->
social.getPosts(this@MainActivity)
.map { social to it }
.toObservable()
})
)
}
}
override fun onDestroy() {
super.onDestroy()
subs.clear()
}
}