@@ -46,6 +46,7 @@ class AchievementFragment : BaseContainerFragment() {
4646 private var _binding : FragmentAchievementBinding ? = null
4747 private val binding get() = _binding !!
4848 private lateinit var aRealm: Realm
49+ private lateinit var realmChangeListener: io.realm.RealmChangeListener <Realm >
4950 var user: RealmUserModel ? = null
5051 var listener: OnHomeItemClickListener ? = null
5152 private var achievement: RealmAchievement ? = null
@@ -82,11 +83,14 @@ class AchievementFragment : BaseContainerFragment() {
8283 }
8384
8485 override fun onDestroyView () {
86+ super .onDestroyView()
8587 if (::realtimeSyncListener.isInitialized) {
8688 syncCoordinator.removeListener(realtimeSyncListener)
8789 }
90+ if (::realmChangeListener.isInitialized) {
91+ aRealm.removeChangeListener(realmChangeListener)
92+ }
8893 _binding = null
89- super .onDestroyView()
9094 }
9195
9296 private fun startAchievementSync () {
@@ -193,11 +197,12 @@ class AchievementFragment : BaseContainerFragment() {
193197
194198 achievement?.let {
195199 updateAchievementUI()
196- aRealm.addChangeListener {
200+ realmChangeListener = io.realm. RealmChangeListener {
197201 if (isAdded) {
198202 populateAchievements()
199203 }
200204 }
205+ aRealm.addChangeListener(realmChangeListener)
201206 }
202207 }
203208
@@ -303,7 +308,6 @@ class AchievementFragment : BaseContainerFragment() {
303308 customProgressDialog?.dismiss()
304309 customProgressDialog = null
305310 if (this ::aRealm.isInitialized && ! aRealm.isClosed) {
306- aRealm.removeAllChangeListeners()
307311 aRealm.close()
308312 }
309313 try {
0 commit comments