FavoritesActivity.kt 9.52 KB
package com.example.vip

import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.widget.Toast
import androidx.appcompat.app.ActionBar
import androidx.core.content.ContextCompat
import androidx.core.content.ContextCompat.startActivity
import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.android.material.snackbar.Snackbar
import com.google.firebase.database.DataSnapshot
import com.google.firebase.database.DatabaseError
import com.google.firebase.database.FirebaseDatabase
import com.google.firebase.database.ValueEventListener
import kotlinx.android.synthetic.main.activity_favorites.*
import kotlinx.android.synthetic.main.activity_recommend.*
//import kotlinx.android.synthetic.main.activity_recommend.policyRecyclerView
import kotlinx.android.synthetic.main.activity_recommend.toolbar
import kotlinx.android.synthetic.main.activity_signin.*
import kotlinx.android.synthetic.main.search.*

data class MemoItemFavor(
    val Policy : String = "",
    val Content : String = "",
    val Link : String = "",
    val View : Int = 0,
    val Keyword : String = "",
    val Date : String = "",
    val Review : String = "",
    val Score : Float = 0.toFloat(),
    val Category1 : String = "",
    val Category2 : String = "",
    val Category3 : String = "",
    val Category4 : String = "",
    val Category5 : String = "",
    val Category6 : String = "",
    val Category7 : String = "",
    val Category8 : String = "",
    val Category9 : String = "",
    val Category10 : String = "",
    val Category11 : String = "",
    val Category12 : String = "",
    val Category13 : String = "",
    val Category14 : String = "",
    val Category15 : String = "",
    val Category16 : String = "",
    val Value : String = "",
    val D_day : String = ""
)

class FavoritesActivity : AppCompatActivity() {

