[GH-ISSUE #6112] [PM-27726] VC 20794 is not enumerated by com.google.android.gms/.identitycredentials.ui.CredentialChooserActivity. #109267

Closed
opened 2026-06-06 03:45:18 -05:00 by GiteaMirror · 3 comments
Owner

Originally created by @RokeJulianLockhart on GitHub (Nov 3, 2025).
Original GitHub issue: https://github.com/bitwarden/android/issues/6112

Steps To Reproduce

  1. Access intent:#Intent;package=org.thoughtcrime.securesms;component=org.thoughtcrime.securesms/.backup.v2.ui.subscription.MessageBackupsCheckoutActivity;end. 1

  2. Select “Save to password manager”, in the resultant androidx.compose.ui.window.DialogWrapper:

To automate this:

#!/usr/bin/env sh
$password = 0000
adb shell 'cmd activity start --user 0 -a android.intent.action.VIEW -n org.thoughtcrime.securesms/org.thoughtcrime.securesms.RoutingActivityAltDark -f 0 org.thoughtcrime.securesms' && \
adb exec-out uiautomator dump /dev/tty \
	| sed 's/></>\n</g' \
	| awk '
/content-desc="Settings shortcut"/ && /clickable="true"/ &&
match($0, /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b) {
	cx = int((b[1] + b[3]) / 2);
	cy = int((b[2] + b[4]) / 2);
	system("adb shell input tap " cx " " cy);
	exit
}
' && \
adb exec-out uiautomator dump /dev/tty \
	| sed 's/></>\n</g' \
	| awk '
BEGIN { IGNORECASE=1 }
(/text="Backups"/ || /content-desc="Backups"/) {
	for (i = NR; i > 0; i--) {
		if (index(lines[i], "clickable=\"true\"") &&
		match(lines[i], /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b)) {
			cx = int((b[1] + b[3]) / 2)
			cy = int((b[2] + b[4]) / 2)
			system("adb shell input tap " cx " " cy)
			exit
		}
	}
}
{ lines[NR] = $0 }
' && \
adb exec-out uiautomator dump /dev/tty \
| sed 's/></>\n</g' \
| awk '
BEGIN { IGNORECASE=1 }
(/text="View settings"/) {
	for (i = NR; i > 0; i--) {
		if (index(lines[i], "clickable=\"true\"") &&
		match(lines[i], /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b)) {
			cx = int((b[1] + b[3]) / 2)
			cy = int((b[2] + b[4]) / 2)
			system("adb shell input tap " cx " " cy)
			exit
		}
	}
}

{ lines[NR] = $0 }
' && \
adb exec-out uiautomator dump /dev/tty \
	| sed 's/></>\n</g' \
	| awk '
BEGIN { IGNORECASE=1 }
/text="View recovery key"/ {
	for (i = NR; i > 0; i--) {
		if (index(lines[i], "clickable=\"true\"") &&
		match(lines[i], /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b)) {
			cx = int((b[1] + b[3]) / 2)
			cy = int((b[2] + b[4]) / 2)
			system("adb shell input tap " cx " " cy)
			exit
		}
	}
}
{ lines[NR] = $0 }
' && \
adb exec-out uiautomator dump /dev/tty \
	| sed 's/></>\n</g' \
	| awk '
/text="Use PIN"/ && /clickable="true"/ &&
match($0, /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b) {
	cx = int((b[1] + b[3]) / 2)
	cy = int((b[2] + b[4]) / 2)
	system("adb shell input tap " cx " " cy)
	exit
}
' && \
adb shell input $password && \
adb shell input keyevent KEYCODE_ENTER && \
adb exec-out uiautomator dump /dev/tty \
	| sed 's/></>\n</g' \
	| awk '
BEGIN { IGNORECASE=1 }
/text="Save to password manager"/ {
	for (i = NR-1; i > 0; i--) {
		if (index(lines[i], "clickable=\"true\"") &&
		match(lines[i], /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b)) {
			cx = int((b[1] + b[3]) / 2)
			cy = int((b[2] + b[4]) / 2)
			system("adb shell input tap " cx " " cy)
			exit
		}
	}
}
{ lines[NR] = $0 }
' && \
adb exec-out uiautomator dump /dev/tty \
	| sed 's/></>\n</g' \
	| awk '
BEGIN { IGNORECASE=1 }
/text="Continue"/ {
	for (i = NR-1; i > 0; i--) {
		if (index(lines[i], "clickable=\"true\"") &&
		match(lines[i], /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b)) {
			cx = int((b[1] + b[3]) / 2)
			cy = int((b[2] + b[4]) / 2)
			system("adb shell input tap " cx " " cy)
			exit
		}
	}
}
{ lines[NR] = $0 }
' && \
adb exec-out uiautomator dump /dev/tty \
	| sed 's/></>\n</g' \
	| awk '
/text="More options"/ && /clickable="true"/ &&
match($0, /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b) {
	cx = int((b[1] + b[3]) / 2)
	cy = int((b[2] + b[4]) / 2)
	system("adb shell input tap " cx " " cy)
	exit
}
'

Expected Result

At intent:#Intent;package=com.google.android.gms;component=com.google.android.gms.identitycredentials.ui.CredentialChooserActivity;end, //node[@text="Bitwarden"] should be enumerated:

<node index="0" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false">
	<node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
	<node index="1" text="Bitwarden" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
	<node index="2" text="Mr. Beedell, Roke Julian Lockhart (RJLB)" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
	<node index="3" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
</node>

Actual Result

It is not:

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<hierarchy rotation="0">
	<node index="0" class="android.widget.FrameLayout" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
		<node index="0" class="android.widget.FrameLayout" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
			<node index="0" resource-id="android:id/content" class="android.widget.FrameLayout" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
				<node index="0" class="android.view.ViewGroup" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
					<node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
						<node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
							<node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
								<node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
									<node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
										<node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
											<node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
												<node index="0" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false">
													<node index="0" class="android.view.View" package="com.google.android.gms" content-desc="Close" clickable="false" enabled="true" focusable="false" focused="false" />
													<node index="1" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
												</node>
												<node index="1" text="Save password to" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
												<node index="2" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
													<node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
														<node index="1" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false">
															<node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="1" text="Google Password Manager" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="2" text="example@gmail.com" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="3" text="0 passwords • 1 passkeys" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="4" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
														</node>
														<node index="2" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false">
															<node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="1" text="Google Password Manager" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="2" text="example@gmail.com" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="3" text="753 passwords • 0 passkeys" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="4" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
														</node>
														<node index="3" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false">
															<node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="1" text="Google Password Manager" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="2" text="example@gmail.com" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="3" text="0 passwords • 2 passkeys" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="4" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
														</node>
														<node index="4" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false">
															<node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="1" text="Proton Pass" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="2" text="Placeholder Username" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
															<node index="3" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
														</node>
													</node>
												</node>
											</node>
										</node>
									</node>
								</node>
							</node>
						</node>
					</node>
				</node>
			</node>
		</node>
		<node index="1" resource-id="android:id/navigationBarBackground" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
	</node>
</hierarchy>

Environment Details

Version: 2025.10.0 (20794)
📱 Fairphone FP5 🤖 15@35 📦 prod
🧱 commit: bitwarden/android/release/2025.10-rc36@acc9113f9ad9b285e176375b6dc1db4249c3ae61
💻 build source: bitwarden/android/actions/runs/18227627683/attempts/1
🦀 SDK: 1.0.0-3194-9947387b
🌩 Server: 2025.10.1 @ US

Issue Tracking Info

  • I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.
Originally created by @RokeJulianLockhart on GitHub (Nov 3, 2025). Original GitHub issue: https://github.com/bitwarden/android/issues/6112 ### Steps To Reproduce 1. Access `intent:#Intent;package=org.thoughtcrime.securesms;component=org.thoughtcrime.securesms/.backup.v2.ui.subscription.MessageBackupsCheckoutActivity;end`. [^2] [^2]: [`MuntashirAkon/AppManager/issues/1618`](https://github.com/MuntashirAkon/AppManager/issues/1618#issue-3029418460) [^1] [^1]: [`signalapp/Signal-Android/issues/14404`](https://github.com/signalapp/Signal-Android/issues/14404#issue-3581485785) 1. Select “Save to password manager”, in the resultant `androidx.compose.ui.window.DialogWrapper`: To automate this: ~~~sh #!/usr/bin/env sh $password = 0000 adb shell 'cmd activity start --user 0 -a android.intent.action.VIEW -n org.thoughtcrime.securesms/org.thoughtcrime.securesms.RoutingActivityAltDark -f 0 org.thoughtcrime.securesms' && \ adb exec-out uiautomator dump /dev/tty \ | sed 's/></>\n</g' \ | awk ' /content-desc="Settings shortcut"/ && /clickable="true"/ && match($0, /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b) { cx = int((b[1] + b[3]) / 2); cy = int((b[2] + b[4]) / 2); system("adb shell input tap " cx " " cy); exit } ' && \ adb exec-out uiautomator dump /dev/tty \ | sed 's/></>\n</g' \ | awk ' BEGIN { IGNORECASE=1 } (/text="Backups"/ || /content-desc="Backups"/) { for (i = NR; i > 0; i--) { if (index(lines[i], "clickable=\"true\"") && match(lines[i], /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b)) { cx = int((b[1] + b[3]) / 2) cy = int((b[2] + b[4]) / 2) system("adb shell input tap " cx " " cy) exit } } } { lines[NR] = $0 } ' && \ adb exec-out uiautomator dump /dev/tty \ | sed 's/></>\n</g' \ | awk ' BEGIN { IGNORECASE=1 } (/text="View settings"/) { for (i = NR; i > 0; i--) { if (index(lines[i], "clickable=\"true\"") && match(lines[i], /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b)) { cx = int((b[1] + b[3]) / 2) cy = int((b[2] + b[4]) / 2) system("adb shell input tap " cx " " cy) exit } } } { lines[NR] = $0 } ' && \ adb exec-out uiautomator dump /dev/tty \ | sed 's/></>\n</g' \ | awk ' BEGIN { IGNORECASE=1 } /text="View recovery key"/ { for (i = NR; i > 0; i--) { if (index(lines[i], "clickable=\"true\"") && match(lines[i], /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b)) { cx = int((b[1] + b[3]) / 2) cy = int((b[2] + b[4]) / 2) system("adb shell input tap " cx " " cy) exit } } } { lines[NR] = $0 } ' && \ adb exec-out uiautomator dump /dev/tty \ | sed 's/></>\n</g' \ | awk ' /text="Use PIN"/ && /clickable="true"/ && match($0, /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b) { cx = int((b[1] + b[3]) / 2) cy = int((b[2] + b[4]) / 2) system("adb shell input tap " cx " " cy) exit } ' && \ adb shell input $password && \ adb shell input keyevent KEYCODE_ENTER && \ adb exec-out uiautomator dump /dev/tty \ | sed 's/></>\n</g' \ | awk ' BEGIN { IGNORECASE=1 } /text="Save to password manager"/ { for (i = NR-1; i > 0; i--) { if (index(lines[i], "clickable=\"true\"") && match(lines[i], /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b)) { cx = int((b[1] + b[3]) / 2) cy = int((b[2] + b[4]) / 2) system("adb shell input tap " cx " " cy) exit } } } { lines[NR] = $0 } ' && \ adb exec-out uiautomator dump /dev/tty \ | sed 's/></>\n</g' \ | awk ' BEGIN { IGNORECASE=1 } /text="Continue"/ { for (i = NR-1; i > 0; i--) { if (index(lines[i], "clickable=\"true\"") && match(lines[i], /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b)) { cx = int((b[1] + b[3]) / 2) cy = int((b[2] + b[4]) / 2) system("adb shell input tap " cx " " cy) exit } } } { lines[NR] = $0 } ' && \ adb exec-out uiautomator dump /dev/tty \ | sed 's/></>\n</g' \ | awk ' /text="More options"/ && /clickable="true"/ && match($0, /bounds="\[([0-9]+),([0-9]+)\]\[([0-9]+),([0-9]+)\]"/, b) { cx = int((b[1] + b[3]) / 2) cy = int((b[2] + b[4]) / 2) system("adb shell input tap " cx " " cy) exit } ' ~~~ ### Expected Result At `intent:#Intent;package=com.google.android.gms;component=com.google.android.gms.identitycredentials.ui.CredentialChooserActivity;end`, `//node[@text="Bitwarden"]` should be enumerated: ~~~XML <node index="0" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="1" text="Bitwarden" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="2" text="Mr. Beedell, Roke Julian Lockhart (RJLB)" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="3" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> </node> ~~~ ### Actual Result It is not: <blockquote> ~~~XML <?xml version='1.0' encoding='UTF-8' standalone='yes' ?> <hierarchy rotation="0"> <node index="0" class="android.widget.FrameLayout" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.widget.FrameLayout" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" resource-id="android:id/content" class="android.widget.FrameLayout" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.ViewGroup" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" content-desc="Close" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="1" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> </node> <node index="1" text="Save password to" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="2" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="1" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="1" text="Google Password Manager" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="2" text="example@gmail.com" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="3" text="0 passwords • 1 passkeys" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="4" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> </node> <node index="2" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="1" text="Google Password Manager" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="2" text="example@gmail.com" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="3" text="753 passwords • 0 passkeys" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="4" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> </node> <node index="3" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="1" text="Google Password Manager" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="2" text="example@gmail.com" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="3" text="0 passwords • 2 passkeys" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="4" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> </node> <node index="4" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="1" text="Proton Pass" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="2" text="Placeholder Username" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="3" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> </node> </node> </node> </node> </node> </node> </node> </node> </node> </node> </node> </node> </node> <node index="1" resource-id="android:id/navigationBarBackground" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> </node> </hierarchy> ~~~ </blockquote> <!-- ### Screenshots or Videos _No response_ ### Additional Context _No response_ ### Build Version > `versionCode=20794` ### What server are you connecting to? US ### Self-host Server Version > `2025.10.1` --> ### Environment Details <blockquote> ~~~YAML Version: 2025.10.0 (20794) 📱 Fairphone FP5 🤖 15@35 📦 prod 🧱 commit: bitwarden/android/release/2025.10-rc36@acc9113f9ad9b285e176375b6dc1db4249c3ae61 💻 build source: bitwarden/android/actions/runs/18227627683/attempts/1 🦀 SDK: 1.0.0-3194-9947387b 🌩 Server: 2025.10.1 @ US ~~~ </blockquote> ### Issue Tracking Info - [x] I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.
GiteaMirror added the app:password-managerbug labels 2026-06-06 03:45:19 -05:00
Author
Owner

@bitwarden-bot commented on GitHub (Nov 3, 2025):

Thank you for your report! We've added this to our internal board for review.
ID: PM-27726

<!-- gh-comment-id:3478561289 --> @bitwarden-bot commented on GitHub (Nov 3, 2025): Thank you for your report! We've added this to our internal board for review. ID: PM-27726
Author
Owner

@RokeJulianLockhart commented on GitHub (Nov 13, 2025):

The logs that issues/6160 links to may indicate that has been remediated.

<!-- gh-comment-id:3524575185 --> @RokeJulianLockhart commented on GitHub (Nov 13, 2025): The logs that [`issues/6160`](https://github.com/bitwarden/android/issues/6160#issue-3616650985) links to *may indicate* that has been remediated.
Author
Owner

@RokeJulianLockhart commented on GitHub (Dec 29, 2025):

This appears to be resolved, with //node[@text="Bitwarden"]: 1

  <?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
  <hierarchy rotation="0">
      <node index="0" class="android.widget.FrameLayout" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
          <node index="0" class="android.widget.FrameLayout" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
              <node index="0" resource-id="android:id/content" class="android.widget.FrameLayout" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
                  <node index="0" class="android.view.ViewGroup" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
                      <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
                          <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
                              <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
                                  <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
                                      <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
                                          <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
                                              <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
                                                  <node index="0" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false">
                                                      <node index="0" class="android.view.View" package="com.google.android.gms" content-desc="Close" clickable="false" enabled="true" focusable="false" focused="false" />
                                                      <node index="1" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                  </node>
                                                  <node index="1" text="Save password to" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                  <node index="2" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
                                                      <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false">
+                                                         <node index="0" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false">
+                                                             <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
+                                                             <node index="1" text="Bitwarden" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
+                                                             <node index="2" text="Mr. Beedell, Roke Julian Lockhart (RJLB)" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
+                                                             <node index="3" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
+                                                         </node>
                                                          <node index="1" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false">
                                                              <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="1" text="Google Password Manager" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="2" text="example@gmail.com" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="3" text="0 passwords • 1 passkeys" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="4" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                          </node>
                                                          <node index="2" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false">
                                                              <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="1" text="Google Password Manager" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="2" text="example@gmail.com" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="3" text="753 passwords • 0 passkeys" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="4" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                          </node>
                                                          <node index="3" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false">
                                                              <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="1" text="Google Password Manager" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="2" text="example@gmail.com" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="3" text="0 passwords • 2 passkeys" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="4" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                          </node>
                                                          <node index="4" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false">
                                                              <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="1" text="Proton Pass" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="2" text="Username" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                              <node index="3" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
                                                          </node>
                                                      </node>
                                                  </node>
                                              </node>
                                          </node>
                                      </node>
                                  </node>
                              </node>
                          </node>
                      </node>
                  </node>
              </node>
          </node>
          <node index="1" resource-id="android:id/navigationBarBackground" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" />
      </node>
  </hierarchy>

However, now, it reproduces at AChep/keyguard-app/issues/1191. 2

My Environment

  • Bitwarden

    © Bitwarden Inc. 2015-2025
    Version: 2025.12.0 (21003)
    📱 Fairphone FP5 🤖 15@35 📦 prod
    🧱 commit: bitwarden/android/release/2025.12-rc40@f02b374e989600a8458d2884abd2526244241c8a
    💻 build source: bitwarden/android/actions/runs/19830126705/attempts/1
    🦀 SDK: 1.0.0-3928-2cca3d46
    🌩 Server: 2025.12.1 @ US 
    
  • GMS

    sourcePackage=com.google.android.gms
    versionCode=254932035
    versionName=25.49.32 (260400-843446962)
    installerPackageName=com.android.vending
    
  • The OS

    [ro.build.version.release]: [15]
    [ro.build.display.id]: [FP5.VT2I.C.072.20251122]
    

    3

<!-- gh-comment-id:3696934236 --> @RokeJulianLockhart commented on GitHub (Dec 29, 2025): This appears to be resolved, with `//node[@text="Bitwarden"]`: [^3] [^3]: [`commit/167a46a0734d7561f41a883d51d18a7313f06808`](https://github.com/bitwarden/android/commit/167a46a0734d7561f41a883d51d18a7313f06808#diff-ae9a7e5912feb059d9c27bbe786bcb76d6317725e67fe693d9e5ac7a15ad0d3fR4) <blockquote> ~~~diff <?xml version='1.0' encoding='UTF-8' standalone='yes' ?> <hierarchy rotation="0"> <node index="0" class="android.widget.FrameLayout" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.widget.FrameLayout" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" resource-id="android:id/content" class="android.widget.FrameLayout" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.ViewGroup" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" content-desc="Close" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="1" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> </node> <node index="1" text="Save password to" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="2" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false"> + <node index="0" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false"> + <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> + <node index="1" text="Bitwarden" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> + <node index="2" text="Mr. Beedell, Roke Julian Lockhart (RJLB)" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> + <node index="3" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> + </node> <node index="1" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="1" text="Google Password Manager" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="2" text="example@gmail.com" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="3" text="0 passwords • 1 passkeys" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="4" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> </node> <node index="2" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="1" text="Google Password Manager" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="2" text="example@gmail.com" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="3" text="753 passwords • 0 passkeys" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="4" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> </node> <node index="3" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="1" text="Google Password Manager" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="2" text="example@gmail.com" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="3" text="0 passwords • 2 passkeys" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="4" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> </node> <node index="4" class="android.view.View" package="com.google.android.gms" clickable="true" enabled="true" focusable="true" focused="false"> <node index="0" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="1" text="Proton Pass" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="2" text="Username" class="android.widget.TextView" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> <node index="3" class="android.widget.Button" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> </node> </node> </node> </node> </node> </node> </node> </node> </node> </node> </node> </node> </node> <node index="1" resource-id="android:id/navigationBarBackground" class="android.view.View" package="com.google.android.gms" clickable="false" enabled="true" focusable="false" focused="false" /> </node> </hierarchy> ~~~ </blockquote> However, now, it reproduces at [`AChep/keyguard-app/issues/1191`](https://github.com/AChep/keyguard-app/issues/1191#issue-3767791015). [^2] [^2]: [`reddit.com/r/Bitwarden/comments/1pmwg6x/comment/nwkeb4j`](https://www.reddit.com/r/Bitwarden/comments/1pmwg6x/comment/nwkeb4j/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button#:~:text=I%27d%20not%20observed%20this%20reproduce%20with%20Keyguard%20until%20you%20mentioned%20it%2E%20In%20retrospect%2C%20BW%2C%20now%2C%20does%20appear%2C%20whereas%20Keyguard%20does%20not%2C%20per%20github%2Ecom/AChep/keyguard%2Dapp/issues/1191%2E) #### My Environment - #### Bitwarden > ~~~YAML > © Bitwarden Inc. 2015-2025 > Version: 2025.12.0 (21003) > 📱 Fairphone FP5 🤖 15@35 📦 prod > 🧱 commit: bitwarden/android/release/2025.12-rc40@f02b374e989600a8458d2884abd2526244241c8a > 💻 build source: bitwarden/android/actions/runs/19830126705/attempts/1 > 🦀 SDK: 1.0.0-3928-2cca3d46 > 🌩 Server: 2025.12.1 @ US > ~~~ - #### GMS > ~~~ini > sourcePackage=com.google.android.gms > versionCode=254932035 > versionName=25.49.32 (260400-843446962) > installerPackageName=com.android.vending > ~~~ - #### The OS > ~~~YAML > [ro.build.version.release]: [15] > [ro.build.display.id]: [FP5.VT2I.C.072.20251122] > ~~~ [^1] [^1]: [`forum.fairphone.com/t/128742`](https://forum.fairphone.com/t/aq3a-240912-001-versus-fp5-vt2i-c-072-20251122-which-is-the-most-accurate-build-identifier/128742?u=rokejulianlockhart)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#109267