Skip to content

Commit

Permalink
[ADD] Add movie activity
Browse files Browse the repository at this point in the history
  • Loading branch information
adrie4mac committed Oct 9, 2018
1 parent f075564 commit ce7f4de
Show file tree
Hide file tree
Showing 8 changed files with 125 additions and 16 deletions.
6 changes: 3 additions & 3 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@
android:theme="@style/AppTheme">

<activity
android:name=".moviedetail.MovieDetailActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait">
android:name=".movie.MovieActivity"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".moviedetail.MovieDetailActivity" />

</application>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.adriesavana.themoviedb.common.adapter

import android.support.v4.app.Fragment
import android.support.v4.app.FragmentManager
import android.support.v4.app.FragmentPagerAdapter

class ViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager) {
private val fragmentList: MutableList<Fragment> = ArrayList()
private val fragmentTitleList: MutableList<String> = ArrayList()

override fun getCount(): Int = fragmentList.size

override fun getItem(position: Int): Fragment = fragmentList[position]

fun addFragment(fragment: Fragment, title: String) {
fragmentList.add(fragment)
fragmentTitleList.add(title)
}

override fun getPageTitle(position: Int): CharSequence = fragmentTitleList[position]
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.adriesavana.themoviedb.common.di

import com.adriesavana.themoviedb.movie.MovieActivity
import com.adriesavana.themoviedb.movie.MovieActivityModule
import com.adriesavana.themoviedb.moviedetail.MovieDetailActivity
import com.adriesavana.themoviedb.moviedetail.MovieDetailActivityModule
import dagger.Module
Expand All @@ -10,4 +12,7 @@ abstract class BuilderModule {

@ContributesAndroidInjector(modules = [(MovieDetailActivityModule::class)])
abstract fun bindMovieDetailActivity(): MovieDetailActivity

@ContributesAndroidInjector(modules = [(MovieActivityModule::class)])
abstract fun bindMovieActivity(): MovieActivity
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,31 @@
package com.adriesavana.themoviedb.movie

import android.graphics.Color
import android.os.Bundle
import com.adriesavana.themoviedb.R
import com.adriesavana.themoviedb.common.adapter.ViewPagerAdapter
import com.adriesavana.themoviedb.common.base.BaseActivity
import com.adriesavana.themoviedb.moviedetail.MovieDetailViewModelType
import kotlinx.android.synthetic.main.activity_movie.*

class MovieActivity : BaseActivity<MovieActivityViewModelType>() {
class MovieActivity : BaseActivity<MovieViewModelType>() {

companion object {
private const val CATEGORY_POPULAR = "POPULAR"
private const val CATEGORY_TOP_RATED = "TOP RATED"
}

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_movie)
//setupViewPager()
}

override fun bindViewModel() {
super.bindViewModel()
private fun setupViewPager() {
val adapter = ViewPagerAdapter(supportFragmentManager)
adapter.addFragment(MovieFragment.newInstance(CATEGORY_POPULAR.toLowerCase()), CATEGORY_POPULAR)
adapter.addFragment(MovieFragment.newInstance(CATEGORY_TOP_RATED), CATEGORY_TOP_RATED)
viewPager_movie.adapter = adapter
tabs_movie.setupWithViewPager(viewPager_movie)
tabs_movie.setTabTextColors(Color.parseColor("#333333"), Color.parseColor("#74206F"));
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
package com.adriesavana.themoviedb.movie

import android.arch.lifecycle.ViewModelProviders
import dagger.Module
import dagger.Provides

@Module
class MovieActivityModule {

@Provides
fun provideViewModel(activity: MovieActivity, factory: MovieViewModel.Factory)
: MovieViewModelType {
return ViewModelProviders.of(activity, factory).get(MovieViewModel::class.java)
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,43 @@
package com.adriesavana.themoviedb.movie

class MovieFragment {
import android.os.Bundle
import android.support.v7.widget.RecyclerView
import android.support.v7.widget.StaggeredGridLayoutManager
import android.view.ViewGroup
import com.adriesavana.themoviedb.R
import com.adriesavana.themoviedb.common.base.BaseListFragment
import kotlinx.android.synthetic.main.fragment_movie.*

class MovieFragment : BaseListFragment<MovieFragmentViewModelType>() {

override fun getLayoutRes(): Int = R.layout.fragment_movie

override fun getRecyclerView(): ViewGroup = movieRecyclerView

override fun getSwipeRefreshLayout(): ViewGroup = movieSwipeRefreshLayout

override fun getLayoutManager(): RecyclerView.LayoutManager {
return StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)
}

override fun doLoadMore() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}

override fun onRefreshed() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}

companion object {
const val TAG = "MovieFragment"
private const val EXTRA_CATEGORY = "EXTRA_CATEGORY"

fun newInstance(category: String): MovieFragment {
val fragment = MovieFragment()
val args = Bundle()
args.putString(EXTRA_CATEGORY, category)
fragment.arguments = args
return fragment
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import android.arch.lifecycle.ViewModelProvider
import com.adriesavana.themoviedb.common.base.ViewModelType
import javax.inject.Inject

interface MovieActivityViewModelType : ViewModelType
interface MovieViewModelType : ViewModelType

class MovieViewModel : ViewModel(), MovieActivityViewModelType {
class MovieViewModel : ViewModel(), MovieViewModelType {

@Suppress("UNCHECKED_CAST")
class Factory
Expand Down
32 changes: 26 additions & 6 deletions app/src/main/res/layout/fragment_movie.xml
Original file line number Diff line number Diff line change
@@ -1,12 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:background="@android:color/holo_green_dark"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:text="Halo word"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/movieSwipeRefreshLayout"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent">

<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/movieRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="40dp"
android:clipToPadding="false"
tools:listitem="@layout/list_item_movie" />
</FrameLayout>

</android.support.v4.widget.SwipeRefreshLayout>

</android.support.constraint.ConstraintLayout>

0 comments on commit ce7f4de

Please sign in to comment.