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
1 change: 1 addition & 0 deletions .idea/gradle.xml

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

9 changes: 9 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ android {

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
androidExtensions {
experimental = true
}

buildTypes {
release {
Expand All @@ -25,12 +28,18 @@ android {
}

dependencies {
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0'
def nav_version = "2.3.1"
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.3.1'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
testImplementation 'junit:junit:4.12'
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

Expand Down
1 change: 0 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,4 @@
</intent-filter>
</activity>
</application>

</manifest>
Binary file added app/src/main/fab-playstore.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/ic_cancel_selected1-playstore.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/ic_cancel_selected2-playstore.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/ic_cancel_selected3-playstore.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/ic_delete-playstore.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,63 @@ package com.example.androidpractice2020

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import com.example.androidpractice2020.fragments.*
import com.example.androidpractice2020.recyclerview.ListAdapter
import com.example.androidpractice2020.recyclerview.Note
import com.google.android.material.bottomnavigation.BottomNavigationView
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.dialog_add.*

class MainActivity : AppCompatActivity() {
class MainActivity : AppCompatActivity(), NoteDialogFragment.NoticeDialogListener {
private val manager = supportFragmentManager
val fragment1 = FragmentText()
val fragment2 = FragmentRecycleView()
val fragment3 = FragmentCardView()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
bottom_navigation.setOnNavigationItemSelectedListener {item ->
when (item.itemId) {
R.id.page_1 -> showFragment(fragment1)
R.id.page_2 -> showFragment(fragment2)
R.id.page_3 -> showFragment(fragment3)
}
true
}
}
private fun showFragment(frag: Fragment) {
if (frag != null) {
val transaction = supportFragmentManager.beginTransaction()
transaction.replace(R.id.framelayout, frag)
transaction.commit()
}
}

override fun onDialogPositiveClick(dialog: DialogFragment?) {
val title = dialog?.dialog?.dialog_title?.text.toString()
val description = dialog?.dialog?.dialog_description?.text.toString()
val position = dialog?.dialog?.dialog_position?.text.toString()
print(title)
print(description)
print(position)

val newList = NoteRepository.repeat()

if (position == "" || newList.size <= position.toInt())
newList.add(Note(title, description, NoteRepository.makeId()))
else if (title == "" || description == "") {
onDialogNegativeClick(dialog)
}
else
newList.add(position.toInt() - 1, Note(title, description, NoteRepository.makeId()))

fragment2.updateList(newList)
}

override fun onDialogNegativeClick(dialog: DialogFragment?) {
TODO("Not yet implemented")
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.example.androidpractice2020.cardview

import android.media.Image

data class Model(
val image: Int, val title: String, val desc: String, val arrayPage: PagerAdapter
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.example.androidpractice2020.cardview

import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.example.androidpractice2020.R

class ModelAdapter(
var modelList: ArrayList<Model>
) : RecyclerView.Adapter<ModelHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ModelHolder =
ModelHolder(
LayoutInflater.from(parent.context).inflate(R.layout.card_item, parent, false)
)

override fun getItemCount(): Int = modelList.size

override fun onBindViewHolder(holder: ModelHolder, position: Int) =
holder.bind(modelList[position])

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.example.androidpractice2020.cardview

import android.util.Log
import android.view.View
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager2.widget.ViewPager2
import com.example.androidpractice2020.R
import com.google.android.material.imageview.ShapeableImageView
import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator

class ModelHolder(
containerView: View
) : RecyclerView.ViewHolder(containerView) {

var photo = itemView.findViewById<ShapeableImageView>(R.id.photo)
var name = itemView.findViewById<TextView>(R.id.name)
var mainPhoto = itemView.findViewById<ViewPager2>(R.id.main_photo)
var name2 = itemView.findViewById<TextView>(R.id.name2)
var description = itemView.findViewById<TextView>(R.id.descriptionView)
var tab = itemView.findViewById<TabLayout>(R.id.tab_layout)

fun bind(model: Model) {
Log.i("about", "Card bind")
photo.setImageResource(model.image)
name.text = model.title
description.text = model.desc
name2.text = model.title
mainPhoto.adapter = model.arrayPage

// tab.setupWithViewPager(mainPhoto, true) ViewPager1
TabLayoutMediator(tab, mainPhoto) { tab, postition -> }.attach() //ViewPager2
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.example.androidpractice2020.cardview

import com.example.androidpractice2020.R

object Models {
var models = arrayListOf(
Model(R.drawable.nasa, "nasa", "The glow of the Milky Way across a sea of stars...",
PagerAdapter(arrayListOf(R.drawable.example1, R.drawable.example2))),
Model(R.drawable.spacex, "spacex", "We are the in the World",
PagerAdapter(arrayListOf(R.drawable.example3, R.drawable.exampl4)))
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.example.androidpractice2020.cardview

import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.graphics.ColorSpace.Model
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager.widget.PagerAdapter
import com.example.androidpractice2020.R


class PagerAdapter(
val listImages: ArrayList<Int>
) : RecyclerView.Adapter<PagerHolder>() {

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PagerHolder =
PagerHolder(
LayoutInflater.from(parent.context).inflate(R.layout.all_image, parent, false)
)


override fun getItemCount(): Int = listImages.size

override fun onBindViewHolder(holder: PagerHolder, position: Int) = holder.itemView.run {
holder.bind(listImages[position])
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.example.androidpractice2020.cardview

import android.view.View
import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
import com.example.androidpractice2020.R

class PagerHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {

var allImage = itemView.findViewById<ImageView>(R.id.all_image)

fun bind(image: Int) {
allImage.setImageResource(image)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.example.androidpractice2020.fragments

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.example.androidpractice2020.R
import com.example.androidpractice2020.cardview.ModelAdapter
import com.example.androidpractice2020.cardview.Models
import kotlinx.android.synthetic.main.fragment_card_view.*

class FragmentCardView : Fragment() {
var adapter: ModelAdapter? = null
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_card_view, container, false)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

adapter = ModelAdapter(Models.models)

recycler2.adapter = adapter
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package com.example.androidpractice2020.fragments

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.ItemTouchHelper
import com.example.androidpractice2020.R
import com.example.androidpractice2020.recyclerview.ListAdapter
import com.example.androidpractice2020.recyclerview.Note
import com.example.androidpractice2020.recyclerview.TouchHelper
import kotlinx.android.synthetic.main.fragment_recycleview.*


class FragmentRecycleView : Fragment() {
private var adapter: ListAdapter? = null

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_recycleview, container, false)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
val itemDecorator =
DividerItemDecoration(context, DividerItemDecoration.VERTICAL)
itemDecorator.setDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.divider)!!)
val list = recycler
list.addItemDecoration(itemDecorator)
adapter = ListAdapter(
NoteRepository.arraylist
) { index: Int ->
var tempArr = NoteRepository.repeat()
tempArr.removeAt(index)
adapter?.updateDataSource(tempArr)
}

recycler.adapter = adapter

fab.setOnClickListener {
val newNoteDialogFragment = NoteDialogFragment()
newNoteDialogFragment.show(requireFragmentManager(), "note")
}

val callback = TouchHelper(adapter!!)
val touchHelper = ItemTouchHelper(callback)
touchHelper.attachToRecyclerView(recycler)

}

fun updateList(newList: ArrayList<Note>) {
adapter?.updateDataSource(newList)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.example.androidpractice2020.fragments

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.example.androidpractice2020.R

class FragmentText : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_text, container, false)
}
}
Loading