I've got a bug that has been frustrating me for months now and I can't seem to get to the bottom of it despite a lot of searching.
The issue seems to be to do with when the OnItemSelectedListener of a spinner is set within the app or activity lifecycle.
When my app starts up from cold the spinner behaves exactly as expected and the onItemSelected method override in the listener runs as expected.
However, if the app is (re)started after disappearing from the 'running apps' view, then the spinner appears to be working in so far as the choices pop up when tapped and I can select a item BUT the selected item in the UI does not update and the onItemSelected method is not being called. (onNothingSelected is not being called either.)
If I either i) rotate the phone while keeping the app open or ii) close the app by swiping away from the running apps list then the spinner starts behaving as expepected and actually immediately updates to the last tapped and ignored option and fires onItemSelected as expected.
My spinner is defined in the layout XML as follows:
<androidx.appcompat.widget.AppCompatSpinner
android:id="@+id/spin_aff_id"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_weight="1"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:paddingBottom="2dp"
android:textColor="#000000"
android:spinnerMode="dropdown" />
The spinner items are populated and the adapter assigned as follows (though this appears to be working fine as the dropdown always appears when the spinner is tapped and with the correct items listed:
private void _populate_ids_spinner() {
amalfi.get_affids_fromprefs(affiliateRegions);
amalfi.affiliate_ids_string.clear();
amalfi.regions_present_in_affid_spinner.clear();
Object assoc_id_for_region;
Object spinner_text_for_region;
for (String region : affiliateRegions.regionIds) {
assoc_id_for_region = amalfi.assoc_ids.get(region);
spinner_text_for_region = amalfi.spinner_text.get(region);
if (assoc_id_for_region != null && spinner_text_for_region != null && assoc_id_for_region.toString().length() > 0) {
amalfi.affiliate_ids_string.add(spinner_text_for_region.toString());
amalfi.regions_present_in_affid_spinner.add(region);
}
}
idsSpinnerArrayAdapter =new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, amalfi.affiliate_ids_string);
viewBinding.spinAffId.setAdapter(idsSpinnerArrayAdapter);
idsSpinnerArrayAdapter.notifyDataSetChanged();
}
I am assigning the onItemSelectedListener in the following method so that I can call it multiple times if needed:
private void setupAffIdSpinnerListeners() {
Log.d(LOGTAG,"Setting up the listeners for teh Affiliate ID spinner");
viewBinding.spinAffId.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
programmaticAffiliateIdSelectionChange = false;
return false;
}
});
viewBinding.spinAffId.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
Log.d(LOGTAG,"Aff ID spinner item selected - " + parent.getItemAtPosition(pos));
affiliateIdChanged();
}
@Override
public void onNothingSelected(AdapterView<?> _param1) {
Log.d(LOGTAG,"Aff ID spinner 'changed' but nothing was selected...");
}
});
}
I was originally just calling the code to setOnItemSelectedListener from onCreate, but thought the problem might be that the listener was getting lost when the app was recycled away, so I tried calling the code again in onResume but the problem remains.
One additional piece of info. Sometimes the spinner goes 'blank' on resuming the app after a while as well. ie The selected item is not visible. Again, dropping teh spinner down and selecting does not for onItemSelected so this seems to be the same issue with a UI rendering element to it as well. Again a screen rotate or restart of the app resolves.
I have managed to grab a logcat of the issue happening:
--------- beginning of main
---------------------------- PROCESS STARTED (27261) for package com.nooriginalthought.amalfi ----------------------------
2023-11-03 10:21:52.790 27261-27261 ziparchive com.nooriginalthought.amalfi W Unable to open '/data/data/com.nooriginalthought.amalfi/code_cache/.overlay/base.apk/classes4.dm': No such file or directory
2023-11-03 10:21:52.799 27261-27261 lthought.amalfi com.nooriginalthought.amalfi W ClassLoaderContext classpath size mismatch. expected=0, found=1 (PCL[] | PCL[/data/data/com.nooriginalthought.amalfi/code_cache/.overlay/base.apk/classes4.dex*398746532])
2023-11-03 10:21:52.811 27261-27261 nativeloader com.nooriginalthought.amalfi D Configuring clns-4 for other apk /data/app/~~s7Txh0n_0tJmFElomyXbTQ==/com.nooriginalthought.amalfi-ZT0T2BsWWvU5DzQbGFf8aA==/base.apk. target_sdk_version=34, uses_libraries=, library_path=/data/app/~~s7Txh0n_0tJmFElomyXbTQ==/com.nooriginalthought.amalfi-ZT0T2BsWWvU5DzQbGFf8aA==/lib/arm64, permitted_path=/data:/mnt/expand:/data/user/0/com.nooriginalthought.amalfi
2023-11-03 10:21:52.828 27261-27261 GraphicsEnvironment com.nooriginalthought.amalfi V Currently set values for:
2023-11-03 10:21:52.828 27261-27261 GraphicsEnvironment com.nooriginalthought.amalfi V angle_gl_driver_selection_pkgs=[]
2023-11-03 10:21:52.828 27261-27261 GraphicsEnvironment com.nooriginalthought.amalfi V angle_gl_driver_selection_values=[]
2023-11-03 10:21:52.828 27261-27261 GraphicsEnvironment com.nooriginalthought.amalfi V ANGLE GameManagerService for com.nooriginalthought.amalfi: false
2023-11-03 10:21:52.828 27261-27261 GraphicsEnvironment com.nooriginalthought.amalfi V com.nooriginalthought.amalfi is not listed in per-application setting
2023-11-03 10:21:52.828 27261-27261 GraphicsEnvironment com.nooriginalthought.amalfi V Neither updatable production driver nor prerelease driver is supported.
2023-11-03 10:21:52.850 27261-27261 Compatibil...geReporter com.nooriginalthought.amalfi D Compat change id reported: 183155436; UID 10481; state: ENABLED
2023-11-03 10:21:52.851 27261-27261 FirebaseApp com.nooriginalthought.amalfi I Device unlocked: initializing all Firebase APIs for app [DEFAULT]
2023-11-03 10:21:52.861 27261-27261 FirebaseInitProvider com.nooriginalthought.amalfi I FirebaseApp initialization successful
2023-11-03 10:21:52.896 27261-27261 AppCompatDelegate com.nooriginalthought.amalfi D Checking for metadata for AppLocalesMetadataHolderService : Service not found
2023-11-03 10:21:52.932 27261-27261 DynamiteModule com.nooriginalthought.amalfi W Local module descriptor class for com.google.android.gms.providerinstaller.dynamite not found.
2023-11-03 10:21:52.946 27261-27261 DynamiteModule com.nooriginalthought.amalfi I Considering local module com.google.android.gms.providerinstaller.dynamite:0 and remote module com.google.android.gms.providerinstaller.dynamite:0
2023-11-03 10:21:52.946 27261-27261 ProviderInstaller com.nooriginalthought.amalfi W Failed to load providerinstaller module: No acceptable module com.google.android.gms.providerinstaller.dynamite found. Local version is 0 and remote version is 0.
2023-11-03 10:21:52.961 27261-27261 nativeloader com.nooriginalthought.amalfi D Configuring clns-5 for other apk /system/framework/org.apache.http.legacy.jar. target_sdk_version=34, uses_libraries=ALL, library_path=/data/app/~~fAS9d4vEgDhGhIJdJYUsqQ==/com.google.android.gms-a8dm2e8Z8E6SAPsyVWkvcg==/lib/arm64:/data/app/~~fAS9d4vEgDhGhIJdJYUsqQ==/com.google.android.gms-a8dm2e8Z8E6SAPsyVWkvcg==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand:/data/user/0/com.google.android.gms
2023-11-03 10:21:52.961 27261-27261 nativeloader com.nooriginalthought.amalfi D Extending system_exposed_libraries: libedgetpu_dba.google.so
2023-11-03 10:21:52.967 27261-27261 nativeloader com.nooriginalthought.amalfi D Configuring clns-6 for other apk /system/framework/com.android.media.remotedisplay.jar. target_sdk_version=34, uses_libraries=ALL, library_path=/data/app/~~fAS9d4vEgDhGhIJdJYUsqQ==/com.google.android.gms-a8dm2e8Z8E6SAPsyVWkvcg==/lib/arm64:/data/app/~~fAS9d4vEgDhGhIJdJYUsqQ==/com.google.android.gms-a8dm2e8Z8E6SAPsyVWkvcg==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand:/data/user/0/com.google.android.gms
2023-11-03 10:21:52.967 27261-27261 nativeloader com.nooriginalthought.amalfi D Extending system_exposed_libraries: libedgetpu_dba.google.so
2023-11-03 10:21:52.972 27261-27261 lthought.amalfi com.nooriginalthought.amalfi W Loading /data/misc/apexdata/com.android.art/dalvik-cache/arm64/system@[email protected]@classes.odex non-executable as it requires an image which we failed to load
2023-11-03 10:21:52.974 27261-27261 nativeloader com.nooriginalthought.amalfi D Configuring clns-7 for other apk /system/framework/com.android.location.provider.jar. target_sdk_version=34, uses_libraries=ALL, library_path=/data/app/~~fAS9d4vEgDhGhIJdJYUsqQ==/com.google.android.gms-a8dm2e8Z8E6SAPsyVWkvcg==/lib/arm64:/data/app/~~fAS9d4vEgDhGhIJdJYUsqQ==/com.google.android.gms-a8dm2e8Z8E6SAPsyVWkvcg==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand:/data/user/0/com.google.android.gms
2023-11-03 10:21:52.974 27261-27261 nativeloader com.nooriginalthought.amalfi D Extending system_exposed_libraries: libedgetpu_dba.google.so
2023-11-03 10:21:52.980 27261-27261 nativeloader com.nooriginalthought.amalfi D Configuring clns-8 for other apk /system_ext/framework/org.carconnectivity.android.digitalkey.timesync.jar. target_sdk_version=34, uses_libraries=ALL, library_path=/data/app/~~fAS9d4vEgDhGhIJdJYUsqQ==/com.google.android.gms-a8dm2e8Z8E6SAPsyVWkvcg==/lib/arm64:/data/app/~~fAS9d4vEgDhGhIJdJYUsqQ==/com.google.android.gms-a8dm2e8Z8E6SAPsyVWkvcg==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand:/data/user/0/com.google.android.gms
2023-11-03 10:21:52.980 27261-27261 nativeloader com.nooriginalthought.amalfi D Extending system_exposed_libraries: libedgetpu_dba.google.so
2023-11-03 10:21:52.986 27261-27261 nativeloader com.nooriginalthought.amalfi D Configuring clns-9 for other apk /data/app/~~fAS9d4vEgDhGhIJdJYUsqQ==/com.google.android.gms-a8dm2e8Z8E6SAPsyVWkvcg==/base.apk. target_sdk_version=34, uses_libraries=, library_path=/data/app/~~fAS9d4vEgDhGhIJdJYUsqQ==/com.google.android.gms-a8dm2e8Z8E6SAPsyVWkvcg==/lib/arm64:/data/app/~~fAS9d4vEgDhGhIJdJYUsqQ==/com.google.android.gms-a8dm2e8Z8E6SAPsyVWkvcg==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand:/data/user/0/com.google.android.gms
2023-11-03 10:21:52.998 27261-27261 NativeCrypto com.nooriginalthought.amalfi V Registering com/google/android/gms/org/conscrypt/NativeCrypto's 302 native methods...
2023-11-03 10:21:53.016 27261-27261 lthought.amalfi com.nooriginalthought.amalfi W Accessing hidden method Ljava/security/spec/ECParameterSpec;->getCurveName()Ljava/lang/String; (unsupported, reflection, allowed)
2023-11-03 10:21:53.099 27261-27261 ProviderInstaller com.nooriginalthought.amalfi I Installed default security provider GmsCore_OpenSSL
2023-11-03 10:21:53.137 27261-27261 Compatibil...geReporter com.nooriginalthought.amalfi D Compat change id reported: 210923482; UID 10481; state: ENABLED
2023-11-03 10:21:53.139 27261-27261 lthought.amalfi com.nooriginalthought.amalfi W Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (unsupported, reflection, allowed)
2023-11-03 10:21:53.141 27261-27261 Compatibil...geReporter com.nooriginalthought.amalfi D Compat change id reported: 171228096; UID 10481; state: ENABLED
2023-11-03 10:21:53.268 27261-27261 ziparchive com.nooriginalthought.amalfi W Unable to open '/data/app/~~CQIHxXPb65pNjcAuG2y7sQ==/com.google.android.trichromelibrary_599311133-C1MFQ-0ZNbB9GxTJGYsDZw==/base.dm': No such file or directory
2023-11-03 10:21:53.268 27261-27261 ziparchive com.nooriginalthought.amalfi W Unable to open '/data/app/~~CQIHxXPb65pNjcAuG2y7sQ==/com.google.android.trichromelibrary_599311133-C1MFQ-0ZNbB9GxTJGYsDZw==/base.dm': No such file or directory
2023-11-03 10:21:53.268 27261-27261 lthought.amalfi com.nooriginalthought.amalfi W Entry not found
2023-11-03 10:21:53.269 27261-27261 nativeloader com.nooriginalthought.amalfi D Configuring clns-10 for other apk /data/app/~~CQIHxXPb65pNjcAuG2y7sQ==/com.google.android.trichromelibrary_599311133-C1MFQ-0ZNbB9GxTJGYsDZw==/base.apk. target_sdk_version=34, uses_libraries=ALL, library_path=/data/app/~~wdx-eKXVuiv4N9vQ4-LdSg==/com.google.android.webview-QASJ3_ygGAM_3MyScpKjWw==/lib/arm64:/data/app/~~wdx-eKXVuiv4N9vQ4-LdSg==/com.google.android.webview-QASJ3_ygGAM_3MyScpKjWw==/base.apk!/lib/arm64-v8a:/data/app/~~CQIHxXPb65pNjcAuG2y7sQ==/com.google.android.trichromelibrary_599311133-C1MFQ-0ZNbB9GxTJGYsDZw==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand
2023-11-03 10:21:53.269 27261-27261 nativeloader com.nooriginalthought.amalfi D Extending system_exposed_libraries: libedgetpu_dba.google.so
2023-11-03 10:21:53.275 27261-27261 nativeloader com.nooriginalthought.amalfi D Configuring clns-11 for other apk /data/app/~~wdx-eKXVuiv4N9vQ4-LdSg==/com.google.android.webview-QASJ3_ygGAM_3MyScpKjWw==/base.apk. target_sdk_version=34, uses_libraries=, library_path=/data/app/~~wdx-eKXVuiv4N9vQ4-LdSg==/com.google.android.webview-QASJ3_ygGAM_3MyScpKjWw==/lib/arm64:/data/app/~~wdx-eKXVuiv4N9vQ4-LdSg==/com.google.android.webview-QASJ3_ygGAM_3MyScpKjWw==/base.apk!/lib/arm64-v8a:/data/app/~~CQIHxXPb65pNjcAuG2y7sQ==/com.google.android.trichromelibrary_599311133-C1MFQ-0ZNbB9GxTJGYsDZw==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand
2023-11-03 10:21:53.279 27261-27261 WebViewFactory com.nooriginalthought.amalfi I Loading com.google.android.webview version 118.0.5993.111 (code 599311133)
2023-11-03 10:21:53.291 27261-27261 cr_WVCFactoryProvider com.nooriginalthought.amalfi I Loaded version=118.0.5993.111 minSdkVersion=29 isBundle=true multiprocess=true packageId=2
2023-11-03 10:21:53.311 27261-27327 chromium com.nooriginalthought.amalfi E [1103/102153.311207:ERROR:variations_seed_loader.cc(69)] Failed to open file for reading. Errno: 2
2023-11-03 10:21:53.318 27261-27261 cr_LibraryLoader com.nooriginalthought.amalfi I Successfully loaded native library
2023-11-03 10:21:53.320 27261-27261 cr_CachingUmaRecorder com.nooriginalthought.amalfi I Flushed 7 samples from 7 histograms, 0 samples were dropped.
2023-11-03 10:21:53.331 27261-27261 cr_CombinedPProvider com.nooriginalthought.amalfi I #registerProvider() provider:WV.O7@dff7815 isPolicyCacheEnabled:false policyProvidersSize:0
2023-11-03 10:21:53.333 27261-27261 cr_PolicyProvider com.nooriginalthought.amalfi I #setManagerAndSource() 0
2023-11-03 10:21:53.344 27261-27261 cr_CombinedPProvider com.nooriginalthought.amalfi I #linkNativeInternal() 1
2023-11-03 10:21:53.344 27261-27261 cr_AppResProvider com.nooriginalthought.amalfi I #getApplicationRestrictionsFromUserManager() Bundle[EMPTY_PARCEL]
2023-11-03 10:21:53.344 27261-27261 cr_PolicyProvider com.nooriginalthought.amalfi I #notifySettingsAvailable() 0
2023-11-03 10:21:53.344 27261-27261 cr_CombinedPProvider com.nooriginalthought.amalfi I #onSettingsAvailable() 0
2023-11-03 10:21:53.344 27261-27261 cr_CombinedPProvider com.nooriginalthought.amalfi I #flushPolicies()
2023-11-03 10:21:53.388 27261-27261 Compatibil...geReporter com.nooriginalthought.amalfi D Compat change id reported: 214741472; UID 10481; state: ENABLED
2023-11-03 10:21:53.508 27261-27261 lthought.amalfi com.nooriginalthought.amalfi W Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (unsupported, reflection, allowed)
2023-11-03 10:21:53.546 27261-27261 AmALfi_Main com.nooriginalthought.amalfi D Setting up the listeners for teh Affiliate ID spinner
2023-11-03 10:21:53.560 27261-27261 AmALfi_Main com.nooriginalthought.amalfi D Setting up the listeners for teh Affiliate ID spinner
2023-11-03 10:21:53.566 27261-27376 libEGL com.nooriginalthought.amalfi D loaded /vendor/lib64/egl/libGLES_mali.so
2023-11-03 10:21:53.567 27261-27352 cr_media com.nooriginalthought.amalfi W BLUETOOTH_CONNECT permission is missing.
2023-11-03 10:21:53.567 27261-27352 cr_media com.nooriginalthought.amalfi W registerBluetoothIntentsIfNeeded: Requires BLUETOOTH permission
2023-11-03 10:21:53.579 27261-27261 Compatibil...geReporter com.nooriginalthought.amalfi D Compat change id reported: 237531167; UID 10481; state: DISABLED
2023-11-03 10:21:53.603 27261-27261 Choreographer com.nooriginalthought.amalfi I Skipped 87 frames! The application may be doing too much work on its main thread.
2023-11-03 10:21:53.619 27261-27261 Compatibil...geReporter com.nooriginalthought.amalfi D Compat change id reported: 193247900; UID 10481; state: ENABLED
2023-11-03 10:21:53.637 27261-27261 AmALfi_Main com.nooriginalthought.amalfi D Aff ID spinner item selected - amalfiappcn-21 ( Amazon.cn)
2023-11-03 10:21:53.637 27261-27261 AmALfi_Main com.nooriginalthought.amalfi D affiliateIdChanged() has been called
2023-11-03 10:21:53.637 27261-27261 AmALfi_Main com.nooriginalthought.amalfi D affiliateIdChanged() - ID IS compatible with source so doing stuff
2023-11-03 10:21:53.784 27261-27278 OpenGLRenderer com.nooriginalthought.amalfi I Davey! duration=901ms; Flags=1, FrameTimelineVsyncId=111139189, IntendedVsync=594384386647701, Vsync=594385111556583, InputEventId=0, HandleInputStart=594385114538470, AnimationStart=594385114542823, PerformTraversalsStart=594385115653175, DrawStart=594385241829160, FrameDeadline=594384403247701, FrameInterval=594385114279721, FrameStartTime=8332286, SyncQueued=594385257563291, SyncStart=594385257624489, IssueDrawCommandsStart=594385257919248, SwapBuffers=594385285665016, FrameCompleted=594385287847308, DequeueBufferDuration=6225, QueueBufferDuration=234213, GpuCompleted=594385287847308, SwapBuffersCompleted=594385285963071, DisplayPresentTime=0, CommandSubmissionCompleted=594385285665016,
2023-11-03 10:21:53.819 27261-27418 AmALfi_Main com.nooriginalthought.amalfi I Billing setup finished
2023-11-03 10:21:53.831 27261-27419 AmALfi_Main com.nooriginalthought.amalfi D Checking if 'REDACTED' was ever purchased
2023-11-03 10:21:53.831 27261-27419 AmALfi_Main com.nooriginalthought.amalfi D Result contains 1 items
2023-11-03 10:21:53.865 27261-27297 Compatibil...geReporter com.nooriginalthought.amalfi D Compat change id reported: 194532703; UID 10481; state: ENABLED
2023-11-03 10:21:53.866 27261-27297 Compatibil...geReporter com.nooriginalthought.amalfi D Compat change id reported: 253665015; UID 10481; state: ENABLED
2023-11-03 10:21:59.568 27261-27261 WindowOnBackDispatcher com.nooriginalthought.amalfi W sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda17@72b9f0e
2023-11-03 10:21:59.576 27261-27304 OpenGLRenderer com.nooriginalthought.amalfi D endAllActiveAnimators on 0xb400007a202e8d80 (DropDownListView) with handle 0xb400007a702af260
2023-11-03 10:21:59.596 27261-27426 ProfileInstaller com.nooriginalthought.amalfi D Installing profile for com.nooriginalthought.amalfi
2023-11-03 10:22:04.126 27261-27261 WindowOnBackDispatcher com.nooriginalthought.amalfi W sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda17@ac6c588
2023-11-03 10:22:04.130 27261-27304 OpenGLRenderer com.nooriginalthought.amalfi D endAllActiveAnimators on 0xb400007a202e2cf0 (DropDownListView) with handle 0xb400007a702ad160
2023-11-03 10:22:09.744 27261-27261 WindowOnBackDispatcher com.nooriginalthought.amalfi W sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda17@cdd84a6
2023-11-03 10:22:09.747 27261-27304 OpenGLRenderer com.nooriginalthought.amalfi D endAllActiveAnimators on 0xb400007a202fd5d0 (DropDownListView) with handle 0xb400007a70290120
2023-11-03 10:22:13.695 27261-27261 WindowOnBackDispatcher com.nooriginalthought.amalfi W sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda17@b13b2f4
2023-11-03 10:22:13.704 27261-27304 OpenGLRenderer com.nooriginalthought.amalfi D endAllActiveAnimators on 0xb400007a20309080 (DropDownListView) with handle 0xb400007a702b6dc0
2023-11-03 10:22:25.386 27261-27297 TRuntime.C...ortBackend com.nooriginalthought.amalfi I Making request to: https://firebaselogging.googleapis.com/v0cc/log/batch?format=json_proto3
2023-11-03 10:22:25.433 27261-27297 TrafficStats com.nooriginalthought.amalfi D tagSocket(5) with statsTag=0xffffffff, statsUid=-1
2023-11-03 10:22:25.454 27261-27297 lthought.amalfi com.nooriginalthought.amalfi W Accessing hidden field Ljava/net/Socket;->impl:Ljava/net/SocketImpl; (unsupported, reflection, allowed)
2023-11-03 10:22:25.549 27261-27297 lthought.amalfi com.nooriginalthought.amalfi W Accessing hidden method Ljava/security/spec/ECParameterSpec;->setCurveName(Ljava/lang/String;)V (unsupported, reflection, allowed)
2023-11-03 10:22:25.622 27261-27297 TRuntime.C...ortBackend com.nooriginalthought.amalfi I Status Code: 200
2023-11-03 10:22:27.680 27261-27261 AmALfi_Main com.nooriginalthought.amalfi D Aff ID spinner item selected - amalfiappin-21 ( Amazon.in)
2023-11-03 10:22:27.680 27261-27261 AmALfi_Main com.nooriginalthought.amalfi D affiliateIdChanged() has been called
2023-11-03 10:22:27.680 27261-27261 AmALfi_Main com.nooriginalthought.amalfi D affiliateIdChanged() - ID IS compatible with source so doing stuff
In this you can see the app starting up, and then at 10:21:53.637 you can see that onItemSelected IS being called when the spinner value is programmatically set to it's previous value.
Between 10:21:59.568 and 10:22:13.704 I drop down the spinner and make a selection four times. Each of these fails to fire onItemSelected. (There are five items in the spinner at this time, the first is the currently selected item, so I selected each on in turn.)
Then, at 10:22:27.680, I rotate the phone causing the screen to rotate and the spinner immediately populates with the last tapped option from the drop down and you can see onItemSelected fires as it should.
From this point on the spinner behaves as expected.
What on earth can be causing this?
As it's intermittent I have 9nly managed to reproduce on physical devices, not AVDs. It happens on Android 14 and happened in Android 13. I can't reproduce the issue on Android 9 or earlier, though.
(I am compiling with both compile and target SDK version 34 and minimum SDK version 19, using the latest Gradle 8.1.2 and latest Material libraries etc)