diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml index 79ee123..a55e7a1 100644 --- a/.idea/codeStyles/codeStyleConfig.xml +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -1,5 +1,5 @@ - \ No newline at end of file diff --git a/app/src/main/java/com/example/android/notekeeper/ListActivity.kt b/app/src/main/java/com/example/android/notekeeper/ListActivity.kt index 46efef0..444cd27 100644 --- a/app/src/main/java/com/example/android/notekeeper/ListActivity.kt +++ b/app/src/main/java/com/example/android/notekeeper/ListActivity.kt @@ -3,36 +3,36 @@ package com.example.android.notekeeper import android.content.Intent import android.os.Bundle import android.support.v7.app.AppCompatActivity -import android.widget.ArrayAdapter +import android.support.v7.widget.DividerItemDecoration +import android.support.v7.widget.LinearLayoutManager +import com.example.android.notekeeper.adp.NoteAdp import kotlinx.android.synthetic.main.activity_list.* import kotlinx.android.synthetic.main.content_list.* -class ListActivity : AppCompatActivity() { +class ListActivity : AppCompatActivity(), NoteAdp.Listener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_list) setSupportActionBar(toolbar) - fab.setOnClickListener { view -> - val intent = Intent(this, MainActivity::class.java) + fab.setOnClickListener { openNewActivity(null) } - startActivity(intent) + listOfNotes.apply { + layoutManager = LinearLayoutManager(context) + addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.HORIZONTAL)) } - listOfNotes.adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, DataManager.notes) - - listOfNotes.setOnItemClickListener { parent, view, position, id -> - val intent = Intent(this, MainActivity::class.java) - - intent.putExtra(NOTE_POSITION, position) + listOfNotes.adapter = NoteAdp(DataManager.notes, this) + } - startActivity(intent) - } + override fun onItemClicked(adapterPosition: Int) { + openNewActivity(adapterPosition) } - override fun onResume() { - super.onResume() - (listOfNotes.adapter as ArrayAdapter).notifyDataSetChanged() + private fun openNewActivity(adpPosition: Int?) { + val intent = Intent(this, MainActivity::class.java) + adpPosition?.run { intent.putExtra(NOTE_POSITION, adpPosition) } + startActivity(intent) } } diff --git a/app/src/main/java/com/example/android/notekeeper/NoteKeeperData.kt b/app/src/main/java/com/example/android/notekeeper/NoteKeeperData.kt index 042bb36..50058ae 100644 --- a/app/src/main/java/com/example/android/notekeeper/NoteKeeperData.kt +++ b/app/src/main/java/com/example/android/notekeeper/NoteKeeperData.kt @@ -1,9 +1,5 @@ package com.example.android.notekeeper -data class CourseInfo (val courseId: String, val title: String) { - override fun toString(): String { - return title - } -} +data class CourseInfo(val courseId: String, val title: String) data class NoteInfo (var course: CourseInfo? = null, var title: String? = null, var text: String? = null) \ No newline at end of file diff --git a/app/src/main/java/com/example/android/notekeeper/adp/NoteAdp.kt b/app/src/main/java/com/example/android/notekeeper/adp/NoteAdp.kt new file mode 100644 index 0000000..88a7cff --- /dev/null +++ b/app/src/main/java/com/example/android/notekeeper/adp/NoteAdp.kt @@ -0,0 +1,48 @@ +package com.example.android.notekeeper.adp + +import android.content.Context +import android.support.v7.widget.RecyclerView +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import com.example.android.notekeeper.NoteInfo +import com.example.android.notekeeper.R +import kotlinx.android.synthetic.main.item_note.view.* + +class NoteAdp(private val noteInfoList: List, private val listener: Listener) : + RecyclerView.Adapter() { + + interface Listener { + fun onItemClicked(adapterPosition: Int) + } + + override fun onCreateViewHolder(parent: ViewGroup, p1: Int): ViewHolder { + val inflater = LayoutInflater.from(parent.context) + val layout = inflater.inflate(R.layout.item_note, parent, false) + + return ViewHolder(layout, listener) + } + + override fun onBindViewHolder(holder: ViewHolder, positionItem: Int) { + holder.bindView(noteInfoList[positionItem], holder.itemView.context) + } + + override fun getItemCount(): Int = noteInfoList.size + + + class ViewHolder(private val view: View, listener: Listener) : RecyclerView.ViewHolder(view) { + + init { + view.setOnClickListener { listener.onItemClicked(adapterPosition) } + } + + fun bindView(noteInfo: NoteInfo, context: Context) { + view.item_note_info.text = context.getText(R.string.note) + view.item_note_course.text = noteInfo.course?.title + view.item_note_title.text = noteInfo.title + view.item_note_text.text = noteInfo.text + } + + } + +} \ No newline at end of file diff --git a/app/src/main/res/layout/content_list.xml b/app/src/main/res/layout/content_list.xml index 3a58861..8b6f2f2 100644 --- a/app/src/main/res/layout/content_list.xml +++ b/app/src/main/res/layout/content_list.xml @@ -1,20 +1,21 @@ - + + + - \ No newline at end of file diff --git a/app/src/main/res/layout/item_note.xml b/app/src/main/res/layout/item_note.xml new file mode 100644 index 0000000..db713d1 --- /dev/null +++ b/app/src/main/res/layout/item_note.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2ac0d40..64c2dd4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2,4 +2,6 @@ Edit note Settings Note Keeper + + Note Info: diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 16dbab3..8a75869 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -14,4 +14,10 @@ +