vwwoe9027
@vwwoe9027
Reviews Written
-
Average Rating
-
Posts
Q&A
๋งค์นญ์๋ฃํ->Notification ๋จ์ง์๋ ์ค๋ฅ ๋ฌธ์ ..
๊ฐ๋ณต์น๋ ์ถ๊ฐ๋กManifest ์ชฝ์๋ notifications ๊ถํ์ด ๋์ํ์ ๋๋ค. ๋ญ๊ฐ๋ฌธ์ ์ผ๊น์..? ใ ใ
- 0
- 4
- 729
Q&A
๋งค์นญ์๋ฃํ->Notification ๋จ์ง์๋ ์ค๋ฅ ๋ฌธ์ ..
๊ฐ๋ณต์น๋!! ๊นํ๋ธ ์ฌ์ฉํ๋ค๊ฐ ๋์ ํ ์๋์ ์๋์ ๊ฐ์ด ์ฝ๋ ๋ณต์ฌํ์ฌ ์ก๋ถ๋๋ฆฝ๋๋ค.์ค๋ฅ ํ์ธ ๋ถํ๋๋ฆฝ๋๋ค. ๋งจ ๋ฐ์ ์ค์ด ์๋ฌ๋ก ๋น๋๋ค.์ค๋ฅ ์ฝ๋ : with(NotificationManagerCompat.from(this)){notify(123, builder.build()) package com.example.sogothingimport android.app.NotificationChannelimport android.app.NotificationManagerimport android.content.Contextimport android.content.Intentimport android.os.Buildimport androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport android.util.Logimport android.view.Viewimport android.widget.ImageViewimport android.widget.Toastimport androidx.core.app.NotificationCompatimport androidx.core.app.NotificationManagerCompatimport com.bumptech.glide.Glideimport com.example.sogothing.auth.IntroActivityimport com.example.sogothing.auth.UserDataModelimport com.example.sogothing.setting.SettingActivityimport com.example.sogothing.slider.CardStackAdapterimport com.example.sogothing.utils.FirebaseAuthUtilsimport com.example.sogothing.utils.FirebaseRefimport com.google.firebase.auth.ktx.authimport com.google.firebase.database.DataSnapshotimport com.google.firebase.database.DatabaseErrorimport com.google.firebase.database.ValueEventListenerimport com.google.firebase.ktx.Firebaseimport com.google.firebase.storage.ktx.storageimport com.yuyakaido.android.cardstackview.CardStackLayoutManagerimport com.yuyakaido.android.cardstackview.CardStackListenerimport com.yuyakaido.android.cardstackview.CardStackViewimport com.yuyakaido.android.cardstackview.Directionclass MainActivity : AppCompatActivity() {lateinit var cardStackAdapter: CardStackAdapterlateinit var manager : CardStackLayoutManagerprivate val TAG = "MainActivity"private val usersDataList = mutableListOf()private var userCount = 0private lateinit var currentUserGender : Stringprivate val uid = FirebaseAuthUtils.getUid()override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)// ๋๋ ๋ฏผ์, ๋ด๊ฐ ์ข์ํ ์ฌ์๋ ๋ฏผ์ง๋ค// ๋ด๊ฐ ๋ฏผ์ง๋ฅผ ์ข์์ ํ๋ฉด์, ๋ฏผ์ง์ ์ข์์ ๋ฆฌ์คํธ์ค์์ ๋ด๊ฐ ์๋์ง๋ง ํ์ธํ๋ฉด ๋จ.//val setting = findViewById(R.id.settingIcon)setting.setOnClickListener{val intent = Intent(this, SettingActivity::class.java)startActivity(intent)}val cardStackView = findViewById(R.id.cardStackView)manager = CardStackLayoutManager(baseContext,object : CardStackListener {override fun onCardDragging(direction: Direction?, ratio: Float) {}override fun onCardSwiped(direction: Direction?) {if(direction == Direction.Right) {// Toast.makeText(this@MainActivity,"right", Toast.LENGTH_SHORT).show()// Log.d(TAG,usersDataList[userCount].uid.toString())userLikeOtherUser(uid,usersDataList[userCount].uid.toString())}if(direction == Direction.Left) {// Toast.makeText(this@MainActivity,"left", Toast.LENGTH_SHORT).show()}userCount = userCount + 1if(userCount == usersDataList.count()) {getUserDataList(currentUserGender)Toast.makeText(this@MainActivity,"์ ์ ์๋กญ๊ฒ ๋ฐ์์ต๋๋ค", Toast.LENGTH_LONG).show()}}override fun onCardRewound() {}override fun onCardCanceled() {}override fun onCardAppeared(view: View?, position: Int) {}override fun onCardDisappeared(view: View?, position: Int) {}})cardStackAdapter = CardStackAdapter(baseContext,usersDataList)cardStackView.layoutManager = managercardStackView.adapter = cardStackAdapter// getUserDataList()getMyUserData()}private fun getMyUserData(){val postListener = object : ValueEventListener {override fun onDataChange(dataSnapshot: DataSnapshot) {Log.d(TAG,dataSnapshot.toString())val data = dataSnapshot.getValue(UserDataModel::class.java)Log.d(TAG,data?.gender.toString())currentUserGender = data?.gender.toString()getUserDataList(currentUserGender)}override fun onCancelled(databaseError: DatabaseError) {// Getting Post failed, log a messageLog.w(TAG, "loadPost:onCancelled", databaseError.toException())}}FirebaseRef.userInfoRef.child(uid).addValueEventListener(postListener)}private fun getUserDataList(currentUserGender : String){val postListener = object : ValueEventListener {override fun onDataChange(dataSnapshot: DataSnapshot) {for (dataModel in dataSnapshot.children){val user = dataModel.getValue(UserDataModel::class.java)if(user!!.gender.toString().equals(currentUserGender)){} else {}usersDataList.add(user!!)}cardStackAdapter.notifyDataSetChanged()}override fun onCancelled(databaseError: DatabaseError) {// Getting Post failed, log a messageLog.w(TAG, "loadPost:onCancelled", databaseError.toException())}}FirebaseRef.userInfoRef.addValueEventListener(postListener)}// ์ ์ ์ ์ข์์๋ฅผ ํ์ํ๋ ๋ถ๋ถ// ๋ฐ์ดํฐ์์ ๊ฐ์ ์ ์ฅํด์ผ ๋๋๋ฐ, ์ด๋ค ๊ฐ์ ์ ์ฅํ ๊น?// ๋์ uid, ๋ด๊ฐ ์ข์์ ํ ์ฌ๋์ uid ๊ฐprivate fun userLikeOtherUser(myUid : String, otherUid : String){FirebaseRef.userLikeRef.child(uid).child(otherUid).setValue("true")getOtherUserLikeList(otherUid)}// ๋ด๊ฐ ์ข์์ํ ์ฌ๋์ด ๋๊ตฌ๋ฅผ ์ข์์ ํ๋์ง ์ ์ ์์.private fun getOtherUserLikeList(otherUid : String){val postListener = object : ValueEventListener {override fun onDataChange(dataSnapshot: DataSnapshot) {// ์ฌ๊ธฐ ๋ฆฌ์คํธ์์์ ๋์ UID๊ฐ ์๋ ์ง ํ์ธ๋ง ํด์ฃผ๋ฉด ๋จ.// ๋ด๊ฐ ์ข์์ํ ์ฌ๋(์๋)์ ์ข์์ ๋ฆฌ์คํธ๋ฅผ ๋ถ๋ฌ์์// ์ฌ๊ธฐ์ ๋ด UID๊ฐ ์๋ ์ง ์ฒดํฌ๋ง ํด์ฃผ๋ฉด ๋จ.for (dataModel in dataSnapshot.children){Log.e(TAG, dataModel.key.toString())val likeUserKey = dataModel.key.toString()if(likeUserKey.equals(uid)) {Toast.makeText(this@MainActivity,"๋งค์นญ์๋ฃ",Toast.LENGTH_SHORT).show()createNotificationChannel()sendNotification()}}}override fun onCancelled(databaseError: DatabaseError) {// Getting Post failed, log a messageLog.w(TAG, "loadPost:onCancelled", databaseError.toException())}}FirebaseRef.userLikeRef.child(otherUid).addValueEventListener(postListener)}// Notificationprivate fun createNotificationChannel() {// Create the NotificationChannel, but only on API 26+ because// the NotificationChannel class is new and not in the support libraryif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {val name = "name"val descriptionText = "description"val importance = NotificationManager.IMPORTANCE_DEFAULTval channel = NotificationChannel("Test_Channel", name, importance).apply {description = descriptionText}// Register the channel with the systemval notificationManager: NotificationManager =getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManagernotificationManager.createNotificationChannel(channel)}}private fun sendNotification(){var builder = NotificationCompat.Builder(this, "Test_Channel").setSmallIcon(R.drawable.ic_launcher_background).setContentTitle("title").setContentText("content").setPriority(NotificationCompat.PRIORITY_DEFAULT)with(NotificationManagerCompat.from(this)){notify(123, builder.build())}}}
- 0
- 4
- 729




