Skip to content
Closed
Changes from 1 commit
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
44c3307
Stats Revamp Feature Announcement
ravishanker Jun 3, 2022
9c9377e
Update image
ravishanker Jun 7, 2022
add7824
Adds PreferenceFragmentLifeCycleOwner class to support lifecycleowner…
SowmiaS Jun 13, 2022
cf5193f
Merge pull request #16370 from SowmiaS/issue/12372_implement_lifecycl…
AjeshRPai Jun 14, 2022
3d786c5
Merge branch 'trunk' into merge/release-20.1-into-trunk
spencertransier Jun 14, 2022
771b76b
Build: Remove unused analytics specific gradle properties example file
ParaskP7 Jun 14, 2022
c3ade3c
Build: Remove unnecessary git ignore file from analytics module
ParaskP7 Jun 14, 2022
4ebe98e
Build: Remove sub-root related gradle files from analytics module
ParaskP7 Jun 14, 2022
6e421a8
Docs: Update readme for analytics module
ParaskP7 Jun 14, 2022
206995f
Build: Remove unnecessary wordpress analytics module level
ParaskP7 Jun 14, 2022
9b20599
Merge pull request #16741 from wordpress-mobile/merge/release-20.1-in…
spencertransier Jun 14, 2022
427319b
Migrate StatsNewFeaturesIntroDialogFragment to Hilt
irfano Jun 14, 2022
65600eb
Merge branch 'trunk' into Stats-Revamp-v2-New-Features-Announcement
ravishanker Jun 15, 2022
b652d82
Merge pull request #16703 from wordpress-mobile/Stats-Revamp-v2-New-F…
ravishanker Jun 15, 2022
af667ac
Docs: Update library with module on analytics module readme description
ParaskP7 Jun 15, 2022
039001f
Merge branch 'trunk' of github.com:wordpress-mobile/WordPress-Android…
ParaskP7 Jun 15, 2022
7b878c7
Merge pull request #16750 from wordpress-mobile/release/20.1
AliSoftware Jun 15, 2022
1db2504
Build: Remove unused networking specific gradle properties example file
ParaskP7 Jun 15, 2022
916931c
Build: Remove unnecessary git ignore file from networking module
ParaskP7 Jun 15, 2022
dadf4f0
Build: Remove sub-root related gradle files from networking module
ParaskP7 Jun 15, 2022
3e790e3
Docs: Add readme for networking module
ParaskP7 Jun 15, 2022
743d067
Build: Remove unnecessary wordpress networking module level
ParaskP7 Jun 15, 2022
975f451
Fix date problem on stats line chart
irfano Jun 15, 2022
a3aaa79
Merge pull request #16754 from wordpress-mobile/fix/stats-revamp-v2-l…
ravishanker Jun 16, 2022
3af2fc7
Merge pull request #16744 from wordpress-mobile/build/restructure-ana…
ParaskP7 Jun 16, 2022
6f2c174
Merge branch 'trunk' into build/restructure-networking-module
ParaskP7 Jun 16, 2022
7cb0558
Merge pull request #16752 from wordpress-mobile/build/restructure-net…
ParaskP7 Jun 16, 2022
8b8ec5b
Merge pull request #16761 from wordpress-mobile/release/20.1
AliSoftware Jun 16, 2022
aa402fa
Release script: Update build.gradle gutenbergMobileVersion to ref
SiobhyB Jun 16, 2022
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
Prev Previous commit
Next Next commit
Adds PreferenceFragmentLifeCycleOwner class to support lifecycleowner…
… functions for deprecated PreferenceFragment
  • Loading branch information
SowmiaS committed Jun 13, 2022
commit add782472a5206d024331221175163313c21cd8b
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package org.wordpress.android.ui.prefs

import android.os.Bundle
import android.preference.PreferenceFragment
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.Lifecycle.Event.ON_CREATE
import androidx.lifecycle.Lifecycle.Event.ON_DESTROY
import androidx.lifecycle.Lifecycle.Event.ON_PAUSE
import androidx.lifecycle.Lifecycle.Event.ON_START
import androidx.lifecycle.Lifecycle.Event.ON_STOP
import androidx.lifecycle.LifecycleCoroutineScope
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.LifecycleRegistry
import androidx.lifecycle.coroutineScope

/**
* LifecycleOwner is a single method interface that denotes that the class has a Lifecycle.
* android.preference.PreferenceFragment doesn't implement android.app.Fragment.LifecycleOwner interface.
* Fragments and Activities in Support Library 26.1.0 and later already implement the LifecycleOwner interface.
* Until we migrate to androidx Preference Library, we can use this class instead of deprecated PreferenceFragment,
* which supports the use of lifecycleCoroutineScope for observing Live data or Flows.
* https://developer.android.com/topic/libraries/architecture/lifecycle#implementing-lco
*/
@SuppressWarnings("deprecation")
open class PreferenceFragmentLifeCycleOwner : PreferenceFragment(), LifecycleOwner {
private lateinit var lifecycleRegistry: LifecycleRegistry

val lifecycleScope: LifecycleCoroutineScope
get() = lifecycle.coroutineScope

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
lifecycleRegistry = LifecycleRegistry(this)
lifecycleRegistry.handleLifecycleEvent(ON_CREATE)
}

override fun onStart() {
super.onStart()
lifecycleRegistry.handleLifecycleEvent(ON_START)
}

override fun onPause() {
super.onPause()
lifecycleRegistry.handleLifecycleEvent(ON_PAUSE)
}

override fun onStop() {
super.onStop()
lifecycleRegistry.handleLifecycleEvent(ON_STOP)
}

override fun onDestroy() {
super.onDestroy()
lifecycleRegistry.handleLifecycleEvent(ON_DESTROY)
}

override fun getLifecycle(): Lifecycle {
return lifecycleRegistry
}
}