mirror of
https://github.com/bitwarden/android.git
synced 2025-12-11 04:39:19 -06:00
PM-25143: Retain intent data on recreate (#5787)
This commit is contained in:
parent
4a79d7e6c8
commit
2b35ac0d3a
@ -43,8 +43,6 @@ import dagger.hilt.android.AndroidEntryPoint
|
|||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
private const val ANDROID_15_BUG_MAX_REVISION: Int = 241007
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Primary entry point for the application.
|
* Primary entry point for the application.
|
||||||
*/
|
*/
|
||||||
@ -217,35 +215,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun handleRecreate() {
|
private fun handleRecreate() {
|
||||||
val isOldAndroidBuildRevision = {
|
ActivityCompat.recreate(this)
|
||||||
// This fetches the date portion of the ID in order to determine the revision of
|
|
||||||
// Android 15 being used and whether we want to use the `recreate` API or not.
|
|
||||||
// If we fail to parse a date, we assume it is not an old revision.
|
|
||||||
"\\.([^.]+)\\."
|
|
||||||
.toRegex()
|
|
||||||
.find(Build.ID)
|
|
||||||
?.groups
|
|
||||||
?.get(1)
|
|
||||||
?.value
|
|
||||||
?.toIntOrNull()
|
|
||||||
?.let { it <= ANDROID_15_BUG_MAX_REVISION } == true
|
|
||||||
}
|
|
||||||
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.VANILLA_ICE_CREAM &&
|
|
||||||
isOldAndroidBuildRevision()
|
|
||||||
) {
|
|
||||||
// This is done to avoid a bug in specific older revisions of Android 15. The bug has
|
|
||||||
// been fixed but certain phones that are no longer supported will never get the fix.
|
|
||||||
// The OS bug is tracked here: https://issuetracker.google.com/issues/370180732
|
|
||||||
startActivity(
|
|
||||||
Intent
|
|
||||||
.makeMainActivity(componentName)
|
|
||||||
.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION),
|
|
||||||
)
|
|
||||||
finish()
|
|
||||||
overrideActivityTransition(OVERRIDE_TRANSITION_CLOSE, 0, 0)
|
|
||||||
} else {
|
|
||||||
ActivityCompat.recreate(this)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateScreenCapture(isScreenCaptureAllowed: Boolean) {
|
private fun updateScreenCapture(isScreenCaptureAllowed: Boolean) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user