package com.liuguangqiang.idaily.ui.act; import android.databinding.DataBindingUtil; import android.graphics.Color; import android.os.Bundle; import android.support.design.widget.CollapsingToolbarLayout; import android.support.v4.view.GravityCompat; import android.support.v4.view.ViewPager; import android.view.MenuItem; import com.liuguangqiang.idaily.R; import com.liuguangqiang.idaily.databinding.ActivityMainBinding; import com.liuguangqiang.idaily.di.components.DaggerMainComponent; import com.liuguangqiang.idaily.di.modules.MainModule; import com.liuguangqiang.idaily.domain.entity.Story; import com.liuguangqiang.idaily.ui.adapter.page.TopStoryAdapter; import com.liuguangqiang.idaily.ui.viewmodel.MainViewModel; import com.liuguangqiang.idaily.utils.events.TopStoriesEvent; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import de.greenrobot.event.EventBus; import de.greenrobot.event.Subscribe; public class MainActivity extends BaseActivity { @Inject MainViewModel mainViewModel; private CollapsingToolbarLayout collapsingToolbar; private TopStoryAdapter topStoryAdapter; private List<Story> topStories = new ArrayList<>(); private ActivityMainBinding binding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initToolbar(); initViews(); if (!EventBus.getDefault().isRegistered(this)) { EventBus.getDefault().register(this); } } @Override protected void onDestroy() { super.onDestroy(); if (EventBus.getDefault().isRegistered(this)) { EventBus.getDefault().unregister(this); } } @Override public void onCreateBinding() { DaggerMainComponent .builder() .mainModule(new MainModule(getApplicationContext())) .build().inject(this); binding = DataBindingUtil.setContentView(this, R.layout.activity_main); binding.setViewModel(mainViewModel); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: binding.drawerLayout.openDrawer(GravityCompat.START); return true; } return super.onOptionsItemSelected(item); } private void initToolbar() { setSupportActionBar(binding.toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeAsUpIndicator(R.mipmap.ic_menu); getSupportActionBar().setDisplayHomeAsUpEnabled(true); collapsingToolbar = binding.collapsingToolbar; collapsingToolbar.setTitle(getString(R.string.app_name)); collapsingToolbar.setExpandedTitleColor(Color.WHITE); collapsingToolbar.setCollapsedTitleTextColor(Color.WHITE); collapsingToolbar.setExpandedTitleTextAppearance(R.style.CollapsingToolbarTitle); } private void initViews() { topStoryAdapter = new TopStoryAdapter(getSupportFragmentManager(), topStories); binding.viewPager.setAdapter(topStoryAdapter); binding.indicator.setViewPager(binding.viewPager); binding.indicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { collapsingToolbar.setTitle(topStories.get(position).getTitle()); setTitle(topStories.get(position).getTitle()); } @Override public void onPageScrollStateChanged(int state) { } }); } @Subscribe public void onEvent(TopStoriesEvent event) { if (event.stories != null) { topStories.addAll(event.stories); topStoryAdapter.notifyDataSetChanged(); collapsingToolbar.setTitle(topStories.get(0).getTitle()); } } }