Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView

Expand All @@ -18,6 +19,10 @@ class ImageDisplayFragment : Fragment() {

private lateinit var images: IntArray

private val mainViewModel : MainViewModel by lazy{
ViewModelProvider(requireActivity())[MainViewModel::class.java]
}

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// If we have arguments
Expand All @@ -40,7 +45,10 @@ class ImageDisplayFragment : Fragment() {
// The recycler view is the root element of the Fragment's layout
// as such the view argument passed to onViewCreated() is the RecyclerView
with (view as RecyclerView) {
adapter = CustomRecyclerAdapter(images)
mainViewModel.getImageIds().observe(requireActivity()){
adapter = CustomRecyclerAdapter(it)
}

layoutManager = GridLayoutManager(requireContext(), 2)
}
}
Expand Down
10 changes: 9 additions & 1 deletion app/src/main/java/edu/temple/inclassactivity/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,26 @@ package edu.temple.inclassactivity

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.lifecycle.ViewModelProvider

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

val mainViewModel = ViewModelProvider(this)[MainViewModel::class.java]

// Fetch images into IntArray called imageArray
val typedArray = resources.obtainTypedArray(R.array.image_ids)
val imageArray = IntArray(typedArray.length()) {typedArray.getResourceId(it, 0)}
typedArray.recycle()

// Attach an instance of ImageDisplayFragment using factory method
mainViewModel.setImageIds(imageArray)

// Attach an instance of ImageDisplayFragment using factory method
//val fragment = ImageDisplayFragment.newInstance(imageArray)
val fragmentT = supportFragmentManager.beginTransaction()
fragmentT.add(R.id.fragmentContainerView, ImageDisplayFragment())
fragmentT.commit()
}
}
20 changes: 20 additions & 0 deletions app/src/main/java/edu/temple/inclassactivity/MainViewModel.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package edu.temple.inclassactivity

import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel

class MainViewModel: ViewModel() {
private val imageIds = MutableLiveData<IntArray>()


fun setImageIds(imageIds: IntArray){
this.imageIds.value = imageIds
}

fun getImageIds(): LiveData<IntArray>{
return imageIds
}


}
10 changes: 10 additions & 0 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,14 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragmentContainerView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:layout="@layout/fragment_image_display" />
</androidx.constraintlayout.widget.ConstraintLayout>