    ////bottom navigation view operation start 1
    lateinit var bottomBar: ActionBar
    ////bottom navigation view operation end 1

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_favorites)

        // 네비게이션 뷰 포커스 맞추는 코드
        val bottomNavigationView: BottomNavigationView = findViewById(R.id.bottomNavigation3) as BottomNavigationView
        bottomNavigationView.selectedItemId = R.id.bottomFavorites
        bottomNavigationView.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)


        val policyList = ArrayList<PolicyItem>()
        var favordatabase = FirebaseDatabase.getInstance().reference


        val prof: SharedPreferences = getSharedPreferences("profdata", Context.MODE_PRIVATE)
        val editor: SharedPreferences.Editor=prof.edit()

        var tempstring=prof.getString("favorstringlist","")
        var sepstr=tempstring!!.split("@")
        var sepstrset=sepstr.toMutableSet()

        for (favor in sepstrset){

            favordatabase.orderByChild("Policy").startAt(favor).endAt(favor).addListenerForSingleValueEvent(object :
                ValueEventListener {
                override fun onCancelled(p0: DatabaseError) {
                    //Toast.makeText(this@FavoritesActivity, "실패부분", Toast.LENGTH_SHORT).show()
                }
                override fun onDataChange(dataSnapshot: DataSnapshot) {
                    for (memoSnapshot in dataSnapshot.children){
                        val memo = memoSnapshot.getValue(MemoItemFavor::class.java)

                        policyList.add(
                            PolicyItem(
                                ContextCompat.getDrawable(this@FavoritesActivity, R.drawable.recommend_default_blue)!!,
                                memo!!.Policy,
                                memo.Content,
                                memo.Link,
                                memo.View,
                                memo.Keyword,
                                memo.Date,
                                memo.Review,
                                memo.Score,
                                memo.Category1,
                                memo.Category2,
                                memo.Category3,
                                memo.Category4,
                                memo.Category5,
                                memo.Category6,
                                memo.Category7,
                                memo.Category8,
                                memo.Category9,
                                memo.Category10,
                                memo.Category11,
                                memo.Category12,
                                memo.Category13,
                                memo.Category14,
                                memo.Category15,
                                memo.Category16,
                                memo.Value,
                                memo.D_day
                            )
                        )
                    }

                    val adapter = PolicyAdapter(policyList)
                    policyRecyclerView.adapter = adapter

                    if (policyList.size == 0) {
                        policyRecyclerView.setVisibility(View.GONE)
                        no_favor.setVisibility(View.VISIBLE)
                    }
                    else {
                        no_favor.setVisibility(View.GONE)
                        policyRecyclerView.setVisibility(View.VISIBLE)

                    }
                }
            })
        }

        // 1. 툴바 사용 설정
        setSupportActionBar(toolbar)

        // 2. 툴바 왼쪽 버튼 설정
        supportActionBar!!.setDisplayHomeAsUpEnabled(false) // 왼쪽 버튼 사용 여부 true
        supportActionBar!!.setHomeAsUpIndicator(R.drawable.return_page) // 왼쪽 버튼 아이콘 설정
        supportActionBar!!.setDisplayShowTitleEnabled(false) // 타이틀 안보이게 하기

        ////bottom navigation view operation start 2
        bottomBar=supportActionBar!!
        //val bottomNavigation: BottomNavigationView =findViewById(R.id.bottomNavigation)
        //bottomNavigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)
        ////bottom navigation view operation end 2

    }
    // 3.툴바 메뉴 버튼을 설정
    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.main_menu, menu) // main_menu 메뉴를 toolbar 메뉴 버튼으로 설정
        return true
    }

    // 4.툴바 메뉴 버튼이 클릭 됐을 때 콜백
    override fun onOptionsItemSelected(item: MenuItem?): Boolean {
        // 클릭된 메뉴 아이템의 아이디 마다 when 구절로 클릭시 동작을 설정한다.
        when(item!!.itemId){
            android.R.id.home->{ // 메뉴 버튼
                bottomNavigation3.selectedItemId = R.id.bottomFavorites
                Snackbar.make(toolbar,"Menu pressed", Snackbar.LENGTH_SHORT).show()
            }
            R.id.menu_search->{ // 검색 버튼
                val search_Intent = Intent(this, SearchActivity::class.java)
                startActivity(search_Intent)
                //Snackbar.make(toolbar,"Search menu pressed",Snackbar.LENGTH_SHORT).show()
            }
        }
        return super.onOptionsItemSelected(item)
    }

    var back_pressed: Long = 0 // 뒤로가기 종료

    override fun onBackPressed() {
        if (back_pressed + 2000 > System.currentTimeMillis()) {
            finishAffinity()
            System.runFinalization()
            System.exit(0)
        }
        //super.onBackPressed()
        else
            Toast.makeText(getBaseContext(), "\'뒤로\' 버튼을 한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT).show()
        back_pressed = System.currentTimeMillis()

        val prof: SharedPreferences =getSharedPreferences("profdata", Context.MODE_PRIVATE)
        val editor: SharedPreferences.Editor=prof.edit()

        editor.putBoolean("popupdone?",false)
        editor.commit()
    }


    //bottom navigation view operation start 3
    private val mOnNavigationItemSelectedListener=
        BottomNavigationView.OnNavigationItemSelectedListener{ item->
            when (item.itemId){

                R.id.bottomHome ->{
                    //bottomNavigation3.selectedItemId = R.id.bottomFavorites
                    val intent = Intent(this, SignInActivity::class.java)
                    startActivity(intent)
                    return@OnNavigationItemSelectedListener true
                }
                R.id.bottomRecommend ->{
                    //bottomNavigation3.selectedItemId = R.id.bottomFavorites
                    val intent = Intent(this, RecommendActivity::class.java)
                    startActivity(intent)
                    return@OnNavigationItemSelectedListener true
                }
                R.id.bottomFavorites ->{
                    //val intent = Intent(this, FavoritesActivity::class.java)
                    //startActivity(intent)
                    //return@OnNavigationItemSelectedListener true
                }
                R.id.bottomInfo ->{
                    //bottomNavigation3.selectedItemId = R.id.bottomFavorites
                    val intent = Intent(this, InfoActivity::class.java)
                    startActivity(intent)
                    return@OnNavigationItemSelectedListener true
                }


            }
            false
        }
//bottom navigation view operation end 3

}