Skip to content

Commit 29eb730

Browse files
@W-19130548: [MSDK Android] Using External Link With Login_Hint And Login_Host Duplicates Login Servers In Server Picker (#2738)
1 parent a8ec0dd commit 29eb730

3 files changed

Lines changed: 6 additions & 3 deletions

File tree

libs/SalesforceSDK/src/com/salesforce/androidsdk/config/LoginServerManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ public void useSandbox() {
192192
public void addCustomLoginServer(String name, String url) {
193193
// Prevent duplicate servers.
194194
for (LoginServer existingServer : getLoginServers()) {
195-
if (name.equals(existingServer.name) && url.equals(existingServer.url)) {
195+
if (url.equals(existingServer.url)) {
196196
setSelectedLoginServer(existingServer);
197197
return;
198198
}

libs/SalesforceSDK/src/com/salesforce/androidsdk/ui/LoginActivity.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1456,6 +1456,7 @@ open class LoginActivity : FragmentActivity() {
14561456
context: Context,
14571457
uri: Uri,
14581458
): Boolean {
1459+
if (!uri.isHierarchical) return false
14591460
val clientIdParameter = uri.getQueryParameter(SALESFORCE_WELCOME_DISCOVERY_MOBILE_URL_QUERY_PARAMETER_KEY_CLIENT_ID)
14601461
return isSalesforceWelcomeDiscoveryUrlPath(uri) && uri.queryParameterNames?.contains(
14611462
SALESFORCE_WELCOME_DISCOVERY_MOBILE_URL_QUERY_PARAMETER_KEY_CLIENT_ID

libs/SalesforceSDK/src/com/salesforce/androidsdk/ui/components/PickerBottomSheet.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,10 @@ fun PickerBottomSheet(pickerStyle: PickerStyle) {
151151
val onNewLoginServerSelected = { newSelectedServer: Any?, closePicker: Boolean ->
152152
if (newSelectedServer != null && newSelectedServer is LoginServer) {
153153
viewModel.showServerPicker.value = !closePicker
154-
viewModel.loading.value = true
155-
SalesforceSDKManager.getInstance().loginServerManager.selectedLoginServer = newSelectedServer
154+
if (newSelectedServer != SalesforceSDKManager.getInstance().loginServerManager.selectedLoginServer) {
155+
viewModel.loading.value = true
156+
SalesforceSDKManager.getInstance().loginServerManager.selectedLoginServer = newSelectedServer
157+
}
156158
}
157159
}
158160
val onLoginServerCancel = { viewModel.showServerPicker.value = false }

0 commit comments

Comments
 (0)